From 10e3814118f52453491a42939fbd0e9efb782d70 Mon Sep 17 00:00:00 2001 From: Daniel Vartanov Date: Fri, 20 Nov 2009 14:46:25 +0600 Subject: [PATCH] Initial commit --- presidents/README | 243 + presidents/Rakefile | 10 + .../app/controllers/application_controller.rb | 4 + .../app/controllers/presidents_controller.rb | 7 + presidents/app/helpers/application_helper.rb | 3 + presidents/app/models/president.rb | 8 + presidents/config/boot.rb | 110 + presidents/config/database.yml | 22 + presidents/config/environment.rb | 46 + presidents/config/environments/development.rb | 17 + presidents/config/environments/production.rb | 28 + presidents/config/environments/test.rb | 28 + .../initializers/backtrace_silencers.rb | 7 + presidents/config/initializers/inflections.rb | 10 + presidents/config/initializers/mime_types.rb | 5 + .../config/initializers/new_rails_defaults.rb | 21 + .../config/initializers/session_store.rb | 15 + presidents/config/locales/en.yml | 5 + presidents/config/routes.rb | 3 + presidents/db/development.sqlite3 | Bin 0 -> 9216 bytes .../20091009101447_create_presidents.rb | 19 + presidents/db/schema.rb | 27 + presidents/db/seeds.rb | 7 + presidents/doc/README_FOR_APP | 2 + presidents/lib/tasks/fixtures.rake | 5 + presidents/lib/tasks/rspec.rake | 144 + presidents/log/development.log | 1035 ++ presidents/log/test.log | 15335 ++++++++++++++++ presidents/public/404.html | 30 + presidents/public/422.html | 30 + presidents/public/500.html | 30 + presidents/public/favicon.ico | 0 presidents/public/images/rails.png | Bin 0 -> 6646 bytes presidents/public/index.html | 275 + presidents/public/javascripts/application.js | 2 + presidents/public/javascripts/controls.js | 963 + presidents/public/javascripts/dragdrop.js | 973 + presidents/public/javascripts/effects.js | 1128 ++ presidents/public/javascripts/prototype.js | 4320 +++++ presidents/public/robots.txt | 5 + presidents/script/about | 4 + presidents/script/autospec | 6 + presidents/script/console | 3 + presidents/script/dbconsole | 3 + presidents/script/destroy | 3 + presidents/script/generate | 3 + presidents/script/performance/benchmarker | 3 + presidents/script/performance/profiler | 3 + presidents/script/plugin | 3 + presidents/script/runner | 3 + presidents/script/server | 3 + presidents/script/spec | 10 + presidents/spec/fixtures/load_fixtures.rb | 21 + presidents/spec/fixtures/presidents.txt | 44 + presidents/spec/rcov.opts | 2 + presidents/spec/spec.opts | 4 + presidents/spec/spec_helper.rb | 60 + .../vendor/gems/rack-1.0.0/.specification | 277 + presidents/vendor/gems/rack-1.0.0/COPYING | 18 + .../vendor/gems/rack-1.0.0/KNOWN-ISSUES | 18 + presidents/vendor/gems/rack-1.0.0/RDOX | 423 + presidents/vendor/gems/rack-1.0.0/README | 353 + presidents/vendor/gems/rack-1.0.0/Rakefile | 164 + presidents/vendor/gems/rack-1.0.0/SPEC | 162 + presidents/vendor/gems/rack-1.0.0/bin/rackup | 176 + .../gems/rack-1.0.0/contrib/rack_logo.svg | 111 + .../vendor/gems/rack-1.0.0/example/lobster.ru | 4 + .../rack-1.0.0/example/protectedlobster.rb | 14 + .../rack-1.0.0/example/protectedlobster.ru | 8 + presidents/vendor/gems/rack-1.0.0/lib/rack.rb | 90 + .../rack-1.0.0/lib/rack/adapter/camping.rb | 22 + .../lib/rack/auth/abstract/handler.rb | 37 + .../lib/rack/auth/abstract/request.rb | 37 + .../gems/rack-1.0.0/lib/rack/auth/basic.rb | 58 + .../rack-1.0.0/lib/rack/auth/digest/md5.rb | 124 + .../rack-1.0.0/lib/rack/auth/digest/nonce.rb | 51 + .../rack-1.0.0/lib/rack/auth/digest/params.rb | 55 + .../lib/rack/auth/digest/request.rb | 40 + .../gems/rack-1.0.0/lib/rack/auth/openid.rb | 480 + .../gems/rack-1.0.0/lib/rack/builder.rb | 63 + .../gems/rack-1.0.0/lib/rack/cascade.rb | 36 + .../gems/rack-1.0.0/lib/rack/chunked.rb | 49 + .../gems/rack-1.0.0/lib/rack/commonlogger.rb | 61 + .../rack-1.0.0/lib/rack/conditionalget.rb | 47 + .../rack-1.0.0/lib/rack/content_length.rb | 29 + .../gems/rack-1.0.0/lib/rack/content_type.rb | 23 + .../gems/rack-1.0.0/lib/rack/deflater.rb | 96 + .../gems/rack-1.0.0/lib/rack/directory.rb | 153 + .../vendor/gems/rack-1.0.0/lib/rack/file.rb | 88 + .../gems/rack-1.0.0/lib/rack/handler.rb | 69 + .../gems/rack-1.0.0/lib/rack/handler/cgi.rb | 61 + .../lib/rack/handler/evented_mongrel.rb | 8 + .../rack-1.0.0/lib/rack/handler/fastcgi.rb | 88 + .../gems/rack-1.0.0/lib/rack/handler/lsws.rb | 55 + .../rack-1.0.0/lib/rack/handler/mongrel.rb | 84 + .../gems/rack-1.0.0/lib/rack/handler/scgi.rb | 59 + .../lib/rack/handler/swiftiplied_mongrel.rb | 8 + .../gems/rack-1.0.0/lib/rack/handler/thin.rb | 18 + .../rack-1.0.0/lib/rack/handler/webrick.rb | 67 + .../vendor/gems/rack-1.0.0/lib/rack/head.rb | 19 + .../vendor/gems/rack-1.0.0/lib/rack/lint.rb | 537 + .../gems/rack-1.0.0/lib/rack/lobster.rb | 65 + .../vendor/gems/rack-1.0.0/lib/rack/lock.rb | 16 + .../rack-1.0.0/lib/rack/methodoverride.rb | 27 + .../vendor/gems/rack-1.0.0/lib/rack/mime.rb | 204 + .../vendor/gems/rack-1.0.0/lib/rack/mock.rb | 160 + .../gems/rack-1.0.0/lib/rack/recursive.rb | 57 + .../gems/rack-1.0.0/lib/rack/reloader.rb | 106 + .../gems/rack-1.0.0/lib/rack/request.rb | 254 + .../gems/rack-1.0.0/lib/rack/response.rb | 183 + .../rack-1.0.0/lib/rack/rewindable_input.rb | 98 + .../lib/rack/session/abstract/id.rb | 142 + .../rack-1.0.0/lib/rack/session/cookie.rb | 91 + .../rack-1.0.0/lib/rack/session/memcache.rb | 109 + .../gems/rack-1.0.0/lib/rack/session/pool.rb | 100 + .../rack-1.0.0/lib/rack/showexceptions.rb | 349 + .../gems/rack-1.0.0/lib/rack/showstatus.rb | 106 + .../vendor/gems/rack-1.0.0/lib/rack/static.rb | 38 + .../vendor/gems/rack-1.0.0/lib/rack/urlmap.rb | 55 + .../vendor/gems/rack-1.0.0/lib/rack/utils.rb | 397 + .../vendor/gems/rack-1.0.0/rack.gemspec | 54 + .../gems/rack-1.0.0/test/cgi/lighttpd.conf | 20 + .../vendor/gems/rack-1.0.0/test/cgi/test | 9 + .../vendor/gems/rack-1.0.0/test/cgi/test.fcgi | 8 + .../vendor/gems/rack-1.0.0/test/cgi/test.ru | 7 + .../gems/rack-1.0.0/test/multipart/binary | Bin 0 -> 26667 bytes .../gems/rack-1.0.0/test/multipart/empty | 10 + .../vendor/gems/rack-1.0.0/test/multipart/ie | 6 + .../gems/rack-1.0.0/test/multipart/nested | 10 + .../gems/rack-1.0.0/test/multipart/none | 9 + .../gems/rack-1.0.0/test/multipart/text | 10 + .../rack-1.0.0/test/spec_rack_auth_basic.rb | 73 + .../rack-1.0.0/test/spec_rack_auth_digest.rb | 226 + .../rack-1.0.0/test/spec_rack_auth_openid.rb | 84 + .../gems/rack-1.0.0/test/spec_rack_builder.rb | 84 + .../gems/rack-1.0.0/test/spec_rack_camping.rb | 51 + .../gems/rack-1.0.0/test/spec_rack_cascade.rb | 50 + .../gems/rack-1.0.0/test/spec_rack_cgi.rb | 89 + .../gems/rack-1.0.0/test/spec_rack_chunked.rb | 62 + .../rack-1.0.0/test/spec_rack_commonlogger.rb | 32 + .../test/spec_rack_conditionalget.rb | 41 + .../test/spec_rack_content_length.rb | 43 + .../rack-1.0.0/test/spec_rack_content_type.rb | 30 + .../rack-1.0.0/test/spec_rack_deflater.rb | 127 + .../rack-1.0.0/test/spec_rack_directory.rb | 61 + .../gems/rack-1.0.0/test/spec_rack_fastcgi.rb | 89 + .../gems/rack-1.0.0/test/spec_rack_file.rb | 75 + .../gems/rack-1.0.0/test/spec_rack_handler.rb | 43 + .../gems/rack-1.0.0/test/spec_rack_head.rb | 30 + .../gems/rack-1.0.0/test/spec_rack_lint.rb | 499 + .../gems/rack-1.0.0/test/spec_rack_lobster.rb | 45 + .../gems/rack-1.0.0/test/spec_rack_lock.rb | 38 + .../test/spec_rack_methodoverride.rb | 60 + .../gems/rack-1.0.0/test/spec_rack_mock.rb | 157 + .../gems/rack-1.0.0/test/spec_rack_mongrel.rb | 189 + .../rack-1.0.0/test/spec_rack_recursive.rb | 77 + .../gems/rack-1.0.0/test/spec_rack_request.rb | 515 + .../rack-1.0.0/test/spec_rack_response.rb | 218 + .../test/spec_rack_rewindable_input.rb | 118 + .../test/spec_rack_session_cookie.rb | 82 + .../test/spec_rack_session_memcache.rb | 240 + .../rack-1.0.0/test/spec_rack_session_pool.rb | 172 + .../test/spec_rack_showexceptions.rb | 21 + .../rack-1.0.0/test/spec_rack_showstatus.rb | 72 + .../gems/rack-1.0.0/test/spec_rack_static.rb | 37 + .../gems/rack-1.0.0/test/spec_rack_thin.rb | 91 + .../gems/rack-1.0.0/test/spec_rack_urlmap.rb | 185 + .../gems/rack-1.0.0/test/spec_rack_utils.rb | 341 + .../gems/rack-1.0.0/test/spec_rack_webrick.rb | 130 + .../gems/rack-1.0.0/test/testrequest.rb | 57 + .../rack/handler/unregistered.rb | 7 + .../rack/handler/unregistered_long_one.rb | 7 + .../vendor/gems/ratom-0.6.2/.specification | 133 + .../vendor/gems/ratom-0.6.2/History.txt | 103 + .../vendor/gems/ratom-0.6.2/License.txt | 20 + .../vendor/gems/ratom-0.6.2/Manifest.txt | 54 + presidents/vendor/gems/ratom-0.6.2/README.txt | 289 + presidents/vendor/gems/ratom-0.6.2/Rakefile | 4 + .../vendor/gems/ratom-0.6.2/config/hoe.rb | 72 + .../gems/ratom-0.6.2/config/requirements.rb | 17 + .../vendor/gems/ratom-0.6.2/lib/atom.rb | 736 + .../ratom-0.6.2/lib/atom/configuration.rb | 24 + .../vendor/gems/ratom-0.6.2/lib/atom/pub.rb | 250 + .../gems/ratom-0.6.2/lib/atom/version.rb | 15 + .../gems/ratom-0.6.2/lib/atom/xml/parser.rb | 374 + presidents/vendor/gems/ratom-0.6.2/setup.rb | 1585 ++ .../ratom-0.6.2/spec/app/member_entry.atom | 31 + .../gems/ratom-0.6.2/spec/app/service.xml | 36 + .../gems/ratom-0.6.2/spec/atom/pub_spec.rb | 504 + .../vendor/gems/ratom-0.6.2/spec/atom_spec.rb | 1304 ++ .../ratom-0.6.2/spec/conformance/baseuri.atom | 19 + .../ratom-0.6.2/spec/conformance/divtest.atom | 32 + .../spec/conformance/linktests.xml | 103 + .../nondefaultnamespace-baseline.atom | 25 + .../nondefaultnamespace-xhtml.atom | 25 + .../spec/conformance/nondefaultnamespace.atom | 25 + .../spec/conformance/ordertest.xml | 112 + .../spec/conformance/title/html-cdata.atom | 22 + .../spec/conformance/title/html-entity.atom | 22 + .../spec/conformance/title/html-ncr.atom | 22 + .../spec/conformance/title/text-cdata.atom | 22 + .../spec/conformance/title/text-entity.atom | 21 + .../spec/conformance/title/text-ncr.atom | 21 + .../spec/conformance/title/xhtml-entity.atom | 21 + .../spec/conformance/title/xhtml-ncr.atom | 21 + .../spec/conformance/unknown-namespace.atom | 25 + .../ratom-0.6.2/spec/conformance/xmlbase.atom | 133 + .../spec/fixtures/complex_single_entry.atom | 45 + .../spec/fixtures/created_entry.atom | 31 + .../gems/ratom-0.6.2/spec/fixtures/entry.atom | 30 + .../spec/fixtures/multiple_entry.atom | 0 .../spec/fixtures/simple_single_entry.atom | 21 + .../spec/fixtures/with_stylesheet.atom | 8 + .../spec/paging/first_paged_feed.atom | 21 + .../spec/paging/last_paged_feed.atom | 21 + .../spec/paging/middle_paged_feed.atom | 22 + .../vendor/gems/ratom-0.6.2/spec/spec.opts | 1 + .../gems/ratom-0.6.2/spec/spec_helper.rb | 43 + .../gems/ratom-0.6.2/tasks/deployment.rake | 34 + .../gems/ratom-0.6.2/tasks/environment.rake | 7 + .../vendor/gems/ratom-0.6.2/tasks/rspec.rake | 17 + .../gems/ratom-0.6.2/tasks/website.rake | 17 + .../gems/ratom-0.6.2/website/index.html | 11 + .../vendor/gems/ratom-0.6.2/website/index.txt | 39 + .../javascripts/rounded_corners_lite.inc.js | 285 + .../website/stylesheets/screen.css | 138 + .../gems/ratom-0.6.2/website/template.rhtml | 48 + presidents/vendor/gems/rspec-1.2.9/.document | 7 + .../vendor/gems/rspec-1.2.9/.specification | 505 + .../vendor/gems/rspec-1.2.9/History.rdoc | 1496 ++ .../vendor/gems/rspec-1.2.9/License.txt | 22 + .../vendor/gems/rspec-1.2.9/Manifest.txt | 377 + .../vendor/gems/rspec-1.2.9/README.rdoc | 55 + presidents/vendor/gems/rspec-1.2.9/Rakefile | 145 + .../vendor/gems/rspec-1.2.9/Ruby1.9.rdoc | 31 + presidents/vendor/gems/rspec-1.2.9/TODO.txt | 17 + .../vendor/gems/rspec-1.2.9/Upgrade.rdoc | 199 + .../vendor/gems/rspec-1.2.9/bin/autospec | 4 + presidents/vendor/gems/rspec-1.2.9/bin/spec | 5 + .../vendor/gems/rspec-1.2.9/cucumber.yml | 5 + .../rspec-1.2.9/examples/failing/README.txt | 11 + .../examples/failing/diffing_spec.rb | 36 + .../failing_implicit_docstrings_example.rb | 17 + .../examples/failing/failure_in_after.rb | 10 + .../examples/failing/failure_in_before.rb | 10 + .../examples/failing/mocking_example.rb | 38 + .../examples/failing/mocking_with_flexmock.rb | 26 + .../examples/failing/mocking_with_mocha.rb | 25 + .../examples/failing/mocking_with_rr.rb | 27 + .../examples/failing/partial_mock_example.rb | 18 + .../examples/failing/pending_example.rb | 7 + .../examples/failing/predicate_example.rb | 32 + .../examples/failing/raising_example.rb | 47 + .../examples/failing/syntax_error_example.rb | 7 + .../rspec-1.2.9/examples/failing/team_spec.rb | 41 + .../examples/failing/timeout_behaviour.rb | 5 + .../examples/passing/custom_formatter.rb | 11 + .../examples/passing/custom_matchers.rb | 54 + .../examples/passing/dynamic_spec.rb | 7 + .../examples/passing/file_accessor.rb | 18 + .../examples/passing/file_accessor_spec.rb | 37 + .../examples/passing/filtered_formatter.rb | 17 + .../passing/filtered_formatter_example.rb | 31 + .../examples/passing/greeter_spec.rb | 30 + .../examples/passing/helper_method_example.rb | 12 + .../passing/implicit_docstrings_example.rb | 16 + .../examples/passing/io_processor.rb | 8 + .../examples/passing/io_processor_spec.rb | 20 + .../examples/passing/mocking_example.rb | 25 + .../multi_threaded_example_group_runner.rb | 26 + .../passing/nested_classes_example.rb | 35 + .../examples/passing/options_example.rb | 29 + .../examples/passing/options_formatter.rb | 20 + .../examples/passing/partial_mock_example.rb | 27 + .../examples/passing/pending_example.rb | 18 + .../examples/passing/predicate_example.rb | 25 + .../passing/shared_example_group_example.rb | 79 + .../examples/passing/shared_stack_examples.rb | 36 + .../passing/simple_matcher_example.rb | 29 + .../rspec-1.2.9/examples/passing/stack.rb | 36 + .../examples/passing/stack_spec.rb | 63 + .../stack_spec_with_nested_example_groups.rb | 66 + .../examples/passing/stubbing_example.rb | 67 + .../examples/passing/yielding_example.rb | 31 + .../access_to_constants_spec.rb | 85 + .../before_and_after_blocks.feature | 167 + .../command_line/line_number_option.feature | 56 + ...r_option_with_example_with_no_name.feature | 22 + .../define_example_attribute.feature | 41 + .../example_group_with_should_methods.feature | 29 + .../implicit_docstrings.feature | 59 + .../example_groups/nested_groups.feature | 32 + .../expectations/customized_message.feature | 54 + .../expectations/expect_change.feature | 65 + .../expectations/expect_error.feature | 44 + .../extensions/custom_example_group.feature | 19 + .../formatters/custom_formatter.feature | 30 + .../examples_and_tests_together.feature | 84 + .../features/interop/rspec_output.feature | 25 + .../interop/test_but_not_test_unit.feature | 26 + .../test_case_with_should_methods.feature | 46 + .../load_paths/add_lib_to_load_path.feature | 20 + .../load_paths/add_spec_to_load_path.feature | 20 + .../matchers/define_diffable_matcher.feature | 26 + .../features/matchers/define_matcher.feature | 179 + .../define_matcher_outside_rspec.feature | 38 + ...fine_matcher_with_fluent_interface.feature | 27 + .../matchers/define_wrapped_matcher.feature | 29 + .../use_flexmock.feature | 27 + .../use_mocha.feature | 27 + .../mock_framework_integration/use_rr.feature | 27 + .../mocks/mix_stubs_and_mocks.feature | 22 + .../mocks/stub_implementation.feature | 26 + .../features/pending/pending_examples.feature | 81 + .../runner/specify_line_number.feature | 32 + .../features/spec_helper/spec_helper.feature | 25 + .../step_definitions/running_rspec_steps.rb | 43 + .../features/subject/explicit_subject.feature | 31 + .../features/subject/implicit_subject.feature | 43 + .../gems/rspec-1.2.9/features/support/env.rb | 82 + .../features/support/matchers/smart_match.rb | 12 + presidents/vendor/gems/rspec-1.2.9/init.rb | 9 + .../gems/rspec-1.2.9/lib/autotest/discover.rb | 3 + .../gems/rspec-1.2.9/lib/autotest/rspec.rb | 47 + .../vendor/gems/rspec-1.2.9/lib/spec.rb | 8 + .../spec/adapters/mock_frameworks/flexmock.rb | 24 + .../spec/adapters/mock_frameworks/mocha.rb | 25 + .../lib/spec/adapters/mock_frameworks/rr.rb | 22 + .../spec/adapters/mock_frameworks/rspec.rb | 21 + .../gems/rspec-1.2.9/lib/spec/autorun.rb | 3 + .../gems/rspec-1.2.9/lib/spec/deprecation.rb | 40 + .../vendor/gems/rspec-1.2.9/lib/spec/dsl.rb | 1 + .../gems/rspec-1.2.9/lib/spec/dsl/main.rb | 92 + .../gems/rspec-1.2.9/lib/spec/example.rb | 164 + .../lib/spec/example/args_and_options.rb | 27 + .../spec/example/before_and_after_hooks.rb | 93 + .../rspec-1.2.9/lib/spec/example/errors.rb | 25 + .../lib/spec/example/example_group.rb | 10 + .../lib/spec/example/example_group_factory.rb | 82 + .../spec/example/example_group_hierarchy.rb | 53 + .../lib/spec/example/example_group_methods.rb | 282 + .../lib/spec/example/example_group_proxy.rb | 61 + .../lib/spec/example/example_matcher.rb | 43 + .../lib/spec/example/example_methods.rb | 148 + .../lib/spec/example/example_proxy.rb | 41 + .../lib/spec/example/module_reopening_fix.rb | 43 + .../rspec-1.2.9/lib/spec/example/pending.rb | 18 + .../lib/spec/example/predicate_matchers.rb | 46 + .../lib/spec/example/shared_example_group.rb | 59 + .../rspec-1.2.9/lib/spec/example/subject.rb | 108 + .../gems/rspec-1.2.9/lib/spec/expectations.rb | 35 + .../lib/spec/expectations/errors.rb | 12 + .../lib/spec/expectations/extensions.rb | 1 + .../spec/expectations/extensions/kernel.rb | 52 + .../lib/spec/expectations/fail_with.rb | 45 + .../lib/spec/expectations/handler.rb | 50 + .../gems/rspec-1.2.9/lib/spec/interop/test.rb | 44 + .../lib/spec/interop/test/unit/autorunner.rb | 6 + .../lib/spec/interop/test/unit/testcase.rb | 56 + .../lib/spec/interop/test/unit/testresult.rb | 6 + .../interop/test/unit/testsuite_adapter.rb | 34 + .../test/unit/ui/console/testrunner.rb | 61 + .../gems/rspec-1.2.9/lib/spec/matchers.rb | 195 + .../gems/rspec-1.2.9/lib/spec/matchers/be.rb | 210 + .../rspec-1.2.9/lib/spec/matchers/be_close.rb | 32 + .../lib/spec/matchers/be_instance_of.rb | 26 + .../lib/spec/matchers/be_kind_of.rb | 26 + .../rspec-1.2.9/lib/spec/matchers/change.rb | 151 + .../lib/spec/matchers/compatibility.rb | 14 + .../gems/rspec-1.2.9/lib/spec/matchers/dsl.rb | 20 + .../gems/rspec-1.2.9/lib/spec/matchers/eql.rb | 42 + .../rspec-1.2.9/lib/spec/matchers/equal.rb | 53 + .../rspec-1.2.9/lib/spec/matchers/errors.rb | 5 + .../rspec-1.2.9/lib/spec/matchers/exist.rb | 16 + .../spec/matchers/extensions/instance_exec.rb | 31 + .../spec/matchers/generated_descriptions.rb | 36 + .../gems/rspec-1.2.9/lib/spec/matchers/has.rb | 35 + .../rspec-1.2.9/lib/spec/matchers/have.rb | 151 + .../rspec-1.2.9/lib/spec/matchers/include.rb | 44 + .../rspec-1.2.9/lib/spec/matchers/match.rb | 21 + .../lib/spec/matchers/match_array.rb | 71 + .../rspec-1.2.9/lib/spec/matchers/matcher.rb | 87 + .../lib/spec/matchers/method_missing.rb | 9 + .../lib/spec/matchers/operator_matcher.rb | 78 + .../rspec-1.2.9/lib/spec/matchers/pretty.rb | 37 + .../lib/spec/matchers/raise_error.rb | 129 + .../lib/spec/matchers/respond_to.rb | 71 + .../rspec-1.2.9/lib/spec/matchers/satisfy.rb | 47 + .../lib/spec/matchers/simple_matcher.rb | 133 + .../lib/spec/matchers/throw_symbol.rb | 104 + .../lib/spec/matchers/wrap_expectation.rb | 55 + .../vendor/gems/rspec-1.2.9/lib/spec/mocks.rb | 200 + .../lib/spec/mocks/argument_expectation.rb | 51 + .../lib/spec/mocks/argument_matchers.rb | 237 + .../lib/spec/mocks/error_generator.rb | 92 + .../gems/rspec-1.2.9/lib/spec/mocks/errors.rb | 10 + .../lib/spec/mocks/example_methods.rb | 69 + .../rspec-1.2.9/lib/spec/mocks/extensions.rb | 1 + .../lib/spec/mocks/extensions/object.rb | 3 + .../rspec-1.2.9/lib/spec/mocks/framework.rb | 15 + .../lib/spec/mocks/message_expectation.rb | 329 + .../rspec-1.2.9/lib/spec/mocks/methods.rb | 89 + .../gems/rspec-1.2.9/lib/spec/mocks/mock.rb | 71 + .../rspec-1.2.9/lib/spec/mocks/order_group.rb | 29 + .../gems/rspec-1.2.9/lib/spec/mocks/proxy.rb | 245 + .../gems/rspec-1.2.9/lib/spec/mocks/space.rb | 28 + .../rspec-1.2.9/lib/spec/rake/spectask.rb | 230 + .../rspec-1.2.9/lib/spec/rake/verify_rcov.rb | 52 + .../vendor/gems/rspec-1.2.9/lib/spec/ruby.rb | 9 + .../gems/rspec-1.2.9/lib/spec/runner.rb | 66 + .../lib/spec/runner/backtrace_tweaker.rb | 77 + .../spec/runner/class_and_arguments_parser.rb | 14 + .../lib/spec/runner/command_line.rb | 15 + .../lib/spec/runner/configuration.rb | 194 + .../lib/spec/runner/differs/default.rb | 93 + .../lib/spec/runner/differs/load-diff-lcs.rb | 12 + .../lib/spec/runner/drb_command_line.rb | 26 + .../lib/spec/runner/example_group_runner.rb | 59 + .../lib/spec/runner/extensions/kernel.rb | 9 + .../spec/runner/formatter/base_formatter.rb | 139 + .../runner/formatter/base_text_formatter.rb | 142 + .../failing_example_groups_formatter.rb | 25 + .../formatter/failing_examples_formatter.rb | 20 + .../spec/runner/formatter/html_formatter.rb | 338 + .../runner/formatter/nested_text_formatter.rb | 47 + .../runner/formatter/no_op_method_missing.rb | 21 + .../runner/formatter/profile_formatter.rb | 47 + .../formatter/progress_bar_formatter.rb | 33 + .../spec/runner/formatter/silent_formatter.rb | 10 + .../runner/formatter/snippet_extractor.rb | 52 + .../runner/formatter/specdoc_formatter.rb | 33 + .../runner/formatter/text_mate_formatter.rb | 16 + .../lib/spec/runner/heckle_runner.rb | 72 + .../spec/runner/heckle_runner_unsupported.rb | 10 + .../lib/spec/runner/line_number_query.rb | 78 + .../lib/spec/runner/option_parser.rb | 223 + .../rspec-1.2.9/lib/spec/runner/options.rb | 400 + .../rspec-1.2.9/lib/spec/runner/reporter.rb | 171 + .../rspec-1.2.9/lib/spec/stubs/cucumber.rb | 5 + .../gems/rspec-1.2.9/lib/spec/test/unit.rb | 10 + .../gems/rspec-1.2.9/lib/spec/version.rb | 14 + .../rspec-1.2.9/resources/helpers/cmdline.rb | 8 + .../rspec-1.2.9/resources/rake/examples.rake | 7 + .../resources/rake/examples_with_rcov.rake | 9 + .../rake/failing_examples_with_html.rake | 9 + .../resources/rake/verify_rcov.rake | 7 + .../vendor/gems/rspec-1.2.9/spec/README.jruby | 15 + .../spec/autotest/autotest_helper.rb | 8 + .../spec/autotest/autotest_matchers.rb | 38 + .../spec/autotest/discover_spec.rb | 8 + .../spec/autotest/failed_results_re_spec.rb | 31 + .../rspec-1.2.9/spec/autotest/rspec_spec.rb | 111 + .../gems/rspec-1.2.9/spec/ruby_forker.rb | 13 + .../vendor/gems/rspec-1.2.9/spec/spec.opts | 6 + .../rspec-1.2.9/spec/spec/dsl/main_spec.rb | 95 + .../example_group_class_definition_spec.rb | 51 + .../example/example_group_factory_spec.rb | 180 + .../example/example_group_methods_spec.rb | 758 + .../spec/example/example_group_proxy_spec.rb | 107 + .../spec/spec/example/example_group_spec.rb | 643 + .../spec/spec/example/example_matcher_spec.rb | 86 + .../spec/spec/example/example_methods_spec.rb | 162 + .../spec/spec/example/example_proxy_spec.rb | 57 + .../spec/spec/example/helper_method_spec.rb | 24 + .../spec/example/nested_example_group_spec.rb | 71 + .../spec/spec/example/pending_module_spec.rb | 58 + .../spec/example/predicate_matcher_spec.rb | 41 + .../spec/example/shared_example_group_spec.rb | 257 + .../example/subclassing_example_group_spec.rb | 25 + .../spec/spec/example/subject_spec.rb | 103 + .../spec/expectations/differs/default_spec.rb | 194 + .../expectations/extensions/kernel_spec.rb | 45 + .../spec/spec/expectations/fail_with_spec.rb | 96 + .../spec/spec/expectations/handler_spec.rb | 206 + .../expectations/wrap_expectation_spec.rb | 30 + .../test/unit/resources/spec_that_fails.rb | 10 + .../test/unit/resources/spec_that_passes.rb | 10 + .../test/unit/resources/spec_with_errors.rb | 10 + .../unit/resources/spec_with_options_hash.rb | 13 + .../unit/resources/test_case_that_fails.rb | 10 + .../unit/resources/test_case_that_passes.rb | 10 + .../unit/resources/test_case_with_errors.rb | 10 + .../resources/test_case_with_various_names.rb | 22 + .../testsuite_adapter_spec_with_test_unit.rb | 38 + .../spec/spec/interop/test/unit/spec_spec.rb | 48 + .../test/unit/test_unit_spec_helper.rb | 18 + .../spec/interop/test/unit/testcase_spec.rb | 50 + .../test/unit/testsuite_adapter_spec.rb | 9 + .../spec/spec/matchers/be_close_spec.rb | 50 + .../spec/spec/matchers/be_instance_of_spec.rb | 36 + .../spec/spec/matchers/be_kind_of_spec.rb | 33 + .../rspec-1.2.9/spec/spec/matchers/be_spec.rb | 311 + .../spec/spec/matchers/change_spec.rb | 349 + .../spec/spec/matchers/compatibility_spec.rb | 28 + .../matchers/description_generation_spec.rb | 160 + .../spec/spec/matchers/dsl_spec.rb | 34 + .../spec/spec/matchers/eql_spec.rb | 33 + .../spec/spec/matchers/equal_spec.rb | 57 + .../spec/spec/matchers/exist_spec.rb | 65 + .../spec/spec/matchers/has_spec.rb | 81 + .../spec/spec/matchers/have_spec.rb | 396 + .../spec/spec/matchers/include_spec.rb | 88 + .../spec/spec/matchers/match_array_spec.rb | 108 + .../spec/spec/matchers/match_spec.rb | 57 + .../spec/matchers/matcher_methods_spec.rb | 63 + .../spec/spec/matchers/matcher_spec.rb | 228 + .../spec/spec/matchers/matchers_spec.rb | 2 + .../spec/matchers/operator_matcher_spec.rb | 191 + .../spec/spec/matchers/raise_error_spec.rb | 333 + .../spec/spec/matchers/respond_to_spec.rb | 116 + .../spec/spec/matchers/satisfy_spec.rb | 36 + .../spec/spec/matchers/simple_matcher_spec.rb | 93 + .../spec/spec/matchers/throw_symbol_spec.rb | 96 + .../spec/mocks/any_number_of_times_spec.rb | 36 + .../spec/mocks/argument_expectation_spec.rb | 23 + .../spec/spec/mocks/argument_matchers_spec.rb | 19 + .../spec/spec/mocks/at_least_spec.rb | 97 + .../spec/spec/mocks/at_most_spec.rb | 93 + .../spec/spec/mocks/bug_report_10260_spec.rb | 8 + .../spec/spec/mocks/bug_report_10263_spec.rb | 27 + .../spec/spec/mocks/bug_report_11545_spec.rb | 32 + .../spec/spec/mocks/bug_report_15719_spec.rb | 30 + .../spec/spec/mocks/bug_report_496_spec.rb | 19 + .../spec/spec/mocks/bug_report_600_spec.rb | 22 + .../spec/spec/mocks/bug_report_7611_spec.rb | 19 + .../spec/spec/mocks/bug_report_7805_spec.rb | 22 + .../spec/spec/mocks/bug_report_8165_spec.rb | 31 + .../spec/spec/mocks/bug_report_8302_spec.rb | 26 + .../spec/spec/mocks/bug_report_830_spec.rb | 21 + .../spec/spec/mocks/double_spec.rb | 12 + .../mocks/failing_argument_matchers_spec.rb | 95 + .../spec/mocks/hash_including_matcher_spec.rb | 90 + .../mocks/hash_not_including_matcher_spec.rb | 67 + .../spec/spec/mocks/mock_ordering_spec.rb | 94 + .../spec/spec/mocks/mock_space_spec.rb | 54 + .../rspec-1.2.9/spec/spec/mocks/mock_spec.rb | 594 + .../spec/mocks/multiple_return_value_spec.rb | 113 + .../mocks/nil_expectation_warning_spec.rb | 53 + .../spec/spec/mocks/null_object_mock_spec.rb | 54 + .../spec/spec/mocks/once_counts_spec.rb | 53 + .../spec/spec/mocks/options_hash_spec.rb | 35 + .../spec/spec/mocks/partial_mock_spec.rb | 164 + .../partial_mock_using_mocks_directly_spec.rb | 66 + .../mocks/passing_argument_matchers_spec.rb | 145 + .../spec/spec/mocks/precise_counts_spec.rb | 52 + .../spec/spec/mocks/record_messages_spec.rb | 26 + .../spec/spec/mocks/stub_chain_spec.rb | 42 + .../spec/mocks/stub_implementation_spec.rb | 31 + .../rspec-1.2.9/spec/spec/mocks/stub_spec.rb | 203 + .../stubbed_message_expectations_spec.rb | 26 + .../spec/spec/mocks/twice_counts_spec.rb | 67 + .../spec/spec/mocks/unstub_spec.rb | 127 + .../spec/spec/package/bin_spec_spec.rb | 16 + .../spec/spec/rake/spectask_spec.rb | 150 + .../runner/class_and_argument_parser_spec.rb | 23 + .../spec/spec/runner/command_line_spec.rb | 141 + .../spec/spec/runner/configuration_spec.rb | 320 + .../spec/spec/runner/drb_command_line_spec.rb | 107 + .../spec/spec/runner/empty_file.txt | 0 .../spec/runner/example_group_runner_spec.rb | 26 + .../rspec-1.2.9/spec/spec/runner/examples.txt | 2 + .../rspec-1.2.9/spec/spec/runner/failed.txt | 3 + .../runner/formatter/base_formatter_spec.rb | 30 + .../formatter/base_text_formatter_spec.rb | 113 + .../failing_example_groups_formatter_spec.rb | 45 + .../failing_examples_formatter_spec.rb | 33 + .../formatter/html_formatted-1.8.6-jruby.html | 377 + .../formatter/html_formatted-1.8.6.html | 377 + .../formatter/html_formatted-1.8.7.html | 377 + .../formatter/html_formatted-1.9.1.html | 377 + .../runner/formatter/html_formatter_spec.rb | 118 + .../formatter/nested_text_formatter_spec.rb | 305 + .../formatter/profile_formatter_spec.rb | 70 + .../formatter/progress_bar_formatter_spec.rb | 149 + .../formatter/snippet_extractor_spec.rb | 18 + .../formatter/specdoc_formatter_spec.rb | 159 + .../text_mate_formatted-1.8.6-jruby.html | 371 + .../formatter/text_mate_formatted-1.8.6.html | 371 + .../formatter/text_mate_formatted-1.8.7.html | 371 + .../formatter/text_mate_formatted-1.9.1.html | 371 + .../formatter/text_mate_formatter_spec.rb | 106 + .../spec/spec/runner/heckle_runner_spec.rb | 78 + .../spec/spec/runner/heckler_spec.rb | 20 + .../line_number_query_fixture.rb | 70 + .../spec/runner/line_number_query_spec.rb | 129 + .../runner/noisy_backtrace_tweaker_spec.rb | 51 + .../spec/spec/runner/option_parser_spec.rb | 545 + .../spec/spec/runner/options_spec.rb | 547 + .../spec/runner/output_one_time_fixture.rb | 7 + .../runner/output_one_time_fixture_runner.rb | 7 + .../spec/spec/runner/output_one_time_spec.rb | 15 + .../runner/quiet_backtrace_tweaker_spec.rb | 105 + .../spec/spec/runner/reporter_spec.rb | 244 + .../spec/spec/runner/resources/a_bar.rb | 0 .../spec/spec/runner/resources/a_foo.rb | 0 .../spec/spec/runner/resources/a_spec.rb | 1 + .../resources/custom_example_group_runner.rb | 14 + .../spec/runner/resources/utf8_encoded.rb | 8 + .../rspec-1.2.9/spec/spec/runner/spec.opts | 2 + .../spec/spec/runner/spec_drb.opts | 2 + .../spec/spec/runner/spec_spaced.opts | 2 + .../gems/rspec-1.2.9/spec/spec/runner_spec.rb | 13 + .../gems/rspec-1.2.9/spec/spec_helper.rb | 112 + .../gems/rspec-1.2.9/spec/support/macros.rb | 29 + .../rspec-1.2.9/spec/support/spec_classes.rb | 133 + .../vendor/gems/rspec-rails-1.2.9/.document | 7 + .../gems/rspec-rails-1.2.9/.specification | 277 + .../gems/rspec-rails-1.2.9/Contribute.rdoc | 4 + .../gems/rspec-rails-1.2.9/History.rdoc | 283 + .../vendor/gems/rspec-rails-1.2.9/License.txt | 33 + .../gems/rspec-rails-1.2.9/Manifest.txt | 165 + .../vendor/gems/rspec-rails-1.2.9/README.rdoc | 45 + .../vendor/gems/rspec-rails-1.2.9/Rakefile | 72 + .../vendor/gems/rspec-rails-1.2.9/TODO.txt | 17 + .../gems/rspec-rails-1.2.9/Upgrade.rdoc | 148 + .../integration_spec_generator.rb | 10 + .../templates/integration_spec.rb | 4 + .../generators/rspec/CHANGES | 1 + .../generators/rspec/rspec_generator.rb | 53 + .../rspec/templates/previous_failures.txt | 0 .../generators/rspec/templates/rcov.opts | 2 + .../generators/rspec/templates/rspec.rake | 144 + .../rspec/templates/script/autospec | 6 + .../generators/rspec/templates/script/spec | 10 + .../generators/rspec/templates/spec.opts | 4 + .../generators/rspec/templates/spec_helper.rb | 54 + .../generators/rspec_controller/USAGE | 33 + .../rspec_controller_generator.rb | 47 + .../templates/controller_spec.rb | 25 + .../rspec_controller/templates/helper_spec.rb | 11 + .../rspec_controller/templates/view_spec.rb | 12 + .../generators/rspec_default_values.rb | 28 + .../generators/rspec_model/USAGE | 18 + .../rspec_model/rspec_model_generator.rb | 35 + .../rspec_model/templates/model_spec.rb | 13 + .../rspec_scaffold_generator.rb | 154 + .../templates/controller_spec.rb | 131 + .../rspec_scaffold/templates/edit_erb_spec.rb | 25 + .../rspec_scaffold/templates/helper_spec.rb | 11 + .../templates/index_erb_spec.rb | 27 + .../rspec_scaffold/templates/new_erb_spec.rb | 25 + .../rspec_scaffold/templates/routing_spec.rb | 33 + .../rspec_scaffold/templates/show_erb_spec.rb | 22 + .../vendor/gems/rspec-rails-1.2.9/init.rb | 9 + .../lib/autotest/discover.rb | 5 + .../lib/autotest/rails_rspec.rb | 76 + .../gems/rspec-rails-1.2.9/lib/spec/rails.rb | 26 + .../lib/spec/rails/example.rb | 48 + .../spec/rails/example/assigns_hash_proxy.rb | 39 + .../rails/example/controller_example_group.rb | 278 + .../lib/spec/rails/example/cookies_proxy.rb | 29 + .../rails/example/functional_example_group.rb | 106 + .../rails/example/helper_example_group.rb | 153 + .../example/integration_example_group.rb | 16 + .../spec/rails/example/model_example_group.rb | 14 + .../lib/spec/rails/example/render_observer.rb | 80 + .../rails/example/routing_example_group.rb | 13 + .../lib/spec/rails/example/routing_helpers.rb | 66 + .../spec/rails/example/view_example_group.rb | 199 + .../lib/spec/rails/extensions.rb | 11 + .../extensions/action_controller/rescue.rb | 42 + .../extensions/action_controller/test_case.rb | 16 + .../action_controller/test_response.rb | 21 + .../spec/rails/extensions/action_view/base.rb | 33 + .../rails/extensions/active_record/base.rb | 45 + .../extensions/active_support/test_case.rb | 7 + .../rails/extensions/spec/matchers/have.rb | 23 + .../extensions/spec/runner/configuration.rb | 44 + .../lib/spec/rails/interop/testcase.rb | 14 + .../lib/spec/rails/matchers.rb | 33 + .../lib/spec/rails/matchers/ar_be_valid.rb | 46 + .../lib/spec/rails/matchers/assert_select.rb | 180 + .../lib/spec/rails/matchers/change.rb | 13 + .../lib/spec/rails/matchers/have_text.rb | 57 + .../lib/spec/rails/matchers/include_text.rb | 54 + .../lib/spec/rails/matchers/redirect_to.rb | 126 + .../spec/rails/matchers/render_template.rb | 129 + .../lib/spec/rails/matchers/route_to.rb | 149 + .../rspec-rails-1.2.9/lib/spec/rails/mocks.rb | 135 + .../lib/spec/rails/version.rb | 16 + .../spec/autotest/mappings_spec.rb | 86 + .../rspec-rails-1.2.9/spec/rails_suite.rb | 7 + .../action_view_base_spec_controller.rb | 2 + .../spec/resources/controllers/application.rb | 9 + .../controllers/controller_spec_controller.rb | 127 + .../spec/resources/controllers/example.txt | 1 + .../controllers/redirect_spec_controller.rb | 70 + .../controllers/render_spec_controller.rb | 34 + .../controllers/rjs_spec_controller.rb | 58 + .../spec/resources/helpers/addition_helper.rb | 5 + .../spec/resources/helpers/explicit_helper.rb | 46 + .../resources/helpers/more_explicit_helper.rb | 5 + .../helpers/plugin_application_helper.rb | 6 + .../resources/helpers/view_spec_helper.rb | 13 + .../spec/resources/models/animal.rb | 4 + .../spec/resources/models/person.rb | 18 + .../spec/resources/models/thing.rb | 3 + .../views/controller_spec/_partial.html.erb | 0 ...setting_flash_after_session_reset.html.erb | 1 + ...etting_flash_before_session_reset.html.erb | 1 + .../action_setting_the_assigns_hash.html.erb | 0 .../action_with_errors_in_template.html.erb | 1 + .../action_with_template.html.erb | 1 + .../views/layouts/application.html.erb | 0 .../resources/views/layouts/simple.html.erb | 0 .../resources/views/objects/_object.html.erb | 1 + .../views/render_spec/_a_partial.html.erb | 0 .../action_with_alternate_layout.html.erb | 0 .../views/render_spec/some_action.html.erb | 0 .../views/render_spec/some_action.js.rjs | 1 + .../rjs_spec/_replacement_partial.html.erb | 1 + .../resources/views/rjs_spec/hide_div.js.rjs | 1 + .../views/rjs_spec/hide_page_element.js.rjs | 1 + .../views/rjs_spec/insert_html.js.rjs | 1 + .../resources/views/rjs_spec/replace.js.rjs | 1 + .../views/rjs_spec/replace_html.js.rjs | 1 + .../rjs_spec/replace_html_with_partial.js.rjs | 1 + .../views/rjs_spec/visual_effect.js.rjs | 1 + .../rjs_spec/visual_toggle_effect.js.rjs | 1 + .../resources/views/tag_spec/no_tags.html.erb | 1 + .../single_div_with_no_attributes.html.erb | 1 + .../single_div_with_one_attribute.html.erb | 1 + .../views/view_spec/_partial.html.erb | 2 + .../view_spec/_partial_used_twice.html.erb | 0 .../_partial_with_local_variable.html.erb | 1 + .../_partial_with_sub_partial.html.erb | 1 + .../views/view_spec/_spacer.html.erb | 1 + .../views/view_spec/accessor.html.erb | 5 + .../views/view_spec/block_helper.html.erb | 3 + .../views/view_spec/entry_form.html.erb | 2 + .../views/view_spec/explicit_helper.html.erb | 2 + .../views/view_spec/foo/show.html.erb | 1 + .../views/view_spec/implicit_helper.html.erb | 2 + .../views/view_spec/multiple_helpers.html.erb | 3 + .../views/view_spec/path_params.html.erb | 1 + .../view_spec/should_not_receive.html.erb | 3 + .../view_spec/template_with_partial.html.erb | 5 + ...ate_with_partial_using_collection.html.erb | 3 + .../template_with_partial_with_array.html.erb | 1 + .../views/view_spec/view_helpers.html.erb | 1 + .../rails/example/assigns_hash_proxy_spec.rb | 109 + .../spec/rails/example/configuration_spec.rb | 65 + .../example/controller_example_group_spec.rb | 307 + .../example/controller_isolation_spec.rb | 75 + .../spec/rails/example/cookies_proxy_spec.rb | 87 + .../spec/rails/example/error_handling_spec.rb | 90 + .../example/example_group_factory_spec.rb | 112 + .../example/helper_example_group_spec.rb | 233 + .../rails/example/model_example_group_spec.rb | 20 + .../example/routing_example_group_spec.rb | 10 + .../shared_routing_example_group_examples.rb | 237 + .../test_unit_assertion_accessibility_spec.rb | 33 + .../rails/example/view_example_group_spec.rb | 349 + .../rails/extensions/action_view_base_spec.rb | 74 + .../rails/extensions/active_record_spec.rb | 14 + .../spec/spec/rails/interop/testcase_spec.rb | 70 + .../spec/rails/matchers/ar_be_valid_spec.rb | 19 + .../spec/rails/matchers/assert_select_spec.rb | 835 + .../spec/rails/matchers/errors_on_spec.rb | 37 + .../spec/rails/matchers/have_text_spec.rb | 69 + .../spec/rails/matchers/include_text_spec.rb | 62 + .../spec/rails/matchers/redirect_to_spec.rb | 253 + .../rails/matchers/render_template_spec.rb | 208 + .../spec/rails/matchers/should_change_spec.rb | 15 + .../spec/spec/rails/mocks/ar_classes.rb | 10 + .../spec/spec/rails/mocks/mock_model_spec.rb | 106 + .../spec/spec/rails/mocks/stub_model_spec.rb | 80 + .../spec/rails/sample_modified_fixture.rb | 8 + .../spec/spec/rails/sample_spec.rb | 8 + .../spec/spec/rails/spec_spec.rb | 11 + .../rspec-rails-1.2.9/spec/spec_helper.rb | 78 + presidents/vendor/plugins/usher | 1 + .../vendor/rails/actionmailer/CHANGELOG | 366 + .../vendor/rails/actionmailer/MIT-LICENSE | 21 + presidents/vendor/rails/actionmailer/README | 149 + presidents/vendor/rails/actionmailer/Rakefile | 99 + .../vendor/rails/actionmailer/install.rb | 30 + .../rails/actionmailer/lib/action_mailer.rb | 62 + .../lib/action_mailer/adv_attr_accessor.rb | 30 + .../actionmailer/lib/action_mailer/base.rb | 706 + .../actionmailer/lib/action_mailer/helpers.rb | 113 + .../lib/action_mailer/mail_helper.rb | 17 + .../actionmailer/lib/action_mailer/part.rb | 107 + .../lib/action_mailer/part_container.rb | 55 + .../actionmailer/lib/action_mailer/quoting.rb | 61 + .../lib/action_mailer/test_case.rb | 64 + .../lib/action_mailer/test_helper.rb | 68 + .../actionmailer/lib/action_mailer/utils.rb | 7 + .../vendor/text-format-0.6.3/text/format.rb | 1466 ++ .../lib/action_mailer/vendor/text_format.rb | 10 + .../action_mailer/vendor/tmail-1.2.3/tmail.rb | 5 + .../vendor/tmail-1.2.3/tmail/address.rb | 426 + .../vendor/tmail-1.2.3/tmail/attachments.rb | 46 + .../vendor/tmail-1.2.3/tmail/base64.rb | 46 + .../vendor/tmail-1.2.3/tmail/compat.rb | 41 + .../vendor/tmail-1.2.3/tmail/config.rb | 67 + .../tmail-1.2.3/tmail/core_extensions.rb | 63 + .../vendor/tmail-1.2.3/tmail/encode.rb | 581 + .../vendor/tmail-1.2.3/tmail/header.rb | 960 + .../vendor/tmail-1.2.3/tmail/index.rb | 9 + .../vendor/tmail-1.2.3/tmail/interface.rb | 1130 ++ .../vendor/tmail-1.2.3/tmail/loader.rb | 3 + .../vendor/tmail-1.2.3/tmail/mail.rb | 578 + .../vendor/tmail-1.2.3/tmail/mailbox.rb | 495 + .../vendor/tmail-1.2.3/tmail/main.rb | 6 + .../vendor/tmail-1.2.3/tmail/mbox.rb | 3 + .../vendor/tmail-1.2.3/tmail/net.rb | 248 + .../vendor/tmail-1.2.3/tmail/obsolete.rb | 132 + .../vendor/tmail-1.2.3/tmail/parser.rb | 1476 ++ .../vendor/tmail-1.2.3/tmail/port.rb | 379 + .../vendor/tmail-1.2.3/tmail/quoting.rb | 118 + .../vendor/tmail-1.2.3/tmail/require_arch.rb | 58 + .../vendor/tmail-1.2.3/tmail/scanner.rb | 49 + .../vendor/tmail-1.2.3/tmail/scanner_r.rb | 261 + .../vendor/tmail-1.2.3/tmail/stringio.rb | 280 + .../vendor/tmail-1.2.3/tmail/utils.rb | 337 + .../vendor/tmail-1.2.3/tmail/version.rb | 39 + .../lib/action_mailer/vendor/tmail.rb | 17 + .../actionmailer/lib/action_mailer/version.rb | 9 + .../rails/actionmailer/lib/actionmailer.rb | 1 + .../rails/actionmailer/test/abstract_unit.rb | 62 + .../actionmailer/test/asset_host_test.rb | 54 + .../actionmailer/test/delivery_method_test.rb | 51 + .../email_with_asset.html.erb | 1 + .../auto_layout_mailer/hello.html.erb | 1 + .../multipart.text.html.erb | 1 + .../multipart.text.plain.erb | 1 + .../explicit_layout_mailer/logout.html.erb | 1 + .../explicit_layout_mailer/signup.html.erb | 1 + .../test/fixtures/first_mailer/share.erb | 1 + .../helper_mailer/use_example_helper.erb | 1 + .../fixtures/helper_mailer/use_helper.erb | 1 + .../helper_mailer/use_helper_method.erb | 1 + .../helper_mailer/use_mail_helper.erb | 5 + .../test/fixtures/helpers/example_helper.rb | 5 + .../layouts/auto_layout_mailer.html.erb | 1 + .../layouts/auto_layout_mailer.text.erb | 1 + .../test/fixtures/layouts/spam.html.erb | 1 + ...multipart_with_template_path_with_dots.erb | 1 + .../actionmailer/test/fixtures/raw_email | 14 + .../actionmailer/test/fixtures/raw_email10 | 20 + .../actionmailer/test/fixtures/raw_email12 | 32 + .../actionmailer/test/fixtures/raw_email13 | 29 + .../actionmailer/test/fixtures/raw_email2 | 114 + .../actionmailer/test/fixtures/raw_email3 | 70 + .../actionmailer/test/fixtures/raw_email4 | 59 + .../actionmailer/test/fixtures/raw_email5 | 19 + .../actionmailer/test/fixtures/raw_email6 | 20 + .../actionmailer/test/fixtures/raw_email7 | 66 + .../actionmailer/test/fixtures/raw_email8 | 47 + .../actionmailer/test/fixtures/raw_email9 | 28 + .../test/fixtures/raw_email_quoted_with_0d0a | 14 + ...il_with_invalid_characters_in_content_type | 104 + .../fixtures/raw_email_with_nested_attachment | 100 + .../raw_email_with_partially_quoted_subject | 14 + .../test/fixtures/second_mailer/share.erb | 1 + .../test/fixtures/templates/signed_up.erb | 3 + .../test_mailer/_subtemplate.text.plain.erb | 1 + .../test/fixtures/test_mailer/body_ivar.erb | 2 + ...custom_templating_extension.text.html.haml | 6 + ...ustom_templating_extension.text.plain.haml | 6 + .../implicitly_multipart_example.ignored.erb | 1 + .../implicitly_multipart_example.rhtml.bak | 1 + ...implicitly_multipart_example.text.html.erb | 10 + ...mplicitly_multipart_example.text.html.erb~ | 10 + ...mplicitly_multipart_example.text.plain.erb | 2 + ...implicitly_multipart_example.text.yaml.erb | 1 + .../included_subtemplate.text.plain.erb | 1 + .../test_mailer/rxml_template.builder | 2 + .../fixtures/test_mailer/rxml_template.rxml | 2 + .../fixtures/test_mailer/signed_up.html.erb | 3 + .../test_mailer/signed_up_with_url.erb | 5 + .../actionmailer/test/mail_helper_test.rb | 95 + .../actionmailer/test/mail_layout_test.rb | 123 + .../actionmailer/test/mail_render_test.rb | 116 + .../actionmailer/test/mail_service_test.rb | 1079 ++ .../rails/actionmailer/test/quoting_test.rb | 99 + .../actionmailer/test/test_helper_test.rb | 129 + .../rails/actionmailer/test/tmail_test.rb | 22 + .../rails/actionmailer/test/url_test.rb | 76 + presidents/vendor/rails/actionpack/CHANGELOG | 5172 ++++++ .../vendor/rails/actionpack/MIT-LICENSE | 21 + presidents/vendor/rails/actionpack/README | 409 + .../rails/actionpack/RUNNING_UNIT_TESTS | 24 + presidents/vendor/rails/actionpack/Rakefile | 160 + presidents/vendor/rails/actionpack/install.rb | 30 + .../rails/actionpack/lib/action_controller.rb | 111 + .../assertions/dom_assertions.rb | 39 + .../assertions/model_assertions.rb | 21 + .../assertions/response_assertions.rb | 160 + .../assertions/routing_assertions.rb | 146 + .../assertions/selector_assertions.rb | 632 + .../assertions/tag_assertions.rb | 127 + .../actionpack/lib/action_controller/base.rb | 1423 ++ .../lib/action_controller/benchmarking.rb | 107 + .../lib/action_controller/caching.rb | 70 + .../lib/action_controller/caching/actions.rb | 177 + .../action_controller/caching/fragments.rb | 120 + .../lib/action_controller/caching/pages.rb | 152 + .../lib/action_controller/caching/sweeper.rb | 45 + .../lib/action_controller/caching/sweeping.rb | 55 + .../lib/action_controller/cgi_ext.rb | 15 + .../lib/action_controller/cgi_ext/cookie.rb | 112 + .../cgi_ext/query_extension.rb | 22 + .../lib/action_controller/cgi_ext/stdinput.rb | 24 + .../lib/action_controller/cgi_process.rb | 77 + .../lib/action_controller/cookies.rb | 94 + .../lib/action_controller/dispatcher.rb | 133 + .../lib/action_controller/failsafe.rb | 86 + .../lib/action_controller/filters.rb | 680 + .../actionpack/lib/action_controller/flash.rb | 171 + .../lib/action_controller/headers.rb | 33 + .../lib/action_controller/helpers.rb | 225 + .../action_controller/http_authentication.rb | 308 + .../lib/action_controller/integration.rb | 680 + .../lib/action_controller/layout.rb | 281 + .../lib/action_controller/middleware_stack.rb | 119 + .../lib/action_controller/middlewares.rb | 12 + .../lib/action_controller/mime_responds.rb | 193 + .../lib/action_controller/mime_type.rb | 212 + .../lib/action_controller/mime_types.rb | 21 + .../lib/action_controller/params_parser.rb | 77 + .../lib/action_controller/performance_test.rb | 15 + .../action_controller/polymorphic_routes.rb | 204 + .../action_controller/record_identifier.rb | 104 + .../lib/action_controller/reloader.rb | 54 + .../lib/action_controller/request.rb | 493 + .../request_forgery_protection.rb | 109 + .../lib/action_controller/rescue.rb | 183 + .../lib/action_controller/resources.rb | 682 + .../lib/action_controller/response.rb | 238 + .../lib/action_controller/routing.rb | 388 + .../lib/action_controller/routing/builder.rb | 197 + .../routing/optimisations.rb | 130 + .../routing/recognition_optimisation.rb | 167 + .../lib/action_controller/routing/route.rb | 265 + .../action_controller/routing/route_set.rb | 502 + .../action_controller/routing/routing_ext.rb | 49 + .../lib/action_controller/routing/segments.rb | 343 + .../session/abstract_store.rb | 181 + .../action_controller/session/cookie_store.rb | 221 + .../session/mem_cache_store.rb | 51 + .../action_controller/session_management.rb | 54 + .../lib/action_controller/status_codes.rb | 88 + .../lib/action_controller/streaming.rb | 181 + .../rescues/_request_and_response.erb | 24 + .../templates/rescues/_trace.erb | 26 + .../templates/rescues/diagnostics.erb | 11 + .../templates/rescues/layout.erb | 29 + .../templates/rescues/missing_template.erb | 2 + .../templates/rescues/routing_error.erb | 10 + .../templates/rescues/template_error.erb | 21 + .../templates/rescues/unknown_action.erb | 2 + .../lib/action_controller/test_case.rb | 204 + .../lib/action_controller/test_process.rb | 580 + .../lib/action_controller/translation.rb | 13 + .../lib/action_controller/uploaded_file.rb | 44 + .../lib/action_controller/url_rewriter.rb | 216 + .../action_controller/vendor/html-scanner.rb | 16 + .../vendor/html-scanner/html/document.rb | 68 + .../vendor/html-scanner/html/node.rb | 537 + .../vendor/html-scanner/html/sanitizer.rb | 173 + .../vendor/html-scanner/html/selector.rb | 828 + .../vendor/html-scanner/html/tokenizer.rb | 105 + .../vendor/html-scanner/html/version.rb | 11 + .../lib/action_controller/verification.rb | 130 + .../rails/actionpack/lib/action_pack.rb | 24 + .../actionpack/lib/action_pack/version.rb | 9 + .../rails/actionpack/lib/action_view.rb | 58 + .../rails/actionpack/lib/action_view/base.rb | 357 + .../actionpack/lib/action_view/erb/util.rb | 38 + .../actionpack/lib/action_view/helpers.rb | 57 + .../helpers/active_record_helper.rb | 305 + .../action_view/helpers/asset_tag_helper.rb | 694 + .../action_view/helpers/atom_feed_helper.rb | 198 + .../action_view/helpers/benchmark_helper.rb | 54 + .../lib/action_view/helpers/cache_helper.rb | 39 + .../lib/action_view/helpers/capture_helper.rb | 136 + .../lib/action_view/helpers/date_helper.rb | 976 + .../lib/action_view/helpers/debug_helper.rb | 38 + .../lib/action_view/helpers/form_helper.rb | 1053 ++ .../helpers/form_options_helper.rb | 600 + .../action_view/helpers/form_tag_helper.rb | 487 + .../action_view/helpers/javascript_helper.rb | 208 + .../lib/action_view/helpers/number_helper.rb | 303 + .../action_view/helpers/prototype_helper.rb | 1305 ++ .../helpers/record_identification_helper.rb | 20 + .../action_view/helpers/record_tag_helper.rb | 58 + .../action_view/helpers/sanitize_helper.rb | 251 + .../helpers/scriptaculous_helper.rb | 226 + .../lib/action_view/helpers/tag_helper.rb | 150 + .../lib/action_view/helpers/text_helper.rb | 587 + .../action_view/helpers/translation_helper.rb | 39 + .../lib/action_view/helpers/url_helper.rb | 638 + .../lib/action_view/inline_template.rb | 19 + .../actionpack/lib/action_view/locale/en.yml | 114 + .../actionpack/lib/action_view/partials.rb | 240 + .../rails/actionpack/lib/action_view/paths.rb | 69 + .../lib/action_view/reloadable_template.rb | 117 + .../actionpack/lib/action_view/renderable.rb | 95 + .../lib/action_view/renderable_partial.rb | 47 + .../actionpack/lib/action_view/template.rb | 246 + .../lib/action_view/template_error.rb | 99 + .../lib/action_view/template_handler.rb | 34 + .../lib/action_view/template_handlers.rb | 48 + .../action_view/template_handlers/builder.rb | 17 + .../lib/action_view/template_handlers/erb.rb | 22 + .../lib/action_view/template_handlers/rjs.rb | 13 + .../actionpack/lib/action_view/test_case.rb | 87 + .../vendor/rails/actionpack/lib/actionpack.rb | 1 + .../rails/actionpack/test/abstract_unit.rb | 61 + .../actionpack/test/active_record_unit.rb | 104 + .../activerecord/active_record_store_test.rb | 174 + ...partial_with_record_identification_test.rb | 188 + .../rails/actionpack/test/adv_attr_test.rb | 20 + .../controller/action_pack_assertions_test.rb | 543 + .../test/controller/addresses_render_test.rb | 37 + .../test/controller/assert_select_test.rb | 734 + .../actionpack/test/controller/base_test.rb | 217 + .../test/controller/benchmark_test.rb | 32 + .../test/controller/caching_test.rb | 729 + .../test/controller/capture_test.rb | 66 + .../test/controller/content_type_test.rb | 168 + .../app/controllers/admin/user_controller.rb | 0 .../app/controllers/user_controller.rb | 0 .../bad_plugin/lib/plugin_controller.rb | 0 .../actionpack/test/controller/cookie_test.rb | 127 + .../deprecated_base_methods_test.rb | 32 + .../test/controller/dispatcher_test.rb | 144 + .../test/controller/failsafe_test.rb | 60 + .../test/controller/fake_controllers.rb | 33 + .../actionpack/test/controller/fake_models.rb | 19 + .../test/controller/filter_params_test.rb | 51 + .../test/controller/filters_test.rb | 885 + .../actionpack/test/controller/flash_test.rb | 147 + .../actionpack/test/controller/header_test.rb | 14 + .../actionpack/test/controller/helper_test.rb | 224 + .../html-scanner/cdata_node_test.rb | 15 + .../controller/html-scanner/document_test.rb | 148 + .../test/controller/html-scanner/node_test.rb | 89 + .../controller/html-scanner/sanitizer_test.rb | 273 + .../controller/html-scanner/tag_node_test.rb | 238 + .../controller/html-scanner/text_node_test.rb | 50 + .../controller/html-scanner/tokenizer_test.rb | 131 + .../http_basic_authentication_test.rb | 113 + .../http_digest_authentication_test.rb | 232 + .../test/controller/integration_test.rb | 445 + .../actionpack/test/controller/layout_test.rb | 204 + .../test/controller/logging_test.rb | 46 + .../test/controller/middleware_stack_test.rb | 90 + .../test/controller/mime_responds_test.rb | 536 + .../test/controller/mime_type_test.rb | 93 + .../controller/polymorphic_routes_test.rb | 293 + .../actionpack/test/controller/rack_test.rb | 311 + .../test/controller/record_identifier_test.rb | 139 + .../test/controller/redirect_test.rb | 285 + .../test/controller/reloader_test.rb | 124 + .../actionpack/test/controller/render_test.rb | 1762 ++ .../request/json_params_parsing_test.rb | 65 + .../request/multipart_params_parsing_test.rb | 162 + .../request/query_string_parsing_test.rb | 120 + .../controller/request/test_request_test.rb | 35 + .../url_encoded_params_parsing_test.rb | 146 + .../request/xml_params_parsing_test.rb | 103 + .../request_forgery_protection_test.rb | 247 + .../test/controller/request_test.rb | 395 + .../actionpack/test/controller/rescue_test.rb | 536 + .../test/controller/resources_test.rb | 1393 ++ .../test/controller/routing_test.rb | 2583 +++ .../test/controller/selector_test.rb | 628 + .../test/controller/send_file_test.rb | 171 + .../controller/session/cookie_store_test.rb | 216 + .../session/mem_cache_store_test.rb | 127 + .../controller/session/test_session_test.rb | 58 + .../actionpack/test/controller/test_test.rb | 700 + .../test/controller/translation_test.rb | 26 + .../test/controller/url_rewriter_test.rb | 385 + .../test/controller/verification_test.rb | 270 + .../test/controller/view_paths_test.rb | 141 + .../test/controller/webservice_test.rb | 260 + .../test/fixtures/_top_level_partial.html.erb | 1 + .../test/fixtures/_top_level_partial_only.erb | 1 + .../test/fixtures/addresses/list.erb | 1 + .../fixtures/alternate_helpers/foo_helper.rb | 3 + .../bad_customers/_bad_customer.html.erb | 1 + .../actionpack/test/fixtures/companies.yml | 24 + .../rails/actionpack/test/fixtures/company.rb | 10 + ...default_content_types_for_respond_to.rhtml | 1 + .../render_default_for_rhtml.rhtml | 1 + .../content_type/render_default_for_rjs.rjs | 1 + .../content_type/render_default_for_rxml.rxml | 1 + .../fixtures/customers/_customer.html.erb | 1 + .../test/fixtures/db_definitions/sqlite.sql | 49 + .../actionpack/test/fixtures/developer.rb | 9 + .../actionpack/test/fixtures/developers.yml | 21 + .../test/fixtures/developers/_developer.erb | 1 + .../test/fixtures/developers_projects.yml | 13 + .../test/fixtures/failsafe/500.html | 1 + .../test/fixtures/fun/games/_game.erb | 1 + .../test/fixtures/fun/games/hello_world.erb | 1 + .../test/fixtures/fun/serious/games/_game.erb | 1 + .../fixtures/functional_caching/_partial.erb | 3 + .../formatted_fragment_cached.html.erb | 3 + .../formatted_fragment_cached.js.rjs | 6 + .../formatted_fragment_cached.xml.builder | 5 + .../fragment_cached.html.erb | 2 + ...html_fragment_cached_with_partial.html.erb | 1 + .../inline_fragment_cached.html.erb | 2 + .../js_fragment_cached_with_partial.js.rjs | 1 + .../good_customers/_good_customer.html.erb | 1 + .../test/fixtures/helpers/abc_helper.rb | 5 + .../test/fixtures/helpers/fun/games_helper.rb | 3 + .../test/fixtures/helpers/fun/pdf_helper.rb | 3 + .../fixtures/layout_tests/alt/hello.rhtml | 1 + .../layout_tests/alt/layouts/alt.rhtml | 0 .../controller_name_space/nested.rhtml | 1 + .../fixtures/layout_tests/layouts/item.rhtml | 1 + .../layout_tests/layouts/layout_test.rhtml | 1 + .../layouts/multiple_extensions.html.erb | 1 + .../layouts/third_party_template_library.mab | 1 + .../fixtures/layout_tests/views/hello.rhtml | 1 + .../test/fixtures/layouts/_column.html.erb | 2 + .../fixtures/layouts/block_with_layout.erb | 3 + .../test/fixtures/layouts/builder.builder | 3 + .../fixtures/layouts/default_html.html.erb | 1 + .../fixtures/layouts/partial_with_layout.erb | 3 + .../test/fixtures/layouts/standard.erb | 1 + .../fixtures/layouts/talk_from_action.erb | 2 + .../test/fixtures/layouts/xhr.html.erb | 2 + .../test/fixtures/layouts/yield.erb | 2 + .../rails/actionpack/test/fixtures/mascot.rb | 3 + .../actionpack/test/fixtures/mascots.yml | 4 + .../test/fixtures/mascots/_mascot.html.erb | 1 + .../test/fixtures/multipart/binary_file | Bin 0 -> 19820 bytes .../fixtures/multipart/boundary_problem_file | 10 + .../test/fixtures/multipart/bracketed_param | 5 + .../actionpack/test/fixtures/multipart/empty | 10 + .../test/fixtures/multipart/hello.txt | 1 + .../test/fixtures/multipart/large_text_file | 10 + .../test/fixtures/multipart/mixed_files | Bin 0 -> 19937 bytes .../test/fixtures/multipart/mona_lisa.jpg | Bin 0 -> 159528 bytes .../actionpack/test/fixtures/multipart/none | 9 + .../test/fixtures/multipart/single_parameter | 5 + .../test/fixtures/multipart/text_file | 10 + .../fixtures/override/test/hello_world.erb | 1 + .../fixtures/override2/layouts/test/sub.erb | 1 + .../fixtures/post_test/layouts/post.html.erb | 1 + .../post_test/layouts/super_post.iphone.erb | 1 + .../fixtures/post_test/post/index.html.erb | 1 + .../fixtures/post_test/post/index.iphone.erb | 1 + .../post_test/super_post/index.html.erb | 1 + .../post_test/super_post/index.iphone.erb | 1 + .../rails/actionpack/test/fixtures/project.rb | 3 + .../actionpack/test/fixtures/projects.yml | 7 + .../test/fixtures/projects/_project.erb | 1 + .../actionpack/test/fixtures/public/404.html | 1 + .../test/fixtures/public/500.da.html | 1 + .../actionpack/test/fixtures/public/500.html | 1 + .../test/fixtures/public/absolute/test.css | 23 + .../test/fixtures/public/absolute/test.js | 63 + .../test/fixtures/public/images/rails.png | Bin 0 -> 1787 bytes .../public/javascripts/application.js | 1 + .../test/fixtures/public/javascripts/bank.js | 1 + .../fixtures/public/javascripts/controls.js | 1 + .../fixtures/public/javascripts/dragdrop.js | 1 + .../fixtures/public/javascripts/effects.js | 1 + .../fixtures/public/javascripts/prototype.js | 1 + .../fixtures/public/javascripts/robber.js | 1 + .../public/javascripts/subdir/subdir.js | 1 + .../public/javascripts/version.1.0.js | 1 + .../test/fixtures/public/stylesheets/bank.css | 1 + .../fixtures/public/stylesheets/robber.css | 1 + .../public/stylesheets/subdir/subdir.css | 1 + .../public/stylesheets/version.1.0.css | 1 + .../quiz/questions/_question.html.erb | 1 + .../actionpack/test/fixtures/replies.yml | 15 + .../test/fixtures/replies/_reply.erb | 1 + .../rails/actionpack/test/fixtures/reply.rb | 7 + .../respond_to/all_types_with_layout.html.erb | 1 + .../respond_to/all_types_with_layout.js.rjs | 1 + ...constant_handling_without_block.mobile.erb | 1 + .../iphone_with_html_response_type.html.erb | 1 + .../iphone_with_html_response_type.iphone.erb | 1 + .../respond_to/layouts/missing.html.erb | 1 + .../respond_to/layouts/standard.html.erb | 1 + .../respond_to/layouts/standard.iphone.erb | 1 + .../respond_to/using_defaults.html.erb | 1 + .../fixtures/respond_to/using_defaults.js.rjs | 1 + .../respond_to/using_defaults.xml.builder | 1 + .../using_defaults_with_type_list.html.erb | 1 + .../using_defaults_with_type_list.js.rjs | 1 + .../using_defaults_with_type_list.xml.builder | 1 + .../test/fixtures/scope/test/modgreet.erb | 1 + .../actionpack/test/fixtures/shared.html.erb | 1 + .../symlink_parent/symlinked_layout.erb | 5 + .../test/fixtures/test/_counter.html.erb | 1 + .../test/fixtures/test/_customer.erb | 1 + .../test/fixtures/test/_customer_counter.erb | 1 + .../test/fixtures/test/_customer_greeting.erb | 1 + .../test/fixtures/test/_customer_with_var.erb | 1 + .../actionpack/test/fixtures/test/_form.erb | 1 + .../test/fixtures/test/_hash_greeting.erb | 1 + .../test/fixtures/test/_hash_object.erb | 2 + .../test/fixtures/test/_hello.builder | 1 + .../test/fixtures/test/_labelling_form.erb | 1 + .../test/_layout_for_block_with_args.html.erb | 3 + .../test/_layout_for_partial.html.erb | 3 + .../fixtures/test/_local_inspector.html.erb | 1 + .../test/fixtures/test/_one.html.erb | 1 + .../test/fixtures/test/_partial.erb | 1 + .../test/fixtures/test/_partial.html.erb | 1 + .../test/fixtures/test/_partial.js.erb | 1 + .../test/_partial_for_use_in_layout.html.erb | 1 + .../test/fixtures/test/_partial_only.erb | 1 + .../_partial_with_only_html_version.html.erb | 1 + .../actionpack/test/fixtures/test/_person.erb | 2 + .../test/fixtures/test/_raise.html.erb | 1 + .../test/fixtures/test/_two.html.erb | 1 + .../fixtures/test/action_talk_to_layout.erb | 2 + .../test/calling_partial_with_layout.html.erb | 1 + .../test/fixtures/test/capturing.erb | 4 + .../test/fixtures/test/content_for.erb | 2 + .../test/content_for_concatenated.erb | 3 + .../test/content_for_with_parameter.erb | 2 + .../test/fixtures/test/delete_with_js.rjs | 2 + .../test/fixtures/test/dont_pick_me | 1 + .../dot.directory/render_file_with_ivar.erb | 1 + .../test/fixtures/test/enum_rjs_test.rjs | 6 + .../fixtures/test/formatted_html_erb.html.erb | 1 + .../fixtures/test/formatted_xml_erb.builder | 1 + .../fixtures/test/formatted_xml_erb.html.erb | 1 + .../fixtures/test/formatted_xml_erb.xml.erb | 1 + .../test/fixtures/test/greeting.erb | 1 + .../test/fixtures/test/greeting.js.rjs | 1 + .../test/fixtures/test/hello.builder | 4 + .../fixtures/test/hello_world.da.html.erb | 1 + .../test/fixtures/test/hello_world.erb | 1 + .../test/fixtures/test/hello_world.erb~ | 1 + .../fixtures/test/hello_world.pt-BR.html.erb | 1 + .../test/hello_world_container.builder | 3 + .../test/hello_world_from_rxml.builder | 4 + .../test/hello_world_with_layout_false.erb | 1 + .../fixtures/test/hello_xml_world.builder | 11 + .../test/fixtures/test/hyphen-ated.erb | 1 + .../test/implicit_content_type.atom.builder | 2 + .../actionpack/test/fixtures/test/list.erb | 1 + .../test/malformed/malformed.en.html.erb~ | 1 + .../fixtures/test/malformed/malformed.erb~ | 1 + .../test/malformed/malformed.html.erb~ | 1 + .../test/fixtures/test/nested_layout.erb | 3 + .../test/non_erb_block_content_for.builder | 4 + .../fixtures/test/potential_conflicts.erb | 4 + .../test/render_explicit_html_template.js.rjs | 1 + .../test/render_file_from_template.html.erb | 1 + .../fixtures/test/render_file_with_ivar.erb | 1 + .../fixtures/test/render_file_with_locals.erb | 1 + .../test/render_implicit_html_template.js.rjs | 1 + ...html_template_from_xhr_request.da.html.erb | 1 + ...it_html_template_from_xhr_request.html.erb | 1 + ...implicit_js_template_without_layout.js.erb | 1 + .../fixtures/test/render_to_string_test.erb | 1 + .../fixtures/test/sub_template_raise.html.erb | 1 + .../test/fixtures/test/template.erb | 1 + .../test/update_element_with_capture.erb | 9 + .../test/using_layout_around_block.html.erb | 1 + ...ing_layout_around_block_with_args.html.erb | 1 + .../test/fixtures/test/utf8.html.erb | 2 + .../rails/actionpack/test/fixtures/topic.rb | 3 + .../rails/actionpack/test/fixtures/topics.yml | 22 + .../test/fixtures/topics/_topic.html.erb | 1 + .../active_record_helper_i18n_test.rb | 44 + .../template/active_record_helper_test.rb | 302 + .../test/template/asset_tag_helper_test.rb | 759 + .../test/template/atom_feed_helper_test.rb | 315 + .../test/template/benchmark_helper_test.rb | 86 + .../test/template/compiled_templates_test.rb | 203 + .../test/template/date_helper_i18n_test.rb | 120 + .../test/template/date_helper_test.rb | 2469 +++ .../actionpack/test/template/erb_util_test.rb | 24 + .../test/template/form_helper_test.rb | 1313 ++ .../template/form_options_helper_i18n_test.rb | 27 + .../test/template/form_options_helper_test.rb | 807 + .../test/template/form_tag_helper_test.rb | 344 + .../test/template/javascript_helper_test.rb | 106 + .../test/template/number_helper_i18n_test.rb | 69 + .../test/template/number_helper_test.rb | 128 + .../test/template/prototype_helper_test.rb | 639 + .../test/template/record_tag_helper_test.rb | 58 + .../actionpack/test/template/render_test.rb | 290 + .../test/template/sanitize_helper_test.rb | 48 + .../template/scriptaculous_helper_test.rb | 90 + .../test/template/tag_helper_test.rb | 97 + .../actionpack/test/template/template_test.rb | 32 + .../actionpack/test/template/test_test.rb | 54 + .../test/template/text_helper_test.rb | 543 + .../test/template/translation_helper_test.rb | 32 + .../test/template/url_helper_test.rb | 622 + .../rails/actionpack/test/testing_sandbox.rb | 15 + .../actionpack/test/view/test_case_test.rb | 8 + .../vendor/rails/activerecord/CHANGELOG | 5850 ++++++ presidents/vendor/rails/activerecord/README | 351 + .../rails/activerecord/RUNNING_UNIT_TESTS | 36 + presidents/vendor/rails/activerecord/Rakefile | 270 + .../activerecord/examples/associations.png | Bin 0 -> 40623 bytes .../activerecord/examples/performance.rb | 162 + .../vendor/rails/activerecord/install.rb | 30 + .../rails/activerecord/lib/active_record.rb | 84 + .../lib/active_record/aggregations.rb | 261 + .../lib/active_record/association_preload.rb | 389 + .../lib/active_record/associations.rb | 2238 +++ .../associations/association_collection.rb | 475 + .../associations/association_proxy.rb | 279 + .../associations/belongs_to_association.rb | 76 + .../belongs_to_polymorphic_association.rb | 53 + .../has_and_belongs_to_many_association.rb | 143 + .../associations/has_many_association.rb | 122 + .../has_many_through_association.rb | 266 + .../associations/has_one_association.rb | 124 + .../has_one_through_association.rb | 37 + .../lib/active_record/attribute_methods.rb | 388 + .../lib/active_record/autosave_association.rb | 355 + .../activerecord/lib/active_record/base.rb | 3158 ++++ .../activerecord/lib/active_record/batches.rb | 81 + .../lib/active_record/calculations.rb | 311 + .../lib/active_record/callbacks.rb | 360 + .../abstract/connection_pool.rb | 371 + .../abstract/connection_specification.rb | 139 + .../abstract/database_statements.rb | 289 + .../abstract/query_cache.rb | 94 + .../connection_adapters/abstract/quoting.rb | 69 + .../abstract/schema_definitions.rb | 722 + .../abstract/schema_statements.rb | 434 + .../connection_adapters/abstract_adapter.rb | 241 + .../connection_adapters/mysql_adapter.rb | 626 + .../connection_adapters/postgresql_adapter.rb | 1113 ++ .../connection_adapters/sqlite3_adapter.rb | 34 + .../connection_adapters/sqlite_adapter.rb | 453 + .../activerecord/lib/active_record/dirty.rb | 183 + .../lib/active_record/dynamic_finder_match.rb | 41 + .../lib/active_record/dynamic_scope_match.rb | 25 + .../lib/active_record/fixtures.rb | 996 + .../i18n_interpolation_deprecation.rb | 26 + .../lib/active_record/locale/en.yml | 58 + .../lib/active_record/locking/optimistic.rb | 181 + .../lib/active_record/locking/pessimistic.rb | 77 + .../lib/active_record/migration.rb | 566 + .../lib/active_record/named_scope.rb | 192 + .../lib/active_record/nested_attributes.rb | 329 + .../lib/active_record/observer.rb | 197 + .../lib/active_record/query_cache.rb | 33 + .../lib/active_record/reflection.rb | 320 + .../activerecord/lib/active_record/schema.rb | 51 + .../lib/active_record/schema_dumper.rb | 182 + .../lib/active_record/serialization.rb | 101 + .../serializers/json_serializer.rb | 91 + .../serializers/xml_serializer.rb | 357 + .../lib/active_record/session_store.rb | 326 + .../lib/active_record/test_case.rb | 66 + .../lib/active_record/timestamp.rb | 71 + .../lib/active_record/transactions.rb | 235 + .../lib/active_record/validations.rb | 1135 ++ .../activerecord/lib/active_record/version.rb | 9 + .../rails/activerecord/lib/activerecord.rb | 1 + .../activerecord/test/assets/flowers.jpg | Bin 0 -> 5834 bytes .../test/cases/aaa_create_tables_test.rb | 24 + .../test/cases/active_schema_test_mysql.rb | 100 + .../cases/active_schema_test_postgresql.rb | 24 + .../activerecord/test/cases/adapter_test.rb | 145 + .../test/cases/aggregations_test.rb | 167 + .../activerecord/test/cases/ar_schema_test.rb | 32 + .../belongs_to_associations_test.rb | 425 + .../test/cases/associations/callbacks_test.rb | 161 + .../cascaded_eager_loading_test.rb | 131 + ...eager_load_includes_full_sti_class_test.rb | 36 + .../eager_load_nested_include_test.rb | 130 + .../eager_singularization_test.rb | 145 + .../test/cases/associations/eager_test.rb | 834 + .../test/cases/associations/extension_test.rb | 62 + .../associations/habtm_join_table_test.rb | 56 + ...s_and_belongs_to_many_associations_test.rb | 822 + .../has_many_associations_test.rb | 1122 ++ .../has_many_through_associations_test.rb | 324 + .../associations/has_one_associations_test.rb | 309 + .../has_one_through_associations_test.rb | 209 + .../inner_join_association_test.rb | 93 + .../cases/associations/join_model_test.rb | 712 + .../test/cases/associations_test.rb | 262 + .../test/cases/attribute_methods_test.rb | 305 + .../test/cases/autosave_association_test.rb | 923 + .../activerecord/test/cases/base_test.rb | 2152 +++ .../activerecord/test/cases/batches_test.rb | 61 + .../activerecord/test/cases/binary_test.rb | 30 + .../test/cases/calculations_test.rb | 348 + .../test/cases/callbacks_observers_test.rb | 38 + .../activerecord/test/cases/callbacks_test.rb | 438 + .../class_inheritable_attributes_test.rb | 32 + .../test/cases/column_alias_test.rb | 17 + .../test/cases/column_definition_test.rb | 70 + .../test/cases/connection_pool_test.rb | 25 + .../test/cases/connection_test_firebird.rb | 8 + .../test/cases/connection_test_mysql.rb | 56 + .../test/cases/copy_table_test_sqlite.rb | 80 + .../test/cases/database_statements_test.rb | 12 + .../test/cases/datatype_test_postgresql.rb | 204 + .../activerecord/test/cases/date_time_test.rb | 37 + .../test/cases/default_test_firebird.rb | 16 + .../activerecord/test/cases/defaults_test.rb | 111 + .../test/cases/deprecated_finder_test.rb | 30 + .../activerecord/test/cases/dirty_test.rb | 316 + .../test/cases/finder_respond_to_test.rb | 76 + .../activerecord/test/cases/finder_test.rb | 1054 ++ .../activerecord/test/cases/fixtures_test.rb | 656 + .../rails/activerecord/test/cases/helper.rb | 68 + .../activerecord/test/cases/i18n_test.rb | 46 + .../test/cases/inheritance_test.rb | 262 + .../test/cases/invalid_date_test.rb | 24 + .../test/cases/json_serialization_test.rb | 205 + .../activerecord/test/cases/lifecycle_test.rb | 193 + .../activerecord/test/cases/locking_test.rb | 322 + .../test/cases/method_scoping_test.rb | 704 + .../activerecord/test/cases/migration_test.rb | 1523 ++ .../test/cases/migration_test_firebird.rb | 124 + .../activerecord/test/cases/mixin_test.rb | 96 + .../activerecord/test/cases/modules_test.rb | 81 + .../test/cases/multiple_db_test.rb | 85 + .../test/cases/named_scope_test.rb | 361 + .../test/cases/nested_attributes_test.rb | 509 + .../rails/activerecord/test/cases/pk_test.rb | 119 + .../test/cases/pooled_connections_test.rb | 103 + .../test/cases/query_cache_test.rb | 123 + .../activerecord/test/cases/readonly_test.rb | 107 + .../test/cases/reflection_test.rb | 194 + .../test/cases/reload_models_test.rb | 22 + .../activerecord/test/cases/repair_helper.rb | 50 + .../test/cases/reserved_word_test_mysql.rb | 176 + .../activerecord/test/cases/sanitize_test.rb | 25 + .../schema_authorization_test_postgresql.rb | 75 + .../test/cases/schema_dumper_test.rb | 211 + .../test/cases/schema_test_postgresql.rb | 178 + .../test/cases/serialization_test.rb | 47 + .../test/cases/synonym_test_oracle.rb | 17 + .../activerecord/test/cases/timestamp_test.rb | 75 + .../test/cases/transactions_test.rb | 522 + .../test/cases/unconnected_test.rb | 32 + .../test/cases/validations_i18n_test.rb | 947 + .../test/cases/validations_test.rb | 1612 ++ .../test/cases/xml_serialization_test.rb | 240 + .../vendor/rails/activerecord/test/config.rb | 5 + .../connections/jdbc_jdbcderby/connection.rb | 18 + .../connections/jdbc_jdbch2/connection.rb | 18 + .../connections/jdbc_jdbchsqldb/connection.rb | 18 + .../connections/jdbc_jdbcmysql/connection.rb | 26 + .../jdbc_jdbcpostgresql/connection.rb | 26 + .../jdbc_jdbcsqlite3/connection.rb | 25 + .../test/connections/native_db2/connection.rb | 25 + .../connections/native_firebird/connection.rb | 26 + .../native_frontbase/connection.rb | 27 + .../connections/native_mysql/connection.rb | 25 + .../connections/native_openbase/connection.rb | 21 + .../connections/native_oracle/connection.rb | 27 + .../native_postgresql/connection.rb | 21 + .../connections/native_sqlite/connection.rb | 25 + .../connections/native_sqlite3/connection.rb | 25 + .../native_sqlite3/in_memory_connection.rb | 18 + .../connections/native_sybase/connection.rb | 23 + .../activerecord/test/fixtures/accounts.yml | 28 + .../test/fixtures/all/developers.yml | 0 .../activerecord/test/fixtures/all/people.csv | 0 .../activerecord/test/fixtures/all/tasks.yml | 0 .../test/fixtures/author_addresses.yml | 5 + .../test/fixtures/author_favorites.yml | 4 + .../activerecord/test/fixtures/authors.yml | 9 + .../activerecord/test/fixtures/binaries.yml | 132 + .../activerecord/test/fixtures/books.yml | 7 + .../activerecord/test/fixtures/categories.yml | 14 + .../categories/special_categories.yml | 9 + .../subsubdir/arbitrary_filename.yml | 4 + .../test/fixtures/categories_ordered.yml | 7 + .../test/fixtures/categories_posts.yml | 23 + .../test/fixtures/categorizations.yml | 17 + .../activerecord/test/fixtures/clubs.yml | 6 + .../activerecord/test/fixtures/comments.yml | 59 + .../activerecord/test/fixtures/companies.yml | 56 + .../activerecord/test/fixtures/computers.yml | 4 + .../activerecord/test/fixtures/courses.yml | 7 + .../activerecord/test/fixtures/customers.yml | 26 + .../activerecord/test/fixtures/developers.yml | 21 + .../test/fixtures/developers_projects.yml | 17 + .../activerecord/test/fixtures/edges.yml | 6 + .../activerecord/test/fixtures/entrants.yml | 14 + .../test/fixtures/fixture_database.sqlite | Bin 0 -> 3072 bytes .../test/fixtures/fixture_database_2.sqlite | Bin 0 -> 3072 bytes .../test/fixtures/fk_test_has_fk.yml | 3 + .../test/fixtures/fk_test_has_pk.yml | 2 + .../test/fixtures/funny_jokes.yml | 10 + .../activerecord/test/fixtures/items.yml | 4 + .../rails/activerecord/test/fixtures/jobs.yml | 7 + .../test/fixtures/legacy_things.yml | 3 + .../activerecord/test/fixtures/mateys.yml | 4 + .../test/fixtures/member_types.yml | 6 + .../activerecord/test/fixtures/members.yml | 6 + .../test/fixtures/memberships.yml | 20 + .../test/fixtures/minimalistics.yml | 2 + .../test/fixtures/mixed_case_monkeys.yml | 6 + .../activerecord/test/fixtures/mixins.yml | 29 + .../activerecord/test/fixtures/movies.yml | 7 + .../test/fixtures/naked/csv/accounts.csv | 1 + .../test/fixtures/naked/yml/accounts.yml | 1 + .../test/fixtures/naked/yml/companies.yml | 1 + .../test/fixtures/naked/yml/courses.yml | 1 + .../test/fixtures/organizations.yml | 5 + .../activerecord/test/fixtures/owners.yml | 7 + .../activerecord/test/fixtures/parrots.yml | 27 + .../test/fixtures/parrots_pirates.yml | 7 + .../activerecord/test/fixtures/people.yml | 15 + .../rails/activerecord/test/fixtures/pets.yml | 14 + .../activerecord/test/fixtures/pirates.yml | 9 + .../activerecord/test/fixtures/posts.yml | 52 + .../test/fixtures/price_estimates.yml | 7 + .../activerecord/test/fixtures/projects.yml | 7 + .../activerecord/test/fixtures/readers.yml | 9 + .../activerecord/test/fixtures/references.yml | 17 + .../test/fixtures/reserved_words/distinct.yml | 5 + .../reserved_words/distincts_selects.yml | 11 + .../test/fixtures/reserved_words/group.yml | 14 + .../test/fixtures/reserved_words/select.yml | 8 + .../test/fixtures/reserved_words/values.yml | 7 + .../activerecord/test/fixtures/ships.yml | 5 + .../activerecord/test/fixtures/sponsors.yml | 9 + .../test/fixtures/subscribers.yml | 7 + .../test/fixtures/subscriptions.yml | 12 + .../activerecord/test/fixtures/taggings.yml | 28 + .../rails/activerecord/test/fixtures/tags.yml | 7 + .../activerecord/test/fixtures/tasks.yml | 7 + .../activerecord/test/fixtures/topics.yml | 42 + .../rails/activerecord/test/fixtures/toys.yml | 4 + .../activerecord/test/fixtures/treasures.yml | 10 + .../activerecord/test/fixtures/vertices.yml | 4 + .../test/fixtures/warehouse-things.yml | 3 + .../100_migration_that_raises_exception.rb | 10 + .../decimal/1_give_me_big_numbers.rb | 15 + .../duplicate/1_people_have_last_names.rb | 9 + .../duplicate/2_we_need_reminders.rb | 12 + .../test/migrations/duplicate/3_foo.rb | 7 + .../duplicate/3_innocent_jointable.rb | 12 + .../duplicate_names/20080507052938_chunky.rb | 7 + .../duplicate_names/20080507053028_chunky.rb | 7 + .../pass_1/3_innocent_jointable.rb | 12 + .../pass_2/1_people_have_last_names.rb | 9 + .../pass_2/3_innocent_jointable.rb | 12 + .../pass_3/1_people_have_last_names.rb | 9 + .../interleaved/pass_3/2_i_raise_on_down.rb | 8 + .../pass_3/3_innocent_jointable.rb | 12 + .../missing/1000_people_have_middle_names.rb | 9 + .../missing/1_people_have_last_names.rb | 9 + .../migrations/missing/3_we_need_reminders.rb | 12 + .../missing/4_innocent_jointable.rb | 12 + .../valid/1_people_have_last_names.rb | 9 + .../migrations/valid/2_we_need_reminders.rb | 12 + .../migrations/valid/3_innocent_jointable.rb | 12 + .../rails/activerecord/test/models/author.rb | 146 + .../rails/activerecord/test/models/auto_id.rb | 4 + .../rails/activerecord/test/models/binary.rb | 2 + .../rails/activerecord/test/models/bird.rb | 3 + .../rails/activerecord/test/models/book.rb | 4 + .../test/models/categorization.rb | 5 + .../activerecord/test/models/category.rb | 34 + .../activerecord/test/models/citation.rb | 6 + .../rails/activerecord/test/models/club.rb | 13 + .../activerecord/test/models/column_name.rb | 3 + .../rails/activerecord/test/models/comment.rb | 29 + .../rails/activerecord/test/models/company.rb | 161 + .../test/models/company_in_module.rb | 61 + .../activerecord/test/models/computer.rb | 3 + .../rails/activerecord/test/models/contact.rb | 16 + .../activerecord/test/models/contract.rb | 5 + .../rails/activerecord/test/models/course.rb | 3 + .../activerecord/test/models/customer.rb | 73 + .../rails/activerecord/test/models/default.rb | 2 + .../activerecord/test/models/developer.rb | 101 + .../rails/activerecord/test/models/edge.rb | 5 + .../rails/activerecord/test/models/entrant.rb | 3 + .../rails/activerecord/test/models/essay.rb | 3 + .../rails/activerecord/test/models/event.rb | 3 + .../rails/activerecord/test/models/guid.rb | 2 + .../rails/activerecord/test/models/item.rb | 7 + .../rails/activerecord/test/models/job.rb | 5 + .../rails/activerecord/test/models/joke.rb | 3 + .../activerecord/test/models/keyboard.rb | 3 + .../activerecord/test/models/legacy_thing.rb | 3 + .../rails/activerecord/test/models/matey.rb | 4 + .../rails/activerecord/test/models/member.rb | 12 + .../activerecord/test/models/member_detail.rb | 5 + .../activerecord/test/models/member_type.rb | 3 + .../activerecord/test/models/membership.rb | 9 + .../activerecord/test/models/minimalistic.rb | 2 + .../test/models/mixed_case_monkey.rb | 3 + .../rails/activerecord/test/models/movie.rb | 5 + .../rails/activerecord/test/models/order.rb | 4 + .../activerecord/test/models/organization.rb | 6 + .../rails/activerecord/test/models/owner.rb | 5 + .../rails/activerecord/test/models/parrot.rb | 16 + .../rails/activerecord/test/models/person.rb | 16 + .../rails/activerecord/test/models/pet.rb | 5 + .../rails/activerecord/test/models/pirate.rb | 63 + .../rails/activerecord/test/models/post.rb | 100 + .../test/models/price_estimate.rb | 3 + .../rails/activerecord/test/models/project.rb | 30 + .../rails/activerecord/test/models/reader.rb | 4 + .../activerecord/test/models/reference.rb | 4 + .../rails/activerecord/test/models/reply.rb | 46 + .../rails/activerecord/test/models/ship.rb | 10 + .../activerecord/test/models/ship_part.rb | 5 + .../rails/activerecord/test/models/sponsor.rb | 4 + .../rails/activerecord/test/models/subject.rb | 4 + .../activerecord/test/models/subscriber.rb | 8 + .../activerecord/test/models/subscription.rb | 4 + .../rails/activerecord/test/models/tag.rb | 7 + .../rails/activerecord/test/models/tagging.rb | 10 + .../rails/activerecord/test/models/task.rb | 3 + .../rails/activerecord/test/models/topic.rb | 80 + .../rails/activerecord/test/models/toy.rb | 6 + .../activerecord/test/models/treasure.rb | 6 + .../rails/activerecord/test/models/vertex.rb | 9 + .../test/models/warehouse_thing.rb | 5 + .../test/schema/mysql_specific_schema.rb | 12 + .../test/schema/postgresql_specific_schema.rb | 114 + .../rails/activerecord/test/schema/schema.rb | 492 + .../rails/activerecord/test/schema/schema2.rb | 6 + .../test/schema/sqlite_specific_schema.rb | 25 + .../vendor/rails/activeresource/CHANGELOG | 283 + presidents/vendor/rails/activeresource/README | 165 + .../vendor/rails/activeresource/Rakefile | 139 + .../activeresource/lib/active_resource.rb | 44 + .../lib/active_resource/base.rb | 1157 ++ .../lib/active_resource/connection.rb | 283 + .../lib/active_resource/custom_methods.rb | 120 + .../lib/active_resource/exceptions.rb | 66 + .../lib/active_resource/formats.rb | 14 + .../active_resource/formats/json_format.rb | 23 + .../lib/active_resource/formats/xml_format.rb | 34 + .../lib/active_resource/http_mock.rb | 207 + .../lib/active_resource/validations.rb | 290 + .../lib/active_resource/version.rb | 9 + .../activeresource/lib/activeresource.rb | 1 + .../activeresource/test/abstract_unit.rb | 21 + .../activeresource/test/authorization_test.rb | 122 + .../test/base/custom_methods_test.rb | 100 + .../activeresource/test/base/equality_test.rb | 52 + .../activeresource/test/base/load_test.rb | 161 + .../activeresource/test/base_errors_test.rb | 85 + .../rails/activeresource/test/base_test.rb | 1038 ++ .../activeresource/test/connection_test.rb | 238 + .../activeresource/test/fixtures/beast.rb | 14 + .../activeresource/test/fixtures/customer.rb | 3 + .../activeresource/test/fixtures/person.rb | 3 + .../activeresource/test/fixtures/proxy.rb | 4 + .../test/fixtures/street_address.rb | 4 + .../rails/activeresource/test/format_test.rb | 112 + .../rails/activeresource/test/setter_trap.rb | 26 + .../vendor/rails/activesupport/CHANGELOG | 1322 ++ presidents/vendor/rails/activesupport/README | 43 + .../rails/activesupport/lib/active_support.rb | 59 + .../activesupport/lib/active_support/all.rb | 8 + .../lib/active_support/backtrace_cleaner.rb | 72 + .../lib/active_support/base64.rb | 33 + .../lib/active_support/basic_object.rb | 24 + .../lib/active_support/buffered_logger.rb | 127 + .../activesupport/lib/active_support/cache.rb | 241 + .../cache/compressed_mem_cache_store.rb | 20 + .../lib/active_support/cache/drb_store.rb | 14 + .../lib/active_support/cache/file_store.rb | 72 + .../active_support/cache/mem_cache_store.rb | 138 + .../lib/active_support/cache/memory_store.rb | 52 + .../cache/strategy/local_cache.rb | 104 + .../cache/synchronized_memory_store.rb | 47 + .../lib/active_support/callbacks.rb | 279 + .../lib/active_support/core_ext.rb | 4 + .../lib/active_support/core_ext/array.rb | 15 + .../active_support/core_ext/array/access.rb | 53 + .../core_ext/array/conversions.rb | 197 + .../core_ext/array/extract_options.rb | 20 + .../active_support/core_ext/array/grouping.rb | 106 + .../core_ext/array/random_access.rb | 12 + .../active_support/core_ext/array/wrapper.rb | 24 + .../lib/active_support/core_ext/base64.rb | 4 + .../core_ext/base64/encoding.rb | 16 + .../lib/active_support/core_ext/benchmark.rb | 19 + .../lib/active_support/core_ext/bigdecimal.rb | 6 + .../core_ext/bigdecimal/conversions.rb | 37 + .../lib/active_support/core_ext/blank.rb | 58 + .../lib/active_support/core_ext/cgi.rb | 5 + .../core_ext/cgi/escape_skipping_slashes.rb | 23 + .../lib/active_support/core_ext/class.rb | 4 + .../core_ext/class/attribute_accessors.rb | 54 + .../core_ext/class/delegating_attributes.rb | 47 + .../core_ext/class/inheritable_attributes.rb | 140 + .../active_support/core_ext/class/removal.rb | 50 + .../lib/active_support/core_ext/date.rb | 10 + .../active_support/core_ext/date/behavior.rb | 42 + .../core_ext/date/calculations.rb | 231 + .../core_ext/date/conversions.rb | 107 + .../lib/active_support/core_ext/date_time.rb | 12 + .../core_ext/date_time/calculations.rb | 126 + .../core_ext/date_time/conversions.rb | 96 + .../lib/active_support/core_ext/duplicable.rb | 43 + .../lib/active_support/core_ext/enumerable.rb | 114 + .../lib/active_support/core_ext/exception.rb | 45 + .../lib/active_support/core_ext/file.rb | 5 + .../active_support/core_ext/file/atomic.rb | 46 + .../lib/active_support/core_ext/float.rb | 7 + .../active_support/core_ext/float/rounding.rb | 24 + .../lib/active_support/core_ext/float/time.rb | 27 + .../lib/active_support/core_ext/hash.rb | 14 + .../core_ext/hash/conversions.rb | 247 + .../core_ext/hash/deep_merge.rb | 23 + .../lib/active_support/core_ext/hash/diff.rb | 19 + .../active_support/core_ext/hash/except.rb | 25 + .../core_ext/hash/indifferent_access.rb | 143 + .../lib/active_support/core_ext/hash/keys.rb | 52 + .../core_ext/hash/reverse_merge.rb | 35 + .../lib/active_support/core_ext/hash/slice.rb | 40 + .../lib/active_support/core_ext/integer.rb | 9 + .../core_ext/integer/even_odd.rb | 29 + .../core_ext/integer/inflections.rb | 20 + .../active_support/core_ext/integer/time.rb | 45 + .../lib/active_support/core_ext/kernel.rb | 5 + .../core_ext/kernel/agnostics.rb | 11 + .../core_ext/kernel/daemonizing.rb | 7 + .../core_ext/kernel/debugger.rb | 15 + .../core_ext/kernel/reporting.rb | 59 + .../core_ext/kernel/requires.rb | 24 + .../lib/active_support/core_ext/load_error.rb | 38 + .../lib/active_support/core_ext/logger.rb | 145 + .../lib/active_support/core_ext/module.rb | 23 + .../core_ext/module/aliasing.rb | 74 + .../module/attr_accessor_with_default.rb | 31 + .../core_ext/module/attr_internal.rb | 32 + .../core_ext/module/attribute_accessors.rb | 60 + .../core_ext/module/delegation.rb | 135 + .../core_ext/module/inclusion.rb | 30 + .../core_ext/module/introspection.rb | 90 + .../active_support/core_ext/module/loading.rb | 23 + .../core_ext/module/model_naming.rb | 25 + .../core_ext/module/synchronization.rb | 39 + .../lib/active_support/core_ext/name_error.rb | 17 + .../lib/active_support/core_ext/numeric.rb | 9 + .../active_support/core_ext/numeric/bytes.rb | 50 + .../core_ext/numeric/conversions.rb | 19 + .../active_support/core_ext/numeric/time.rb | 81 + .../lib/active_support/core_ext/object.rb | 5 + .../core_ext/object/conversions.rb | 15 + .../core_ext/object/extending.rb | 80 + .../core_ext/object/instance_variables.rb | 74 + .../core_ext/object/metaclass.rb | 13 + .../active_support/core_ext/object/misc.rb | 90 + .../lib/active_support/core_ext/pathname.rb | 7 + .../core_ext/pathname/clean_within.rb | 14 + .../lib/active_support/core_ext/proc.rb | 12 + .../lib/active_support/core_ext/process.rb | 1 + .../active_support/core_ext/process/daemon.rb | 25 + .../lib/active_support/core_ext/range.rb | 11 + .../core_ext/range/blockless_step.rb | 32 + .../core_ext/range/conversions.rb | 27 + .../core_ext/range/include_range.rb | 30 + .../active_support/core_ext/range/overlaps.rb | 15 + .../lib/active_support/core_ext/rexml.rb | 41 + .../lib/active_support/core_ext/string.rb | 23 + .../active_support/core_ext/string/access.rb | 106 + .../core_ext/string/behavior.rb | 13 + .../core_ext/string/bytesize.rb | 5 + .../core_ext/string/conversions.rb | 28 + .../active_support/core_ext/string/filters.rb | 26 + .../core_ext/string/inflections.rb | 167 + .../core_ext/string/iterators.rb | 23 + .../core_ext/string/multibyte.rb | 81 + .../core_ext/string/starts_ends_with.rb | 35 + .../active_support/core_ext/string/xchar.rb | 11 + .../lib/active_support/core_ext/symbol.rb | 14 + .../lib/active_support/core_ext/time.rb | 42 + .../active_support/core_ext/time/behavior.rb | 13 + .../core_ext/time/calculations.rb | 303 + .../core_ext/time/conversions.rb | 90 + .../lib/active_support/core_ext/time/zones.rb | 86 + .../lib/active_support/core_ext/try.rb | 36 + .../lib/active_support/core_ext/uri.rb | 16 + .../lib/active_support/dependencies.rb | 625 + .../lib/active_support/deprecation.rb | 196 + .../lib/active_support/duration.rb | 100 + .../activesupport/lib/active_support/gzip.rb | 25 + .../lib/active_support/inflections.rb | 56 + .../lib/active_support/inflector.rb | 406 + .../activesupport/lib/active_support/json.rb | 2 + .../active_support/json/backends/jsongem.rb | 38 + .../lib/active_support/json/backends/yaml.rb | 88 + .../lib/active_support/json/decoding.rb | 33 + .../lib/active_support/json/encoders/date.rb | 22 + .../active_support/json/encoders/date_time.rb | 22 + .../json/encoders/enumerable.rb | 17 + .../json/encoders/false_class.rb | 7 + .../lib/active_support/json/encoders/hash.rb | 56 + .../active_support/json/encoders/nil_class.rb | 7 + .../active_support/json/encoders/numeric.rb | 21 + .../active_support/json/encoders/object.rb | 10 + .../active_support/json/encoders/regexp.rb | 9 + .../active_support/json/encoders/string.rb | 9 + .../active_support/json/encoders/symbol.rb | 5 + .../lib/active_support/json/encoders/time.rb | 22 + .../json/encoders/true_class.rb | 7 + .../lib/active_support/json/encoding.rb | 102 + .../lib/active_support/json/variable.rb | 10 + .../lib/active_support/locale/en.yml | 33 + .../lib/active_support/memoizable.rb | 100 + .../lib/active_support/message_encryptor.rb | 70 + .../lib/active_support/message_verifier.rb | 59 + .../lib/active_support/multibyte.rb | 57 + .../lib/active_support/multibyte/chars.rb | 707 + .../active_support/multibyte/exceptions.rb | 8 + .../multibyte/unicode_database.rb | 71 + .../lib/active_support/multibyte/utils.rb | 61 + .../lib/active_support/option_merger.rb | 23 + .../lib/active_support/ordered_hash.rb | 134 + .../lib/active_support/ordered_options.rb | 19 + .../lib/active_support/rescuable.rb | 108 + .../lib/active_support/secure_random.rb | 199 + .../lib/active_support/string_inquirer.rb | 21 + .../lib/active_support/test_case.rb | 40 + .../lib/active_support/testing/assertions.rb | 65 + .../lib/active_support/testing/declarative.rb | 21 + .../lib/active_support/testing/default.rb | 9 + .../lib/active_support/testing/deprecation.rb | 57 + .../lib/active_support/testing/performance.rb | 452 + .../testing/setup_and_teardown.rb | 91 + .../lib/active_support/time_with_zone.rb | 335 + .../lib/active_support/values/time_zone.rb | 404 + .../active_support/values/unicode_tables.dat | Bin 0 -> 710734 bytes .../lib/active_support/vendor.rb | 28 + .../vendor/builder-2.1.2/blankslate.rb | 113 + .../vendor/builder-2.1.2/builder.rb | 13 + .../builder-2.1.2/builder/blankslate.rb | 20 + .../vendor/builder-2.1.2/builder/css.rb | 250 + .../vendor/builder-2.1.2/builder/xchar.rb | 115 + .../vendor/builder-2.1.2/builder/xmlbase.rb | 139 + .../vendor/builder-2.1.2/builder/xmlevents.rb | 63 + .../vendor/builder-2.1.2/builder/xmlmarkup.rb | 328 + .../vendor/i18n-0.1.3/MIT-LICENSE | 20 + .../vendor/i18n-0.1.3/README.textile | 20 + .../active_support/vendor/i18n-0.1.3/Rakefile | 5 + .../vendor/i18n-0.1.3/i18n.gemspec | 27 + .../vendor/i18n-0.1.3/lib/i18n.rb | 199 + .../i18n-0.1.3/lib/i18n/backend/simple.rb | 214 + .../vendor/i18n-0.1.3/lib/i18n/exceptions.rb | 53 + .../vendor/i18n-0.1.3/test/all.rb | 5 + .../i18n-0.1.3/test/i18n_exceptions_test.rb | 99 + .../vendor/i18n-0.1.3/test/i18n_test.rb | 124 + .../vendor/i18n-0.1.3/test/locale/en.rb | 1 + .../vendor/i18n-0.1.3/test/locale/en.yml | 3 + .../i18n-0.1.3/test/simple_backend_test.rb | 567 + .../vendor/memcache-client-1.7.4/memcache.rb | 1107 ++ .../vendor/tzinfo-0.3.12/tzinfo.rb | 33 + .../tzinfo-0.3.12/tzinfo/data_timezone.rb | 47 + .../tzinfo/data_timezone_info.rb | 228 + .../tzinfo/definitions/Africa/Algiers.rb | 55 + .../tzinfo/definitions/Africa/Cairo.rb | 219 + .../tzinfo/definitions/Africa/Casablanca.rb | 40 + .../tzinfo/definitions/Africa/Harare.rb | 18 + .../tzinfo/definitions/Africa/Johannesburg.rb | 25 + .../tzinfo/definitions/Africa/Monrovia.rb | 22 + .../tzinfo/definitions/Africa/Nairobi.rb | 23 + .../America/Argentina/Buenos_Aires.rb | 166 + .../definitions/America/Argentina/San_Juan.rb | 86 + .../tzinfo/definitions/America/Bogota.rb | 23 + .../tzinfo/definitions/America/Caracas.rb | 23 + .../tzinfo/definitions/America/Chicago.rb | 283 + .../tzinfo/definitions/America/Chihuahua.rb | 136 + .../tzinfo/definitions/America/Denver.rb | 204 + .../tzinfo/definitions/America/Godthab.rb | 161 + .../tzinfo/definitions/America/Guatemala.rb | 27 + .../tzinfo/definitions/America/Halifax.rb | 274 + .../America/Indiana/Indianapolis.rb | 149 + .../tzinfo/definitions/America/Juneau.rb | 194 + .../tzinfo/definitions/America/La_Paz.rb | 22 + .../tzinfo/definitions/America/Lima.rb | 35 + .../tzinfo/definitions/America/Los_Angeles.rb | 232 + .../tzinfo/definitions/America/Mazatlan.rb | 139 + .../tzinfo/definitions/America/Mexico_City.rb | 144 + .../tzinfo/definitions/America/Monterrey.rb | 131 + .../tzinfo/definitions/America/New_York.rb | 282 + .../tzinfo/definitions/America/Phoenix.rb | 30 + .../tzinfo/definitions/America/Regina.rb | 74 + .../tzinfo/definitions/America/Santiago.rb | 205 + .../tzinfo/definitions/America/Sao_Paulo.rb | 171 + .../tzinfo/definitions/America/St_Johns.rb | 288 + .../tzinfo/definitions/America/Tijuana.rb | 196 + .../tzinfo/definitions/Asia/Almaty.rb | 67 + .../tzinfo/definitions/Asia/Baghdad.rb | 73 + .../tzinfo/definitions/Asia/Baku.rb | 161 + .../tzinfo/definitions/Asia/Bangkok.rb | 20 + .../tzinfo/definitions/Asia/Chongqing.rb | 33 + .../tzinfo/definitions/Asia/Colombo.rb | 30 + .../tzinfo/definitions/Asia/Dhaka.rb | 27 + .../tzinfo/definitions/Asia/Hong_Kong.rb | 87 + .../tzinfo/definitions/Asia/Irkutsk.rb | 165 + .../tzinfo/definitions/Asia/Jakarta.rb | 30 + .../tzinfo/definitions/Asia/Jerusalem.rb | 163 + .../tzinfo/definitions/Asia/Kabul.rb | 20 + .../tzinfo/definitions/Asia/Kamchatka.rb | 163 + .../tzinfo/definitions/Asia/Karachi.rb | 30 + .../tzinfo/definitions/Asia/Katmandu.rb | 20 + .../tzinfo/definitions/Asia/Kolkata.rb | 25 + .../tzinfo/definitions/Asia/Krasnoyarsk.rb | 163 + .../tzinfo/definitions/Asia/Kuala_Lumpur.rb | 31 + .../tzinfo/definitions/Asia/Kuwait.rb | 18 + .../tzinfo/definitions/Asia/Magadan.rb | 163 + .../tzinfo/definitions/Asia/Muscat.rb | 18 + .../tzinfo/definitions/Asia/Novosibirsk.rb | 164 + .../tzinfo/definitions/Asia/Rangoon.rb | 24 + .../tzinfo/definitions/Asia/Riyadh.rb | 18 + .../tzinfo/definitions/Asia/Seoul.rb | 34 + .../tzinfo/definitions/Asia/Shanghai.rb | 35 + .../tzinfo/definitions/Asia/Singapore.rb | 33 + .../tzinfo/definitions/Asia/Taipei.rb | 59 + .../tzinfo/definitions/Asia/Tashkent.rb | 47 + .../tzinfo/definitions/Asia/Tbilisi.rb | 78 + .../tzinfo/definitions/Asia/Tehran.rb | 121 + .../tzinfo/definitions/Asia/Tokyo.rb | 30 + .../tzinfo/definitions/Asia/Ulaanbaatar.rb | 65 + .../tzinfo/definitions/Asia/Urumqi.rb | 33 + .../tzinfo/definitions/Asia/Vladivostok.rb | 164 + .../tzinfo/definitions/Asia/Yakutsk.rb | 163 + .../tzinfo/definitions/Asia/Yekaterinburg.rb | 165 + .../tzinfo/definitions/Asia/Yerevan.rb | 165 + .../tzinfo/definitions/Atlantic/Azores.rb | 270 + .../tzinfo/definitions/Atlantic/Cape_Verde.rb | 23 + .../definitions/Atlantic/South_Georgia.rb | 18 + .../tzinfo/definitions/Australia/Adelaide.rb | 187 + .../tzinfo/definitions/Australia/Brisbane.rb | 35 + .../tzinfo/definitions/Australia/Darwin.rb | 29 + .../tzinfo/definitions/Australia/Hobart.rb | 193 + .../tzinfo/definitions/Australia/Melbourne.rb | 185 + .../tzinfo/definitions/Australia/Perth.rb | 37 + .../tzinfo/definitions/Australia/Sydney.rb | 185 + .../tzinfo/definitions/Etc/UTC.rb | 16 + .../tzinfo/definitions/Europe/Amsterdam.rb | 228 + .../tzinfo/definitions/Europe/Athens.rb | 185 + .../tzinfo/definitions/Europe/Belgrade.rb | 163 + .../tzinfo/definitions/Europe/Berlin.rb | 188 + .../tzinfo/definitions/Europe/Bratislava.rb | 13 + .../tzinfo/definitions/Europe/Brussels.rb | 232 + .../tzinfo/definitions/Europe/Bucharest.rb | 181 + .../tzinfo/definitions/Europe/Budapest.rb | 197 + .../tzinfo/definitions/Europe/Copenhagen.rb | 179 + .../tzinfo/definitions/Europe/Dublin.rb | 276 + .../tzinfo/definitions/Europe/Helsinki.rb | 163 + .../tzinfo/definitions/Europe/Istanbul.rb | 218 + .../tzinfo/definitions/Europe/Kiev.rb | 168 + .../tzinfo/definitions/Europe/Lisbon.rb | 268 + .../tzinfo/definitions/Europe/Ljubljana.rb | 13 + .../tzinfo/definitions/Europe/London.rb | 288 + .../tzinfo/definitions/Europe/Madrid.rb | 211 + .../tzinfo/definitions/Europe/Minsk.rb | 170 + .../tzinfo/definitions/Europe/Moscow.rb | 181 + .../tzinfo/definitions/Europe/Paris.rb | 232 + .../tzinfo/definitions/Europe/Prague.rb | 187 + .../tzinfo/definitions/Europe/Riga.rb | 176 + .../tzinfo/definitions/Europe/Rome.rb | 215 + .../tzinfo/definitions/Europe/Sarajevo.rb | 13 + .../tzinfo/definitions/Europe/Skopje.rb | 13 + .../tzinfo/definitions/Europe/Sofia.rb | 173 + .../tzinfo/definitions/Europe/Stockholm.rb | 165 + .../tzinfo/definitions/Europe/Tallinn.rb | 172 + .../tzinfo/definitions/Europe/Vienna.rb | 183 + .../tzinfo/definitions/Europe/Vilnius.rb | 170 + .../tzinfo/definitions/Europe/Warsaw.rb | 212 + .../tzinfo/definitions/Europe/Zagreb.rb | 13 + .../tzinfo/definitions/Pacific/Auckland.rb | 202 + .../tzinfo/definitions/Pacific/Fiji.rb | 23 + .../tzinfo/definitions/Pacific/Guam.rb | 22 + .../tzinfo/definitions/Pacific/Honolulu.rb | 28 + .../tzinfo/definitions/Pacific/Majuro.rb | 20 + .../tzinfo/definitions/Pacific/Midway.rb | 25 + .../tzinfo/definitions/Pacific/Noumea.rb | 25 + .../tzinfo/definitions/Pacific/Pago_Pago.rb | 26 + .../definitions/Pacific/Port_Moresby.rb | 20 + .../tzinfo/definitions/Pacific/Tongatapu.rb | 27 + .../tzinfo-0.3.12/tzinfo/info_timezone.rb | 52 + .../tzinfo-0.3.12/tzinfo/linked_timezone.rb | 51 + .../tzinfo/linked_timezone_info.rb | 44 + .../tzinfo-0.3.12/tzinfo/offset_rationals.rb | 98 + .../tzinfo-0.3.12/tzinfo/ruby_core_support.rb | 56 + .../tzinfo-0.3.12/tzinfo/time_or_datetime.rb | 292 + .../vendor/tzinfo-0.3.12/tzinfo/timezone.rb | 508 + .../tzinfo/timezone_definition.rb | 56 + .../tzinfo-0.3.12/tzinfo/timezone_info.rb | 40 + .../tzinfo/timezone_offset_info.rb | 94 + .../tzinfo-0.3.12/tzinfo/timezone_period.rb | 198 + .../tzinfo/timezone_transition_info.rb | 129 + .../lib/active_support/version.rb | 9 + .../lib/active_support/whiny_nil.rb | 58 + .../lib/active_support/xml_mini.rb | 31 + .../lib/active_support/xml_mini/jdom.rb | 162 + .../lib/active_support/xml_mini/libxml.rb | 133 + .../lib/active_support/xml_mini/nokogiri.rb | 77 + .../lib/active_support/xml_mini/rexml.rb | 108 + .../rails/activesupport/lib/activesupport.rb | 1 + presidents/vendor/rails/railties/CHANGELOG | 2166 +++ presidents/vendor/rails/railties/MIT-LICENSE | 20 + presidents/vendor/rails/railties/README | 243 + presidents/vendor/rails/railties/Rakefile | 368 + presidents/vendor/rails/railties/bin/about | 4 + presidents/vendor/rails/railties/bin/console | 3 + .../vendor/rails/railties/bin/dbconsole | 3 + presidents/vendor/rails/railties/bin/destroy | 3 + presidents/vendor/rails/railties/bin/generate | 3 + .../railties/bin/performance/benchmarker | 3 + .../rails/railties/bin/performance/profiler | 3 + presidents/vendor/rails/railties/bin/plugin | 3 + presidents/vendor/rails/railties/bin/rails | 20 + presidents/vendor/rails/railties/bin/runner | 3 + presidents/vendor/rails/railties/bin/server | 3 + .../railties/builtin/rails_info/rails/info.rb | 131 + .../rails_info/rails/info_controller.rb | 9 + .../builtin/rails_info/rails/info_helper.rb | 2 + .../rails_info/rails_info_controller.rb | 2 + .../railties/configs/databases/frontbase.yml | 28 + .../railties/configs/databases/ibm_db.yml | 62 + .../railties/configs/databases/mysql.yml | 60 + .../railties/configs/databases/oracle.yml | 39 + .../railties/configs/databases/postgresql.yml | 51 + .../railties/configs/databases/sqlite2.yml | 19 + .../railties/configs/databases/sqlite3.yml | 22 + .../initializers/backtrace_silencers.rb | 7 + .../configs/initializers/inflections.rb | 10 + .../configs/initializers/mime_types.rb | 5 + .../initializers/new_rails_defaults.rb | 21 + .../configs/initializers/session_store.rb | 15 + .../rails/railties/configs/locales/en.yml | 5 + .../vendor/rails/railties/configs/routes.rb | 43 + .../vendor/rails/railties/configs/seeds.rb | 7 + .../rails/railties/dispatches/config.ru | 7 + .../rails/railties/dispatches/dispatch.fcgi | 24 + .../rails/railties/dispatches/dispatch.rb | 10 + .../rails/railties/dispatches/gateway.cgi | 97 + .../vendor/rails/railties/doc/README_FOR_APP | 2 + .../rails/railties/environments/boot.rb | 110 + .../railties/environments/development.rb | 17 + .../railties/environments/environment.rb | 41 + .../rails/railties/environments/production.rb | 28 + .../rails/railties/environments/test.rb | 28 + .../vendor/rails/railties/fresh_rakefile | 10 + .../files/javascripts/code_highlighter.js | 188 + .../guides/files/javascripts/guides.js | 8 + .../guides/files/javascripts/highlighters.js | 90 + .../guides/files/stylesheets/main.css | 441 + .../guides/files/stylesheets/print.css | 52 + .../guides/files/stylesheets/reset.css | 43 + .../guides/files/stylesheets/style.css | 13 + .../guides/files/stylesheets/syntax.css | 31 + .../railties/guides/images/belongs_to.png | Bin 0 -> 34017 bytes .../railties/guides/images/book_icon.gif | Bin 0 -> 337 bytes .../rails/railties/guides/images/bullet.gif | Bin 0 -> 60 bytes .../railties/guides/images/chapters_icon.gif | Bin 0 -> 628 bytes .../railties/guides/images/check_bullet.gif | Bin 0 -> 384 bytes .../guides/images/credits_pic_blank.gif | Bin 0 -> 613 bytes .../rails/railties/guides/images/csrf.png | Bin 0 -> 41996 bytes .../images/customized_error_messages.png | Bin 0 -> 5055 bytes .../railties/guides/images/error_messages.png | Bin 0 -> 14645 bytes .../railties/guides/images/feature_tile.gif | Bin 0 -> 43 bytes .../railties/guides/images/footer_tile.gif | Bin 0 -> 44 bytes .../rails/railties/guides/images/fxn.jpg | Bin 0 -> 17868 bytes .../railties/guides/images/grey_bullet.gif | Bin 0 -> 45 bytes .../rails/railties/guides/images/habtm.png | Bin 0 -> 63801 bytes .../rails/railties/guides/images/has_many.png | Bin 0 -> 38582 bytes .../guides/images/has_many_through.png | Bin 0 -> 100220 bytes .../rails/railties/guides/images/has_one.png | Bin 0 -> 39022 bytes .../guides/images/has_one_through.png | Bin 0 -> 92594 bytes .../guides/images/header_backdrop.png | Bin 0 -> 882 bytes .../railties/guides/images/header_tile.gif | Bin 0 -> 44 bytes .../images/i18n/demo_localized_pirate.png | Bin 0 -> 15027 bytes .../guides/images/i18n/demo_translated_en.png | Bin 0 -> 12057 bytes .../images/i18n/demo_translated_pirate.png | Bin 0 -> 13392 bytes .../images/i18n/demo_translation_missing.png | Bin 0 -> 13143 bytes .../guides/images/i18n/demo_untranslated.png | Bin 0 -> 11925 bytes .../rails/railties/guides/images/icons/README | 5 + .../guides/images/icons/callouts/1.png | Bin 0 -> 329 bytes .../guides/images/icons/callouts/10.png | Bin 0 -> 361 bytes .../guides/images/icons/callouts/11.png | Bin 0 -> 565 bytes .../guides/images/icons/callouts/12.png | Bin 0 -> 617 bytes .../guides/images/icons/callouts/13.png | Bin 0 -> 623 bytes .../guides/images/icons/callouts/14.png | Bin 0 -> 411 bytes .../guides/images/icons/callouts/15.png | Bin 0 -> 640 bytes .../guides/images/icons/callouts/2.png | Bin 0 -> 353 bytes .../guides/images/icons/callouts/3.png | Bin 0 -> 350 bytes .../guides/images/icons/callouts/4.png | Bin 0 -> 345 bytes .../guides/images/icons/callouts/5.png | Bin 0 -> 348 bytes .../guides/images/icons/callouts/6.png | Bin 0 -> 355 bytes .../guides/images/icons/callouts/7.png | Bin 0 -> 344 bytes .../guides/images/icons/callouts/8.png | Bin 0 -> 357 bytes .../guides/images/icons/callouts/9.png | Bin 0 -> 357 bytes .../railties/guides/images/icons/caution.png | Bin 0 -> 2554 bytes .../railties/guides/images/icons/example.png | Bin 0 -> 2354 bytes .../railties/guides/images/icons/home.png | Bin 0 -> 1340 bytes .../guides/images/icons/important.png | Bin 0 -> 2657 bytes .../railties/guides/images/icons/next.png | Bin 0 -> 1302 bytes .../railties/guides/images/icons/note.png | Bin 0 -> 2730 bytes .../railties/guides/images/icons/prev.png | Bin 0 -> 1348 bytes .../railties/guides/images/icons/tip.png | Bin 0 -> 2602 bytes .../rails/railties/guides/images/icons/up.png | Bin 0 -> 1320 bytes .../railties/guides/images/icons/warning.png | Bin 0 -> 2828 bytes .../railties/guides/images/nav_arrow.gif | Bin 0 -> 427 bytes .../railties/guides/images/polymorphic.png | Bin 0 -> 85248 bytes .../railties/guides/images/posts_index.png | Bin 0 -> 5824 bytes .../guides/images/rails_guides_logo.gif | Bin 0 -> 5114 bytes .../guides/images/rails_logo_remix.gif | Bin 0 -> 8533 bytes .../railties/guides/images/rails_welcome.png | Bin 0 -> 76496 bytes .../guides/images/session_fixation.png | Bin 0 -> 47860 bytes .../rails/railties/guides/images/tab_grey.gif | Bin 0 -> 4924 bytes .../rails/railties/guides/images/tab_info.gif | Bin 0 -> 4762 bytes .../rails/railties/guides/images/tab_note.gif | Bin 0 -> 4807 bytes .../rails/railties/guides/images/tab_red.gif | Bin 0 -> 4753 bytes .../railties/guides/images/tab_yellow.gif | Bin 0 -> 4759 bytes .../railties/guides/images/tab_yellow.png | Bin 0 -> 1611 bytes .../images/validation_error_messages.png | Bin 0 -> 1107 bytes .../rails/railties/guides/rails_guides.rb | 42 + .../railties/guides/rails_guides/generator.rb | 138 + .../railties/guides/rails_guides/helpers.rb | 34 + .../railties/guides/rails_guides/indexer.rb | 55 + .../guides/rails_guides/textile_extensions.rb | 41 + .../guides/source/2_2_release_notes.textile | 422 + .../guides/source/2_3_release_notes.textile | 610 + .../source/action_controller_overview.textile | 776 + .../source/action_mailer_basics.textile | 424 + .../source/active_record_basics.textile | 135 + .../source/active_record_querying.textile | 969 + ...activerecord_validations_callbacks.textile | 1086 ++ .../guides/source/association_basics.textile | 1781 ++ .../guides/source/caching_with_rails.textile | 524 + .../guides/source/command_line.textile | 589 + .../guides/source/configuring.textile | 234 + .../railties/guides/source/contribute.textile | 71 + .../source/contributing_to_rails.textile | 239 + .../guides/source/credits.erb.textile | 52 + .../debugging_rails_applications.textile | 709 + .../guides/source/form_helpers.textile | 766 + .../guides/source/getting_started.textile | 1297 ++ .../rails/railties/guides/source/i18n.textile | 912 + .../railties/guides/source/index.erb.textile | 124 + .../railties/guides/source/layout.html.erb | 103 + .../source/layouts_and_rendering.textile | 979 + .../railties/guides/source/migrations.textile | 591 + .../guides/source/nested_model_forms.textile | 222 + .../guides/source/performance_testing.textile | 531 + .../railties/guides/source/plugins.textile | 1512 ++ .../guides/source/rails_on_rack.textile | 309 + .../railties/guides/source/routing.textile | 903 + .../railties/guides/source/security.textile | 986 + .../railties/guides/source/testing.textile | 951 + .../helpers/application_controller.rb | 10 + .../railties/helpers/application_helper.rb | 3 + .../railties/helpers/performance_test.rb | 9 + .../rails/railties/helpers/test_helper.rb | 38 + .../vendor/rails/railties/html/404.html | 30 + .../vendor/rails/railties/html/422.html | 30 + .../vendor/rails/railties/html/500.html | 30 + .../vendor/rails/railties/html/favicon.ico | 0 .../rails/railties/html/images/rails.png | Bin 0 -> 6646 bytes .../vendor/rails/railties/html/index.html | 275 + .../railties/html/javascripts/application.js | 2 + .../railties/html/javascripts/controls.js | 963 + .../railties/html/javascripts/dragdrop.js | 973 + .../railties/html/javascripts/effects.js | 1128 ++ .../railties/html/javascripts/prototype.js | 4320 +++++ .../vendor/rails/railties/html/robots.txt | 5 + .../rails/railties/lib/code_statistics.rb | 107 + .../vendor/rails/railties/lib/commands.rb | 17 + .../rails/railties/lib/commands/about.rb | 3 + .../rails/railties/lib/commands/console.rb | 45 + .../rails/railties/lib/commands/dbconsole.rb | 87 + .../rails/railties/lib/commands/destroy.rb | 6 + .../rails/railties/lib/commands/generate.rb | 6 + .../rails/railties/lib/commands/ncgi/listener | 86 + .../rails/railties/lib/commands/ncgi/tracker | 69 + .../lib/commands/performance/benchmarker.rb | 24 + .../lib/commands/performance/profiler.rb | 50 + .../rails/railties/lib/commands/plugin.rb | 968 + .../rails/railties/lib/commands/runner.rb | 54 + .../rails/railties/lib/commands/server.rb | 114 + .../rails/railties/lib/commands/update.rb | 4 + .../vendor/rails/railties/lib/console_app.rb | 30 + .../rails/railties/lib/console_sandbox.rb | 6 + .../railties/lib/console_with_helpers.rb | 5 + .../vendor/rails/railties/lib/dispatcher.rb | 24 + .../vendor/rails/railties/lib/fcgi_handler.rb | 239 + .../vendor/rails/railties/lib/initializer.rb | 1128 ++ .../railties/lib/performance_test_help.rb | 5 + .../railties/lib/rails/backtrace_cleaner.rb | 54 + .../rails/railties/lib/rails/gem_builder.rb | 21 + .../railties/lib/rails/gem_dependency.rb | 311 + .../vendor/rails/railties/lib/rails/plugin.rb | 179 + .../rails/railties/lib/rails/plugin/loader.rb | 198 + .../railties/lib/rails/plugin/locator.rb | 100 + .../vendor/rails/railties/lib/rails/rack.rb | 8 + .../rails/railties/lib/rails/rack/debugger.rb | 21 + .../railties/lib/rails/rack/log_tailer.rb | 35 + .../rails/railties/lib/rails/rack/metal.rb | 51 + .../rails/railties/lib/rails/rack/static.rb | 46 + .../lib/rails/vendor_gem_source_index.rb | 140 + .../rails/railties/lib/rails/version.rb | 9 + .../rails/railties/lib/rails_generator.rb | 43 + .../railties/lib/rails_generator/base.rb | 266 + .../railties/lib/rails_generator/commands.rb | 621 + .../rails_generator/generated_attribute.rb | 46 + .../generators/applications/app/USAGE | 9 + .../applications/app/app_generator.rb | 263 + .../generators/applications/app/scm/git.rb | 18 + .../generators/applications/app/scm/scm.rb | 8 + .../generators/applications/app/scm/svn.rb | 7 + .../applications/app/template_runner.rb | 401 + .../generators/components/controller/USAGE | 30 + .../controller/controller_generator.rb | 43 + .../controller/templates/controller.rb | 7 + .../controller/templates/functional_test.rb | 8 + .../components/controller/templates/helper.rb | 2 + .../controller/templates/helper_test.rb | 4 + .../controller/templates/view.html.erb | 2 + .../generators/components/helper/USAGE | 24 + .../components/helper/helper_generator.rb | 25 + .../components/helper/templates/helper.rb | 2 + .../helper/templates/helper_test.rb | 4 + .../components/integration_test/USAGE | 8 + .../integration_test_generator.rb | 16 + .../templates/integration_test.rb | 10 + .../generators/components/mailer/USAGE | 16 + .../components/mailer/mailer_generator.rb | 30 + .../components/mailer/templates/fixture.erb | 3 + .../components/mailer/templates/fixture.rhtml | 0 .../components/mailer/templates/mailer.rb | 15 + .../components/mailer/templates/unit_test.rb | 20 + .../components/mailer/templates/view.erb | 3 + .../components/mailer/templates/view.rhtml | 0 .../generators/components/metal/USAGE | 8 + .../components/metal/metal_generator.rb | 8 + .../components/metal/templates/metal.rb | 12 + .../generators/components/migration/USAGE | 29 + .../migration/migration_generator.rb | 20 + .../migration/templates/migration.rb | 11 + .../generators/components/model/USAGE | 27 + .../components/model/model_generator.rb | 52 + .../components/model/templates/fixtures.yml | 19 + .../components/model/templates/migration.rb | 16 + .../components/model/templates/model.rb | 5 + .../components/model/templates/unit_test.rb | 8 + .../generators/components/observer/USAGE | 13 + .../components/observer/observer_generator.rb | 16 + .../components/observer/templates/observer.rb | 2 + .../observer/templates/unit_test.rb | 8 + .../components/performance_test/USAGE | 8 + .../performance_test_generator.rb | 16 + .../templates/performance_test.rb | 9 + .../generators/components/plugin/USAGE | 25 + .../components/plugin/plugin_generator.rb | 39 + .../components/plugin/templates/MIT-LICENSE | 20 + .../components/plugin/templates/README | 13 + .../components/plugin/templates/Rakefile | 23 + .../components/plugin/templates/USAGE | 8 + .../components/plugin/templates/generator.rb | 8 + .../components/plugin/templates/init.rb | 1 + .../components/plugin/templates/install.rb | 1 + .../components/plugin/templates/plugin.rb | 1 + .../components/plugin/templates/tasks.rake | 4 + .../plugin/templates/test_helper.rb | 3 + .../components/plugin/templates/uninstall.rb | 1 + .../components/plugin/templates/unit_test.rb | 8 + .../generators/components/resource/USAGE | 23 + .../components/resource/resource_generator.rb | 76 + .../resource/templates/controller.rb | 2 + .../resource/templates/functional_test.rb | 8 + .../components/resource/templates/helper.rb | 2 + .../resource/templates/helper_test.rb | 4 + .../generators/components/scaffold/USAGE | 29 + .../components/scaffold/scaffold_generator.rb | 103 + .../scaffold/templates/controller.rb | 85 + .../scaffold/templates/functional_test.rb | 45 + .../components/scaffold/templates/helper.rb | 2 + .../scaffold/templates/helper_test.rb | 4 + .../scaffold/templates/layout.html.erb | 17 + .../components/scaffold/templates/style.css | 54 + .../scaffold/templates/view_edit.html.erb | 18 + .../scaffold/templates/view_index.html.erb | 24 + .../scaffold/templates/view_new.html.erb | 17 + .../scaffold/templates/view_show.html.erb | 10 + .../components/session_migration/USAGE | 10 + .../session_migration_generator.rb | 18 + .../session_migration/templates/migration.rb | 16 + .../railties/lib/rails_generator/lookup.rb | 249 + .../railties/lib/rails_generator/manifest.rb | 53 + .../railties/lib/rails_generator/options.rb | 150 + .../railties/lib/rails_generator/scripts.rb | 89 + .../lib/rails_generator/scripts/destroy.rb | 29 + .../lib/rails_generator/scripts/generate.rb | 7 + .../lib/rails_generator/scripts/update.rb | 12 + .../rails_generator/secret_key_generator.rb | 24 + .../lib/rails_generator/simple_logger.rb | 46 + .../railties/lib/rails_generator/spec.rb | 44 + .../rails/railties/lib/railties_path.rb | 1 + .../rails/railties/lib/ruby_version_check.rb | 17 + .../vendor/rails/railties/lib/rubyprof_ext.rb | 35 + .../lib/source_annotation_extractor.rb | 102 + .../rails/railties/lib/tasks/annotations.rake | 20 + .../rails/railties/lib/tasks/databases.rake | 436 + .../railties/lib/tasks/documentation.rake | 88 + .../rails/railties/lib/tasks/framework.rake | 143 + .../vendor/rails/railties/lib/tasks/gems.rake | 78 + .../vendor/rails/railties/lib/tasks/log.rake | 9 + .../rails/railties/lib/tasks/middleware.rake | 7 + .../vendor/rails/railties/lib/tasks/misc.rake | 63 + .../vendor/rails/railties/lib/tasks/rails.rb | 8 + .../rails/railties/lib/tasks/routes.rake | 18 + .../rails/railties/lib/tasks/statistics.rake | 17 + .../rails/railties/lib/tasks/testing.rake | 139 + .../vendor/rails/railties/lib/tasks/tmp.rake | 37 + .../vendor/rails/railties/lib/test_help.rb | 38 + .../rails/railties/lib/webrick_server.rb | 156 + 2323 files changed, 288839 insertions(+) create mode 100644 presidents/README create mode 100644 presidents/Rakefile create mode 100644 presidents/app/controllers/application_controller.rb create mode 100644 presidents/app/controllers/presidents_controller.rb create mode 100644 presidents/app/helpers/application_helper.rb create mode 100644 presidents/app/models/president.rb create mode 100644 presidents/config/boot.rb create mode 100644 presidents/config/database.yml create mode 100644 presidents/config/environment.rb create mode 100644 presidents/config/environments/development.rb create mode 100644 presidents/config/environments/production.rb create mode 100644 presidents/config/environments/test.rb create mode 100644 presidents/config/initializers/backtrace_silencers.rb create mode 100644 presidents/config/initializers/inflections.rb create mode 100644 presidents/config/initializers/mime_types.rb create mode 100644 presidents/config/initializers/new_rails_defaults.rb create mode 100644 presidents/config/initializers/session_store.rb create mode 100644 presidents/config/locales/en.yml create mode 100644 presidents/config/routes.rb create mode 100644 presidents/db/development.sqlite3 create mode 100644 presidents/db/migrate/20091009101447_create_presidents.rb create mode 100644 presidents/db/schema.rb create mode 100644 presidents/db/seeds.rb create mode 100644 presidents/doc/README_FOR_APP create mode 100644 presidents/lib/tasks/fixtures.rake create mode 100644 presidents/lib/tasks/rspec.rake create mode 100644 presidents/log/development.log create mode 100644 presidents/log/test.log create mode 100644 presidents/public/404.html create mode 100644 presidents/public/422.html create mode 100644 presidents/public/500.html create mode 100644 presidents/public/favicon.ico create mode 100644 presidents/public/images/rails.png create mode 100644 presidents/public/index.html create mode 100644 presidents/public/javascripts/application.js create mode 100644 presidents/public/javascripts/controls.js create mode 100644 presidents/public/javascripts/dragdrop.js create mode 100644 presidents/public/javascripts/effects.js create mode 100644 presidents/public/javascripts/prototype.js create mode 100644 presidents/public/robots.txt create mode 100755 presidents/script/about create mode 100755 presidents/script/autospec create mode 100755 presidents/script/console create mode 100755 presidents/script/dbconsole create mode 100755 presidents/script/destroy create mode 100755 presidents/script/generate create mode 100755 presidents/script/performance/benchmarker create mode 100755 presidents/script/performance/profiler create mode 100755 presidents/script/plugin create mode 100755 presidents/script/runner create mode 100755 presidents/script/server create mode 100755 presidents/script/spec create mode 100644 presidents/spec/fixtures/load_fixtures.rb create mode 100644 presidents/spec/fixtures/presidents.txt create mode 100644 presidents/spec/rcov.opts create mode 100644 presidents/spec/spec.opts create mode 100644 presidents/spec/spec_helper.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/.specification create mode 100644 presidents/vendor/gems/rack-1.0.0/COPYING create mode 100644 presidents/vendor/gems/rack-1.0.0/KNOWN-ISSUES create mode 100644 presidents/vendor/gems/rack-1.0.0/RDOX create mode 100644 presidents/vendor/gems/rack-1.0.0/README create mode 100644 presidents/vendor/gems/rack-1.0.0/Rakefile create mode 100644 presidents/vendor/gems/rack-1.0.0/SPEC create mode 100755 presidents/vendor/gems/rack-1.0.0/bin/rackup create mode 100644 presidents/vendor/gems/rack-1.0.0/contrib/rack_logo.svg create mode 100644 presidents/vendor/gems/rack-1.0.0/example/lobster.ru create mode 100644 presidents/vendor/gems/rack-1.0.0/example/protectedlobster.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/example/protectedlobster.ru create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack/adapter/camping.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack/auth/abstract/handler.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack/auth/abstract/request.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack/auth/basic.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack/auth/digest/md5.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack/auth/digest/nonce.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack/auth/digest/params.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack/auth/digest/request.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack/auth/openid.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack/builder.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack/cascade.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack/chunked.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack/commonlogger.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack/conditionalget.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack/content_length.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack/content_type.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack/deflater.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack/directory.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack/file.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack/handler.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack/handler/cgi.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack/handler/evented_mongrel.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack/handler/fastcgi.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack/handler/lsws.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack/handler/mongrel.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack/handler/scgi.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack/handler/swiftiplied_mongrel.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack/handler/thin.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack/handler/webrick.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack/head.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack/lint.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack/lobster.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack/lock.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack/methodoverride.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack/mime.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack/mock.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack/recursive.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack/reloader.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack/request.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack/response.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack/rewindable_input.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack/session/abstract/id.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack/session/cookie.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack/session/memcache.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack/session/pool.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack/showexceptions.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack/showstatus.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack/static.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack/urlmap.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/lib/rack/utils.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/rack.gemspec create mode 100644 presidents/vendor/gems/rack-1.0.0/test/cgi/lighttpd.conf create mode 100755 presidents/vendor/gems/rack-1.0.0/test/cgi/test create mode 100755 presidents/vendor/gems/rack-1.0.0/test/cgi/test.fcgi create mode 100755 presidents/vendor/gems/rack-1.0.0/test/cgi/test.ru create mode 100644 presidents/vendor/gems/rack-1.0.0/test/multipart/binary create mode 100644 presidents/vendor/gems/rack-1.0.0/test/multipart/empty create mode 100644 presidents/vendor/gems/rack-1.0.0/test/multipart/ie create mode 100644 presidents/vendor/gems/rack-1.0.0/test/multipart/nested create mode 100644 presidents/vendor/gems/rack-1.0.0/test/multipart/none create mode 100644 presidents/vendor/gems/rack-1.0.0/test/multipart/text create mode 100644 presidents/vendor/gems/rack-1.0.0/test/spec_rack_auth_basic.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/test/spec_rack_auth_digest.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/test/spec_rack_auth_openid.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/test/spec_rack_builder.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/test/spec_rack_camping.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/test/spec_rack_cascade.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/test/spec_rack_cgi.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/test/spec_rack_chunked.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/test/spec_rack_commonlogger.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/test/spec_rack_conditionalget.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/test/spec_rack_content_length.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/test/spec_rack_content_type.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/test/spec_rack_deflater.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/test/spec_rack_directory.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/test/spec_rack_fastcgi.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/test/spec_rack_file.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/test/spec_rack_handler.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/test/spec_rack_head.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/test/spec_rack_lint.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/test/spec_rack_lobster.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/test/spec_rack_lock.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/test/spec_rack_methodoverride.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/test/spec_rack_mock.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/test/spec_rack_mongrel.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/test/spec_rack_recursive.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/test/spec_rack_request.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/test/spec_rack_response.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/test/spec_rack_rewindable_input.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/test/spec_rack_session_cookie.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/test/spec_rack_session_memcache.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/test/spec_rack_session_pool.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/test/spec_rack_showexceptions.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/test/spec_rack_showstatus.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/test/spec_rack_static.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/test/spec_rack_thin.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/test/spec_rack_urlmap.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/test/spec_rack_utils.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/test/spec_rack_webrick.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/test/testrequest.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/test/unregistered_handler/rack/handler/unregistered.rb create mode 100644 presidents/vendor/gems/rack-1.0.0/test/unregistered_handler/rack/handler/unregistered_long_one.rb create mode 100644 presidents/vendor/gems/ratom-0.6.2/.specification create mode 100644 presidents/vendor/gems/ratom-0.6.2/History.txt create mode 100644 presidents/vendor/gems/ratom-0.6.2/License.txt create mode 100644 presidents/vendor/gems/ratom-0.6.2/Manifest.txt create mode 100644 presidents/vendor/gems/ratom-0.6.2/README.txt create mode 100644 presidents/vendor/gems/ratom-0.6.2/Rakefile create mode 100644 presidents/vendor/gems/ratom-0.6.2/config/hoe.rb create mode 100644 presidents/vendor/gems/ratom-0.6.2/config/requirements.rb create mode 100644 presidents/vendor/gems/ratom-0.6.2/lib/atom.rb create mode 100644 presidents/vendor/gems/ratom-0.6.2/lib/atom/configuration.rb create mode 100644 presidents/vendor/gems/ratom-0.6.2/lib/atom/pub.rb create mode 100644 presidents/vendor/gems/ratom-0.6.2/lib/atom/version.rb create mode 100644 presidents/vendor/gems/ratom-0.6.2/lib/atom/xml/parser.rb create mode 100644 presidents/vendor/gems/ratom-0.6.2/setup.rb create mode 100644 presidents/vendor/gems/ratom-0.6.2/spec/app/member_entry.atom create mode 100644 presidents/vendor/gems/ratom-0.6.2/spec/app/service.xml create mode 100644 presidents/vendor/gems/ratom-0.6.2/spec/atom/pub_spec.rb create mode 100644 presidents/vendor/gems/ratom-0.6.2/spec/atom_spec.rb create mode 100644 presidents/vendor/gems/ratom-0.6.2/spec/conformance/baseuri.atom create mode 100644 presidents/vendor/gems/ratom-0.6.2/spec/conformance/divtest.atom create mode 100644 presidents/vendor/gems/ratom-0.6.2/spec/conformance/linktests.xml create mode 100644 presidents/vendor/gems/ratom-0.6.2/spec/conformance/nondefaultnamespace-baseline.atom create mode 100644 presidents/vendor/gems/ratom-0.6.2/spec/conformance/nondefaultnamespace-xhtml.atom create mode 100644 presidents/vendor/gems/ratom-0.6.2/spec/conformance/nondefaultnamespace.atom create mode 100644 presidents/vendor/gems/ratom-0.6.2/spec/conformance/ordertest.xml create mode 100644 presidents/vendor/gems/ratom-0.6.2/spec/conformance/title/html-cdata.atom create mode 100644 presidents/vendor/gems/ratom-0.6.2/spec/conformance/title/html-entity.atom create mode 100644 presidents/vendor/gems/ratom-0.6.2/spec/conformance/title/html-ncr.atom create mode 100644 presidents/vendor/gems/ratom-0.6.2/spec/conformance/title/text-cdata.atom create mode 100644 presidents/vendor/gems/ratom-0.6.2/spec/conformance/title/text-entity.atom create mode 100644 presidents/vendor/gems/ratom-0.6.2/spec/conformance/title/text-ncr.atom create mode 100644 presidents/vendor/gems/ratom-0.6.2/spec/conformance/title/xhtml-entity.atom create mode 100644 presidents/vendor/gems/ratom-0.6.2/spec/conformance/title/xhtml-ncr.atom create mode 100644 presidents/vendor/gems/ratom-0.6.2/spec/conformance/unknown-namespace.atom create mode 100644 presidents/vendor/gems/ratom-0.6.2/spec/conformance/xmlbase.atom create mode 100644 presidents/vendor/gems/ratom-0.6.2/spec/fixtures/complex_single_entry.atom create mode 100644 presidents/vendor/gems/ratom-0.6.2/spec/fixtures/created_entry.atom create mode 100644 presidents/vendor/gems/ratom-0.6.2/spec/fixtures/entry.atom create mode 100644 presidents/vendor/gems/ratom-0.6.2/spec/fixtures/multiple_entry.atom create mode 100644 presidents/vendor/gems/ratom-0.6.2/spec/fixtures/simple_single_entry.atom create mode 100644 presidents/vendor/gems/ratom-0.6.2/spec/fixtures/with_stylesheet.atom create mode 100644 presidents/vendor/gems/ratom-0.6.2/spec/paging/first_paged_feed.atom create mode 100644 presidents/vendor/gems/ratom-0.6.2/spec/paging/last_paged_feed.atom create mode 100644 presidents/vendor/gems/ratom-0.6.2/spec/paging/middle_paged_feed.atom create mode 100644 presidents/vendor/gems/ratom-0.6.2/spec/spec.opts create mode 100644 presidents/vendor/gems/ratom-0.6.2/spec/spec_helper.rb create mode 100644 presidents/vendor/gems/ratom-0.6.2/tasks/deployment.rake create mode 100644 presidents/vendor/gems/ratom-0.6.2/tasks/environment.rake create mode 100644 presidents/vendor/gems/ratom-0.6.2/tasks/rspec.rake create mode 100644 presidents/vendor/gems/ratom-0.6.2/tasks/website.rake create mode 100644 presidents/vendor/gems/ratom-0.6.2/website/index.html create mode 100644 presidents/vendor/gems/ratom-0.6.2/website/index.txt create mode 100644 presidents/vendor/gems/ratom-0.6.2/website/javascripts/rounded_corners_lite.inc.js create mode 100644 presidents/vendor/gems/ratom-0.6.2/website/stylesheets/screen.css create mode 100644 presidents/vendor/gems/ratom-0.6.2/website/template.rhtml create mode 100644 presidents/vendor/gems/rspec-1.2.9/.document create mode 100644 presidents/vendor/gems/rspec-1.2.9/.specification create mode 100644 presidents/vendor/gems/rspec-1.2.9/History.rdoc create mode 100644 presidents/vendor/gems/rspec-1.2.9/License.txt create mode 100644 presidents/vendor/gems/rspec-1.2.9/Manifest.txt create mode 100644 presidents/vendor/gems/rspec-1.2.9/README.rdoc create mode 100644 presidents/vendor/gems/rspec-1.2.9/Rakefile create mode 100644 presidents/vendor/gems/rspec-1.2.9/Ruby1.9.rdoc create mode 100644 presidents/vendor/gems/rspec-1.2.9/TODO.txt create mode 100644 presidents/vendor/gems/rspec-1.2.9/Upgrade.rdoc create mode 100755 presidents/vendor/gems/rspec-1.2.9/bin/autospec create mode 100755 presidents/vendor/gems/rspec-1.2.9/bin/spec create mode 100644 presidents/vendor/gems/rspec-1.2.9/cucumber.yml create mode 100644 presidents/vendor/gems/rspec-1.2.9/examples/failing/README.txt create mode 100644 presidents/vendor/gems/rspec-1.2.9/examples/failing/diffing_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/examples/failing/failing_implicit_docstrings_example.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/examples/failing/failure_in_after.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/examples/failing/failure_in_before.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/examples/failing/mocking_example.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/examples/failing/mocking_with_flexmock.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/examples/failing/mocking_with_mocha.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/examples/failing/mocking_with_rr.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/examples/failing/partial_mock_example.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/examples/failing/pending_example.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/examples/failing/predicate_example.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/examples/failing/raising_example.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/examples/failing/syntax_error_example.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/examples/failing/team_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/examples/failing/timeout_behaviour.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/examples/passing/custom_formatter.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/examples/passing/custom_matchers.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/examples/passing/dynamic_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/examples/passing/file_accessor.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/examples/passing/file_accessor_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/examples/passing/filtered_formatter.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/examples/passing/filtered_formatter_example.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/examples/passing/greeter_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/examples/passing/helper_method_example.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/examples/passing/implicit_docstrings_example.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/examples/passing/io_processor.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/examples/passing/io_processor_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/examples/passing/mocking_example.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/examples/passing/multi_threaded_example_group_runner.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/examples/passing/nested_classes_example.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/examples/passing/options_example.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/examples/passing/options_formatter.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/examples/passing/partial_mock_example.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/examples/passing/pending_example.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/examples/passing/predicate_example.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/examples/passing/shared_example_group_example.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/examples/passing/shared_stack_examples.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/examples/passing/simple_matcher_example.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/examples/passing/stack.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/examples/passing/stack_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/examples/passing/stack_spec_with_nested_example_groups.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/examples/passing/stubbing_example.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/examples/passing/yielding_example.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/examples/ruby1.9.compatibility/access_to_constants_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/features/before_and_after_blocks/before_and_after_blocks.feature create mode 100644 presidents/vendor/gems/rspec-1.2.9/features/command_line/line_number_option.feature create mode 100644 presidents/vendor/gems/rspec-1.2.9/features/command_line/line_number_option_with_example_with_no_name.feature create mode 100644 presidents/vendor/gems/rspec-1.2.9/features/example_groups/define_example_attribute.feature create mode 100644 presidents/vendor/gems/rspec-1.2.9/features/example_groups/example_group_with_should_methods.feature create mode 100644 presidents/vendor/gems/rspec-1.2.9/features/example_groups/implicit_docstrings.feature create mode 100644 presidents/vendor/gems/rspec-1.2.9/features/example_groups/nested_groups.feature create mode 100644 presidents/vendor/gems/rspec-1.2.9/features/expectations/customized_message.feature create mode 100644 presidents/vendor/gems/rspec-1.2.9/features/expectations/expect_change.feature create mode 100644 presidents/vendor/gems/rspec-1.2.9/features/expectations/expect_error.feature create mode 100644 presidents/vendor/gems/rspec-1.2.9/features/extensions/custom_example_group.feature create mode 100644 presidents/vendor/gems/rspec-1.2.9/features/formatters/custom_formatter.feature create mode 100644 presidents/vendor/gems/rspec-1.2.9/features/interop/examples_and_tests_together.feature create mode 100644 presidents/vendor/gems/rspec-1.2.9/features/interop/rspec_output.feature create mode 100644 presidents/vendor/gems/rspec-1.2.9/features/interop/test_but_not_test_unit.feature create mode 100644 presidents/vendor/gems/rspec-1.2.9/features/interop/test_case_with_should_methods.feature create mode 100644 presidents/vendor/gems/rspec-1.2.9/features/load_paths/add_lib_to_load_path.feature create mode 100644 presidents/vendor/gems/rspec-1.2.9/features/load_paths/add_spec_to_load_path.feature create mode 100644 presidents/vendor/gems/rspec-1.2.9/features/matchers/define_diffable_matcher.feature create mode 100644 presidents/vendor/gems/rspec-1.2.9/features/matchers/define_matcher.feature create mode 100644 presidents/vendor/gems/rspec-1.2.9/features/matchers/define_matcher_outside_rspec.feature create mode 100644 presidents/vendor/gems/rspec-1.2.9/features/matchers/define_matcher_with_fluent_interface.feature create mode 100644 presidents/vendor/gems/rspec-1.2.9/features/matchers/define_wrapped_matcher.feature create mode 100644 presidents/vendor/gems/rspec-1.2.9/features/mock_framework_integration/use_flexmock.feature create mode 100644 presidents/vendor/gems/rspec-1.2.9/features/mock_framework_integration/use_mocha.feature create mode 100644 presidents/vendor/gems/rspec-1.2.9/features/mock_framework_integration/use_rr.feature create mode 100644 presidents/vendor/gems/rspec-1.2.9/features/mocks/mix_stubs_and_mocks.feature create mode 100644 presidents/vendor/gems/rspec-1.2.9/features/mocks/stub_implementation.feature create mode 100644 presidents/vendor/gems/rspec-1.2.9/features/pending/pending_examples.feature create mode 100644 presidents/vendor/gems/rspec-1.2.9/features/runner/specify_line_number.feature create mode 100644 presidents/vendor/gems/rspec-1.2.9/features/spec_helper/spec_helper.feature create mode 100644 presidents/vendor/gems/rspec-1.2.9/features/step_definitions/running_rspec_steps.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/features/subject/explicit_subject.feature create mode 100644 presidents/vendor/gems/rspec-1.2.9/features/subject/implicit_subject.feature create mode 100644 presidents/vendor/gems/rspec-1.2.9/features/support/env.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/features/support/matchers/smart_match.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/init.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/autotest/discover.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/autotest/rspec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/adapters/mock_frameworks/flexmock.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/adapters/mock_frameworks/mocha.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/adapters/mock_frameworks/rr.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/adapters/mock_frameworks/rspec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/autorun.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/deprecation.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/dsl.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/dsl/main.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/example.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/example/args_and_options.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/example/before_and_after_hooks.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/example/errors.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/example/example_group.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/example/example_group_factory.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/example/example_group_hierarchy.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/example/example_group_methods.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/example/example_group_proxy.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/example/example_matcher.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/example/example_methods.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/example/example_proxy.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/example/module_reopening_fix.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/example/pending.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/example/predicate_matchers.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/example/shared_example_group.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/example/subject.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/expectations.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/expectations/errors.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/expectations/extensions.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/expectations/extensions/kernel.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/expectations/fail_with.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/expectations/handler.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/interop/test.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/interop/test/unit/autorunner.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/interop/test/unit/testcase.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/interop/test/unit/testresult.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/interop/test/unit/testsuite_adapter.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/interop/test/unit/ui/console/testrunner.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/be.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/be_close.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/be_instance_of.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/be_kind_of.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/change.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/compatibility.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/dsl.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/eql.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/equal.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/errors.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/exist.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/extensions/instance_exec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/generated_descriptions.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/has.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/have.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/include.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/match.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/match_array.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/matcher.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/method_missing.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/operator_matcher.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/pretty.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/raise_error.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/respond_to.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/satisfy.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/simple_matcher.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/throw_symbol.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/wrap_expectation.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/argument_expectation.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/argument_matchers.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/error_generator.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/errors.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/example_methods.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/extensions.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/extensions/object.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/framework.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/message_expectation.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/methods.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/mock.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/order_group.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/proxy.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/space.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/rake/spectask.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/rake/verify_rcov.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/ruby.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/runner.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/backtrace_tweaker.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/class_and_arguments_parser.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/command_line.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/configuration.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/differs/default.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/differs/load-diff-lcs.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/drb_command_line.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/example_group_runner.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/extensions/kernel.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/base_formatter.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/base_text_formatter.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/failing_example_groups_formatter.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/failing_examples_formatter.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/html_formatter.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/nested_text_formatter.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/no_op_method_missing.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/profile_formatter.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/progress_bar_formatter.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/silent_formatter.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/snippet_extractor.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/specdoc_formatter.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/text_mate_formatter.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/heckle_runner.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/heckle_runner_unsupported.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/line_number_query.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/option_parser.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/options.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/reporter.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/stubs/cucumber.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/test/unit.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/lib/spec/version.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/resources/helpers/cmdline.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/resources/rake/examples.rake create mode 100644 presidents/vendor/gems/rspec-1.2.9/resources/rake/examples_with_rcov.rake create mode 100644 presidents/vendor/gems/rspec-1.2.9/resources/rake/failing_examples_with_html.rake create mode 100644 presidents/vendor/gems/rspec-1.2.9/resources/rake/verify_rcov.rake create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/README.jruby create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/autotest/autotest_helper.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/autotest/autotest_matchers.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/autotest/discover_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/autotest/failed_results_re_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/autotest/rspec_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/ruby_forker.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec.opts create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/dsl/main_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/example/example_group_class_definition_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/example/example_group_factory_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/example/example_group_methods_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/example/example_group_proxy_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/example/example_group_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/example/example_matcher_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/example/example_methods_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/example/example_proxy_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/example/helper_method_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/example/nested_example_group_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/example/pending_module_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/example/predicate_matcher_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/example/shared_example_group_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/example/subclassing_example_group_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/example/subject_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/expectations/differs/default_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/expectations/extensions/kernel_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/expectations/fail_with_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/expectations/handler_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/expectations/wrap_expectation_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/spec_that_fails.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/spec_that_passes.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/spec_with_errors.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/spec_with_options_hash.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/test_case_that_fails.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/test_case_that_passes.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/test_case_with_errors.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/test_case_with_various_names.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/testsuite_adapter_spec_with_test_unit.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/spec_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/test_unit_spec_helper.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/testcase_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/testsuite_adapter_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/be_close_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/be_instance_of_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/be_kind_of_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/be_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/change_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/compatibility_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/description_generation_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/dsl_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/eql_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/equal_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/exist_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/has_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/have_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/include_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/match_array_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/match_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/matcher_methods_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/matcher_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/matchers_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/operator_matcher_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/raise_error_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/respond_to_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/satisfy_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/simple_matcher_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/throw_symbol_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/any_number_of_times_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/argument_expectation_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/argument_matchers_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/at_least_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/at_most_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/bug_report_10260_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/bug_report_10263_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/bug_report_11545_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/bug_report_15719_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/bug_report_496_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/bug_report_600_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/bug_report_7611_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/bug_report_7805_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/bug_report_8165_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/bug_report_8302_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/bug_report_830_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/double_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/failing_argument_matchers_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/hash_including_matcher_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/hash_not_including_matcher_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/mock_ordering_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/mock_space_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/mock_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/multiple_return_value_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/nil_expectation_warning_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/null_object_mock_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/once_counts_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/options_hash_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/partial_mock_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/passing_argument_matchers_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/precise_counts_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/record_messages_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/stub_chain_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/stub_implementation_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/stub_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/stubbed_message_expectations_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/twice_counts_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/unstub_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/package/bin_spec_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/rake/spectask_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/class_and_argument_parser_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/command_line_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/configuration_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/drb_command_line_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/empty_file.txt create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/example_group_runner_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/examples.txt create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/failed.txt create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/base_formatter_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/base_text_formatter_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/failing_examples_formatter_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/html_formatted-1.8.6.html create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/html_formatted-1.8.7.html create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/html_formatted-1.9.1.html create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/html_formatter_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/nested_text_formatter_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/profile_formatter_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/progress_bar_formatter_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/snippet_extractor_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/specdoc_formatter_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/text_mate_formatted-1.8.6-jruby.html create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/text_mate_formatted-1.8.7.html create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/text_mate_formatted-1.9.1.html create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/text_mate_formatter_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/heckle_runner_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/heckler_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/line_number_query/line_number_query_fixture.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/line_number_query_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/noisy_backtrace_tweaker_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/option_parser_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/options_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/output_one_time_fixture.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/output_one_time_fixture_runner.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/output_one_time_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/quiet_backtrace_tweaker_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/reporter_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/resources/a_bar.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/resources/a_foo.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/resources/a_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/resources/custom_example_group_runner.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/resources/utf8_encoded.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/spec.opts create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/spec_drb.opts create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/spec_spaced.opts create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec/runner_spec.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/spec_helper.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/support/macros.rb create mode 100644 presidents/vendor/gems/rspec-1.2.9/spec/support/spec_classes.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/.document create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/.specification create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/Contribute.rdoc create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/History.rdoc create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/License.txt create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/Manifest.txt create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/README.rdoc create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/Rakefile create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/TODO.txt create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/Upgrade.rdoc create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/generators/integration_spec/integration_spec_generator.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/generators/integration_spec/templates/integration_spec.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec/CHANGES create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec/rspec_generator.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec/templates/previous_failures.txt create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec/templates/rcov.opts create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec/templates/rspec.rake create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec/templates/script/autospec create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec/templates/script/spec create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec/templates/spec.opts create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec/templates/spec_helper.rb create mode 100755 presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_controller/USAGE create mode 100755 presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_controller/rspec_controller_generator.rb create mode 100755 presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_controller/templates/controller_spec.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_controller/templates/helper_spec.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_controller/templates/view_spec.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_default_values.rb create mode 100755 presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_model/USAGE create mode 100755 presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_model/rspec_model_generator.rb create mode 100755 presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_model/templates/model_spec.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_scaffold/rspec_scaffold_generator.rb create mode 100755 presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_scaffold/templates/controller_spec.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_scaffold/templates/edit_erb_spec.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_scaffold/templates/helper_spec.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_scaffold/templates/index_erb_spec.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_scaffold/templates/new_erb_spec.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_scaffold/templates/routing_spec.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_scaffold/templates/show_erb_spec.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/init.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/lib/autotest/discover.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/lib/autotest/rails_rspec.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/example.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/example/assigns_hash_proxy.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/example/controller_example_group.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/example/cookies_proxy.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/example/functional_example_group.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/example/helper_example_group.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/example/integration_example_group.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/example/model_example_group.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/example/render_observer.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/example/routing_example_group.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/example/routing_helpers.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/example/view_example_group.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/extensions.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/extensions/action_controller/rescue.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/extensions/action_controller/test_case.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/extensions/action_controller/test_response.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/extensions/action_view/base.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/extensions/active_record/base.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/extensions/active_support/test_case.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/extensions/spec/matchers/have.rb create mode 100755 presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/extensions/spec/runner/configuration.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/interop/testcase.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/matchers.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/matchers/ar_be_valid.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/matchers/assert_select.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/matchers/change.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/matchers/have_text.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/matchers/include_text.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/matchers/redirect_to.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/matchers/render_template.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/matchers/route_to.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/mocks.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/version.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/autotest/mappings_spec.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/rails_suite.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/controllers/action_view_base_spec_controller.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/controllers/application.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/controllers/controller_spec_controller.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/controllers/example.txt create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/controllers/redirect_spec_controller.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/controllers/render_spec_controller.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/controllers/rjs_spec_controller.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/helpers/addition_helper.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/helpers/explicit_helper.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/helpers/more_explicit_helper.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/helpers/plugin_application_helper.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/helpers/view_spec_helper.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/models/animal.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/models/person.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/models/thing.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/controller_spec/_partial.html.erb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/controller_spec/action_setting_flash_after_session_reset.html.erb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/controller_spec/action_setting_flash_before_session_reset.html.erb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/controller_spec/action_setting_the_assigns_hash.html.erb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/controller_spec/action_with_errors_in_template.html.erb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/controller_spec/action_with_template.html.erb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/layouts/application.html.erb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/layouts/simple.html.erb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/objects/_object.html.erb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/render_spec/_a_partial.html.erb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/render_spec/action_with_alternate_layout.html.erb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/render_spec/some_action.html.erb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/render_spec/some_action.js.rjs create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/rjs_spec/_replacement_partial.html.erb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/rjs_spec/hide_div.js.rjs create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/rjs_spec/hide_page_element.js.rjs create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/rjs_spec/insert_html.js.rjs create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/rjs_spec/replace.js.rjs create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/rjs_spec/replace_html.js.rjs create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/rjs_spec/replace_html_with_partial.js.rjs create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/rjs_spec/visual_effect.js.rjs create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/rjs_spec/visual_toggle_effect.js.rjs create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/tag_spec/no_tags.html.erb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/tag_spec/single_div_with_no_attributes.html.erb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/tag_spec/single_div_with_one_attribute.html.erb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/_partial.html.erb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/_partial_used_twice.html.erb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/_partial_with_local_variable.html.erb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/_partial_with_sub_partial.html.erb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/_spacer.html.erb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/accessor.html.erb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/block_helper.html.erb create mode 100755 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/entry_form.html.erb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/explicit_helper.html.erb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/foo/show.html.erb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/implicit_helper.html.erb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/multiple_helpers.html.erb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/path_params.html.erb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/should_not_receive.html.erb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/template_with_partial.html.erb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/template_with_partial_using_collection.html.erb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/template_with_partial_with_array.html.erb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/view_helpers.html.erb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/assigns_hash_proxy_spec.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/configuration_spec.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/controller_example_group_spec.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/controller_isolation_spec.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/cookies_proxy_spec.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/error_handling_spec.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/example_group_factory_spec.rb create mode 100755 presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/helper_example_group_spec.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/model_example_group_spec.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/routing_example_group_spec.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/shared_routing_example_group_examples.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/test_unit_assertion_accessibility_spec.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/view_example_group_spec.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/extensions/action_view_base_spec.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/extensions/active_record_spec.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/interop/testcase_spec.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/matchers/ar_be_valid_spec.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/matchers/assert_select_spec.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/matchers/errors_on_spec.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/matchers/have_text_spec.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/matchers/include_text_spec.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/matchers/redirect_to_spec.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/matchers/render_template_spec.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/matchers/should_change_spec.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/mocks/ar_classes.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/mocks/mock_model_spec.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/mocks/stub_model_spec.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/sample_modified_fixture.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/sample_spec.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/spec_spec.rb create mode 100644 presidents/vendor/gems/rspec-rails-1.2.9/spec/spec_helper.rb create mode 160000 presidents/vendor/plugins/usher create mode 100644 presidents/vendor/rails/actionmailer/CHANGELOG create mode 100644 presidents/vendor/rails/actionmailer/MIT-LICENSE create mode 100644 presidents/vendor/rails/actionmailer/README create mode 100644 presidents/vendor/rails/actionmailer/Rakefile create mode 100644 presidents/vendor/rails/actionmailer/install.rb create mode 100644 presidents/vendor/rails/actionmailer/lib/action_mailer.rb create mode 100644 presidents/vendor/rails/actionmailer/lib/action_mailer/adv_attr_accessor.rb create mode 100644 presidents/vendor/rails/actionmailer/lib/action_mailer/base.rb create mode 100644 presidents/vendor/rails/actionmailer/lib/action_mailer/helpers.rb create mode 100644 presidents/vendor/rails/actionmailer/lib/action_mailer/mail_helper.rb create mode 100644 presidents/vendor/rails/actionmailer/lib/action_mailer/part.rb create mode 100644 presidents/vendor/rails/actionmailer/lib/action_mailer/part_container.rb create mode 100644 presidents/vendor/rails/actionmailer/lib/action_mailer/quoting.rb create mode 100644 presidents/vendor/rails/actionmailer/lib/action_mailer/test_case.rb create mode 100644 presidents/vendor/rails/actionmailer/lib/action_mailer/test_helper.rb create mode 100644 presidents/vendor/rails/actionmailer/lib/action_mailer/utils.rb create mode 100755 presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/text-format-0.6.3/text/format.rb create mode 100644 presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/text_format.rb create mode 100644 presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail.rb create mode 100644 presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/address.rb create mode 100644 presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/attachments.rb create mode 100644 presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/base64.rb create mode 100644 presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/compat.rb create mode 100644 presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/config.rb create mode 100644 presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/core_extensions.rb create mode 100644 presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/encode.rb create mode 100644 presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/header.rb create mode 100644 presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/index.rb create mode 100644 presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/interface.rb create mode 100644 presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/loader.rb create mode 100644 presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/mail.rb create mode 100644 presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/mailbox.rb create mode 100644 presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/main.rb create mode 100644 presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/mbox.rb create mode 100644 presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/net.rb create mode 100644 presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/obsolete.rb create mode 100644 presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/parser.rb create mode 100644 presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/port.rb create mode 100644 presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/quoting.rb create mode 100644 presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/require_arch.rb create mode 100644 presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/scanner.rb create mode 100644 presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/scanner_r.rb create mode 100644 presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/stringio.rb create mode 100644 presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/utils.rb create mode 100644 presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/version.rb create mode 100644 presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail.rb create mode 100644 presidents/vendor/rails/actionmailer/lib/action_mailer/version.rb create mode 100644 presidents/vendor/rails/actionmailer/lib/actionmailer.rb create mode 100644 presidents/vendor/rails/actionmailer/test/abstract_unit.rb create mode 100644 presidents/vendor/rails/actionmailer/test/asset_host_test.rb create mode 100644 presidents/vendor/rails/actionmailer/test/delivery_method_test.rb create mode 100644 presidents/vendor/rails/actionmailer/test/fixtures/asset_host_mailer/email_with_asset.html.erb create mode 100644 presidents/vendor/rails/actionmailer/test/fixtures/auto_layout_mailer/hello.html.erb create mode 100644 presidents/vendor/rails/actionmailer/test/fixtures/auto_layout_mailer/multipart.text.html.erb create mode 100644 presidents/vendor/rails/actionmailer/test/fixtures/auto_layout_mailer/multipart.text.plain.erb create mode 100644 presidents/vendor/rails/actionmailer/test/fixtures/explicit_layout_mailer/logout.html.erb create mode 100644 presidents/vendor/rails/actionmailer/test/fixtures/explicit_layout_mailer/signup.html.erb create mode 100644 presidents/vendor/rails/actionmailer/test/fixtures/first_mailer/share.erb create mode 100644 presidents/vendor/rails/actionmailer/test/fixtures/helper_mailer/use_example_helper.erb create mode 100644 presidents/vendor/rails/actionmailer/test/fixtures/helper_mailer/use_helper.erb create mode 100644 presidents/vendor/rails/actionmailer/test/fixtures/helper_mailer/use_helper_method.erb create mode 100644 presidents/vendor/rails/actionmailer/test/fixtures/helper_mailer/use_mail_helper.erb create mode 100644 presidents/vendor/rails/actionmailer/test/fixtures/helpers/example_helper.rb create mode 100644 presidents/vendor/rails/actionmailer/test/fixtures/layouts/auto_layout_mailer.html.erb create mode 100644 presidents/vendor/rails/actionmailer/test/fixtures/layouts/auto_layout_mailer.text.erb create mode 100644 presidents/vendor/rails/actionmailer/test/fixtures/layouts/spam.html.erb create mode 100644 presidents/vendor/rails/actionmailer/test/fixtures/path.with.dots/funky_path_mailer/multipart_with_template_path_with_dots.erb create mode 100644 presidents/vendor/rails/actionmailer/test/fixtures/raw_email create mode 100644 presidents/vendor/rails/actionmailer/test/fixtures/raw_email10 create mode 100644 presidents/vendor/rails/actionmailer/test/fixtures/raw_email12 create mode 100644 presidents/vendor/rails/actionmailer/test/fixtures/raw_email13 create mode 100644 presidents/vendor/rails/actionmailer/test/fixtures/raw_email2 create mode 100644 presidents/vendor/rails/actionmailer/test/fixtures/raw_email3 create mode 100644 presidents/vendor/rails/actionmailer/test/fixtures/raw_email4 create mode 100644 presidents/vendor/rails/actionmailer/test/fixtures/raw_email5 create mode 100644 presidents/vendor/rails/actionmailer/test/fixtures/raw_email6 create mode 100644 presidents/vendor/rails/actionmailer/test/fixtures/raw_email7 create mode 100644 presidents/vendor/rails/actionmailer/test/fixtures/raw_email8 create mode 100644 presidents/vendor/rails/actionmailer/test/fixtures/raw_email9 create mode 100644 presidents/vendor/rails/actionmailer/test/fixtures/raw_email_quoted_with_0d0a create mode 100644 presidents/vendor/rails/actionmailer/test/fixtures/raw_email_with_invalid_characters_in_content_type create mode 100644 presidents/vendor/rails/actionmailer/test/fixtures/raw_email_with_nested_attachment create mode 100644 presidents/vendor/rails/actionmailer/test/fixtures/raw_email_with_partially_quoted_subject create mode 100644 presidents/vendor/rails/actionmailer/test/fixtures/second_mailer/share.erb create mode 100644 presidents/vendor/rails/actionmailer/test/fixtures/templates/signed_up.erb create mode 100644 presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/_subtemplate.text.plain.erb create mode 100644 presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/body_ivar.erb create mode 100644 presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/custom_templating_extension.text.html.haml create mode 100644 presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/custom_templating_extension.text.plain.haml create mode 100644 presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.ignored.erb create mode 100644 presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.rhtml.bak create mode 100644 presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.text.html.erb create mode 100644 presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.text.html.erb~ create mode 100644 presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.text.plain.erb create mode 100644 presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.text.yaml.erb create mode 100644 presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/included_subtemplate.text.plain.erb create mode 100644 presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/rxml_template.builder create mode 100644 presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/rxml_template.rxml create mode 100644 presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/signed_up.html.erb create mode 100644 presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/signed_up_with_url.erb create mode 100644 presidents/vendor/rails/actionmailer/test/mail_helper_test.rb create mode 100644 presidents/vendor/rails/actionmailer/test/mail_layout_test.rb create mode 100644 presidents/vendor/rails/actionmailer/test/mail_render_test.rb create mode 100644 presidents/vendor/rails/actionmailer/test/mail_service_test.rb create mode 100644 presidents/vendor/rails/actionmailer/test/quoting_test.rb create mode 100644 presidents/vendor/rails/actionmailer/test/test_helper_test.rb create mode 100644 presidents/vendor/rails/actionmailer/test/tmail_test.rb create mode 100644 presidents/vendor/rails/actionmailer/test/url_test.rb create mode 100644 presidents/vendor/rails/actionpack/CHANGELOG create mode 100644 presidents/vendor/rails/actionpack/MIT-LICENSE create mode 100644 presidents/vendor/rails/actionpack/README create mode 100644 presidents/vendor/rails/actionpack/RUNNING_UNIT_TESTS create mode 100644 presidents/vendor/rails/actionpack/Rakefile create mode 100644 presidents/vendor/rails/actionpack/install.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/assertions/dom_assertions.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/assertions/model_assertions.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/assertions/response_assertions.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/assertions/routing_assertions.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/assertions/selector_assertions.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/assertions/tag_assertions.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/base.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/benchmarking.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/caching.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/caching/actions.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/caching/fragments.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/caching/pages.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/caching/sweeper.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/caching/sweeping.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/cgi_ext.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/cgi_ext/cookie.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/cgi_ext/query_extension.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/cgi_ext/stdinput.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/cgi_process.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/cookies.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/dispatcher.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/failsafe.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/filters.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/flash.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/headers.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/helpers.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/http_authentication.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/integration.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/layout.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/middleware_stack.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/middlewares.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/mime_responds.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/mime_type.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/mime_types.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/params_parser.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/performance_test.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/polymorphic_routes.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/record_identifier.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/reloader.rb create mode 100755 presidents/vendor/rails/actionpack/lib/action_controller/request.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/request_forgery_protection.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/rescue.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/resources.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/response.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/routing.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/routing/builder.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/routing/optimisations.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/routing/recognition_optimisation.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/routing/route.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/routing/route_set.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/routing/routing_ext.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/routing/segments.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/session/abstract_store.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/session/cookie_store.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/session/mem_cache_store.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/session_management.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/status_codes.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/streaming.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/templates/rescues/_request_and_response.erb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/templates/rescues/_trace.erb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/templates/rescues/diagnostics.erb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/templates/rescues/layout.erb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/templates/rescues/missing_template.erb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/templates/rescues/routing_error.erb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/templates/rescues/template_error.erb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/templates/rescues/unknown_action.erb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/test_case.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/test_process.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/translation.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/uploaded_file.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/url_rewriter.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/document.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/node.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/sanitizer.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/selector.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/tokenizer.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/vendor/html-scanner/html/version.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_controller/verification.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_pack.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_pack/version.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_view.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_view/base.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_view/erb/util.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_view/helpers.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_view/helpers/active_record_helper.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_view/helpers/asset_tag_helper.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_view/helpers/atom_feed_helper.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_view/helpers/benchmark_helper.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_view/helpers/cache_helper.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_view/helpers/capture_helper.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_view/helpers/date_helper.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_view/helpers/debug_helper.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_view/helpers/form_helper.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_view/helpers/form_options_helper.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_view/helpers/form_tag_helper.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_view/helpers/javascript_helper.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_view/helpers/number_helper.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_view/helpers/prototype_helper.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_view/helpers/record_identification_helper.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_view/helpers/record_tag_helper.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_view/helpers/sanitize_helper.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_view/helpers/scriptaculous_helper.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_view/helpers/tag_helper.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_view/helpers/text_helper.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_view/helpers/translation_helper.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_view/helpers/url_helper.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_view/inline_template.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_view/locale/en.yml create mode 100644 presidents/vendor/rails/actionpack/lib/action_view/partials.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_view/paths.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_view/reloadable_template.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_view/renderable.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_view/renderable_partial.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_view/template.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_view/template_error.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_view/template_handler.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_view/template_handlers.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_view/template_handlers/builder.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_view/template_handlers/erb.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_view/template_handlers/rjs.rb create mode 100644 presidents/vendor/rails/actionpack/lib/action_view/test_case.rb create mode 100644 presidents/vendor/rails/actionpack/lib/actionpack.rb create mode 100644 presidents/vendor/rails/actionpack/test/abstract_unit.rb create mode 100644 presidents/vendor/rails/actionpack/test/active_record_unit.rb create mode 100644 presidents/vendor/rails/actionpack/test/activerecord/active_record_store_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/activerecord/render_partial_with_record_identification_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/adv_attr_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/action_pack_assertions_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/addresses_render_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/assert_select_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/base_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/benchmark_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/caching_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/capture_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/content_type_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/controller_fixtures/app/controllers/admin/user_controller.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/controller_fixtures/app/controllers/user_controller.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/controller_fixtures/vendor/plugins/bad_plugin/lib/plugin_controller.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/cookie_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/deprecation/deprecated_base_methods_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/dispatcher_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/failsafe_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/fake_controllers.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/fake_models.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/filter_params_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/filters_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/flash_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/header_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/helper_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/html-scanner/cdata_node_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/html-scanner/document_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/html-scanner/node_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/html-scanner/sanitizer_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/html-scanner/tag_node_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/html-scanner/text_node_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/html-scanner/tokenizer_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/http_basic_authentication_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/http_digest_authentication_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/integration_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/layout_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/logging_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/middleware_stack_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/mime_responds_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/mime_type_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/polymorphic_routes_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/rack_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/record_identifier_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/redirect_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/reloader_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/render_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/request/json_params_parsing_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/request/multipart_params_parsing_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/request/query_string_parsing_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/request/test_request_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/request/url_encoded_params_parsing_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/request/xml_params_parsing_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/request_forgery_protection_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/request_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/rescue_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/resources_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/routing_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/selector_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/send_file_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/session/cookie_store_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/session/mem_cache_store_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/session/test_session_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/test_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/translation_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/url_rewriter_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/verification_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/view_paths_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/controller/webservice_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/_top_level_partial.html.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/_top_level_partial_only.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/addresses/list.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/alternate_helpers/foo_helper.rb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/bad_customers/_bad_customer.html.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/companies.yml create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/company.rb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/content_type/render_default_content_types_for_respond_to.rhtml create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/content_type/render_default_for_rhtml.rhtml create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/content_type/render_default_for_rjs.rjs create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/content_type/render_default_for_rxml.rxml create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/customers/_customer.html.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/db_definitions/sqlite.sql create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/developer.rb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/developers.yml create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/developers/_developer.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/developers_projects.yml create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/failsafe/500.html create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/fun/games/_game.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/fun/games/hello_world.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/fun/serious/games/_game.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/functional_caching/_partial.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/functional_caching/formatted_fragment_cached.html.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/functional_caching/formatted_fragment_cached.js.rjs create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/functional_caching/formatted_fragment_cached.xml.builder create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/functional_caching/fragment_cached.html.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/functional_caching/html_fragment_cached_with_partial.html.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/functional_caching/inline_fragment_cached.html.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/functional_caching/js_fragment_cached_with_partial.js.rjs create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/good_customers/_good_customer.html.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/helpers/abc_helper.rb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/helpers/fun/games_helper.rb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/helpers/fun/pdf_helper.rb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/layout_tests/alt/hello.rhtml create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/layout_tests/alt/layouts/alt.rhtml create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/layout_tests/layouts/controller_name_space/nested.rhtml create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/layout_tests/layouts/item.rhtml create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/layout_tests/layouts/layout_test.rhtml create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/layout_tests/layouts/multiple_extensions.html.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/layout_tests/layouts/third_party_template_library.mab create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/layout_tests/views/hello.rhtml create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/layouts/_column.html.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/layouts/block_with_layout.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/layouts/builder.builder create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/layouts/default_html.html.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/layouts/partial_with_layout.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/layouts/standard.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/layouts/talk_from_action.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/layouts/xhr.html.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/layouts/yield.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/mascot.rb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/mascots.yml create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/mascots/_mascot.html.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/multipart/binary_file create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/multipart/boundary_problem_file create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/multipart/bracketed_param create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/multipart/empty create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/multipart/hello.txt create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/multipart/large_text_file create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/multipart/mixed_files create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/multipart/mona_lisa.jpg create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/multipart/none create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/multipart/single_parameter create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/multipart/text_file create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/override/test/hello_world.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/override2/layouts/test/sub.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/post_test/layouts/post.html.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/post_test/layouts/super_post.iphone.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/post_test/post/index.html.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/post_test/post/index.iphone.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/post_test/super_post/index.html.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/post_test/super_post/index.iphone.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/project.rb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/projects.yml create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/projects/_project.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/public/404.html create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/public/500.da.html create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/public/500.html create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/public/absolute/test.css create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/public/absolute/test.js create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/public/images/rails.png create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/public/javascripts/application.js create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/public/javascripts/bank.js create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/public/javascripts/controls.js create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/public/javascripts/dragdrop.js create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/public/javascripts/effects.js create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/public/javascripts/prototype.js create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/public/javascripts/robber.js create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/public/javascripts/subdir/subdir.js create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/public/javascripts/version.1.0.js create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/public/stylesheets/bank.css create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/public/stylesheets/robber.css create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/public/stylesheets/subdir/subdir.css create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/public/stylesheets/version.1.0.css create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/quiz/questions/_question.html.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/replies.yml create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/replies/_reply.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/reply.rb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/respond_to/all_types_with_layout.html.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/respond_to/all_types_with_layout.js.rjs create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/respond_to/custom_constant_handling_without_block.mobile.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/respond_to/iphone_with_html_response_type.html.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/respond_to/iphone_with_html_response_type.iphone.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/respond_to/layouts/missing.html.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/respond_to/layouts/standard.html.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/respond_to/layouts/standard.iphone.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/respond_to/using_defaults.html.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/respond_to/using_defaults.js.rjs create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/respond_to/using_defaults.xml.builder create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/respond_to/using_defaults_with_type_list.html.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/respond_to/using_defaults_with_type_list.js.rjs create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/respond_to/using_defaults_with_type_list.xml.builder create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/scope/test/modgreet.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/shared.html.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/symlink_parent/symlinked_layout.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/_counter.html.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/_customer.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/_customer_counter.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/_customer_greeting.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/_customer_with_var.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/_form.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/_hash_greeting.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/_hash_object.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/_hello.builder create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/_labelling_form.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/_layout_for_block_with_args.html.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/_layout_for_partial.html.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/_local_inspector.html.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/_one.html.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/_partial.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/_partial.html.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/_partial.js.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/_partial_for_use_in_layout.html.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/_partial_only.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/_partial_with_only_html_version.html.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/_person.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/_raise.html.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/_two.html.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/action_talk_to_layout.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/calling_partial_with_layout.html.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/capturing.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/content_for.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/content_for_concatenated.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/content_for_with_parameter.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/delete_with_js.rjs create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/dont_pick_me create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/dot.directory/render_file_with_ivar.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/enum_rjs_test.rjs create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/formatted_html_erb.html.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/formatted_xml_erb.builder create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/formatted_xml_erb.html.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/formatted_xml_erb.xml.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/greeting.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/greeting.js.rjs create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/hello.builder create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/hello_world.da.html.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/hello_world.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/hello_world.erb~ create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/hello_world.pt-BR.html.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/hello_world_container.builder create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/hello_world_from_rxml.builder create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/hello_world_with_layout_false.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/hello_xml_world.builder create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/hyphen-ated.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/implicit_content_type.atom.builder create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/list.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/malformed/malformed.en.html.erb~ create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/malformed/malformed.erb~ create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/malformed/malformed.html.erb~ create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/nested_layout.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/non_erb_block_content_for.builder create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/potential_conflicts.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/render_explicit_html_template.js.rjs create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/render_file_from_template.html.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/render_file_with_ivar.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/render_file_with_locals.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/render_implicit_html_template.js.rjs create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/render_implicit_html_template_from_xhr_request.da.html.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/render_implicit_html_template_from_xhr_request.html.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/render_implicit_js_template_without_layout.js.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/render_to_string_test.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/sub_template_raise.html.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/template.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/update_element_with_capture.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/using_layout_around_block.html.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/using_layout_around_block_with_args.html.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/test/utf8.html.erb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/topic.rb create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/topics.yml create mode 100644 presidents/vendor/rails/actionpack/test/fixtures/topics/_topic.html.erb create mode 100644 presidents/vendor/rails/actionpack/test/template/active_record_helper_i18n_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/template/active_record_helper_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/template/asset_tag_helper_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/template/atom_feed_helper_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/template/benchmark_helper_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/template/compiled_templates_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/template/date_helper_i18n_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/template/date_helper_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/template/erb_util_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/template/form_helper_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/template/form_options_helper_i18n_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/template/form_options_helper_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/template/form_tag_helper_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/template/javascript_helper_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/template/number_helper_i18n_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/template/number_helper_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/template/prototype_helper_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/template/record_tag_helper_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/template/render_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/template/sanitize_helper_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/template/scriptaculous_helper_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/template/tag_helper_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/template/template_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/template/test_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/template/text_helper_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/template/translation_helper_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/template/url_helper_test.rb create mode 100644 presidents/vendor/rails/actionpack/test/testing_sandbox.rb create mode 100644 presidents/vendor/rails/actionpack/test/view/test_case_test.rb create mode 100644 presidents/vendor/rails/activerecord/CHANGELOG create mode 100644 presidents/vendor/rails/activerecord/README create mode 100644 presidents/vendor/rails/activerecord/RUNNING_UNIT_TESTS create mode 100644 presidents/vendor/rails/activerecord/Rakefile create mode 100644 presidents/vendor/rails/activerecord/examples/associations.png create mode 100755 presidents/vendor/rails/activerecord/examples/performance.rb create mode 100644 presidents/vendor/rails/activerecord/install.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/aggregations.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/association_preload.rb create mode 100755 presidents/vendor/rails/activerecord/lib/active_record/associations.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/associations/association_collection.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/associations/association_proxy.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/associations/belongs_to_association.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/associations/belongs_to_polymorphic_association.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/associations/has_and_belongs_to_many_association.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/associations/has_many_association.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/associations/has_many_through_association.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/associations/has_one_association.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/associations/has_one_through_association.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/attribute_methods.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/autosave_association.rb create mode 100755 presidents/vendor/rails/activerecord/lib/active_record/base.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/batches.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/calculations.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/callbacks.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_specification.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/quoting.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb create mode 100755 presidents/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/dirty.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/dynamic_finder_match.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/dynamic_scope_match.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/fixtures.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/i18n_interpolation_deprecation.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/locale/en.yml create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/locking/optimistic.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/locking/pessimistic.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/migration.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/named_scope.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/nested_attributes.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/observer.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/query_cache.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/reflection.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/schema.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/schema_dumper.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/serialization.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/serializers/json_serializer.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/serializers/xml_serializer.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/session_store.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/test_case.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/timestamp.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/transactions.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/validations.rb create mode 100644 presidents/vendor/rails/activerecord/lib/active_record/version.rb create mode 100644 presidents/vendor/rails/activerecord/lib/activerecord.rb create mode 100644 presidents/vendor/rails/activerecord/test/assets/flowers.jpg create mode 100644 presidents/vendor/rails/activerecord/test/cases/aaa_create_tables_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/active_schema_test_mysql.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/active_schema_test_postgresql.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/adapter_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/aggregations_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/ar_schema_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/associations/belongs_to_associations_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/associations/callbacks_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/associations/cascaded_eager_loading_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/associations/eager_load_includes_full_sti_class_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/associations/eager_load_nested_include_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/associations/eager_singularization_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/associations/eager_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/associations/extension_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/associations/habtm_join_table_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/associations/has_and_belongs_to_many_associations_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/associations/has_many_associations_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/associations/has_many_through_associations_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/associations/has_one_associations_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/associations/has_one_through_associations_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/associations/inner_join_association_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/associations/join_model_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/associations_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/attribute_methods_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/autosave_association_test.rb create mode 100755 presidents/vendor/rails/activerecord/test/cases/base_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/batches_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/binary_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/calculations_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/callbacks_observers_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/callbacks_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/class_inheritable_attributes_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/column_alias_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/column_definition_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/connection_pool_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/connection_test_firebird.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/connection_test_mysql.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/copy_table_test_sqlite.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/database_statements_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/datatype_test_postgresql.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/date_time_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/default_test_firebird.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/defaults_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/deprecated_finder_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/dirty_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/finder_respond_to_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/finder_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/fixtures_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/helper.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/i18n_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/inheritance_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/invalid_date_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/json_serialization_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/lifecycle_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/locking_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/method_scoping_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/migration_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/migration_test_firebird.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/mixin_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/modules_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/multiple_db_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/named_scope_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/nested_attributes_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/pk_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/pooled_connections_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/query_cache_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/readonly_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/reflection_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/reload_models_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/repair_helper.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/reserved_word_test_mysql.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/sanitize_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/schema_authorization_test_postgresql.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/schema_dumper_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/schema_test_postgresql.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/serialization_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/synonym_test_oracle.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/timestamp_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/transactions_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/unconnected_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/validations_i18n_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/validations_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/cases/xml_serialization_test.rb create mode 100644 presidents/vendor/rails/activerecord/test/config.rb create mode 100644 presidents/vendor/rails/activerecord/test/connections/jdbc_jdbcderby/connection.rb create mode 100644 presidents/vendor/rails/activerecord/test/connections/jdbc_jdbch2/connection.rb create mode 100644 presidents/vendor/rails/activerecord/test/connections/jdbc_jdbchsqldb/connection.rb create mode 100644 presidents/vendor/rails/activerecord/test/connections/jdbc_jdbcmysql/connection.rb create mode 100644 presidents/vendor/rails/activerecord/test/connections/jdbc_jdbcpostgresql/connection.rb create mode 100644 presidents/vendor/rails/activerecord/test/connections/jdbc_jdbcsqlite3/connection.rb create mode 100644 presidents/vendor/rails/activerecord/test/connections/native_db2/connection.rb create mode 100644 presidents/vendor/rails/activerecord/test/connections/native_firebird/connection.rb create mode 100644 presidents/vendor/rails/activerecord/test/connections/native_frontbase/connection.rb create mode 100644 presidents/vendor/rails/activerecord/test/connections/native_mysql/connection.rb create mode 100644 presidents/vendor/rails/activerecord/test/connections/native_openbase/connection.rb create mode 100644 presidents/vendor/rails/activerecord/test/connections/native_oracle/connection.rb create mode 100644 presidents/vendor/rails/activerecord/test/connections/native_postgresql/connection.rb create mode 100644 presidents/vendor/rails/activerecord/test/connections/native_sqlite/connection.rb create mode 100644 presidents/vendor/rails/activerecord/test/connections/native_sqlite3/connection.rb create mode 100644 presidents/vendor/rails/activerecord/test/connections/native_sqlite3/in_memory_connection.rb create mode 100644 presidents/vendor/rails/activerecord/test/connections/native_sybase/connection.rb create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/accounts.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/all/developers.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/all/people.csv create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/all/tasks.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/author_addresses.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/author_favorites.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/authors.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/binaries.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/books.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/categories.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/categories/special_categories.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/categories/subsubdir/arbitrary_filename.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/categories_ordered.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/categories_posts.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/categorizations.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/clubs.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/comments.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/companies.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/computers.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/courses.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/customers.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/developers.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/developers_projects.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/edges.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/entrants.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/fixture_database.sqlite create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/fixture_database_2.sqlite create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/fk_test_has_fk.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/fk_test_has_pk.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/funny_jokes.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/items.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/jobs.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/legacy_things.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/mateys.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/member_types.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/members.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/memberships.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/minimalistics.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/mixed_case_monkeys.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/mixins.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/movies.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/naked/csv/accounts.csv create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/naked/yml/accounts.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/naked/yml/companies.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/naked/yml/courses.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/organizations.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/owners.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/parrots.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/parrots_pirates.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/people.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/pets.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/pirates.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/posts.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/price_estimates.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/projects.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/readers.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/references.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/reserved_words/distinct.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/reserved_words/distincts_selects.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/reserved_words/group.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/reserved_words/select.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/reserved_words/values.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/ships.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/sponsors.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/subscribers.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/subscriptions.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/taggings.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/tags.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/tasks.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/topics.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/toys.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/treasures.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/vertices.yml create mode 100644 presidents/vendor/rails/activerecord/test/fixtures/warehouse-things.yml create mode 100644 presidents/vendor/rails/activerecord/test/migrations/broken/100_migration_that_raises_exception.rb create mode 100644 presidents/vendor/rails/activerecord/test/migrations/decimal/1_give_me_big_numbers.rb create mode 100644 presidents/vendor/rails/activerecord/test/migrations/duplicate/1_people_have_last_names.rb create mode 100644 presidents/vendor/rails/activerecord/test/migrations/duplicate/2_we_need_reminders.rb create mode 100644 presidents/vendor/rails/activerecord/test/migrations/duplicate/3_foo.rb create mode 100644 presidents/vendor/rails/activerecord/test/migrations/duplicate/3_innocent_jointable.rb create mode 100644 presidents/vendor/rails/activerecord/test/migrations/duplicate_names/20080507052938_chunky.rb create mode 100644 presidents/vendor/rails/activerecord/test/migrations/duplicate_names/20080507053028_chunky.rb create mode 100644 presidents/vendor/rails/activerecord/test/migrations/interleaved/pass_1/3_innocent_jointable.rb create mode 100644 presidents/vendor/rails/activerecord/test/migrations/interleaved/pass_2/1_people_have_last_names.rb create mode 100644 presidents/vendor/rails/activerecord/test/migrations/interleaved/pass_2/3_innocent_jointable.rb create mode 100644 presidents/vendor/rails/activerecord/test/migrations/interleaved/pass_3/1_people_have_last_names.rb create mode 100644 presidents/vendor/rails/activerecord/test/migrations/interleaved/pass_3/2_i_raise_on_down.rb create mode 100644 presidents/vendor/rails/activerecord/test/migrations/interleaved/pass_3/3_innocent_jointable.rb create mode 100644 presidents/vendor/rails/activerecord/test/migrations/missing/1000_people_have_middle_names.rb create mode 100644 presidents/vendor/rails/activerecord/test/migrations/missing/1_people_have_last_names.rb create mode 100644 presidents/vendor/rails/activerecord/test/migrations/missing/3_we_need_reminders.rb create mode 100644 presidents/vendor/rails/activerecord/test/migrations/missing/4_innocent_jointable.rb create mode 100644 presidents/vendor/rails/activerecord/test/migrations/valid/1_people_have_last_names.rb create mode 100644 presidents/vendor/rails/activerecord/test/migrations/valid/2_we_need_reminders.rb create mode 100644 presidents/vendor/rails/activerecord/test/migrations/valid/3_innocent_jointable.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/author.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/auto_id.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/binary.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/bird.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/book.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/categorization.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/category.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/citation.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/club.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/column_name.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/comment.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/company.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/company_in_module.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/computer.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/contact.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/contract.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/course.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/customer.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/default.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/developer.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/edge.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/entrant.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/essay.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/event.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/guid.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/item.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/job.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/joke.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/keyboard.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/legacy_thing.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/matey.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/member.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/member_detail.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/member_type.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/membership.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/minimalistic.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/mixed_case_monkey.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/movie.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/order.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/organization.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/owner.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/parrot.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/person.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/pet.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/pirate.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/post.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/price_estimate.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/project.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/reader.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/reference.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/reply.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/ship.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/ship_part.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/sponsor.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/subject.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/subscriber.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/subscription.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/tag.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/tagging.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/task.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/topic.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/toy.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/treasure.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/vertex.rb create mode 100644 presidents/vendor/rails/activerecord/test/models/warehouse_thing.rb create mode 100644 presidents/vendor/rails/activerecord/test/schema/mysql_specific_schema.rb create mode 100644 presidents/vendor/rails/activerecord/test/schema/postgresql_specific_schema.rb create mode 100644 presidents/vendor/rails/activerecord/test/schema/schema.rb create mode 100644 presidents/vendor/rails/activerecord/test/schema/schema2.rb create mode 100644 presidents/vendor/rails/activerecord/test/schema/sqlite_specific_schema.rb create mode 100644 presidents/vendor/rails/activeresource/CHANGELOG create mode 100644 presidents/vendor/rails/activeresource/README create mode 100644 presidents/vendor/rails/activeresource/Rakefile create mode 100644 presidents/vendor/rails/activeresource/lib/active_resource.rb create mode 100644 presidents/vendor/rails/activeresource/lib/active_resource/base.rb create mode 100644 presidents/vendor/rails/activeresource/lib/active_resource/connection.rb create mode 100644 presidents/vendor/rails/activeresource/lib/active_resource/custom_methods.rb create mode 100644 presidents/vendor/rails/activeresource/lib/active_resource/exceptions.rb create mode 100644 presidents/vendor/rails/activeresource/lib/active_resource/formats.rb create mode 100644 presidents/vendor/rails/activeresource/lib/active_resource/formats/json_format.rb create mode 100644 presidents/vendor/rails/activeresource/lib/active_resource/formats/xml_format.rb create mode 100644 presidents/vendor/rails/activeresource/lib/active_resource/http_mock.rb create mode 100644 presidents/vendor/rails/activeresource/lib/active_resource/validations.rb create mode 100644 presidents/vendor/rails/activeresource/lib/active_resource/version.rb create mode 100644 presidents/vendor/rails/activeresource/lib/activeresource.rb create mode 100644 presidents/vendor/rails/activeresource/test/abstract_unit.rb create mode 100644 presidents/vendor/rails/activeresource/test/authorization_test.rb create mode 100644 presidents/vendor/rails/activeresource/test/base/custom_methods_test.rb create mode 100644 presidents/vendor/rails/activeresource/test/base/equality_test.rb create mode 100644 presidents/vendor/rails/activeresource/test/base/load_test.rb create mode 100644 presidents/vendor/rails/activeresource/test/base_errors_test.rb create mode 100644 presidents/vendor/rails/activeresource/test/base_test.rb create mode 100644 presidents/vendor/rails/activeresource/test/connection_test.rb create mode 100644 presidents/vendor/rails/activeresource/test/fixtures/beast.rb create mode 100644 presidents/vendor/rails/activeresource/test/fixtures/customer.rb create mode 100644 presidents/vendor/rails/activeresource/test/fixtures/person.rb create mode 100644 presidents/vendor/rails/activeresource/test/fixtures/proxy.rb create mode 100644 presidents/vendor/rails/activeresource/test/fixtures/street_address.rb create mode 100644 presidents/vendor/rails/activeresource/test/format_test.rb create mode 100644 presidents/vendor/rails/activeresource/test/setter_trap.rb create mode 100644 presidents/vendor/rails/activesupport/CHANGELOG create mode 100644 presidents/vendor/rails/activesupport/README create mode 100644 presidents/vendor/rails/activesupport/lib/active_support.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/all.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/backtrace_cleaner.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/base64.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/basic_object.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/buffered_logger.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/cache.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/cache/compressed_mem_cache_store.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/cache/drb_store.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/cache/file_store.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/cache/mem_cache_store.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/cache/memory_store.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/cache/strategy/local_cache.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/cache/synchronized_memory_store.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/callbacks.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/array.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/array/access.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/array/conversions.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/array/extract_options.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/array/grouping.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/array/random_access.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/array/wrapper.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/base64.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/base64/encoding.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/benchmark.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/bigdecimal.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/bigdecimal/conversions.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/blank.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/cgi.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/cgi/escape_skipping_slashes.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/class.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/class/attribute_accessors.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/class/delegating_attributes.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/class/inheritable_attributes.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/class/removal.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/date.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/date/behavior.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/date/calculations.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/date/conversions.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/date_time.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/date_time/calculations.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/date_time/conversions.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/duplicable.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/enumerable.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/exception.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/file.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/file/atomic.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/float.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/float/rounding.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/float/time.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/hash.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/hash/conversions.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/hash/deep_merge.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/hash/diff.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/hash/except.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/hash/keys.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/hash/reverse_merge.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/hash/slice.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/integer.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/integer/even_odd.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/integer/inflections.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/integer/time.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/kernel.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/kernel/agnostics.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/kernel/daemonizing.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/kernel/debugger.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/kernel/reporting.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/kernel/requires.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/load_error.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/logger.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/module.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/module/aliasing.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/module/attr_accessor_with_default.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/module/attr_internal.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/module/attribute_accessors.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/module/delegation.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/module/inclusion.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/module/introspection.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/module/loading.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/module/model_naming.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/module/synchronization.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/name_error.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/numeric.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/numeric/bytes.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/numeric/conversions.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/numeric/time.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/object.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/object/conversions.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/object/extending.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/object/instance_variables.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/object/metaclass.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/object/misc.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/pathname.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/pathname/clean_within.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/proc.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/process.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/process/daemon.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/range.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/range/blockless_step.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/range/conversions.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/range/include_range.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/range/overlaps.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/rexml.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/string.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/string/access.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/string/behavior.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/string/bytesize.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/string/conversions.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/string/filters.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/string/inflections.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/string/iterators.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/string/multibyte.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/string/starts_ends_with.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/string/xchar.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/symbol.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/time.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/time/behavior.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/time/calculations.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/time/conversions.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/time/zones.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/try.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/core_ext/uri.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/dependencies.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/deprecation.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/duration.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/gzip.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/inflections.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/inflector.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/json.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/json/backends/jsongem.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/json/backends/yaml.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/json/decoding.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/json/encoders/date.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/json/encoders/date_time.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/json/encoders/enumerable.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/json/encoders/false_class.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/json/encoders/hash.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/json/encoders/nil_class.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/json/encoders/numeric.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/json/encoders/object.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/json/encoders/regexp.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/json/encoders/string.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/json/encoders/symbol.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/json/encoders/time.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/json/encoders/true_class.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/json/encoding.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/json/variable.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/locale/en.yml create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/memoizable.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/message_encryptor.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/message_verifier.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/multibyte.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/multibyte/chars.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/multibyte/exceptions.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/multibyte/unicode_database.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/multibyte/utils.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/option_merger.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/ordered_hash.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/ordered_options.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/rescuable.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/secure_random.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/string_inquirer.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/test_case.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/testing/assertions.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/testing/declarative.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/testing/default.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/testing/deprecation.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/testing/performance.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/testing/setup_and_teardown.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/time_with_zone.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/values/time_zone.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/values/unicode_tables.dat create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/blankslate.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/builder.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/builder/blankslate.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/builder/css.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/builder/xchar.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/builder/xmlbase.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/builder/xmlevents.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/builder/xmlmarkup.rb create mode 100755 presidents/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/MIT-LICENSE create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/README.textile create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/Rakefile create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/i18n.gemspec create mode 100755 presidents/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/lib/i18n.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/lib/i18n/backend/simple.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/lib/i18n/exceptions.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/test/all.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/test/i18n_exceptions_test.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/test/i18n_test.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/test/locale/en.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/test/locale/en.yml create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/i18n-0.1.3/test/simple_backend_test.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/memcache-client-1.7.4/memcache.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/data_timezone.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/data_timezone_info.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Algiers.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Cairo.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Casablanca.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Harare.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Johannesburg.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Monrovia.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Nairobi.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Argentina/Buenos_Aires.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Argentina/San_Juan.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Bogota.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Caracas.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Chicago.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Chihuahua.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Denver.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Godthab.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Guatemala.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Halifax.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Indiana/Indianapolis.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Juneau.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/La_Paz.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Lima.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Los_Angeles.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Mazatlan.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Mexico_City.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Monterrey.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/New_York.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Phoenix.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Regina.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Santiago.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Sao_Paulo.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/St_Johns.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Tijuana.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Almaty.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Baghdad.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Baku.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Bangkok.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Chongqing.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Colombo.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Dhaka.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Hong_Kong.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Irkutsk.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Jakarta.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Jerusalem.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kabul.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kamchatka.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Karachi.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Katmandu.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kolkata.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Krasnoyarsk.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kuala_Lumpur.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kuwait.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Magadan.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Muscat.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Novosibirsk.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Rangoon.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Riyadh.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Seoul.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Shanghai.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Singapore.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Taipei.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Tashkent.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Tbilisi.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Tehran.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Tokyo.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Ulaanbaatar.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Urumqi.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Vladivostok.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Yakutsk.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Yekaterinburg.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Yerevan.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Atlantic/Azores.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Atlantic/Cape_Verde.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Atlantic/South_Georgia.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Adelaide.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Brisbane.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Darwin.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Hobart.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Melbourne.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Perth.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Sydney.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Etc/UTC.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Amsterdam.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Athens.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Belgrade.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Berlin.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Bratislava.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Brussels.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Bucharest.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Budapest.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Copenhagen.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Dublin.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Helsinki.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Istanbul.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Kiev.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Lisbon.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Ljubljana.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/London.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Madrid.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Minsk.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Moscow.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Paris.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Prague.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Riga.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Rome.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Sarajevo.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Skopje.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Sofia.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Stockholm.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Tallinn.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Vienna.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Vilnius.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Warsaw.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Zagreb.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Auckland.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Fiji.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Guam.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Honolulu.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Majuro.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Midway.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Noumea.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Pago_Pago.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Port_Moresby.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Tongatapu.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/info_timezone.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/linked_timezone.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/linked_timezone_info.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/offset_rationals.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/ruby_core_support.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/time_or_datetime.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_definition.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_info.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_offset_info.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_period.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_transition_info.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/version.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/whiny_nil.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/xml_mini.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/xml_mini/jdom.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/xml_mini/libxml.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/xml_mini/nokogiri.rb create mode 100644 presidents/vendor/rails/activesupport/lib/active_support/xml_mini/rexml.rb create mode 100644 presidents/vendor/rails/activesupport/lib/activesupport.rb create mode 100644 presidents/vendor/rails/railties/CHANGELOG create mode 100644 presidents/vendor/rails/railties/MIT-LICENSE create mode 100644 presidents/vendor/rails/railties/README create mode 100644 presidents/vendor/rails/railties/Rakefile create mode 100755 presidents/vendor/rails/railties/bin/about create mode 100755 presidents/vendor/rails/railties/bin/console create mode 100755 presidents/vendor/rails/railties/bin/dbconsole create mode 100755 presidents/vendor/rails/railties/bin/destroy create mode 100755 presidents/vendor/rails/railties/bin/generate create mode 100755 presidents/vendor/rails/railties/bin/performance/benchmarker create mode 100755 presidents/vendor/rails/railties/bin/performance/profiler create mode 100755 presidents/vendor/rails/railties/bin/plugin create mode 100755 presidents/vendor/rails/railties/bin/rails create mode 100755 presidents/vendor/rails/railties/bin/runner create mode 100755 presidents/vendor/rails/railties/bin/server create mode 100644 presidents/vendor/rails/railties/builtin/rails_info/rails/info.rb create mode 100644 presidents/vendor/rails/railties/builtin/rails_info/rails/info_controller.rb create mode 100644 presidents/vendor/rails/railties/builtin/rails_info/rails/info_helper.rb create mode 100644 presidents/vendor/rails/railties/builtin/rails_info/rails_info_controller.rb create mode 100644 presidents/vendor/rails/railties/configs/databases/frontbase.yml create mode 100644 presidents/vendor/rails/railties/configs/databases/ibm_db.yml create mode 100644 presidents/vendor/rails/railties/configs/databases/mysql.yml create mode 100644 presidents/vendor/rails/railties/configs/databases/oracle.yml create mode 100644 presidents/vendor/rails/railties/configs/databases/postgresql.yml create mode 100644 presidents/vendor/rails/railties/configs/databases/sqlite2.yml create mode 100644 presidents/vendor/rails/railties/configs/databases/sqlite3.yml create mode 100644 presidents/vendor/rails/railties/configs/initializers/backtrace_silencers.rb create mode 100644 presidents/vendor/rails/railties/configs/initializers/inflections.rb create mode 100644 presidents/vendor/rails/railties/configs/initializers/mime_types.rb create mode 100644 presidents/vendor/rails/railties/configs/initializers/new_rails_defaults.rb create mode 100644 presidents/vendor/rails/railties/configs/initializers/session_store.rb create mode 100644 presidents/vendor/rails/railties/configs/locales/en.yml create mode 100644 presidents/vendor/rails/railties/configs/routes.rb create mode 100644 presidents/vendor/rails/railties/configs/seeds.rb create mode 100644 presidents/vendor/rails/railties/dispatches/config.ru create mode 100755 presidents/vendor/rails/railties/dispatches/dispatch.fcgi create mode 100755 presidents/vendor/rails/railties/dispatches/dispatch.rb create mode 100755 presidents/vendor/rails/railties/dispatches/gateway.cgi create mode 100644 presidents/vendor/rails/railties/doc/README_FOR_APP create mode 100644 presidents/vendor/rails/railties/environments/boot.rb create mode 100644 presidents/vendor/rails/railties/environments/development.rb create mode 100644 presidents/vendor/rails/railties/environments/environment.rb create mode 100644 presidents/vendor/rails/railties/environments/production.rb create mode 100644 presidents/vendor/rails/railties/environments/test.rb create mode 100755 presidents/vendor/rails/railties/fresh_rakefile create mode 100755 presidents/vendor/rails/railties/guides/files/javascripts/code_highlighter.js create mode 100755 presidents/vendor/rails/railties/guides/files/javascripts/guides.js create mode 100644 presidents/vendor/rails/railties/guides/files/javascripts/highlighters.js create mode 100644 presidents/vendor/rails/railties/guides/files/stylesheets/main.css create mode 100755 presidents/vendor/rails/railties/guides/files/stylesheets/print.css create mode 100755 presidents/vendor/rails/railties/guides/files/stylesheets/reset.css create mode 100755 presidents/vendor/rails/railties/guides/files/stylesheets/style.css create mode 100644 presidents/vendor/rails/railties/guides/files/stylesheets/syntax.css create mode 100644 presidents/vendor/rails/railties/guides/images/belongs_to.png create mode 100644 presidents/vendor/rails/railties/guides/images/book_icon.gif create mode 100644 presidents/vendor/rails/railties/guides/images/bullet.gif create mode 100644 presidents/vendor/rails/railties/guides/images/chapters_icon.gif create mode 100644 presidents/vendor/rails/railties/guides/images/check_bullet.gif create mode 100644 presidents/vendor/rails/railties/guides/images/credits_pic_blank.gif create mode 100644 presidents/vendor/rails/railties/guides/images/csrf.png create mode 100644 presidents/vendor/rails/railties/guides/images/customized_error_messages.png create mode 100644 presidents/vendor/rails/railties/guides/images/error_messages.png create mode 100644 presidents/vendor/rails/railties/guides/images/feature_tile.gif create mode 100644 presidents/vendor/rails/railties/guides/images/footer_tile.gif create mode 100644 presidents/vendor/rails/railties/guides/images/fxn.jpg create mode 100644 presidents/vendor/rails/railties/guides/images/grey_bullet.gif create mode 100644 presidents/vendor/rails/railties/guides/images/habtm.png create mode 100644 presidents/vendor/rails/railties/guides/images/has_many.png create mode 100644 presidents/vendor/rails/railties/guides/images/has_many_through.png create mode 100644 presidents/vendor/rails/railties/guides/images/has_one.png create mode 100644 presidents/vendor/rails/railties/guides/images/has_one_through.png create mode 100644 presidents/vendor/rails/railties/guides/images/header_backdrop.png create mode 100644 presidents/vendor/rails/railties/guides/images/header_tile.gif create mode 100644 presidents/vendor/rails/railties/guides/images/i18n/demo_localized_pirate.png create mode 100644 presidents/vendor/rails/railties/guides/images/i18n/demo_translated_en.png create mode 100644 presidents/vendor/rails/railties/guides/images/i18n/demo_translated_pirate.png create mode 100644 presidents/vendor/rails/railties/guides/images/i18n/demo_translation_missing.png create mode 100644 presidents/vendor/rails/railties/guides/images/i18n/demo_untranslated.png create mode 100644 presidents/vendor/rails/railties/guides/images/icons/README create mode 100644 presidents/vendor/rails/railties/guides/images/icons/callouts/1.png create mode 100644 presidents/vendor/rails/railties/guides/images/icons/callouts/10.png create mode 100644 presidents/vendor/rails/railties/guides/images/icons/callouts/11.png create mode 100644 presidents/vendor/rails/railties/guides/images/icons/callouts/12.png create mode 100644 presidents/vendor/rails/railties/guides/images/icons/callouts/13.png create mode 100644 presidents/vendor/rails/railties/guides/images/icons/callouts/14.png create mode 100644 presidents/vendor/rails/railties/guides/images/icons/callouts/15.png create mode 100644 presidents/vendor/rails/railties/guides/images/icons/callouts/2.png create mode 100644 presidents/vendor/rails/railties/guides/images/icons/callouts/3.png create mode 100644 presidents/vendor/rails/railties/guides/images/icons/callouts/4.png create mode 100644 presidents/vendor/rails/railties/guides/images/icons/callouts/5.png create mode 100644 presidents/vendor/rails/railties/guides/images/icons/callouts/6.png create mode 100644 presidents/vendor/rails/railties/guides/images/icons/callouts/7.png create mode 100644 presidents/vendor/rails/railties/guides/images/icons/callouts/8.png create mode 100644 presidents/vendor/rails/railties/guides/images/icons/callouts/9.png create mode 100644 presidents/vendor/rails/railties/guides/images/icons/caution.png create mode 100644 presidents/vendor/rails/railties/guides/images/icons/example.png create mode 100644 presidents/vendor/rails/railties/guides/images/icons/home.png create mode 100644 presidents/vendor/rails/railties/guides/images/icons/important.png create mode 100644 presidents/vendor/rails/railties/guides/images/icons/next.png create mode 100644 presidents/vendor/rails/railties/guides/images/icons/note.png create mode 100644 presidents/vendor/rails/railties/guides/images/icons/prev.png create mode 100644 presidents/vendor/rails/railties/guides/images/icons/tip.png create mode 100644 presidents/vendor/rails/railties/guides/images/icons/up.png create mode 100644 presidents/vendor/rails/railties/guides/images/icons/warning.png create mode 100644 presidents/vendor/rails/railties/guides/images/nav_arrow.gif create mode 100644 presidents/vendor/rails/railties/guides/images/polymorphic.png create mode 100644 presidents/vendor/rails/railties/guides/images/posts_index.png create mode 100644 presidents/vendor/rails/railties/guides/images/rails_guides_logo.gif create mode 100644 presidents/vendor/rails/railties/guides/images/rails_logo_remix.gif create mode 100644 presidents/vendor/rails/railties/guides/images/rails_welcome.png create mode 100644 presidents/vendor/rails/railties/guides/images/session_fixation.png create mode 100644 presidents/vendor/rails/railties/guides/images/tab_grey.gif create mode 100644 presidents/vendor/rails/railties/guides/images/tab_info.gif create mode 100644 presidents/vendor/rails/railties/guides/images/tab_note.gif create mode 100644 presidents/vendor/rails/railties/guides/images/tab_red.gif create mode 100644 presidents/vendor/rails/railties/guides/images/tab_yellow.gif create mode 100644 presidents/vendor/rails/railties/guides/images/tab_yellow.png create mode 100644 presidents/vendor/rails/railties/guides/images/validation_error_messages.png create mode 100644 presidents/vendor/rails/railties/guides/rails_guides.rb create mode 100644 presidents/vendor/rails/railties/guides/rails_guides/generator.rb create mode 100644 presidents/vendor/rails/railties/guides/rails_guides/helpers.rb create mode 100644 presidents/vendor/rails/railties/guides/rails_guides/indexer.rb create mode 100644 presidents/vendor/rails/railties/guides/rails_guides/textile_extensions.rb create mode 100644 presidents/vendor/rails/railties/guides/source/2_2_release_notes.textile create mode 100644 presidents/vendor/rails/railties/guides/source/2_3_release_notes.textile create mode 100644 presidents/vendor/rails/railties/guides/source/action_controller_overview.textile create mode 100644 presidents/vendor/rails/railties/guides/source/action_mailer_basics.textile create mode 100644 presidents/vendor/rails/railties/guides/source/active_record_basics.textile create mode 100644 presidents/vendor/rails/railties/guides/source/active_record_querying.textile create mode 100644 presidents/vendor/rails/railties/guides/source/activerecord_validations_callbacks.textile create mode 100644 presidents/vendor/rails/railties/guides/source/association_basics.textile create mode 100644 presidents/vendor/rails/railties/guides/source/caching_with_rails.textile create mode 100644 presidents/vendor/rails/railties/guides/source/command_line.textile create mode 100644 presidents/vendor/rails/railties/guides/source/configuring.textile create mode 100644 presidents/vendor/rails/railties/guides/source/contribute.textile create mode 100644 presidents/vendor/rails/railties/guides/source/contributing_to_rails.textile create mode 100644 presidents/vendor/rails/railties/guides/source/credits.erb.textile create mode 100644 presidents/vendor/rails/railties/guides/source/debugging_rails_applications.textile create mode 100644 presidents/vendor/rails/railties/guides/source/form_helpers.textile create mode 100644 presidents/vendor/rails/railties/guides/source/getting_started.textile create mode 100644 presidents/vendor/rails/railties/guides/source/i18n.textile create mode 100644 presidents/vendor/rails/railties/guides/source/index.erb.textile create mode 100644 presidents/vendor/rails/railties/guides/source/layout.html.erb create mode 100644 presidents/vendor/rails/railties/guides/source/layouts_and_rendering.textile create mode 100644 presidents/vendor/rails/railties/guides/source/migrations.textile create mode 100644 presidents/vendor/rails/railties/guides/source/nested_model_forms.textile create mode 100644 presidents/vendor/rails/railties/guides/source/performance_testing.textile create mode 100644 presidents/vendor/rails/railties/guides/source/plugins.textile create mode 100644 presidents/vendor/rails/railties/guides/source/rails_on_rack.textile create mode 100644 presidents/vendor/rails/railties/guides/source/routing.textile create mode 100644 presidents/vendor/rails/railties/guides/source/security.textile create mode 100644 presidents/vendor/rails/railties/guides/source/testing.textile create mode 100644 presidents/vendor/rails/railties/helpers/application_controller.rb create mode 100644 presidents/vendor/rails/railties/helpers/application_helper.rb create mode 100644 presidents/vendor/rails/railties/helpers/performance_test.rb create mode 100644 presidents/vendor/rails/railties/helpers/test_helper.rb create mode 100644 presidents/vendor/rails/railties/html/404.html create mode 100644 presidents/vendor/rails/railties/html/422.html create mode 100644 presidents/vendor/rails/railties/html/500.html create mode 100644 presidents/vendor/rails/railties/html/favicon.ico create mode 100644 presidents/vendor/rails/railties/html/images/rails.png create mode 100644 presidents/vendor/rails/railties/html/index.html create mode 100644 presidents/vendor/rails/railties/html/javascripts/application.js create mode 100644 presidents/vendor/rails/railties/html/javascripts/controls.js create mode 100644 presidents/vendor/rails/railties/html/javascripts/dragdrop.js create mode 100644 presidents/vendor/rails/railties/html/javascripts/effects.js create mode 100644 presidents/vendor/rails/railties/html/javascripts/prototype.js create mode 100644 presidents/vendor/rails/railties/html/robots.txt create mode 100644 presidents/vendor/rails/railties/lib/code_statistics.rb create mode 100644 presidents/vendor/rails/railties/lib/commands.rb create mode 100644 presidents/vendor/rails/railties/lib/commands/about.rb create mode 100644 presidents/vendor/rails/railties/lib/commands/console.rb create mode 100644 presidents/vendor/rails/railties/lib/commands/dbconsole.rb create mode 100644 presidents/vendor/rails/railties/lib/commands/destroy.rb create mode 100755 presidents/vendor/rails/railties/lib/commands/generate.rb create mode 100755 presidents/vendor/rails/railties/lib/commands/ncgi/listener create mode 100755 presidents/vendor/rails/railties/lib/commands/ncgi/tracker create mode 100644 presidents/vendor/rails/railties/lib/commands/performance/benchmarker.rb create mode 100644 presidents/vendor/rails/railties/lib/commands/performance/profiler.rb create mode 100644 presidents/vendor/rails/railties/lib/commands/plugin.rb create mode 100644 presidents/vendor/rails/railties/lib/commands/runner.rb create mode 100644 presidents/vendor/rails/railties/lib/commands/server.rb create mode 100644 presidents/vendor/rails/railties/lib/commands/update.rb create mode 100644 presidents/vendor/rails/railties/lib/console_app.rb create mode 100644 presidents/vendor/rails/railties/lib/console_sandbox.rb create mode 100644 presidents/vendor/rails/railties/lib/console_with_helpers.rb create mode 100644 presidents/vendor/rails/railties/lib/dispatcher.rb create mode 100644 presidents/vendor/rails/railties/lib/fcgi_handler.rb create mode 100644 presidents/vendor/rails/railties/lib/initializer.rb create mode 100644 presidents/vendor/rails/railties/lib/performance_test_help.rb create mode 100644 presidents/vendor/rails/railties/lib/rails/backtrace_cleaner.rb create mode 100644 presidents/vendor/rails/railties/lib/rails/gem_builder.rb create mode 100644 presidents/vendor/rails/railties/lib/rails/gem_dependency.rb create mode 100644 presidents/vendor/rails/railties/lib/rails/plugin.rb create mode 100644 presidents/vendor/rails/railties/lib/rails/plugin/loader.rb create mode 100644 presidents/vendor/rails/railties/lib/rails/plugin/locator.rb create mode 100644 presidents/vendor/rails/railties/lib/rails/rack.rb create mode 100644 presidents/vendor/rails/railties/lib/rails/rack/debugger.rb create mode 100644 presidents/vendor/rails/railties/lib/rails/rack/log_tailer.rb create mode 100644 presidents/vendor/rails/railties/lib/rails/rack/metal.rb create mode 100644 presidents/vendor/rails/railties/lib/rails/rack/static.rb create mode 100644 presidents/vendor/rails/railties/lib/rails/vendor_gem_source_index.rb create mode 100644 presidents/vendor/rails/railties/lib/rails/version.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/base.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/commands.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generated_attribute.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/applications/app/USAGE create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/applications/app/app_generator.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/applications/app/scm/git.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/applications/app/scm/scm.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/applications/app/scm/svn.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/applications/app/template_runner.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/controller/USAGE create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/controller/controller_generator.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/controller/templates/controller.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/controller/templates/functional_test.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/controller/templates/helper.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/controller/templates/helper_test.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/controller/templates/view.html.erb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/helper/USAGE create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/helper/helper_generator.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/helper/templates/helper.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/helper/templates/helper_test.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/integration_test/USAGE create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/integration_test/integration_test_generator.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/integration_test/templates/integration_test.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/mailer/USAGE create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/mailer/mailer_generator.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/mailer/templates/fixture.erb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/mailer/templates/fixture.rhtml create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/mailer/templates/mailer.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/mailer/templates/unit_test.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/mailer/templates/view.erb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/mailer/templates/view.rhtml create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/metal/USAGE create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/metal/metal_generator.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/metal/templates/metal.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/migration/USAGE create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/migration/migration_generator.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/migration/templates/migration.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/model/USAGE create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/model/model_generator.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/model/templates/fixtures.yml create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/model/templates/migration.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/model/templates/model.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/model/templates/unit_test.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/observer/USAGE create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/observer/observer_generator.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/observer/templates/observer.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/observer/templates/unit_test.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/performance_test/USAGE create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/performance_test/performance_test_generator.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/performance_test/templates/performance_test.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/plugin/USAGE create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/plugin/plugin_generator.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/MIT-LICENSE create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/README create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/Rakefile create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/USAGE create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/generator.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/init.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/install.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/plugin.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/tasks.rake create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/test_helper.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/uninstall.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/plugin/templates/unit_test.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/resource/USAGE create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/resource/resource_generator.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/resource/templates/controller.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/resource/templates/functional_test.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/resource/templates/helper.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/resource/templates/helper_test.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/USAGE create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/scaffold_generator.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/controller.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/functional_test.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/helper.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/helper_test.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/layout.html.erb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/style.css create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/view_edit.html.erb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/view_index.html.erb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/view_new.html.erb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/scaffold/templates/view_show.html.erb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/session_migration/USAGE create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/session_migration/session_migration_generator.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/generators/components/session_migration/templates/migration.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/lookup.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/manifest.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/options.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/scripts.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/scripts/destroy.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/scripts/generate.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/scripts/update.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/secret_key_generator.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/simple_logger.rb create mode 100644 presidents/vendor/rails/railties/lib/rails_generator/spec.rb create mode 100644 presidents/vendor/rails/railties/lib/railties_path.rb create mode 100644 presidents/vendor/rails/railties/lib/ruby_version_check.rb create mode 100644 presidents/vendor/rails/railties/lib/rubyprof_ext.rb create mode 100644 presidents/vendor/rails/railties/lib/source_annotation_extractor.rb create mode 100644 presidents/vendor/rails/railties/lib/tasks/annotations.rake create mode 100644 presidents/vendor/rails/railties/lib/tasks/databases.rake create mode 100644 presidents/vendor/rails/railties/lib/tasks/documentation.rake create mode 100644 presidents/vendor/rails/railties/lib/tasks/framework.rake create mode 100644 presidents/vendor/rails/railties/lib/tasks/gems.rake create mode 100644 presidents/vendor/rails/railties/lib/tasks/log.rake create mode 100644 presidents/vendor/rails/railties/lib/tasks/middleware.rake create mode 100644 presidents/vendor/rails/railties/lib/tasks/misc.rake create mode 100644 presidents/vendor/rails/railties/lib/tasks/rails.rb create mode 100644 presidents/vendor/rails/railties/lib/tasks/routes.rake create mode 100644 presidents/vendor/rails/railties/lib/tasks/statistics.rake create mode 100644 presidents/vendor/rails/railties/lib/tasks/testing.rake create mode 100644 presidents/vendor/rails/railties/lib/tasks/tmp.rake create mode 100644 presidents/vendor/rails/railties/lib/test_help.rb create mode 100644 presidents/vendor/rails/railties/lib/webrick_server.rb diff --git a/presidents/README b/presidents/README new file mode 100644 index 0000000..37ec8ea --- /dev/null +++ b/presidents/README @@ -0,0 +1,243 @@ +== Welcome to Rails + +Rails is a web-application framework that includes everything needed to create +database-backed web applications according to the Model-View-Control pattern. + +This pattern splits the view (also called the presentation) into "dumb" templates +that are primarily responsible for inserting pre-built data in between HTML tags. +The model contains the "smart" domain objects (such as Account, Product, Person, +Post) that holds all the business logic and knows how to persist themselves to +a database. The controller handles the incoming requests (such as Save New Account, +Update Product, Show Post) by manipulating the model and directing data to the view. + +In Rails, the model is handled by what's called an object-relational mapping +layer entitled Active Record. This layer allows you to present the data from +database rows as objects and embellish these data objects with business logic +methods. You can read more about Active Record in +link:files/vendor/rails/activerecord/README.html. + +The controller and view are handled by the Action Pack, which handles both +layers by its two parts: Action View and Action Controller. These two layers +are bundled in a single package due to their heavy interdependence. This is +unlike the relationship between the Active Record and Action Pack that is much +more separate. Each of these packages can be used independently outside of +Rails. You can read more about Action Pack in +link:files/vendor/rails/actionpack/README.html. + + +== Getting Started + +1. At the command prompt, start a new Rails application using the rails command + and your application name. Ex: rails myapp +2. Change directory into myapp and start the web server: script/server (run with --help for options) +3. Go to http://localhost:3000/ and get "Welcome aboard: You're riding the Rails!" +4. Follow the guidelines to start developing your application + + +== Web Servers + +By default, Rails will try to use Mongrel if it's are installed when started with script/server, otherwise Rails will use WEBrick, the webserver that ships with Ruby. But you can also use Rails +with a variety of other web servers. + +Mongrel is a Ruby-based webserver with a C component (which requires compilation) that is +suitable for development and deployment of Rails applications. If you have Ruby Gems installed, +getting up and running with mongrel is as easy as: gem install mongrel. +More info at: http://mongrel.rubyforge.org + +Say other Ruby web servers like Thin and Ebb or regular web servers like Apache or LiteSpeed or +Lighttpd or IIS. The Ruby web servers are run through Rack and the latter can either be setup to use +FCGI or proxy to a pack of Mongrels/Thin/Ebb servers. + +== Apache .htaccess example for FCGI/CGI + +# General Apache options +AddHandler fastcgi-script .fcgi +AddHandler cgi-script .cgi +Options +FollowSymLinks +ExecCGI + +# If you don't want Rails to look in certain directories, +# use the following rewrite rules so that Apache won't rewrite certain requests +# +# Example: +# RewriteCond %{REQUEST_URI} ^/notrails.* +# RewriteRule .* - [L] + +# Redirect all requests not available on the filesystem to Rails +# By default the cgi dispatcher is used which is very slow +# +# For better performance replace the dispatcher with the fastcgi one +# +# Example: +# RewriteRule ^(.*)$ dispatch.fcgi [QSA,L] +RewriteEngine On + +# If your Rails application is accessed via an Alias directive, +# then you MUST also set the RewriteBase in this htaccess file. +# +# Example: +# Alias /myrailsapp /path/to/myrailsapp/public +# RewriteBase /myrailsapp + +RewriteRule ^$ index.html [QSA] +RewriteRule ^([^.]+)$ $1.html [QSA] +RewriteCond %{REQUEST_FILENAME} !-f +RewriteRule ^(.*)$ dispatch.cgi [QSA,L] + +# In case Rails experiences terminal errors +# Instead of displaying this message you can supply a file here which will be rendered instead +# +# Example: +# ErrorDocument 500 /500.html + +ErrorDocument 500 "

Application error

Rails application failed to start properly" + + +== Debugging Rails + +Sometimes your application goes wrong. Fortunately there are a lot of tools that +will help you debug it and get it back on the rails. + +First area to check is the application log files. Have "tail -f" commands running +on the server.log and development.log. Rails will automatically display debugging +and runtime information to these files. Debugging info will also be shown in the +browser on requests from 127.0.0.1. + +You can also log your own messages directly into the log file from your code using +the Ruby logger class from inside your controllers. Example: + + class WeblogController < ActionController::Base + def destroy + @weblog = Weblog.find(params[:id]) + @weblog.destroy + logger.info("#{Time.now} Destroyed Weblog ID ##{@weblog.id}!") + end + end + +The result will be a message in your log file along the lines of: + + Mon Oct 08 14:22:29 +1000 2007 Destroyed Weblog ID #1 + +More information on how to use the logger is at http://www.ruby-doc.org/core/ + +Also, Ruby documentation can be found at http://www.ruby-lang.org/ including: + +* The Learning Ruby (Pickaxe) Book: http://www.ruby-doc.org/docs/ProgrammingRuby/ +* Learn to Program: http://pine.fm/LearnToProgram/ (a beginners guide) + +These two online (and free) books will bring you up to speed on the Ruby language +and also on programming in general. + + +== Debugger + +Debugger support is available through the debugger command when you start your Mongrel or +Webrick server with --debugger. This means that you can break out of execution at any point +in the code, investigate and change the model, AND then resume execution! +You need to install ruby-debug to run the server in debugging mode. With gems, use 'gem install ruby-debug' +Example: + + class WeblogController < ActionController::Base + def index + @posts = Post.find(:all) + debugger + end + end + +So the controller will accept the action, run the first line, then present you +with a IRB prompt in the server window. Here you can do things like: + + >> @posts.inspect + => "[#nil, \"body\"=>nil, \"id\"=>\"1\"}>, + #\"Rails you know!\", \"body\"=>\"Only ten..\", \"id\"=>\"2\"}>]" + >> @posts.first.title = "hello from a debugger" + => "hello from a debugger" + +...and even better is that you can examine how your runtime objects actually work: + + >> f = @posts.first + => #nil, "body"=>nil, "id"=>"1"}> + >> f. + Display all 152 possibilities? (y or n) + +Finally, when you're ready to resume execution, you enter "cont" + + +== Console + +You can interact with the domain model by starting the console through script/console. +Here you'll have all parts of the application configured, just like it is when the +application is running. You can inspect domain models, change values, and save to the +database. Starting the script without arguments will launch it in the development environment. +Passing an argument will specify a different environment, like script/console production. + +To reload your controllers and models after launching the console run reload! + +== dbconsole + +You can go to the command line of your database directly through script/dbconsole. +You would be connected to the database with the credentials defined in database.yml. +Starting the script without arguments will connect you to the development database. Passing an +argument will connect you to a different database, like script/dbconsole production. +Currently works for mysql, postgresql and sqlite. + +== Description of Contents + +app + Holds all the code that's specific to this particular application. + +app/controllers + Holds controllers that should be named like weblogs_controller.rb for + automated URL mapping. All controllers should descend from ApplicationController + which itself descends from ActionController::Base. + +app/models + Holds models that should be named like post.rb. + Most models will descend from ActiveRecord::Base. + +app/views + Holds the template files for the view that should be named like + weblogs/index.html.erb for the WeblogsController#index action. All views use eRuby + syntax. + +app/views/layouts + Holds the template files for layouts to be used with views. This models the common + header/footer method of wrapping views. In your views, define a layout using the + layout :default and create a file named default.html.erb. Inside default.html.erb, + call <% yield %> to render the view using this layout. + +app/helpers + Holds view helpers that should be named like weblogs_helper.rb. These are generated + for you automatically when using script/generate for controllers. Helpers can be used to + wrap functionality for your views into methods. + +config + Configuration files for the Rails environment, the routing map, the database, and other dependencies. + +db + Contains the database schema in schema.rb. db/migrate contains all + the sequence of Migrations for your schema. + +doc + This directory is where your application documentation will be stored when generated + using rake doc:app + +lib + Application specific libraries. Basically, any kind of custom code that doesn't + belong under controllers, models, or helpers. This directory is in the load path. + +public + The directory available for the web server. Contains subdirectories for images, stylesheets, + and javascripts. Also contains the dispatchers and the default HTML files. This should be + set as the DOCUMENT_ROOT of your web server. + +script + Helper scripts for automation and generation. + +test + Unit and functional tests along with fixtures. When using the script/generate scripts, template + test files will be generated for you and placed in this directory. + +vendor + External libraries that the application depends on. Also includes the plugins subdirectory. + If the app has frozen rails, those gems also go here, under vendor/rails/. + This directory is in the load path. diff --git a/presidents/Rakefile b/presidents/Rakefile new file mode 100644 index 0000000..3bb0e85 --- /dev/null +++ b/presidents/Rakefile @@ -0,0 +1,10 @@ +# Add your own tasks in files placed in lib/tasks ending in .rake, +# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. + +require(File.join(File.dirname(__FILE__), 'config', 'boot')) + +require 'rake' +require 'rake/testtask' +require 'rake/rdoctask' + +require 'tasks/rails' diff --git a/presidents/app/controllers/application_controller.rb b/presidents/app/controllers/application_controller.rb new file mode 100644 index 0000000..dbe843b --- /dev/null +++ b/presidents/app/controllers/application_controller.rb @@ -0,0 +1,4 @@ +class ApplicationController < ActionController::Base + helper :all # include all helpers, all the time + protect_from_forgery # See ActionController::RequestForgeryProtection for details +end \ No newline at end of file diff --git a/presidents/app/controllers/presidents_controller.rb b/presidents/app/controllers/presidents_controller.rb new file mode 100644 index 0000000..45bad6d --- /dev/null +++ b/presidents/app/controllers/presidents_controller.rb @@ -0,0 +1,7 @@ +class PresidentsController < ApplicationController + acts_as_sdata :model => President, + :feed => { :id => 'urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6', + :author => 'Sage', + :path => '/presidents', + :title => 'List of US presidents' } +end \ No newline at end of file diff --git a/presidents/app/helpers/application_helper.rb b/presidents/app/helpers/application_helper.rb new file mode 100644 index 0000000..22a7940 --- /dev/null +++ b/presidents/app/helpers/application_helper.rb @@ -0,0 +1,3 @@ +# Methods added to this helper will be available to all templates in the application. +module ApplicationHelper +end diff --git a/presidents/app/models/president.rb b/presidents/app/models/president.rb new file mode 100644 index 0000000..970e034 --- /dev/null +++ b/presidents/app/models/president.rb @@ -0,0 +1,8 @@ +class President < ActiveRecord::Base + validates_presence_of :order + validates_uniqueness_of :order + + acts_as_sdata :title => lambda { "#{last_name}, #{first_name}" }, + :summary => lambda { "#{last_name}, #{first_name} (#{born_at}-#{died_at})" }, + :instance_id => :last_name +end \ No newline at end of file diff --git a/presidents/config/boot.rb b/presidents/config/boot.rb new file mode 100644 index 0000000..dd5e3b6 --- /dev/null +++ b/presidents/config/boot.rb @@ -0,0 +1,110 @@ +# Don't change this file! +# Configure your app in config/environment.rb and config/environments/*.rb + +RAILS_ROOT = "#{File.dirname(__FILE__)}/.." unless defined?(RAILS_ROOT) + +module Rails + class << self + def boot! + unless booted? + preinitialize + pick_boot.run + end + end + + def booted? + defined? Rails::Initializer + end + + def pick_boot + (vendor_rails? ? VendorBoot : GemBoot).new + end + + def vendor_rails? + File.exist?("#{RAILS_ROOT}/vendor/rails") + end + + def preinitialize + load(preinitializer_path) if File.exist?(preinitializer_path) + end + + def preinitializer_path + "#{RAILS_ROOT}/config/preinitializer.rb" + end + end + + class Boot + def run + load_initializer + Rails::Initializer.run(:set_load_path) + end + end + + class VendorBoot < Boot + def load_initializer + require "#{RAILS_ROOT}/vendor/rails/railties/lib/initializer" + Rails::Initializer.run(:install_gem_spec_stubs) + Rails::GemDependency.add_frozen_gem_path + end + end + + class GemBoot < Boot + def load_initializer + self.class.load_rubygems + load_rails_gem + require 'initializer' + end + + def load_rails_gem + if version = self.class.gem_version + gem 'rails', version + else + gem 'rails' + end + rescue Gem::LoadError => load_error + $stderr.puts %(Missing the Rails #{version} gem. Please `gem install -v=#{version} rails`, update your RAILS_GEM_VERSION setting in config/environment.rb for the Rails version you do have installed, or comment out RAILS_GEM_VERSION to use the latest version installed.) + exit 1 + end + + class << self + def rubygems_version + Gem::RubyGemsVersion rescue nil + end + + def gem_version + if defined? RAILS_GEM_VERSION + RAILS_GEM_VERSION + elsif ENV.include?('RAILS_GEM_VERSION') + ENV['RAILS_GEM_VERSION'] + else + parse_gem_version(read_environment_rb) + end + end + + def load_rubygems + min_version = '1.3.2' + require 'rubygems' + unless rubygems_version >= min_version + $stderr.puts %Q(Rails requires RubyGems >= #{min_version} (you have #{rubygems_version}). Please `gem update --system` and try again.) + exit 1 + end + + rescue LoadError + $stderr.puts %Q(Rails requires RubyGems >= #{min_version}. Please install RubyGems and try again: http://rubygems.rubyforge.org) + exit 1 + end + + def parse_gem_version(text) + $1 if text =~ /^[^#]*RAILS_GEM_VERSION\s*=\s*["']([!~<>=]*\s*[\d.]+)["']/ + end + + private + def read_environment_rb + File.read("#{RAILS_ROOT}/config/environment.rb") + end + end + end +end + +# All that for this: +Rails.boot! diff --git a/presidents/config/database.yml b/presidents/config/database.yml new file mode 100644 index 0000000..8fa6b98 --- /dev/null +++ b/presidents/config/database.yml @@ -0,0 +1,22 @@ +# SQLite version 3.x +# gem install sqlite3-ruby (not necessary on OS X Leopard) +development: + adapter: sqlite3 + database: db/development.sqlite3 + pool: 5 + timeout: 5000 + +# Warning: The database defined as "test" will be erased and +# re-generated from your development database when you run "rake". +# Do not set this db to the same as development or production. +test: + adapter: sqlite3 + database: ':memory:' + pool: 5 + timeout: 5000 + +production: + adapter: sqlite3 + database: db/production.sqlite3 + pool: 5 + timeout: 5000 diff --git a/presidents/config/environment.rb b/presidents/config/environment.rb new file mode 100644 index 0000000..a0ffc66 --- /dev/null +++ b/presidents/config/environment.rb @@ -0,0 +1,46 @@ +# Be sure to restart your server when you modify this file + +# Specifies gem version of Rails to use when vendor/rails is not present +RAILS_GEM_VERSION = '2.3.4' unless defined? RAILS_GEM_VERSION + +# Bootstrap the Rails environment, frameworks, and default configuration +require File.join(File.dirname(__FILE__), 'boot') + +Rails::Initializer.run do |config| + # Settings in config/environments/* take precedence over those specified here. + # Application configuration should go into files in config/initializers + # -- all .rb files in that directory are automatically loaded. + + # Add additional load paths for your own custom dirs + # config.load_paths += %W( #{RAILS_ROOT}/extras ) + + # Specify gems that this application depends on and have them installed with rake gems:install + # config.gem "bj" + # config.gem "hpricot", :version => '0.6', :source => "http://code.whytheluckystiff.net" + # config.gem "sqlite3-ruby", :lib => "sqlite3" + # config.gem "aws-s3", :lib => "aws/s3" + + config.gem "rspec", :lib => false, :version => ">= 1.2.8" + config.gem "rspec-rails", :lib => false, :version => ">= 1.2.8" + config.gem "ratom", :lib => 'atom' + + # Only load the plugins named here, in the order given (default is alphabetical). + # :all can be used as a placeholder for all plugins not explicitly named + # config.plugins = [ :exception_notification, :ssl_requirement, :all ] + + # Skip frameworks you're not going to use. To use Rails without a database, + # you must remove the Active Record framework. + # config.frameworks -= [ :active_record, :active_resource, :action_mailer ] + + # Activate observers that should always be running + # config.active_record.observers = :cacher, :garbage_collector, :forum_observer + + # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone. + # Run "rake -D time" for a list of tasks for finding time zone names. + config.time_zone = 'UTC' + + # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded. + # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}')] + # config.i18n.default_locale = :de +end + diff --git a/presidents/config/environments/development.rb b/presidents/config/environments/development.rb new file mode 100644 index 0000000..85c9a60 --- /dev/null +++ b/presidents/config/environments/development.rb @@ -0,0 +1,17 @@ +# Settings specified here will take precedence over those in config/environment.rb + +# In the development environment your application's code is reloaded on +# every request. This slows down response time but is perfect for development +# since you don't have to restart the webserver when you make code changes. +config.cache_classes = false + +# Log error messages when you accidentally call methods on nil. +config.whiny_nils = true + +# Show full error reports and disable caching +config.action_controller.consider_all_requests_local = true +config.action_view.debug_rjs = true +config.action_controller.perform_caching = false + +# Don't care if the mailer can't send +config.action_mailer.raise_delivery_errors = false \ No newline at end of file diff --git a/presidents/config/environments/production.rb b/presidents/config/environments/production.rb new file mode 100644 index 0000000..27119d2 --- /dev/null +++ b/presidents/config/environments/production.rb @@ -0,0 +1,28 @@ +# Settings specified here will take precedence over those in config/environment.rb + +# The production environment is meant for finished, "live" apps. +# Code is not reloaded between requests +config.cache_classes = true + +# Full error reports are disabled and caching is turned on +config.action_controller.consider_all_requests_local = false +config.action_controller.perform_caching = true +config.action_view.cache_template_loading = true + +# See everything in the log (default is :info) +# config.log_level = :debug + +# Use a different logger for distributed setups +# config.logger = SyslogLogger.new + +# Use a different cache store in production +# config.cache_store = :mem_cache_store + +# Enable serving of images, stylesheets, and javascripts from an asset server +# config.action_controller.asset_host = "http://assets.example.com" + +# Disable delivery errors, bad email addresses will be ignored +# config.action_mailer.raise_delivery_errors = false + +# Enable threaded mode +# config.threadsafe! \ No newline at end of file diff --git a/presidents/config/environments/test.rb b/presidents/config/environments/test.rb new file mode 100644 index 0000000..d6f80a4 --- /dev/null +++ b/presidents/config/environments/test.rb @@ -0,0 +1,28 @@ +# Settings specified here will take precedence over those in config/environment.rb + +# The test environment is used exclusively to run your application's +# test suite. You never need to work with it otherwise. Remember that +# your test database is "scratch space" for the test suite and is wiped +# and recreated between test runs. Don't rely on the data there! +config.cache_classes = true + +# Log error messages when you accidentally call methods on nil. +config.whiny_nils = true + +# Show full error reports and disable caching +config.action_controller.consider_all_requests_local = true +config.action_controller.perform_caching = false +config.action_view.cache_template_loading = true + +# Disable request forgery protection in test environment +config.action_controller.allow_forgery_protection = false + +# Tell Action Mailer not to deliver emails to the real world. +# The :test delivery method accumulates sent emails in the +# ActionMailer::Base.deliveries array. +config.action_mailer.delivery_method = :test + +# Use SQL instead of Active Record's schema dumper when creating the test database. +# This is necessary if your schema can't be completely dumped by the schema dumper, +# like if you have constraints or database-specific column types +# config.active_record.schema_format = :sql \ No newline at end of file diff --git a/presidents/config/initializers/backtrace_silencers.rb b/presidents/config/initializers/backtrace_silencers.rb new file mode 100644 index 0000000..c2169ed --- /dev/null +++ b/presidents/config/initializers/backtrace_silencers.rb @@ -0,0 +1,7 @@ +# Be sure to restart your server when you modify this file. + +# You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces. +# Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ } + +# You can also remove all the silencers if you're trying do debug a problem that might steem from framework code. +# Rails.backtrace_cleaner.remove_silencers! \ No newline at end of file diff --git a/presidents/config/initializers/inflections.rb b/presidents/config/initializers/inflections.rb new file mode 100644 index 0000000..d531b8b --- /dev/null +++ b/presidents/config/initializers/inflections.rb @@ -0,0 +1,10 @@ +# Be sure to restart your server when you modify this file. + +# Add new inflection rules using the following format +# (all these examples are active by default): +# ActiveSupport::Inflector.inflections do |inflect| +# inflect.plural /^(ox)$/i, '\1en' +# inflect.singular /^(ox)en/i, '\1' +# inflect.irregular 'person', 'people' +# inflect.uncountable %w( fish sheep ) +# end diff --git a/presidents/config/initializers/mime_types.rb b/presidents/config/initializers/mime_types.rb new file mode 100644 index 0000000..72aca7e --- /dev/null +++ b/presidents/config/initializers/mime_types.rb @@ -0,0 +1,5 @@ +# Be sure to restart your server when you modify this file. + +# Add new mime types for use in respond_to blocks: +# Mime::Type.register "text/richtext", :rtf +# Mime::Type.register_alias "text/html", :iphone diff --git a/presidents/config/initializers/new_rails_defaults.rb b/presidents/config/initializers/new_rails_defaults.rb new file mode 100644 index 0000000..c94db0a --- /dev/null +++ b/presidents/config/initializers/new_rails_defaults.rb @@ -0,0 +1,21 @@ +# Be sure to restart your server when you modify this file. + +# These settings change the behavior of Rails 2 apps and will be defaults +# for Rails 3. You can remove this initializer when Rails 3 is released. + +if defined?(ActiveRecord) + # Include Active Record class name as root for JSON serialized output. + ActiveRecord::Base.include_root_in_json = true + + # Store the full class name (including module namespace) in STI type column. + ActiveRecord::Base.store_full_sti_class = true +end + +ActionController::Routing.generate_best_match = false + +# Use ISO 8601 format for JSON serialized times and dates. +ActiveSupport.use_standard_json_time_format = true + +# Don't escape HTML entities in JSON, leave that for the #json_escape helper. +# if you're including raw json in an HTML page. +ActiveSupport.escape_html_entities_in_json = false \ No newline at end of file diff --git a/presidents/config/initializers/session_store.rb b/presidents/config/initializers/session_store.rb new file mode 100644 index 0000000..4563dcb --- /dev/null +++ b/presidents/config/initializers/session_store.rb @@ -0,0 +1,15 @@ +# Be sure to restart your server when you modify this file. + +# Your secret key for verifying cookie session data integrity. +# If you change this key, all old sessions will become invalid! +# Make sure the secret is at least 30 characters and all random, +# no regular words or you'll be exposed to dictionary attacks. +ActionController::Base.session = { + :key => '_example-app_session', + :secret => '1a7f775c42347f280b17b6956e626511fdb7f65035350b761f74288fa46716bde1de152b90afb7462e7bf8ec98c7f89c4dd2a98dd38b5c04091944e874596d56' +} + +# Use the database for sessions instead of the cookie-based default, +# which shouldn't be used to store highly confidential information +# (create the session table with "rake db:sessions:create") +# ActionController::Base.session_store = :active_record_store diff --git a/presidents/config/locales/en.yml b/presidents/config/locales/en.yml new file mode 100644 index 0000000..f265c06 --- /dev/null +++ b/presidents/config/locales/en.yml @@ -0,0 +1,5 @@ +# Sample localization file for English. Add more files in this directory for other locales. +# See http://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points. + +en: + hello: "Hello world" \ No newline at end of file diff --git a/presidents/config/routes.rb b/presidents/config/routes.rb new file mode 100644 index 0000000..4cb174d --- /dev/null +++ b/presidents/config/routes.rb @@ -0,0 +1,3 @@ +ActionController::Routing::Routes.draw(:delimiters => ['/', '.', '!', '\(', '\)' ]) do |map| + map.sdata_resource :presidents +end \ No newline at end of file diff --git a/presidents/db/development.sqlite3 b/presidents/db/development.sqlite3 new file mode 100644 index 0000000000000000000000000000000000000000..df1c8b9055462228efe1b1cb11d6b75eba6d45d0 GIT binary patch literal 9216 zcmeI2-EZ606~Osn>%^_w#_clC%hFQXyhKg3SXR8mZnH&lWLvf*%d!;NU2Wr9ytcUT zBe|sF3fM4Y$xDak4@gm9$kPy{z?z{g(1*SZD~9f+EimlkWv_c#hZY#R4Z}VTDas}- zI%VIsPJ$#;hve^`d(J)go^$EtrMzNMY0F?5v7{8&$MHOOL6SI*dmcaDmxw=jkHCBE z5qBRxf}%ctofB_~BL5m5{NKDveUaglC;3&2Y^v0}s-mekOnS9R_4@vw{nO=ax{{SD z=}bN=?Ys7bPBeN7?~MPjB*Jhs%HO=~Ft0FbDl*kAbML6nM~dy8h)E}6iX4-2#Y%QI zTb4@YTp?Xvl@_wAQo34M%oXv@Lbh0uii`NE=JThd*p|XfYr}3oCS4<}-XQG6_{2mU zPpRafGn)p}H;5IJ6y2iRl;Op)LgjrTgUOV6uem~))#_@-qD{UQ&-SI8)m&hHL{^8+l*L>p_^R- z(Y156m|Lo5(W)1-E7-&Vx5uQ#q7>_b*gm;NnTajL;#YYXK8=bDwa3e+Y9RPM{Xn?S zdAkmd+p)=uf9CMrd-W{Pv%u%t0*84aK0Y=!nRGtMGiS~|g#G2k4>^4IUOfx+Ebw`@ zz~f?^_lG~Qz%#}eb`q~!P%zQ=<^^WPlgjtnDj#NinYz0y)C zi~I{_9;!8zZDb{3A{?tUF~}V~)?w8YRaJ;KM;KE~Lyvq2$$?#BG9>ZLAU9%b=k&IK z>8PS-nvCj^PhjSdr@sjZNi3(3c(g-I>oTJ|^Q3;+*6@#LHV<h=#+j zk0IW+hX+q&$6>#PQ+)^VhhQWepPWW}Kh@z^8iq#9dAhZQ={H*ZJ&1`1H8B7~;hHFY z!!`e?-~7LXm@q@J+##xB+Ck9|1L25k2~-+~9G|p_v(#YQv_{N^qHkNM^)CSUqM>7P zX>*iqQfAE=2JXW` z8D4$LmmI$cx581Y^O&gF6^BEeCh9dspEe9tk+&(7;MS8q>a6kVk) zNP#xu<0_zq<5n)ZMTTS9S!R!_Y1JOEM3*4})|WiCrJ#hP)~3-8yMrr3_3si*vB!Z^ z&q5ruVV}ALXgF{?{w+KHt0FJFDy#|v{Of$3e}eltXML7@C+s`{xAQA#qG5rV6=`+a(5C9CCc8Zs^dwo^KrIn(wdHwHJ4dwTsAyd93WRCapp&IYq~}Qd3QF#G9(}G`(`k?pW&2Z3i3H7u$9h`pWTe@uM z^SJe7&x97d@ikB1@4@|W%+jJWf?TFeTcEm5H`!Qel@4($~;CB31Iq@}dT^tbJ5Y~l0{-=Bm{|n$ASN$yU@42>; zL2Y*z?tnS)iyj-S0qItCEI?FAyK9!?{^Tn{24(m^7V;cvQ4^j7`h<^Lg^=9k zZ+SzYs 20091009101447) do + + create_table "presidents", :force => true do |t| + t.string "first_name" + t.string "last_name" + t.integer "born_at" + t.integer "died_at" + t.integer "order" + t.string "party" + t.integer "term_started_at" + t.integer "term_ended_at" + t.datetime "created_at" + t.datetime "updated_at" + end + +end diff --git a/presidents/db/seeds.rb b/presidents/db/seeds.rb new file mode 100644 index 0000000..3174d0c --- /dev/null +++ b/presidents/db/seeds.rb @@ -0,0 +1,7 @@ +# This file should contain all the record creation needed to seed the database with its default values. +# The data can then be loaded with the rake db:seed (or created alongside the db with db:setup). +# +# Examples: +# +# cities = City.create([{ :name => 'Chicago' }, { :name => 'Copenhagen' }]) +# Major.create(:name => 'Daley', :city => cities.first) diff --git a/presidents/doc/README_FOR_APP b/presidents/doc/README_FOR_APP new file mode 100644 index 0000000..fe41f5c --- /dev/null +++ b/presidents/doc/README_FOR_APP @@ -0,0 +1,2 @@ +Use this README file to introduce your application and point to useful places in the API for learning more. +Run "rake doc:app" to generate API documentation for your models, controllers, helpers, and libraries. diff --git a/presidents/lib/tasks/fixtures.rake b/presidents/lib/tasks/fixtures.rake new file mode 100644 index 0000000..46e8be0 --- /dev/null +++ b/presidents/lib/tasks/fixtures.rake @@ -0,0 +1,5 @@ +desc "Load sample fixtures (US presidents) into the current environment's database" +task :load_presidents do + require File.join(RAILS_ROOT, 'config', 'environment.rb') # TODO: extract to another task or use existing + require File.join(RAILS_ROOT, 'spec', 'fixtures', 'load_fixtures.rb') +end \ No newline at end of file diff --git a/presidents/lib/tasks/rspec.rake b/presidents/lib/tasks/rspec.rake new file mode 100644 index 0000000..dba3ffc --- /dev/null +++ b/presidents/lib/tasks/rspec.rake @@ -0,0 +1,144 @@ +gem 'test-unit', '1.2.3' if RUBY_VERSION.to_f >= 1.9 +rspec_gem_dir = nil +Dir["#{RAILS_ROOT}/vendor/gems/*"].each do |subdir| + rspec_gem_dir = subdir if subdir.gsub("#{RAILS_ROOT}/vendor/gems/","") =~ /^(\w+-)?rspec-(\d+)/ && File.exist?("#{subdir}/lib/spec/rake/spectask.rb") +end +rspec_plugin_dir = File.expand_path(File.dirname(__FILE__) + '/../../vendor/plugins/rspec') + +if rspec_gem_dir && (test ?d, rspec_plugin_dir) + raise "\n#{'*'*50}\nYou have rspec installed in both vendor/gems and vendor/plugins\nPlease pick one and dispose of the other.\n#{'*'*50}\n\n" +end + +if rspec_gem_dir + $LOAD_PATH.unshift("#{rspec_gem_dir}/lib") +elsif File.exist?(rspec_plugin_dir) + $LOAD_PATH.unshift("#{rspec_plugin_dir}/lib") +end + +# Don't load rspec if running "rake gems:*" +unless ARGV.any? {|a| a =~ /^gems/} + +begin + require 'spec/rake/spectask' +rescue MissingSourceFile + module Spec + module Rake + class SpecTask + def initialize(name) + task name do + # if rspec-rails is a configured gem, this will output helpful material and exit ... + require File.expand_path(File.join(File.dirname(__FILE__),"..","..","config","environment")) + + # ... otherwise, do this: + raise <<-MSG + +#{"*" * 80} +* You are trying to run an rspec rake task defined in +* #{__FILE__}, +* but rspec can not be found in vendor/gems, vendor/plugins or system gems. +#{"*" * 80} +MSG + end + end + end + end + end +end + +Rake.application.instance_variable_get('@tasks').delete('default') + +spec_prereq = File.exist?(File.join(RAILS_ROOT, 'config', 'database.yml')) ? "db:test:prepare" : :noop +task :noop do +end + +task :default => :spec +task :stats => "spec:statsetup" + +desc "Run all specs in spec directory (excluding plugin specs)" +Spec::Rake::SpecTask.new(:spec => spec_prereq) do |t| + t.spec_opts = ['--options', "\"#{RAILS_ROOT}/spec/spec.opts\""] + t.spec_files = FileList['spec/**/*_spec.rb'] +end + +namespace :spec do + desc "Run all specs in spec directory with RCov (excluding plugin specs)" + Spec::Rake::SpecTask.new(:rcov) do |t| + t.spec_opts = ['--options', "\"#{RAILS_ROOT}/spec/spec.opts\""] + t.spec_files = FileList['spec/**/*_spec.rb'] + t.rcov = true + t.rcov_opts = lambda do + IO.readlines("#{RAILS_ROOT}/spec/rcov.opts").map {|l| l.chomp.split " "}.flatten + end + end + + desc "Print Specdoc for all specs (excluding plugin specs)" + Spec::Rake::SpecTask.new(:doc) do |t| + t.spec_opts = ["--format", "specdoc", "--dry-run"] + t.spec_files = FileList['spec/**/*_spec.rb'] + end + + desc "Print Specdoc for all plugin examples" + Spec::Rake::SpecTask.new(:plugin_doc) do |t| + t.spec_opts = ["--format", "specdoc", "--dry-run"] + t.spec_files = FileList['vendor/plugins/**/spec/**/*_spec.rb'].exclude('vendor/plugins/rspec/*') + end + + [:models, :controllers, :views, :helpers, :lib, :integration].each do |sub| + desc "Run the code examples in spec/#{sub}" + Spec::Rake::SpecTask.new(sub => spec_prereq) do |t| + t.spec_opts = ['--options', "\"#{RAILS_ROOT}/spec/spec.opts\""] + t.spec_files = FileList["spec/#{sub}/**/*_spec.rb"] + end + end + + desc "Run the code examples in vendor/plugins (except RSpec's own)" + Spec::Rake::SpecTask.new(:plugins => spec_prereq) do |t| + t.spec_opts = ['--options', "\"#{RAILS_ROOT}/spec/spec.opts\""] + t.spec_files = FileList['vendor/plugins/**/spec/**/*_spec.rb'].exclude('vendor/plugins/rspec/*').exclude("vendor/plugins/rspec-rails/*") + end + + namespace :plugins do + desc "Runs the examples for rspec_on_rails" + Spec::Rake::SpecTask.new(:rspec_on_rails) do |t| + t.spec_opts = ['--options', "\"#{RAILS_ROOT}/spec/spec.opts\""] + t.spec_files = FileList['vendor/plugins/rspec-rails/spec/**/*_spec.rb'] + end + end + + # Setup specs for stats + task :statsetup do + require 'code_statistics' + ::STATS_DIRECTORIES << %w(Model\ specs spec/models) if File.exist?('spec/models') + ::STATS_DIRECTORIES << %w(View\ specs spec/views) if File.exist?('spec/views') + ::STATS_DIRECTORIES << %w(Controller\ specs spec/controllers) if File.exist?('spec/controllers') + ::STATS_DIRECTORIES << %w(Helper\ specs spec/helpers) if File.exist?('spec/helpers') + ::STATS_DIRECTORIES << %w(Library\ specs spec/lib) if File.exist?('spec/lib') + ::STATS_DIRECTORIES << %w(Routing\ specs spec/routing) if File.exist?('spec/routing') + ::STATS_DIRECTORIES << %w(Integration\ specs spec/integration) if File.exist?('spec/integration') + ::CodeStatistics::TEST_TYPES << "Model specs" if File.exist?('spec/models') + ::CodeStatistics::TEST_TYPES << "View specs" if File.exist?('spec/views') + ::CodeStatistics::TEST_TYPES << "Controller specs" if File.exist?('spec/controllers') + ::CodeStatistics::TEST_TYPES << "Helper specs" if File.exist?('spec/helpers') + ::CodeStatistics::TEST_TYPES << "Library specs" if File.exist?('spec/lib') + ::CodeStatistics::TEST_TYPES << "Routing specs" if File.exist?('spec/routing') + ::CodeStatistics::TEST_TYPES << "Integration specs" if File.exist?('spec/integration') + end + + namespace :db do + namespace :fixtures do + desc "Load fixtures (from spec/fixtures) into the current environment's database. Load specific fixtures using FIXTURES=x,y. Load from subdirectory in test/fixtures using FIXTURES_DIR=z." + task :load => :environment do + ActiveRecord::Base.establish_connection(Rails.env) + base_dir = File.join(Rails.root, 'spec', 'fixtures') + fixtures_dir = ENV['FIXTURES_DIR'] ? File.join(base_dir, ENV['FIXTURES_DIR']) : base_dir + + require 'active_record/fixtures' + (ENV['FIXTURES'] ? ENV['FIXTURES'].split(/,/).map {|f| File.join(fixtures_dir, f) } : Dir.glob(File.join(fixtures_dir, '*.{yml,csv}'))).each do |fixture_file| + Fixtures.create_fixtures(File.dirname(fixture_file), File.basename(fixture_file, '.*')) + end + end + end + end +end + +end diff --git a/presidents/log/development.log b/presidents/log/development.log new file mode 100644 index 0000000..1d3d2e5 --- /dev/null +++ b/presidents/log/development.log @@ -0,0 +1,1035 @@ +# Logfile created on Wed Oct 28 19:07:00 +0600 2009 SQL (0.6ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.2ms) SELECT version FROM schema_migrations + SQL (0.2ms) select sqlite_version(*) + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.6ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM "schema_migrations" + SQL (0.1ms) INSERT INTO "schema_migrations" (version) VALUES ('20091009101447') + + +Processing PresidentsController#sdata_show (for 127.0.0.1 at 2009-10-28 20:41:47) [GET] + Parameters: {"id"=>"1"} + President Load (0.4ms) SELECT * FROM "presidents" WHERE ("presidents"."id" = 1)  + +ActiveRecord::RecordNotFound (Couldn't find President with ID=1): + app/controllers/presidents_controller.rb:16:in `sdata_show' + +Rendered rescues/_trace (250.4ms) +Rendered rescues/_request_and_response (4.1ms) +Rendering rescues/layout (not_found) + + +Processing PresidentsController#sdata_show (for 127.0.0.1 at 2009-10-28 20:42:04) [GET] + Parameters: {"id"=>"111"} + President Load (0.5ms) SELECT * FROM "presidents" WHERE ("presidents"."id" = 111)  + +ActiveRecord::RecordNotFound (Couldn't find President with ID=111): + app/controllers/presidents_controller.rb:16:in `sdata_show' + +Rendered rescues/_trace (90.6ms) +Rendered rescues/_request_and_response (0.8ms) +Rendering rescues/layout (not_found) + + +Processing PresidentsController#sdata_show (for 127.0.0.1 at 2009-10-28 20:42:10) [GET] + Parameters: {"id"=>"200"} + President Load (0.4ms) SELECT * FROM "presidents" WHERE ("presidents"."id" = 200)  + +ActiveRecord::RecordNotFound (Couldn't find President with ID=200): + app/controllers/presidents_controller.rb:16:in `sdata_show' + +Rendered rescues/_trace (291.9ms) +Rendered rescues/_request_and_response (0.8ms) +Rendering rescues/layout (not_found) + + +Processing PresidentsController#sdata_show (for 127.0.0.1 at 2009-10-28 20:42:13) [GET] + Parameters: {"id"=>"300"} + President Load (0.5ms) SELECT * FROM "presidents" WHERE ("presidents"."id" = 300)  + +ActiveRecord::RecordNotFound (Couldn't find President with ID=300): + app/controllers/presidents_controller.rb:16:in `sdata_show' + +Rendered rescues/_trace (92.5ms) +Rendered rescues/_request_and_response (0.7ms) +Rendering rescues/layout (not_found) + President Load (16.5ms) SELECT * FROM "presidents"  + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-10-28 20:45:21) [GET] + Parameters: {"id"=>"88"} + President Load (1.0ms) SELECT * FROM "presidents" WHERE ("presidents"."id" = 88)  +Completed in 21ms (View: 2, DB: 1) | 200 OK [http://localhost/presidents/!88] + + +Processing PresidentsController#sdata_collection (for 127.0.0.1 at 2009-10-28 20:48:26) [GET] + President Load (15.6ms) SELECT * FROM "presidents"  +Completed in 61ms (View: 17, DB: 16) | 200 OK [http://localhost/presidents] + + +Processing PresidentsController#sdata_collection (for 127.0.0.1 at 2009-10-28 20:48:36) [GET] + Parameters: {"predicate"=>"born"} + President Load (27.9ms) SELECT * FROM "presidents"  +Completed in 76ms (View: 18, DB: 28) | 200 OK [http://localhost/presidents(born)] + + +Processing PresidentsController#sdata_collection (for 127.0.0.1 at 2009-10-28 20:49:13) [GET] + Parameters: {"predicate"=>"born_at%20gt%201900"} + President Load (15.4ms) SELECT * FROM "presidents" WHERE ('born_at' > '1900')  +Completed in 61ms (View: 16, DB: 15) | 200 OK [http://localhost/presidents(born_at%20gt%201900)] + + +Processing PresidentsController#sdata_collection (for 127.0.0.1 at 2009-10-28 20:49:38) [GET] + Parameters: {"predicate"=>"born_at%20gt%201900"} + President Load (15.9ms) SELECT * FROM "presidents" WHERE ('born_at' > '1900')  +Completed in 62ms (View: 17, DB: 16) | 200 OK [http://localhost/presidents(born_at%20gt%201900)] + + +Processing PresidentsController#sdata_collection (for 127.0.0.1 at 2009-10-28 20:49:47) [GET] + Parameters: {"predicate"=>"born_at%20gt%201950"} + President Load (7.8ms) SELECT * FROM "presidents" WHERE ('born_at' > '1950')  +Completed in 30ms (View: 8, DB: 8) | 200 OK [http://localhost/presidents(born_at%20gt%201950)] + + +Processing PresidentsController#sdata_collection (for 127.0.0.1 at 2009-10-28 20:50:01) [GET] + Parameters: {"predicate"=>"born_at%20gt%201970"} + President Load (17.3ms) SELECT * FROM "presidents" WHERE ('born_at' > '1970')  +Completed in 68ms (View: 18, DB: 17) | 200 OK [http://localhost/presidents(born_at%20gt%201970)] + + +Processing PresidentsController#sdata_collection (for 127.0.0.1 at 2009-10-28 20:50:04) [GET] + Parameters: {"predicate"=>"born_at%20gt%201960"} + President Load (15.7ms) SELECT * FROM "presidents" WHERE ('born_at' > '1960')  +Completed in 64ms (View: 16, DB: 16) | 200 OK [http://localhost/presidents(born_at%20gt%201960)] + + +Processing PresidentsController#sdata_collection (for 127.0.0.1 at 2009-10-28 20:50:58) [GET] + Parameters: {"predicate"=>"born_at%20eq%201961"} + President Load (0.7ms) SELECT * FROM "presidents" WHERE ('born_at' = '1961')  +Completed in 10ms (View: 2, DB: 1) | 200 OK [http://localhost/presidents(born_at%20eq%201961)] + + +Processing PresidentsController#sdata_collection (for 127.0.0.1 at 2009-10-28 20:51:18) [GET] + Parameters: {"predicate"=>"last_name%20eq%20Obama"} + President Load (0.9ms) SELECT * FROM "presidents" WHERE ('last_name' = 'Obama')  +Completed in 11ms (View: 2, DB: 1) | 200 OK [http://localhost/presidents(last_name%20eq%20Obama)] + + +Processing PresidentsController#sdata_collection (for 127.0.0.1 at 2009-10-28 20:51:29) [GET] + Parameters: {"predicate"=>"last_namae%20eq%20Obama"} + President Load (0.8ms) SELECT * FROM "presidents" WHERE ('last_namae' = 'Obama')  +Completed in 10ms (View: 2, DB: 1) | 200 OK [http://localhost/presidents(last_namae%20eq%20Obama)] + + +Processing PresidentsController#sdata_collection (for 127.0.0.1 at 2009-10-29 11:34:08) [GET] + Parameters: {"predicate"=>"last_nama%20eq%20Obama"} + President Load (1.0ms) SELECT * FROM "presidents" WHERE ("last_nama" = 'Obama')  +Completed in 10ms (View: 3, DB: 1) | 200 OK [http://localhost/presidents(last_nama%20eq%20Obama)] + + +Processing PresidentsController#sdata_collection (for 127.0.0.1 at 2009-10-29 11:34:18) [GET] + Parameters: {"predicate"=>"last_name%20eq%20Obama"} + President Load (1.6ms) SELECT * FROM "presidents" WHERE ("last_name" = 'Obama')  +Completed in 23ms (View: 3, DB: 2) | 200 OK [http://localhost/presidents(last_name%20eq%20Obama)] + + +Processing ApplicationController#index (for 127.0.0.1 at 2009-10-29 11:34:36) [GET] + +NoMethodError (You have a nil object when you didn't expect it! +The error occurred while evaluating nil.params): + + +Rendered rescues/_trace (65.3ms) +Rendered rescues/_request_and_response (4.8ms) +Rendering rescues/layout (internal_server_error) + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-10-29 11:34:47) [GET] + Parameters: {"id"=>"88"} + President Load (1.0ms) SELECT * FROM "presidents" WHERE ("presidents"."id" = 88)  +Completed in 28ms (View: 2, DB: 1) | 200 OK [http://localhost/presidents/!88] + + +Processing PresidentsController#sdata_collection (for 127.0.0.1 at 2009-10-29 11:35:39) [GET] + Parameters: {"predicate"=>"id%20eq%2088"} + President Load (1.3ms) SELECT * FROM "presidents" WHERE ("id" = '88')  +Completed in 32ms (View: 9, DB: 1) | 200 OK [http://localhost/presidents(id%20eq%2088)] + + +Processing PresidentsController#sdata_collection (for 127.0.0.1 at 2009-10-29 11:36:04) [GET] + Parameters: {"predicate"=>"born_at%20eq%201961"} + President Load (1.4ms) SELECT * FROM "presidents" WHERE ("born_at" = '1961')  +Completed in 21ms (View: 3, DB: 1) | 200 OK [http://localhost/presidents(born_at%20eq%201961)] + + +Processing PresidentsController#sdata_collection (for 127.0.0.1 at 2009-10-29 11:36:12) [GET] + Parameters: {"predicate"=>"born_at%20lt%201961"} + President Load (17.2ms) SELECT * FROM "presidents" WHERE ("born_at" < '1961')  +Completed in 64ms (View: 17, DB: 17) | 200 OK [http://localhost/presidents(born_at%20lt%201961)] + + +Processing PresidentsController#sdata_collection (for 127.0.0.1 at 2009-10-29 11:36:19) [GET] + Parameters: {"predicate"=>"born_at%20gt%201950"} + President Load (1.5ms) SELECT * FROM "presidents" WHERE ("born_at" > '1950')  +Completed in 24ms (View: 4, DB: 2) | 200 OK [http://localhost/presidents(born_at%20gt%201950)] + + +Processing PresidentsController#sdata_collection (for 127.0.0.1 at 2009-10-29 11:36:24) [GET] + Parameters: {"predicate"=>"born_at%20gt%201940"} + President Load (1.0ms) SELECT * FROM "presidents" WHERE ("born_at" > '1940')  +Completed in 23ms (View: 14, DB: 1) | 200 OK [http://localhost/presidents(born_at%20gt%201940)] + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-10-29 12:08:34) [GET] + Parameters: {"id"=>"Obama"} + President Load (1.2ms) SELECT * FROM "presidents" WHERE ("presidents"."id" = 0)  + +ActiveRecord::RecordNotFound (Couldn't find President with ID=Obama): + app/controllers/presidents_controller.rb:16:in `sdata_instance' + +Rendered rescues/_trace (85.9ms) +Rendered rescues/_request_and_response (0.8ms) +Rendering rescues/layout (not_found) + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-10-29 15:27:00) [GET] + Parameters: {"id"=>"Obama"} + +ActiveRecord::RecordNotFound (Couldn't find President without an ID): + lib/sdata/active_record_extensions.rb:32:in `find_by_sdata_instance_id' + app/controllers/presidents_controller.rb:16:in `sdata_instance' + +Rendered rescues/_trace (246.4ms) +Rendered rescues/_request_and_response (4.1ms) +Rendering rescues/layout (not_found) + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-10-29 15:28:03) [GET] + Parameters: {"id"=>"Obama"} + +ActiveRecord::RecordNotFound (Couldn't find President without an ID): + lib/sdata/active_record_extensions.rb:32:in `find_by_sdata_instance_id' + app/controllers/presidents_controller.rb:16:in `sdata_instance' + +Rendered rescues/_trace (91.8ms) +Rendered rescues/_request_and_response (0.9ms) +Rendering rescues/layout (not_found) + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-10-29 15:28:14) [GET] + Parameters: {"instance_id"=>"Obama"} + +ActiveRecord::RecordNotFound (Couldn't find President without an ID): + lib/sdata/active_record_extensions.rb:32:in `find_by_sdata_instance_id' + app/controllers/presidents_controller.rb:16:in `sdata_instance' + +Rendered rescues/_trace (263.2ms) +Rendered rescues/_request_and_response (4.0ms) +Rendering rescues/layout (not_found) + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-10-29 15:30:30) [GET] + Parameters: {"instance_id"=>"Obama"} + +ActiveRecord::RecordNotFound (Couldn't find President without an ID): + lib/sdata/active_record_extensions.rb:32:in `find_by_sdata_instance_id' + app/controllers/presidents_controller.rb:16:in `sdata_instance' + +Rendered rescues/_trace (94.1ms) +Rendered rescues/_request_and_response (0.8ms) +Rendering rescues/layout (not_found) + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-10-29 15:34:19) [GET] + Parameters: {"instance_id"=>"Obama"} + +ActiveRecord::RecordNotFound (Couldn't find President without an ID): + lib/sdata/active_record_extensions.rb:32:in `find_by_sdata_instance_id' + app/controllers/presidents_controller.rb:16:in `sdata_instance' + +Rendered rescues/_trace (272.0ms) +Rendered rescues/_request_and_response (0.8ms) +Rendering rescues/layout (not_found) + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-10-29 15:34:23) [GET] + Parameters: {"instance_id"=>"Obama"} + +ActiveRecord::RecordNotFound (Couldn't find President without an ID): + lib/sdata/active_record_extensions.rb:32:in `find_by_sdata_instance_id' + app/controllers/presidents_controller.rb:16:in `sdata_instance' + +Rendered rescues/_trace (90.7ms) +Rendered rescues/_request_and_response (0.7ms) +Rendering rescues/layout (not_found) + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-10-29 15:34:30) [GET] + Parameters: {"instance_id"=>"Obama"} + +ActiveRecord::RecordNotFound (Couldn't find President without an ID): + lib/sdata/active_record_extensions.rb:34:in `find_by_sdata_instance_id' + app/controllers/presidents_controller.rb:16:in `sdata_instance' + +Rendered rescues/_trace (120.1ms) +Rendered rescues/_request_and_response (2.1ms) +Rendering rescues/layout (not_found) + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-10-29 15:35:53) [GET] + Parameters: {"instance_id"=>"Obama"} + President Load (1.0ms) SELECT * FROM "presidents" WHERE ("presidents"."last_name" = 'Obama') LIMIT 1 +Completed in 50ms (View: 1, DB: 1) | 200 OK [http://localhost/presidents/!Obama] + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-10-29 15:38:01) [GET] + Parameters: {"instance_id"=>"Obama"} + President Load (2.1ms) SELECT * FROM "presidents" WHERE ("presidents"."last_name" = 'Obama') LIMIT 1 +Completed in 40ms (View: 2, DB: 2) | 200 OK [http://localhost/presidents/!Obama] + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-10-29 15:38:03) [GET] + Parameters: {"instance_id"=>"Bush"} + President Load (1.5ms) SELECT * FROM "presidents" WHERE ("presidents"."last_name" = 'Bush') LIMIT 1 +Completed in 22ms (View: 2, DB: 1) | 200 OK [http://localhost/presidents/!Bush] + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-10-29 15:38:19) [GET] + Parameters: {"instance_id"=>"Wilson"} + President Load (1.5ms) SELECT * FROM "presidents" WHERE ("presidents"."last_name" = 'Wilson') LIMIT 1 +Completed in 20ms (View: 3, DB: 2) | 200 OK [http://localhost/presidents/!Wilson] + SQL (0.7ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.2ms) SELECT version FROM schema_migrations + SQL (0.2ms) select sqlite_version(*) + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.6ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM "schema_migrations" + SQL (0.1ms) INSERT INTO "schema_migrations" (version) VALUES ('20091009101447') + SQL (1.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + President Load (0.5ms) SELECT * FROM "presidents" WHERE ("presidents"."id" = 1)  + President Load (0.4ms) SELECT * FROM "presidents" WHERE ("presidents"."id" = 1) LIMIT 1 + President Load (1.0ms) SELECT * FROM "presidents" WHERE ("presidents"."id" = 88) LIMIT 1 + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-10-30 21:15:25) [GET] + Parameters: {"instance_id"=>"Obama"} + President Load (1.9ms) SELECT * FROM "presidents" WHERE ("presidents"."last_name" = 'Obama') LIMIT 1 +Completed in 41ms (View: 2, DB: 2) | 200 OK [http://localhost/presidents/!Obama] + + +Processing PresidentsController#sdata_collection (for 127.0.0.1 at 2009-11-10 16:20:56) [GET] + President Load (16.3ms) SELECT * FROM "presidents"  +Completed in 74ms (View: 29, DB: 16) | 200 OK [http://localhost/presidents] + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-11-10 16:21:09) [GET] + Parameters: {"instance_id"=>"Obama"} + President Load (1.5ms) SELECT * FROM "presidents" WHERE ("presidents"."last_name" = 'Obama') LIMIT 1 +Completed in 85ms (View: 2, DB: 2) | 200 OK [http://localhost/presidents/!Obama] + + +Processing PresidentsController#sdata_collection (for 127.0.0.1 at 2009-11-10 16:21:33) [GET] + Parameters: {"predicate"=>"born_at%20eq%201961"} + President Load (1.5ms) SELECT * FROM "presidents" WHERE ("born_at" = '1961')  +Completed in 176ms (View: 3, DB: 2) | 200 OK [http://localhost/presidents(born_at%20eq%201961)] + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-11-11 12:46:09) [GET] + Parameters: {"instance_id"=>"Obama"} + +ActionController::UnknownAction (No action responded to sdata_instance. Actions: sdata_options and sdata_options=): + + +Rendering rescues/layout (not_found) + + +Processing PresidentsController#sdata_collection (for 127.0.0.1 at 2009-11-11 12:48:28) [GET] + +ActionController::UnknownAction (No action responded to sdata_collection. Actions: sdata_options and sdata_options=): + + +Rendering rescues/layout (not_found) + + +Processing PresidentsController#sdata_collection (for 127.0.0.1 at 2009-11-11 12:49:15) [GET] + President Load (18.5ms) SELECT * FROM "presidents"  +Completed in 69ms (View: 17, DB: 19) | 200 OK [http://localhost/presidents] +/!\ FAILSAFE /!\ Wed Nov 11 12:50:03 +0600 2009 + Status: 500 Internal Server Error + undefined method `call_with_exception' for ApplicationController:Class + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:90:in `dispatch' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:121:in `_call' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:130:in `build_middleware_stack' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/activerecord/lib/active_record/query_cache.rb:29:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/activerecord/lib/active_record/query_cache.rb:29:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:34:in `cache' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/activerecord/lib/active_record/query_cache.rb:9:in `cache' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/activerecord/lib/active_record/query_cache.rb:28:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb:361:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/gems/rack-1.0.0/lib/rack/head.rb:9:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/gems/rack-1.0.0/lib/rack/methodoverride.rb:24:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/actionpack/lib/action_controller/params_parser.rb:15:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/actionpack/lib/action_controller/session/cookie_store.rb:93:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/actionpack/lib/action_controller/failsafe.rb:26:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/gems/rack-1.0.0/lib/rack/lock.rb:11:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/gems/rack-1.0.0/lib/rack/lock.rb:11:in `synchronize' + /home/aldor/development/acts_as_sdata/example-app/vendor/gems/rack-1.0.0/lib/rack/lock.rb:11:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:114:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/actionpack/lib/action_controller/reloader.rb:34:in `run' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:108:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/railties/lib/rails/rack/static.rb:31:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/gems/rack-1.0.0/lib/rack/urlmap.rb:46:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/gems/rack-1.0.0/lib/rack/urlmap.rb:40:in `each' + /home/aldor/development/acts_as_sdata/example-app/vendor/gems/rack-1.0.0/lib/rack/urlmap.rb:40:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/railties/lib/rails/rack/log_tailer.rb:17:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/gems/rack-1.0.0/lib/rack/content_length.rb:13:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/gems/rack-1.0.0/lib/rack/chunked.rb:15:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/gems/rack-1.0.0/lib/rack/handler/mongrel.rb:61:in `process' + /usr/lib64/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:159:in `process_client' + /usr/lib64/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:158:in `each' + /usr/lib64/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:158:in `process_client' + /usr/lib64/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `run' + /usr/lib64/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `initialize' + /usr/lib64/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `new' + /usr/lib64/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `run' + /usr/lib64/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in `initialize' + /usr/lib64/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in `new' + /usr/lib64/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in `run' + /home/aldor/development/acts_as_sdata/example-app/vendor/gems/rack-1.0.0/lib/rack/handler/mongrel.rb:34:in `run' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/railties/lib/commands/server.rb:111 + /usr/lib64/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' + /usr/lib64/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' + ./script/server:3 + SQL (1.5ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.9ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + +/!\ FAILSAFE /!\ Wed Nov 11 12:51:03 +0600 2009 + Status: 500 Internal Server Error + undefined method `call_with_exception' for ApplicationController:Class + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:90:in `dispatch' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:121:in `_call' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:130:in `build_middleware_stack' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/activerecord/lib/active_record/query_cache.rb:29:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/activerecord/lib/active_record/query_cache.rb:29:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:34:in `cache' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/activerecord/lib/active_record/query_cache.rb:9:in `cache' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/activerecord/lib/active_record/query_cache.rb:28:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb:361:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/gems/rack-1.0.0/lib/rack/head.rb:9:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/gems/rack-1.0.0/lib/rack/methodoverride.rb:24:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/actionpack/lib/action_controller/params_parser.rb:15:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/actionpack/lib/action_controller/session/cookie_store.rb:93:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/actionpack/lib/action_controller/failsafe.rb:26:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/gems/rack-1.0.0/lib/rack/lock.rb:11:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/gems/rack-1.0.0/lib/rack/lock.rb:11:in `synchronize' + /home/aldor/development/acts_as_sdata/example-app/vendor/gems/rack-1.0.0/lib/rack/lock.rb:11:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:114:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/actionpack/lib/action_controller/reloader.rb:34:in `run' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:108:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/railties/lib/rails/rack/static.rb:31:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/gems/rack-1.0.0/lib/rack/urlmap.rb:46:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/gems/rack-1.0.0/lib/rack/urlmap.rb:40:in `each' + /home/aldor/development/acts_as_sdata/example-app/vendor/gems/rack-1.0.0/lib/rack/urlmap.rb:40:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/railties/lib/rails/rack/log_tailer.rb:17:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/gems/rack-1.0.0/lib/rack/content_length.rb:13:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/gems/rack-1.0.0/lib/rack/chunked.rb:15:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/gems/rack-1.0.0/lib/rack/handler/mongrel.rb:61:in `process' + /usr/lib64/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:159:in `process_client' + /usr/lib64/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:158:in `each' + /usr/lib64/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:158:in `process_client' + /usr/lib64/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `run' + /usr/lib64/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `initialize' + /usr/lib64/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `new' + /usr/lib64/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `run' + /usr/lib64/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in `initialize' + /usr/lib64/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in `new' + /usr/lib64/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in `run' + /home/aldor/development/acts_as_sdata/example-app/vendor/gems/rack-1.0.0/lib/rack/handler/mongrel.rb:34:in `run' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/railties/lib/commands/server.rb:111 + /usr/lib64/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' + /usr/lib64/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' + ./script/server:3 + + +Processing PresidentsController#sdata_collection (for 127.0.0.1 at 2009-11-11 12:52:37) [GET] + +ActionController::UnknownAction (No action responded to sdata_collection. Actions: sdata_options and sdata_options=): + + +Rendering rescues/layout (not_found) + + +Processing PresidentsController#sdata_collection (for 127.0.0.1 at 2009-11-11 12:52:56) [GET] + President Load (9.2ms) SELECT * FROM "presidents"  +Completed in 34ms (View: 9, DB: 9) | 200 OK [http://localhost/presidents] + + +Processing ApplicationController#sdata_instance (for 127.0.0.1 at 2009-11-11 12:53:08) [GET] + Parameters: {"instance_id"=>"Obama"} + +NoMethodError (undefined method `acts_as_sdata' for PresidentsController:Class): + app/controllers/presidents_controller.rb:6 + +Rendered rescues/_trace (248.1ms) +Rendered rescues/_request_and_response (19.8ms) +Rendering rescues/layout (internal_server_error) + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-11-11 12:54:25) [GET] + Parameters: {"instance_id"=>"Obama"} + President Load (2.8ms) SELECT * FROM "presidents" WHERE ("presidents"."last_name" = 'Obama') LIMIT 1 +Completed in 43ms (View: 2, DB: 3) | 200 OK [http://localhost/presidents/!Obama] + + +Processing ApplicationController#index (for 127.0.0.1 at 2009-11-11 12:54:35) [GET] + +NoMethodError (You have a nil object when you didn't expect it! +The error occurred while evaluating nil.params): + + +Rendered rescues/_trace (225.3ms) +Rendered rescues/_request_and_response (4.1ms) +Rendering rescues/layout (internal_server_error) + + +Processing ApplicationController#sdata_collection (for 127.0.0.1 at 2009-11-11 12:54:40) [GET] + +NoMethodError (undefined method `acts_as_sdata' for PresidentsController:Class): + app/controllers/presidents_controller.rb:6 + +Rendered rescues/_trace (79.3ms) +Rendered rescues/_request_and_response (0.7ms) +Rendering rescues/layout (internal_server_error) + + +Processing ApplicationController#sdata_instance (for 127.0.0.1 at 2009-11-11 12:55:08) [GET] + Parameters: {"instance_id"=>"Obama"} + +NoMethodError (undefined method `acts_as_sdata' for PresidentsController:Class): + app/controllers/presidents_controller.rb:6 + +Rendered rescues/_trace (82.2ms) +Rendered rescues/_request_and_response (0.8ms) +Rendering rescues/layout (internal_server_error) + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-11-11 12:55:18) [GET] + Parameters: {"instance_id"=>"Obama"} + President Load (1.9ms) SELECT * FROM "presidents" WHERE ("presidents"."last_name" = 'Obama') LIMIT 1 +Completed in 41ms (View: 2, DB: 2) | 200 OK [http://localhost/presidents/!Obama] + + +Processing ApplicationController#sdata_instance (for 127.0.0.1 at 2009-11-11 12:55:19) [GET] + Parameters: {"instance_id"=>"Obama"} + +NoMethodError (undefined method `acts_as_sdata' for PresidentsController:Class): + app/controllers/presidents_controller.rb:6 + +Rendered rescues/_trace (276.5ms) +Rendered rescues/_request_and_response (4.2ms) +Rendering rescues/layout (internal_server_error) +/!\ FAILSAFE /!\ Wed Nov 11 12:55:52 +0600 2009 + Status: 500 Internal Server Error + /home/aldor/development/acts_as_sdata/example-app/app/controllers/application_controller.rb:5: syntax error, unexpected '\n', expecting '=' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/activesupport/lib/active_support/dependencies.rb:380:in `load_without_new_constant_marking' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/activesupport/lib/active_support/dependencies.rb:380:in `load_file' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/activesupport/lib/active_support/dependencies.rb:521:in `new_constants_in' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/activesupport/lib/active_support/dependencies.rb:379:in `load_file' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/activesupport/lib/active_support/dependencies.rb:259:in `require_or_load' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/activesupport/lib/active_support/dependencies.rb:425:in `load_missing_constant' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/activesupport/lib/active_support/dependencies.rb:80:in `const_missing' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/activesupport/lib/active_support/dependencies.rb:92:in `const_missing' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:89:in `dispatch' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:121:in `_call' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:130:in `build_middleware_stack' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/activerecord/lib/active_record/query_cache.rb:29:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/activerecord/lib/active_record/query_cache.rb:29:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:34:in `cache' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/activerecord/lib/active_record/query_cache.rb:9:in `cache' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/activerecord/lib/active_record/query_cache.rb:28:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb:361:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/gems/rack-1.0.0/lib/rack/head.rb:9:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/gems/rack-1.0.0/lib/rack/methodoverride.rb:24:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/actionpack/lib/action_controller/params_parser.rb:15:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/actionpack/lib/action_controller/session/cookie_store.rb:93:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/actionpack/lib/action_controller/failsafe.rb:26:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/gems/rack-1.0.0/lib/rack/lock.rb:11:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/gems/rack-1.0.0/lib/rack/lock.rb:11:in `synchronize' + /home/aldor/development/acts_as_sdata/example-app/vendor/gems/rack-1.0.0/lib/rack/lock.rb:11:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:114:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/actionpack/lib/action_controller/reloader.rb:34:in `run' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:108:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/railties/lib/rails/rack/static.rb:31:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/gems/rack-1.0.0/lib/rack/urlmap.rb:46:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/gems/rack-1.0.0/lib/rack/urlmap.rb:40:in `each' + /home/aldor/development/acts_as_sdata/example-app/vendor/gems/rack-1.0.0/lib/rack/urlmap.rb:40:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/railties/lib/rails/rack/log_tailer.rb:17:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/gems/rack-1.0.0/lib/rack/content_length.rb:13:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/gems/rack-1.0.0/lib/rack/chunked.rb:15:in `call' + /home/aldor/development/acts_as_sdata/example-app/vendor/gems/rack-1.0.0/lib/rack/handler/mongrel.rb:61:in `process' + /usr/lib64/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:159:in `process_client' + /usr/lib64/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:158:in `each' + /usr/lib64/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:158:in `process_client' + /usr/lib64/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `run' + /usr/lib64/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `initialize' + /usr/lib64/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `new' + /usr/lib64/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `run' + /usr/lib64/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in `initialize' + /usr/lib64/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in `new' + /usr/lib64/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in `run' + /home/aldor/development/acts_as_sdata/example-app/vendor/gems/rack-1.0.0/lib/rack/handler/mongrel.rb:34:in `run' + /home/aldor/development/acts_as_sdata/example-app/vendor/rails/railties/lib/commands/server.rb:111 + /usr/lib64/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' + /usr/lib64/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' + ./script/server:3 + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-11-11 12:56:09) [GET] + Parameters: {"instance_id"=>"Obama"} + President Load (1.1ms) SELECT * FROM "presidents" WHERE ("presidents"."last_name" = 'Obama') LIMIT 1 +Completed in 24ms (View: 1, DB: 1) | 200 OK [http://localhost/presidents/!Obama] + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-11-11 12:56:11) [GET] + Parameters: {"instance_id"=>"Obama"} + President Load (1.5ms) SELECT * FROM "presidents" WHERE ("presidents"."last_name" = 'Obama') LIMIT 1 +Completed in 20ms (View: 2, DB: 2) | 200 OK [http://localhost/presidents/!Obama] + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-11-11 12:56:11) [GET] + Parameters: {"instance_id"=>"Obama"} + President Load (1.5ms) SELECT * FROM "presidents" WHERE ("presidents"."last_name" = 'Obama') LIMIT 1 +Completed in 18ms (View: 2, DB: 1) | 200 OK [http://localhost/presidents/!Obama] + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-11-11 12:56:12) [GET] + Parameters: {"instance_id"=>"Obama"} + President Load (2.6ms) SELECT * FROM "presidents" WHERE ("presidents"."last_name" = 'Obama') LIMIT 1 +Completed in 22ms (View: 2, DB: 3) | 200 OK [http://localhost/presidents/!Obama] + + +Processing PresidentsController#sdata_collection (for 127.0.0.1 at 2009-11-11 13:01:24) [GET] + President Load (16.5ms) SELECT * FROM "presidents"  +Completed in 61ms (View: 17, DB: 17) | 200 OK [http://localhost/presidents] + + +Processing PresidentsController#sdata_collection (for 127.0.0.1 at 2009-11-11 13:01:26) [GET] + President Load (16.3ms) SELECT * FROM "presidents"  +Completed in 59ms (View: 16, DB: 16) | 200 OK [http://localhost/presidents] + + +Processing PresidentsController#sdata_collection (for 127.0.0.1 at 2009-11-11 13:01:27) [GET] + President Load (16.0ms) SELECT * FROM "presidents"  +Completed in 58ms (View: 15, DB: 16) | 200 OK [http://localhost/presidents] + + +Processing PresidentsController#sdata_collection (for 127.0.0.1 at 2009-11-11 13:04:22) [GET] + President Load (20.6ms) SELECT * FROM "presidents"  +Completed in 72ms (View: 17, DB: 21) | 200 OK [http://localhost/presidents] + + +Processing PresidentsController#sdata_collection (for 127.0.0.1 at 2009-11-11 13:04:25) [GET] + President Load (8.5ms) SELECT * FROM "presidents"  +Completed in 30ms (View: 8, DB: 9) | 200 OK [http://localhost/presidents] + + +Processing PresidentsController#sdata_collection (for 127.0.0.1 at 2009-11-11 13:04:28) [GET] + President Load (20.4ms) SELECT * FROM "presidents"  +Completed in 69ms (View: 18, DB: 20) | 200 OK [http://localhost/presidents] + + +Processing ApplicationController#index (for 127.0.0.1 at 2009-11-11 13:04:40) [GET] + +NoMethodError (You have a nil object when you didn't expect it! +The error occurred while evaluating nil.params): + + +Rendered rescues/_trace (67.4ms) +Rendered rescues/_request_and_response (4.2ms) +Rendering rescues/layout (internal_server_error) + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-11-11 13:04:42) [GET] + Parameters: {"instance_id"=>"Obama"} + President Load (1.5ms) SELECT * FROM "presidents" WHERE ("presidents"."last_name" = 'Obama') LIMIT 1 +Completed in 54ms (View: 2, DB: 2) | 200 OK [http://localhost/presidents/!Obama] + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-11-11 13:04:44) [GET] + Parameters: {"instance_id"=>"Obama"} + President Load (1.5ms) SELECT * FROM "presidents" WHERE ("presidents"."last_name" = 'Obama') LIMIT 1 +Completed in 18ms (View: 2, DB: 1) | 200 OK [http://localhost/presidents/!Obama] + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-11-11 13:04:45) [GET] + Parameters: {"instance_id"=>"Obama"} + President Load (1.5ms) SELECT * FROM "presidents" WHERE ("presidents"."last_name" = 'Obama') LIMIT 1 +Completed in 18ms (View: 2, DB: 1) | 200 OK [http://localhost/presidents/!Obama] + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-11-11 13:04:46) [GET] + Parameters: {"instance_id"=>"Obama"} + President Load (1.5ms) SELECT * FROM "presidents" WHERE ("presidents"."last_name" = 'Obama') LIMIT 1 +Completed in 19ms (View: 2, DB: 1) | 200 OK [http://localhost/presidents/!Obama] + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-11-11 13:04:47) [GET] + Parameters: {"instance_id"=>"Obama"} + President Load (2.0ms) SELECT * FROM "presidents" WHERE ("presidents"."last_name" = 'Obama') LIMIT 1 +Completed in 22ms (View: 2, DB: 2) | 200 OK [http://localhost/presidents/!Obama] + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-11-11 13:06:14) [GET] + Parameters: {"instance_id"=>"Obama"} + President Load (1.9ms) SELECT * FROM "presidents" WHERE ("presidents"."last_name" = 'Obama') LIMIT 1 +Completed in 38ms (View: 2, DB: 2) | 200 OK [http://localhost/presidents/!Obama] + + +Processing ApplicationController#sdata_instance (for 127.0.0.1 at 2009-11-11 13:06:16) [GET] + Parameters: {"instance_id"=>"Obama"} + +NoMethodError (undefined method `acts_as_sdata' for PresidentsController:Class): + app/controllers/presidents_controller.rb:6 + +Rendered rescues/_trace (252.4ms) +Rendered rescues/_request_and_response (4.2ms) +Rendering rescues/layout (internal_server_error) + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-11-11 13:07:19) [GET] + Parameters: {"instance_id"=>"Obama"} + President Load (2.1ms) SELECT * FROM "presidents" WHERE ("presidents"."last_name" = 'Obama') LIMIT 1 +Completed in 38ms (View: 2, DB: 2) | 200 OK [http://localhost/presidents/!Obama] + + +Processing ApplicationController#sdata_instance (for 127.0.0.1 at 2009-11-11 13:07:20) [GET] + Parameters: {"instance_id"=>"Obama"} + +NoMethodError (undefined method `acts_as_sdata' for PresidentsController:Class): + app/controllers/presidents_controller.rb:6 + +Rendered rescues/_trace (247.7ms) +Rendered rescues/_request_and_response (4.1ms) +Rendering rescues/layout (internal_server_error) + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-11-11 13:08:03) [GET] + Parameters: {"instance_id"=>"Obama"} + +ActionController::UnknownAction (No action responded to sdata_instance. Actions: sdata_options and sdata_options=): + + +Rendering rescues/layout (not_found) + + +Processing ApplicationController#sdata_instance (for 127.0.0.1 at 2009-11-11 13:09:25) [GET] + Parameters: {"instance_id"=>"Obama"} + +NameError (undefined local variable or method `receiver' for PresidentsController:Class): + lib/sdata/controller_mixin.rb:13:in `acts_as_sdata' + app/controllers/presidents_controller.rb:6 + +Rendered rescues/_trace (40.2ms) +Rendered rescues/_request_and_response (2.1ms) +Rendering rescues/layout (internal_server_error) + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-11-11 13:10:02) [GET] + Parameters: {"instance_id"=>"Obama"} + President Load (1.0ms) SELECT * FROM "presidents" WHERE ("presidents"."last_name" = 'Obama') LIMIT 1 +Completed in 19ms (View: 1, DB: 1) | 200 OK [http://localhost/presidents/!Obama] + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-11-11 13:10:04) [GET] + Parameters: {"instance_id"=>"Obama"} + President Load (1.5ms) SELECT * FROM "presidents" WHERE ("presidents"."last_name" = 'Obama') LIMIT 1 +Completed in 17ms (View: 2, DB: 2) | 200 OK [http://localhost/presidents/!Obama] + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-11-11 13:10:04) [GET] + Parameters: {"instance_id"=>"Obama"} + President Load (1.5ms) SELECT * FROM "presidents" WHERE ("presidents"."last_name" = 'Obama') LIMIT 1 +Completed in 20ms (View: 2, DB: 1) | 200 OK [http://localhost/presidents/!Obama] + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-11-11 13:10:06) [GET] + Parameters: {"instance_id"=>"Obama"} + President Load (1.5ms) SELECT * FROM "presidents" WHERE ("presidents"."last_name" = 'Obama') LIMIT 1 +Completed in 19ms (View: 2, DB: 2) | 200 OK [http://localhost/presidents/!Obama] + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-11-11 13:10:07) [GET] + Parameters: {"instance_id"=>"Obama"} + President Load (2.4ms) SELECT * FROM "presidents" WHERE ("presidents"."last_name" = 'Obama') LIMIT 1 +Completed in 22ms (View: 2, DB: 2) | 200 OK [http://localhost/presidents/!Obama] + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-11-11 13:10:08) [GET] + Parameters: {"instance_id"=>"Obama"} + President Load (1.5ms) SELECT * FROM "presidents" WHERE ("presidents"."last_name" = 'Obama') LIMIT 1 +Completed in 32ms (View: 2, DB: 1) | 200 OK [http://localhost/presidents/!Obama] + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-11-11 13:10:10) [GET] + Parameters: {"instance_id"=>"Obama"} + President Load (1.5ms) SELECT * FROM "presidents" WHERE ("presidents"."last_name" = 'Obama') LIMIT 1 +Completed in 36ms (View: 2, DB: 2) | 200 OK [http://localhost/presidents/!Obama] + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-11-11 13:10:38) [GET] + Parameters: {"instance_id"=>"Obama"} + President Load (1.0ms) SELECT * FROM "presidents" WHERE ("presidents"."last_name" = 'Obama') LIMIT 1 +Completed in 20ms (View: 1, DB: 1) | 200 OK [http://localhost/presidents/!Obama] + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-11-11 13:10:41) [GET] + Parameters: {"instance_id"=>"Obama"} + President Load (1.5ms) SELECT * FROM "presidents" WHERE ("presidents"."last_name" = 'Obama') LIMIT 1 +Completed in 19ms (View: 2, DB: 1) | 200 OK [http://localhost/presidents/!Obama] + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-11-11 13:10:42) [GET] + Parameters: {"instance_id"=>"Obama"} + President Load (1.5ms) SELECT * FROM "presidents" WHERE ("presidents"."last_name" = 'Obama') LIMIT 1 +Completed in 17ms (View: 2, DB: 1) | 200 OK [http://localhost/presidents/!Obama] + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-11-11 13:10:42) [GET] + Parameters: {"instance_id"=>"Obama"} + President Load (1.5ms) SELECT * FROM "presidents" WHERE ("presidents"."last_name" = 'Obama') LIMIT 1 +Completed in 19ms (View: 2, DB: 2) | 200 OK [http://localhost/presidents/!Obama] + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-11-11 13:10:43) [GET] + Parameters: {"instance_id"=>"Obama"} + President Load (1.6ms) SELECT * FROM "presidents" WHERE ("presidents"."last_name" = 'Obama') LIMIT 1 +Completed in 21ms (View: 2, DB: 2) | 200 OK [http://localhost/presidents/!Obama] + + +Processing PresidentsController#sdata_collection (for 127.0.0.1 at 2009-11-11 13:10:45) [GET] + President Load (18.7ms) SELECT * FROM "presidents"  +Completed in 73ms (View: 18, DB: 19) | 200 OK [http://localhost/presidents] + + +Processing PresidentsController#sdata_collection (for 127.0.0.1 at 2009-11-11 13:10:46) [GET] + President Load (17.7ms) SELECT * FROM "presidents"  +Completed in 70ms (View: 21, DB: 18) | 200 OK [http://localhost/presidents] + + +Processing PresidentsController#sdata_collection (for 127.0.0.1 at 2009-11-11 13:10:46) [GET] + President Load (15.9ms) SELECT * FROM "presidents"  +Completed in 61ms (View: 16, DB: 16) | 200 OK [http://localhost/presidents] + + +Processing PresidentsController#sdata_collection (for 127.0.0.1 at 2009-11-11 13:10:47) [GET] + President Load (16.2ms) SELECT * FROM "presidents"  +Completed in 224ms (View: 181, DB: 16) | 200 OK [http://localhost/presidents] + + +Processing PresidentsController#sdata_collection (for 127.0.0.1 at 2009-11-11 13:10:47) [GET] + President Load (16.2ms) SELECT * FROM "presidents"  +Completed in 61ms (View: 17, DB: 16) | 200 OK [http://localhost/presidents] + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-11-11 13:12:54) [GET] + Parameters: {"instance_id"=>"Obama"} + President Load (2.7ms) SELECT * FROM "presidents" WHERE ("presidents"."last_name" = 'Obama') LIMIT 1 +Completed in 39ms (View: 2, DB: 3) | 200 OK [http://localhost/presidents/!Obama] + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-11-11 13:12:55) [GET] + Parameters: {"instance_id"=>"Obama"} + President Load (1.5ms) SELECT * FROM "presidents" WHERE ("presidents"."last_name" = 'Obama') LIMIT 1 +Completed in 18ms (View: 2, DB: 1) | 200 OK [http://localhost/presidents/!Obama] + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-11-11 13:12:56) [GET] + Parameters: {"instance_id"=>"Obama"} + President Load (1.5ms) SELECT * FROM "presidents" WHERE ("presidents"."last_name" = 'Obama') LIMIT 1 +Completed in 18ms (View: 2, DB: 1) | 200 OK [http://localhost/presidents/!Obama] + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-11-11 13:14:13) [GET] + Parameters: {"instance_id"=>"Obama"} + President Load (1.0ms) SELECT * FROM "presidents" WHERE ("presidents"."last_name" = 'Obama') LIMIT 1 +Completed in 22ms (View: 1, DB: 1) | 200 OK [http://localhost/presidents/!Obama] + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-11-11 13:14:16) [GET] + Parameters: {"instance_id"=>"Obama"} + President Load (1.6ms) SELECT * FROM "presidents" WHERE ("presidents"."last_name" = 'Obama') LIMIT 1 +Completed in 18ms (View: 2, DB: 2) | 200 OK [http://localhost/presidents/!Obama] + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-11-11 13:14:19) [GET] + Parameters: {"instance_id"=>"Obama"} + President Load (1.5ms) SELECT * FROM "presidents" WHERE ("presidents"."last_name" = 'Obama') LIMIT 1 +Completed in 18ms (View: 2, DB: 1) | 200 OK [http://localhost/presidents/!Obama] + + +Processing PresidentsController#sdata_collection (for 127.0.0.1 at 2009-11-11 13:14:22) [GET] + President Load (16.4ms) SELECT * FROM "presidents"  +Completed in 62ms (View: 17, DB: 16) | 200 OK [http://localhost/presidents] + + +Processing PresidentsController#sdata_collection (for 127.0.0.1 at 2009-11-11 13:14:24) [GET] + President Load (17.5ms) SELECT * FROM "presidents"  +Completed in 62ms (View: 17, DB: 17) | 200 OK [http://localhost/presidents] + + +Processing PresidentsController#sdata_collection (for 127.0.0.1 at 2009-11-11 13:14:25) [GET] + President Load (16.5ms) SELECT * FROM "presidents"  +Completed in 59ms (View: 15, DB: 17) | 200 OK [http://localhost/presidents] + + +Processing ApplicationController#sdata_instance (for 127.0.0.1 at 2009-11-11 13:15:07) [GET] + Parameters: {"instance_id"=>"Obama"} + +NoMethodError (undefined method `acts_as_sdata' for PresidentsController:Class): + app/controllers/presidents_controller.rb:6 + +Rendered rescues/_trace (51.8ms) +Rendered rescues/_request_and_response (2.3ms) +Rendering rescues/layout (internal_server_error) + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-11-11 13:15:37) [GET] + Parameters: {"instance_id"=>"Obama"} + President Load (0.9ms) SELECT * FROM "presidents" WHERE ("presidents"."last_name" = 'Obama') LIMIT 1 +Completed in 19ms (View: 1, DB: 1) | 200 OK [http://localhost/presidents/!Obama] + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-11-11 13:15:38) [GET] + Parameters: {"instance_id"=>"Obama"} + President Load (1.5ms) SELECT * FROM "presidents" WHERE ("presidents"."last_name" = 'Obama') LIMIT 1 +Completed in 19ms (View: 2, DB: 2) | 200 OK [http://localhost/presidents/!Obama] + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-11-11 13:15:39) [GET] + Parameters: {"instance_id"=>"Obama"} + President Load (1.5ms) SELECT * FROM "presidents" WHERE ("presidents"."last_name" = 'Obama') LIMIT 1 +Completed in 19ms (View: 2, DB: 1) | 200 OK [http://localhost/presidents/!Obama] + + +Processing PresidentsController#sdata_collection (for 127.0.0.1 at 2009-11-11 13:15:41) [GET] + President Load (17.7ms) SELECT * FROM "presidents"  +Completed in 66ms (View: 18, DB: 18) | 200 OK [http://localhost/presidents] + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-11-11 13:16:53) [GET] + Parameters: {"instance_id"=>"Obama"} + President Load (1.9ms) SELECT * FROM "presidents" WHERE ("presidents"."last_name" = 'Obama') LIMIT 1 +Completed in 40ms (View: 2, DB: 2) | 200 OK [http://localhost/presidents/!Obama] + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-11-11 13:16:54) [GET] + Parameters: {"instance_id"=>"Obama"} + President Load (1.6ms) SELECT * FROM "presidents" WHERE ("presidents"."last_name" = 'Obama') LIMIT 1 +Completed in 19ms (View: 2, DB: 2) | 200 OK [http://localhost/presidents/!Obama] + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-11-11 13:16:55) [GET] + Parameters: {"instance_id"=>"Obama"} + President Load (1.5ms) SELECT * FROM "presidents" WHERE ("presidents"."last_name" = 'Obama') LIMIT 1 +Completed in 17ms (View: 2, DB: 1) | 200 OK [http://localhost/presidents/!Obama] + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-11-11 13:16:56) [GET] + Parameters: {"instance_id"=>"Obama"} + President Load (1.7ms) SELECT * FROM "presidents" WHERE ("presidents"."last_name" = 'Obama') LIMIT 1 +Completed in 19ms (View: 2, DB: 2) | 200 OK [http://localhost/presidents/!Obama] + + +Processing PresidentsController#sdata_collection (for 127.0.0.1 at 2009-11-11 13:16:58) [GET] + President Load (17.3ms) SELECT * FROM "presidents"  +Completed in 64ms (View: 16, DB: 17) | 200 OK [http://localhost/presidents] + + +Processing PresidentsController#sdata_collection (for 127.0.0.1 at 2009-11-11 13:16:59) [GET] + President Load (16.1ms) SELECT * FROM "presidents"  +Completed in 64ms (View: 19, DB: 16) | 200 OK [http://localhost/presidents] + + +Processing PresidentsController#sdata_collection (for 127.0.0.1 at 2009-11-17 10:44:55) [GET] + President Load (18.5ms) SELECT * FROM "presidents"  +Completed in 67ms (View: 17, DB: 19) | 200 OK [http://localhost/presidents] + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-11-17 10:50:22) [GET] + Parameters: {"instance_id"=>"Obama"} + President Load (2.8ms) SELECT * FROM "presidents" WHERE ("presidents"."last_name" = 'Obama') LIMIT 1 +Completed in 98ms (View: 2, DB: 3) | 200 OK [http://localhost/presidents/!Obama] + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-11-17 10:54:19) [GET] + Parameters: {"instance_id"=>"Wilson"} + President Load (1.8ms) SELECT * FROM "presidents" WHERE ("presidents"."last_name" = 'Wilson') LIMIT 1 +Completed in 18ms (View: 2, DB: 2) | 200 OK [http://localhost/presidents/!Wilson] + + +Processing PresidentsController#sdata_collection (for 127.0.0.1 at 2009-11-17 10:55:28) [GET] + President Load (15.6ms) SELECT * FROM "presidents"  +Completed in 72ms (View: 15, DB: 16) | 200 OK [http://localhost/presidents] + + +Processing PresidentsController#sdata_collection (for 127.0.0.1 at 2009-11-17 10:57:52) [GET] + Parameters: {"predicate"=>"born_at%20at%201900"} + President Load (17.7ms) SELECT * FROM "presidents"  +Completed in 63ms (View: 17, DB: 18) | 200 OK [http://localhost/presidents(born_at%20at%201900)] + + +Processing PresidentsController#sdata_collection (for 127.0.0.1 at 2009-11-17 10:58:15) [GET] + Parameters: {"predicate"=>"born_at%20gt%201900"} + President Load (2.3ms) SELECT * FROM "presidents" WHERE ("born_at" > '1900')  +Completed in 14ms (View: 3, DB: 2) | 200 OK [http://localhost/presidents(born_at%20gt%201900)] + + +Processing PresidentsController#sdata_collection (for 127.0.0.1 at 2009-11-18 17:07:50) [GET] + President Load (17.2ms) SELECT * FROM "presidents"  +Completed in 67ms (View: 17, DB: 17) | 200 OK [http://localhost/presidents] + + +Processing PresidentsController#sdata_instance (for 127.0.0.1 at 2009-11-18 17:07:57) [GET] + Parameters: {"instance_id"=>"Wilson"} + President Load (2.2ms) SELECT * FROM "presidents" WHERE ("presidents"."last_name" = 'Wilson') LIMIT 1 +Completed in 91ms (View: 2, DB: 2) | 200 OK [http://localhost/presidents/!Wilson] diff --git a/presidents/log/test.log b/presidents/log/test.log new file mode 100644 index 0000000..d0f6a64 --- /dev/null +++ b/presidents/log/test.log @@ -0,0 +1,15335 @@ +# Logfile created on Wed Oct 28 19:07:03 +0600 2009 SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.3ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (1.0ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.2ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 13:07:04', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-28 13:07:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 13:07:04', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-28 13:07:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 13:07:04', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-28 13:07:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 13:07:04', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-28 13:07:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 13:07:04', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-28 13:07:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 13:07:04', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-28 13:07:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 13:07:04', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-28 13:07:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 13:07:04', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-28 13:07:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 13:07:04', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-28 13:07:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 13:07:04', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-28 13:07:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 13:07:04', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-28 13:07:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 13:07:04', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-28 13:07:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 13:07:04', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-28 13:07:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 13:07:04', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-28 13:07:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 13:07:04', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-28 13:07:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 13:07:04', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-28 13:07:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 13:07:04', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-28 13:07:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 13:07:04', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-28 13:07:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 13:07:04', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-28 13:07:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 13:07:04', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-28 13:07:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 13:07:04', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-28 13:07:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 13:07:04', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-28 13:07:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 13:07:04', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-28 13:07:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 13:07:04', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-28 13:07:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 13:07:04', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-28 13:07:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 13:07:04', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-28 13:07:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 13:07:04', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-28 13:07:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 13:07:04', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-28 13:07:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 13:07:04', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-28 13:07:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 13:07:04', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-28 13:07:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 13:07:04', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-28 13:07:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 13:07:04', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-28 13:07:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 13:07:04', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-28 13:07:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 13:07:04', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-28 13:07:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 13:07:04', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-28 13:07:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 13:07:04', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-28 13:07:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 13:07:04', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-28 13:07:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 13:07:04', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-28 13:07:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 13:07:04', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-28 13:07:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 13:07:04', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-28 13:07:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 13:07:04', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-28 13:07:04') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 13:07:04', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-28 13:07:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 13:07:04', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-28 13:07:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 13:07:04', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-28 13:07:04') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.2ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.1ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:26', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-28 14:04:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:26', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-28 14:04:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:26', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-28 14:04:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:26', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-28 14:04:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:26', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-28 14:04:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:26', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-28 14:04:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:26', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-28 14:04:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:26', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-28 14:04:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:26', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-28 14:04:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:26', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-28 14:04:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:26', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-28 14:04:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:26', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-28 14:04:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:26', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-28 14:04:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:26', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-28 14:04:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:26', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-28 14:04:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:26', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-28 14:04:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:26', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-28 14:04:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:26', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-28 14:04:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:26', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-28 14:04:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:26', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-28 14:04:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:26', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-28 14:04:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:26', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-28 14:04:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:26', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-28 14:04:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:26', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-28 14:04:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:26', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-28 14:04:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:26', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-28 14:04:26') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:26', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-28 14:04:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:26', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-28 14:04:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:26', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-28 14:04:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:26', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-28 14:04:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:26', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-28 14:04:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:26', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-28 14:04:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:26', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-28 14:04:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:26', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-28 14:04:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:26', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-28 14:04:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:26', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-28 14:04:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:26', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-28 14:04:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:26', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-28 14:04:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:26', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-28 14:04:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:26', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-28 14:04:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:26', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-28 14:04:26') + President Load (0.6ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:26', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-28 14:04:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:26', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-28 14:04:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:26', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-28 14:04:26') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.1ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:51', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-28 14:04:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:51', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-28 14:04:51') + President Load (0.9ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:51', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-28 14:04:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:51', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-28 14:04:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:51', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-28 14:04:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:51', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-28 14:04:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:51', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-28 14:04:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:51', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-28 14:04:51') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:51', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-28 14:04:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:51', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-28 14:04:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:51', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-28 14:04:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:51', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-28 14:04:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:51', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-28 14:04:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:51', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-28 14:04:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:51', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-28 14:04:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:51', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-28 14:04:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:51', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-28 14:04:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:51', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-28 14:04:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:51', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-28 14:04:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:51', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-28 14:04:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:51', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-28 14:04:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:51', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-28 14:04:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:51', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-28 14:04:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:51', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-28 14:04:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:51', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-28 14:04:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:51', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-28 14:04:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:51', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-28 14:04:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:51', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-28 14:04:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:51', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-28 14:04:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:51', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-28 14:04:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:51', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-28 14:04:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:51', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-28 14:04:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:51', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-28 14:04:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:51', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-28 14:04:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:51', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-28 14:04:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:51', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-28 14:04:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:51', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-28 14:04:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:51', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-28 14:04:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:51', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-28 14:04:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:51', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-28 14:04:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:51', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-28 14:04:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:51', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-28 14:04:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:51', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-28 14:04:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:04:51', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-28 14:04:51') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.1ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:19', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-28 14:05:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:19', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-28 14:05:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:19', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-28 14:05:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:19', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-28 14:05:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:19', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-28 14:05:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:19', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-28 14:05:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:19', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-28 14:05:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (1.0ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:19', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-28 14:05:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:19', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-28 14:05:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:19', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-28 14:05:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:19', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-28 14:05:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:19', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-28 14:05:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:19', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-28 14:05:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:19', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-28 14:05:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:19', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-28 14:05:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:19', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-28 14:05:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:19', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-28 14:05:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:19', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-28 14:05:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:19', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-28 14:05:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:19', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-28 14:05:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:19', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-28 14:05:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:19', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-28 14:05:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:19', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-28 14:05:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:19', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-28 14:05:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:19', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-28 14:05:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:19', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-28 14:05:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:19', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-28 14:05:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:19', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-28 14:05:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:19', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-28 14:05:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:19', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-28 14:05:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:19', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-28 14:05:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:19', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-28 14:05:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:19', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-28 14:05:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:19', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-28 14:05:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:19', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-28 14:05:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:19', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-28 14:05:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:19', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-28 14:05:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:19', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-28 14:05:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:19', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-28 14:05:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:19', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-28 14:05:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:19', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-28 14:05:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:19', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-28 14:05:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:19', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-28 14:05:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:19', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-28 14:05:19') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.1ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:46', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-28 14:05:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:46', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-28 14:05:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:46', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-28 14:05:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:46', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-28 14:05:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:46', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-28 14:05:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:46', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-28 14:05:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:46', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-28 14:05:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:46', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-28 14:05:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:46', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-28 14:05:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:46', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-28 14:05:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:46', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-28 14:05:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:46', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-28 14:05:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:46', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-28 14:05:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:46', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-28 14:05:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:46', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-28 14:05:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:46', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-28 14:05:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:46', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-28 14:05:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:46', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-28 14:05:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:46', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-28 14:05:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:46', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-28 14:05:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:46', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-28 14:05:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:46', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-28 14:05:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:46', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-28 14:05:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:46', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-28 14:05:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:46', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-28 14:05:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:46', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-28 14:05:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:46', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-28 14:05:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:46', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-28 14:05:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:46', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-28 14:05:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:46', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-28 14:05:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:46', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-28 14:05:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:46', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-28 14:05:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:46', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-28 14:05:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:46', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-28 14:05:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:46', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-28 14:05:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:46', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-28 14:05:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:46', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-28 14:05:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:46', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-28 14:05:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:46', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-28 14:05:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:46', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-28 14:05:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:46', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-28 14:05:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:46', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-28 14:05:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:46', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-28 14:05:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:05:46', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-28 14:05:46') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.1ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:45', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-28 14:06:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:45', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-28 14:06:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:45', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-28 14:06:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:45', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-28 14:06:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:45', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-28 14:06:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:45', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-28 14:06:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:45', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-28 14:06:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:45', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-28 14:06:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:45', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-28 14:06:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:45', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-28 14:06:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:45', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-28 14:06:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:45', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-28 14:06:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:45', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-28 14:06:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:45', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-28 14:06:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:45', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-28 14:06:45') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:45', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-28 14:06:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:45', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-28 14:06:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:45', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-28 14:06:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:45', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-28 14:06:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:45', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-28 14:06:45') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:45', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-28 14:06:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:45', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-28 14:06:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:45', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-28 14:06:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:45', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-28 14:06:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:45', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-28 14:06:45') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:45', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-28 14:06:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:45', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-28 14:06:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:45', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-28 14:06:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:45', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-28 14:06:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:45', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-28 14:06:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:45', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-28 14:06:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:45', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-28 14:06:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:45', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-28 14:06:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:45', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-28 14:06:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:45', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-28 14:06:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:45', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-28 14:06:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:45', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-28 14:06:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:45', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-28 14:06:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:45', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-28 14:06:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:45', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-28 14:06:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:45', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-28 14:06:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:45', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-28 14:06:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:45', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-28 14:06:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:45', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-28 14:06:45') + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.1ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:55', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-28 14:06:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:55', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-28 14:06:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:55', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-28 14:06:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:55', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-28 14:06:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:55', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-28 14:06:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:55', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-28 14:06:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:55', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-28 14:06:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:55', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-28 14:06:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:55', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-28 14:06:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:55', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-28 14:06:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:55', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-28 14:06:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:55', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-28 14:06:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:55', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-28 14:06:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:55', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-28 14:06:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:55', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-28 14:06:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:55', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-28 14:06:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:55', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-28 14:06:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:55', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-28 14:06:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:55', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-28 14:06:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:55', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-28 14:06:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:55', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-28 14:06:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:55', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-28 14:06:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:55', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-28 14:06:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:55', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-28 14:06:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:55', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-28 14:06:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:55', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-28 14:06:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:55', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-28 14:06:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:55', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-28 14:06:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:55', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-28 14:06:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:55', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-28 14:06:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:55', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-28 14:06:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:55', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-28 14:06:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:55', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-28 14:06:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:55', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-28 14:06:55') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:55', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-28 14:06:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:55', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-28 14:06:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:55', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-28 14:06:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:55', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-28 14:06:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:55', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-28 14:06:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:55', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-28 14:06:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:55', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-28 14:06:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:55', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-28 14:06:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:55', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-28 14:06:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:06:55', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-28 14:06:55') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.1ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:36', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-28 14:07:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:36', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-28 14:07:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:36', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-28 14:07:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:36', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-28 14:07:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:36', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-28 14:07:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:36', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-28 14:07:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:36', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-28 14:07:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:36', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-28 14:07:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:36', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-28 14:07:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:36', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-28 14:07:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:36', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-28 14:07:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:36', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-28 14:07:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:36', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-28 14:07:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:36', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-28 14:07:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:36', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-28 14:07:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:36', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-28 14:07:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:36', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-28 14:07:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:36', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-28 14:07:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:36', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-28 14:07:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:36', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-28 14:07:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:36', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-28 14:07:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:36', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-28 14:07:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:36', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-28 14:07:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:36', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-28 14:07:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:36', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-28 14:07:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:36', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-28 14:07:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:36', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-28 14:07:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:36', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-28 14:07:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:36', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-28 14:07:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:36', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-28 14:07:36') + President Load (0.7ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:36', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-28 14:07:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:36', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-28 14:07:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:36', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-28 14:07:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:36', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-28 14:07:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:36', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-28 14:07:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:36', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-28 14:07:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:36', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-28 14:07:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:36', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-28 14:07:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:36', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-28 14:07:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:36', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-28 14:07:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:36', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-28 14:07:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:36', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-28 14:07:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:36', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-28 14:07:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:36', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-28 14:07:36') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.6ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.2ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.1ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:49', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-28 14:07:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:49', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-28 14:07:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:49', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-28 14:07:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:49', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-28 14:07:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:49', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-28 14:07:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:49', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-28 14:07:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:49', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-28 14:07:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:49', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-28 14:07:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:49', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-28 14:07:49') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:49', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-28 14:07:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:49', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-28 14:07:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:49', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-28 14:07:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:49', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-28 14:07:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:49', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-28 14:07:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:49', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-28 14:07:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:49', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-28 14:07:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:49', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-28 14:07:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:49', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-28 14:07:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:49', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-28 14:07:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:49', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-28 14:07:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:49', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-28 14:07:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:49', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-28 14:07:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:49', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-28 14:07:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:49', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-28 14:07:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:49', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-28 14:07:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:49', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-28 14:07:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:49', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-28 14:07:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:49', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-28 14:07:49') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:49', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-28 14:07:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:49', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-28 14:07:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:49', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-28 14:07:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:49', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-28 14:07:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:49', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-28 14:07:49') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:49', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-28 14:07:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:49', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-28 14:07:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:49', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-28 14:07:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:49', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-28 14:07:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:49', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-28 14:07:49') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:49', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-28 14:07:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:49', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-28 14:07:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:49', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-28 14:07:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:49', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-28 14:07:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:49', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-28 14:07:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:07:49', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-28 14:07:49') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.8ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:08:12', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-28 14:08:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:08:12', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-28 14:08:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:08:12', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-28 14:08:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:08:12', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-28 14:08:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:08:12', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-28 14:08:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:08:12', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-28 14:08:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:08:12', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-28 14:08:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:08:12', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-28 14:08:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:08:13', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-28 14:08:13') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:08:13', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-28 14:08:13') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:08:13', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-28 14:08:13') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:08:13', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-28 14:08:13') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:08:13', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-28 14:08:13') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:08:13', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-28 14:08:13') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:08:13', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-28 14:08:13') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:08:13', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-28 14:08:13') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:08:13', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-28 14:08:13') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:08:13', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-28 14:08:13') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:08:13', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-28 14:08:13') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:08:13', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-28 14:08:13') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:08:13', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-28 14:08:13') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:08:13', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-28 14:08:13') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:08:13', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-28 14:08:13') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:08:13', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-28 14:08:13') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:08:13', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-28 14:08:13') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:08:13', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-28 14:08:13') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:08:13', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-28 14:08:13') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:08:13', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-28 14:08:13') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:08:13', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-28 14:08:13') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:08:13', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-28 14:08:13') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:08:13', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-28 14:08:13') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:08:13', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-28 14:08:13') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:08:13', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-28 14:08:13') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:08:13', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-28 14:08:13') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:08:13', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-28 14:08:13') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:08:13', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-28 14:08:13') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:08:13', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-28 14:08:13') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:08:13', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-28 14:08:13') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:08:13', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-28 14:08:13') + President Load (0.6ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:08:13', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-28 14:08:13') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:08:13', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-28 14:08:13') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:08:13', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-28 14:08:13') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:08:13', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-28 14:08:13') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:08:13', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-28 14:08:13') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.1ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:23', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-28 14:09:23') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:23', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-28 14:09:23') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:23', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-28 14:09:23') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:23', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-28 14:09:23') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:23', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-28 14:09:23') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:23', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-28 14:09:23') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:23', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-28 14:09:23') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:23', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-28 14:09:23') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:23', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-28 14:09:23') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:23', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-28 14:09:23') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:23', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-28 14:09:23') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:23', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-28 14:09:23') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:23', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-28 14:09:23') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:23', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-28 14:09:23') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:23', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-28 14:09:23') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:23', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-28 14:09:23') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:23', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-28 14:09:23') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:23', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-28 14:09:23') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:23', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-28 14:09:23') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:23', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-28 14:09:23') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:23', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-28 14:09:23') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:23', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-28 14:09:23') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:23', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-28 14:09:23') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:24', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-28 14:09:24') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:24', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-28 14:09:24') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:24', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-28 14:09:24') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:24', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-28 14:09:24') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:24', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-28 14:09:24') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:24', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-28 14:09:24') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:24', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-28 14:09:24') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:24', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-28 14:09:24') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:24', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-28 14:09:24') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:24', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-28 14:09:24') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:24', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-28 14:09:24') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:24', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-28 14:09:24') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:24', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-28 14:09:24') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:24', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-28 14:09:24') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:24', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-28 14:09:24') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:24', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-28 14:09:24') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:24', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-28 14:09:24') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:24', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-28 14:09:24') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:24', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-28 14:09:24') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:24', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-28 14:09:24') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:24', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-28 14:09:24') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:46', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-28 14:09:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:46', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-28 14:09:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:46', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-28 14:09:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:46', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-28 14:09:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:46', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-28 14:09:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:46', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-28 14:09:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:46', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-28 14:09:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:46', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-28 14:09:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:46', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-28 14:09:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:46', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-28 14:09:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:46', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-28 14:09:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:46', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-28 14:09:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:46', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-28 14:09:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:46', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-28 14:09:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:46', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-28 14:09:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:46', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-28 14:09:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:46', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-28 14:09:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:46', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-28 14:09:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:46', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-28 14:09:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:46', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-28 14:09:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:46', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-28 14:09:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:46', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-28 14:09:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:46', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-28 14:09:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:46', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-28 14:09:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:46', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-28 14:09:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:46', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-28 14:09:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:46', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-28 14:09:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:46', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-28 14:09:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:46', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-28 14:09:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:46', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-28 14:09:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:46', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-28 14:09:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:46', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-28 14:09:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:46', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-28 14:09:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:46', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-28 14:09:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:46', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-28 14:09:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:46', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-28 14:09:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:46', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-28 14:09:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:47', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-28 14:09:47') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:47', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-28 14:09:47') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:47', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-28 14:09:47') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:47', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-28 14:09:47') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:47', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-28 14:09:47') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:47', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-28 14:09:47') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:09:47', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-28 14:09:47') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.1ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:10:01', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-28 14:10:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:10:01', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-28 14:10:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:10:01', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-28 14:10:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:10:01', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-28 14:10:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:10:01', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-28 14:10:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:10:01', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-28 14:10:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:10:01', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-28 14:10:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:10:01', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-28 14:10:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:10:01', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-28 14:10:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:10:01', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-28 14:10:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:10:01', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-28 14:10:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:10:01', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-28 14:10:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:10:01', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-28 14:10:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:10:01', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-28 14:10:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:10:01', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-28 14:10:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:10:01', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-28 14:10:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:10:01', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-28 14:10:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:10:01', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-28 14:10:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:10:01', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-28 14:10:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:10:01', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-28 14:10:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:10:01', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-28 14:10:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:10:01', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-28 14:10:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:10:01', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-28 14:10:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:10:01', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-28 14:10:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:10:01', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-28 14:10:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:10:01', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-28 14:10:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:10:01', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-28 14:10:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:10:01', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-28 14:10:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:10:01', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-28 14:10:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:10:01', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-28 14:10:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:10:01', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-28 14:10:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:10:01', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-28 14:10:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:10:01', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-28 14:10:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:10:01', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-28 14:10:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:10:01', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-28 14:10:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:10:01', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-28 14:10:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:10:01', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-28 14:10:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:10:01', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-28 14:10:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:10:01', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-28 14:10:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:10:01', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-28 14:10:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:10:01', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-28 14:10:01') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:10:01', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-28 14:10:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:10:01', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-28 14:10:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:10:01', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-28 14:10:01') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (1.0ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.1ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:14:29', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-28 14:14:29') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:14:29', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-28 14:14:29') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:14:29', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-28 14:14:29') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:14:29', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-28 14:14:29') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:14:29', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-28 14:14:29') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:14:29', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-28 14:14:29') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:14:29', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-28 14:14:29') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:14:29', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-28 14:14:29') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:14:29', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-28 14:14:29') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:14:29', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-28 14:14:29') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:14:29', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-28 14:14:29') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:14:29', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-28 14:14:29') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:14:29', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-28 14:14:29') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:14:29', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-28 14:14:29') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:14:29', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-28 14:14:29') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:14:29', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-28 14:14:29') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:14:29', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-28 14:14:29') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:14:29', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-28 14:14:29') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:14:29', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-28 14:14:29') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:14:29', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-28 14:14:29') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:14:29', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-28 14:14:29') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:14:29', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-28 14:14:29') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:14:29', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-28 14:14:29') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:14:29', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-28 14:14:29') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:14:29', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-28 14:14:29') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:14:29', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-28 14:14:29') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:14:29', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-28 14:14:29') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:14:29', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-28 14:14:29') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:14:29', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-28 14:14:29') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:14:29', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-28 14:14:29') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:14:29', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-28 14:14:29') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:14:29', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-28 14:14:29') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:14:29', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-28 14:14:29') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:14:29', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-28 14:14:29') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:14:29', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-28 14:14:29') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:14:29', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-28 14:14:29') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:14:29', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-28 14:14:29') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:14:29', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-28 14:14:29') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:14:29', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-28 14:14:29') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:14:29', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-28 14:14:29') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:14:29', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-28 14:14:29') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:14:29', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-28 14:14:29') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:14:29', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-28 14:14:29') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:14:29', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-28 14:14:29') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.1ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:11', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-28 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:11', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-28 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:11', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-28 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:11', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-28 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:11', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-28 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:11', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-28 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:12', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-28 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:12', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-28 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:12', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-28 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:12', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-28 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:12', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-28 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:12', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-28 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:12', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-28 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:12', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-28 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:12', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-28 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:12', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-28 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:12', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-28 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:12', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-28 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:12', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-28 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:12', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-28 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:12', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-28 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:12', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-28 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:12', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-28 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:12', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-28 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:12', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-28 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:12', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-28 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:12', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-28 14:24:12') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:12', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-28 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:12', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-28 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:12', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-28 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:12', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-28 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:12', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-28 14:24:12') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:12', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-28 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:12', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-28 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:12', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-28 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:12', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-28 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:12', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-28 14:24:12') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:12', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-28 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:12', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-28 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:12', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-28 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:12', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-28 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:12', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-28 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:12', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-28 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:12', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-28 14:24:12') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.2ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.1ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:53', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-28 14:24:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:53', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-28 14:24:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:53', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-28 14:24:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:53', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-28 14:24:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:53', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-28 14:24:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:53', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-28 14:24:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:53', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-28 14:24:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:53', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-28 14:24:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:53', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-28 14:24:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:53', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-28 14:24:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:53', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-28 14:24:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:53', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-28 14:24:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:53', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-28 14:24:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:53', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-28 14:24:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:53', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-28 14:24:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:53', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-28 14:24:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:53', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-28 14:24:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:53', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-28 14:24:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:53', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-28 14:24:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:53', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-28 14:24:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:53', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-28 14:24:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:53', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-28 14:24:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:53', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-28 14:24:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:53', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-28 14:24:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:53', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-28 14:24:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:53', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-28 14:24:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:53', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-28 14:24:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:53', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-28 14:24:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:53', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-28 14:24:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:53', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-28 14:24:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:53', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-28 14:24:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:53', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-28 14:24:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:53', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-28 14:24:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:53', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-28 14:24:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:53', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-28 14:24:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:53', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-28 14:24:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:53', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-28 14:24:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:53', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-28 14:24:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:53', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-28 14:24:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:53', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-28 14:24:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:53', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-28 14:24:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:53', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-28 14:24:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:53', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-28 14:24:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:24:53', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-28 14:24:53') + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.6ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.1ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:19', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-28 14:25:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:19', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-28 14:25:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:19', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-28 14:25:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:19', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-28 14:25:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:19', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-28 14:25:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:19', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-28 14:25:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:19', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-28 14:25:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:19', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-28 14:25:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:19', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-28 14:25:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:19', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-28 14:25:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:19', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-28 14:25:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:19', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-28 14:25:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:19', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-28 14:25:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:19', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-28 14:25:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:19', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-28 14:25:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:19', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-28 14:25:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:19', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-28 14:25:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:19', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-28 14:25:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:19', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-28 14:25:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:19', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-28 14:25:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:19', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-28 14:25:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:19', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-28 14:25:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:19', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-28 14:25:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:19', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-28 14:25:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:19', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-28 14:25:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:19', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-28 14:25:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:19', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-28 14:25:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:19', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-28 14:25:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:19', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-28 14:25:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:19', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-28 14:25:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:19', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-28 14:25:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:19', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-28 14:25:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:19', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-28 14:25:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:19', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-28 14:25:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:19', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-28 14:25:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:19', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-28 14:25:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:19', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-28 14:25:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:19', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-28 14:25:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:19', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-28 14:25:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:19', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-28 14:25:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:19', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-28 14:25:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:19', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-28 14:25:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:19', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-28 14:25:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:19', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-28 14:25:19') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:34', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-28 14:25:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:35', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-28 14:25:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:35', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-28 14:25:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:35', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-28 14:25:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:35', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-28 14:25:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:35', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-28 14:25:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:35', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-28 14:25:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:35', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-28 14:25:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:35', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-28 14:25:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:35', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-28 14:25:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:35', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-28 14:25:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:35', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-28 14:25:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:35', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-28 14:25:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:35', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-28 14:25:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:35', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-28 14:25:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:35', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-28 14:25:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:35', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-28 14:25:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:35', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-28 14:25:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:35', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-28 14:25:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:35', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-28 14:25:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:35', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-28 14:25:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:35', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-28 14:25:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:35', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-28 14:25:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:35', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-28 14:25:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:35', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-28 14:25:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:35', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-28 14:25:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (1.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:35', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-28 14:25:35') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:35', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-28 14:25:35') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:35', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-28 14:25:35') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:35', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-28 14:25:35') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:35', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-28 14:25:35') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:35', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-28 14:25:35') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:35', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-28 14:25:35') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:35', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-28 14:25:35') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:35', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-28 14:25:35') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:35', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-28 14:25:35') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:35', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-28 14:25:35') + President Load (1.0ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.5ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:35', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-28 14:25:35') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:35', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-28 14:25:35') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:35', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-28 14:25:35') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:35', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-28 14:25:35') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:35', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-28 14:25:35') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:35', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-28 14:25:35') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:35', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-28 14:25:35') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.1ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:46', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-28 14:25:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:46', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-28 14:25:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:46', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-28 14:25:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:46', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-28 14:25:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:46', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-28 14:25:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:46', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-28 14:25:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:46', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-28 14:25:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:46', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-28 14:25:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:46', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-28 14:25:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:46', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-28 14:25:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:46', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-28 14:25:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:46', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-28 14:25:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:46', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-28 14:25:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:46', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-28 14:25:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:46', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-28 14:25:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:46', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-28 14:25:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:46', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-28 14:25:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:46', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-28 14:25:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:46', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-28 14:25:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:46', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-28 14:25:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:46', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-28 14:25:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:46', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-28 14:25:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:46', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-28 14:25:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:46', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-28 14:25:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:46', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-28 14:25:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:46', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-28 14:25:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:46', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-28 14:25:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:46', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-28 14:25:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:46', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-28 14:25:46') + President Load (0.5ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:46', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-28 14:25:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:46', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-28 14:25:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:46', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-28 14:25:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:46', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-28 14:25:46') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:46', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-28 14:25:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:46', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-28 14:25:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:46', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-28 14:25:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:46', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-28 14:25:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:46', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-28 14:25:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:46', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-28 14:25:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:46', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-28 14:25:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:46', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-28 14:25:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:46', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-28 14:25:46') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:46', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-28 14:25:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:46', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-28 14:25:46') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.3ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:55', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-28 14:25:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:55', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-28 14:25:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:55', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-28 14:25:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:55', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-28 14:25:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:55', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-28 14:25:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:55', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-28 14:25:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:56', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-28 14:25:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:56', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-28 14:25:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:56', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-28 14:25:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:56', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-28 14:25:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:56', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-28 14:25:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:56', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-28 14:25:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:56', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-28 14:25:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:56', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-28 14:25:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:56', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-28 14:25:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:56', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-28 14:25:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:56', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-28 14:25:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:56', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-28 14:25:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:56', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-28 14:25:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:56', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-28 14:25:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:56', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-28 14:25:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:56', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-28 14:25:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:56', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-28 14:25:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:56', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-28 14:25:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:56', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-28 14:25:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:56', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-28 14:25:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:56', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-28 14:25:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:56', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-28 14:25:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:56', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-28 14:25:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:56', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-28 14:25:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:56', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-28 14:25:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:56', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-28 14:25:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:56', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-28 14:25:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:56', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-28 14:25:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:56', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-28 14:25:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:56', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-28 14:25:56') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:56', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-28 14:25:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:56', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-28 14:25:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:56', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-28 14:25:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:56', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-28 14:25:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:56', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-28 14:25:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:56', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-28 14:25:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:56', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-28 14:25:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:25:56', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-28 14:25:56') + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.1ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:26:51', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-28 14:26:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:26:51', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-28 14:26:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:26:51', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-28 14:26:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:26:51', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-28 14:26:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:26:51', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-28 14:26:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:26:51', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-28 14:26:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:26:51', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-28 14:26:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:26:51', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-28 14:26:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:26:51', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-28 14:26:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:26:51', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-28 14:26:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:26:51', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-28 14:26:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:26:51', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-28 14:26:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:26:51', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-28 14:26:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:26:51', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-28 14:26:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:26:51', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-28 14:26:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:26:51', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-28 14:26:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:26:51', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-28 14:26:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:26:51', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-28 14:26:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:26:51', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-28 14:26:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:26:51', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-28 14:26:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:26:51', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-28 14:26:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:26:51', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-28 14:26:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:26:51', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-28 14:26:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:26:51', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-28 14:26:51') + President Load (0.6ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:26:51', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-28 14:26:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:26:51', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-28 14:26:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:26:51', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-28 14:26:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:26:51', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-28 14:26:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:26:51', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-28 14:26:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:26:51', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-28 14:26:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:26:51', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-28 14:26:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:26:51', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-28 14:26:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:26:51', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-28 14:26:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:26:51', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-28 14:26:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:26:51', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-28 14:26:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:26:51', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-28 14:26:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:26:51', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-28 14:26:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:26:51', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-28 14:26:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:26:51', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-28 14:26:51') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:26:51', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-28 14:26:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:26:51', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-28 14:26:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:26:51', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-28 14:26:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:26:51', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-28 14:26:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:26:51', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-28 14:26:51') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.1ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-28 14:29:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-28 14:29:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-28 14:29:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-28 14:29:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-28 14:29:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-28 14:29:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-28 14:29:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-28 14:29:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-28 14:29:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-28 14:29:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-28 14:29:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-28 14:29:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-28 14:29:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-28 14:29:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-28 14:29:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-28 14:29:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-28 14:29:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-28 14:29:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-28 14:29:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-28 14:29:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-28 14:29:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-28 14:29:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-28 14:29:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-28 14:29:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-28 14:29:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-28 14:29:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-28 14:29:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-28 14:29:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-28 14:29:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-28 14:29:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-28 14:29:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-28 14:29:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-28 14:29:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-28 14:29:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-28 14:29:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-28 14:29:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-28 14:29:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-28 14:29:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-28 14:29:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-28 14:29:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-28 14:29:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-28 14:29:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-28 14:29:45') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-28 14:29:45') + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + President Delete all (0.3ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.7ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-28 14:29:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-28 14:29:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-28 14:29:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-28 14:29:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-28 14:29:45') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-28 14:29:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-28 14:29:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-28 14:29:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:45', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-28 14:29:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:46', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-28 14:29:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:46', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-28 14:29:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:46', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-28 14:29:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:46', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-28 14:29:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:46', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-28 14:29:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:46', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-28 14:29:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:46', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-28 14:29:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:46', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-28 14:29:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:46', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-28 14:29:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:46', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-28 14:29:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:46', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-28 14:29:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:46', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-28 14:29:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:46', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-28 14:29:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:46', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-28 14:29:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:46', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-28 14:29:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:46', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-28 14:29:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:46', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-28 14:29:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:46', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-28 14:29:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:46', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-28 14:29:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:46', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-28 14:29:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:46', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-28 14:29:46') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:46', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-28 14:29:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:46', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-28 14:29:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:46', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-28 14:29:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:46', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-28 14:29:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:46', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-28 14:29:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:46', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-28 14:29:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:46', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-28 14:29:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:46', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-28 14:29:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:46', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-28 14:29:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:46', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-28 14:29:46') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:46', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-28 14:29:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:46', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-28 14:29:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:46', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-28 14:29:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-28 14:29:46', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-28 14:29:46') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (1.6ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.1ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.3ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:39', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-29 05:25:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:39', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-29 05:25:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:39', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-29 05:25:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:39', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-29 05:25:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (2.0ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:39', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-29 05:25:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:39', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-29 05:25:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:39', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-29 05:25:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:39', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-29 05:25:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:39', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-29 05:25:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:39', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-29 05:25:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:39', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-29 05:25:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:39', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-29 05:25:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:39', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-29 05:25:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:39', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-29 05:25:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:39', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-29 05:25:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:39', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-29 05:25:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:39', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-29 05:25:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:39', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-29 05:25:39') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:39', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-29 05:25:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:39', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-29 05:25:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:39', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-29 05:25:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:39', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-29 05:25:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:39', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-29 05:25:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:39', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-29 05:25:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:40', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-29 05:25:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:40', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-29 05:25:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:40', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-29 05:25:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:40', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-29 05:25:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:40', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-29 05:25:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:40', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-29 05:25:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:40', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-29 05:25:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:40', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-29 05:25:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:40', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-29 05:25:40') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:40', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-29 05:25:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:40', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-29 05:25:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:40', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-29 05:25:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:40', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-29 05:25:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:40', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-29 05:25:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:40', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-29 05:25:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:40', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-29 05:25:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:40', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-29 05:25:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:40', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-29 05:25:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:40', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-29 05:25:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:40', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-29 05:25:40') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.2ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:51', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-29 05:25:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:51', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-29 05:25:51') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:51', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-29 05:25:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:51', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-29 05:25:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:51', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-29 05:25:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:51', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-29 05:25:51') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:52', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-29 05:25:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:52', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-29 05:25:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:52', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-29 05:25:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:52', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-29 05:25:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:52', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-29 05:25:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:52', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-29 05:25:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:52', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-29 05:25:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:52', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-29 05:25:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:52', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-29 05:25:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:52', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-29 05:25:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:52', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-29 05:25:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:52', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-29 05:25:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:52', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-29 05:25:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:52', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-29 05:25:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:52', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-29 05:25:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:52', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-29 05:25:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:52', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-29 05:25:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:52', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-29 05:25:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:52', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-29 05:25:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:52', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-29 05:25:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:52', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-29 05:25:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:52', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-29 05:25:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:52', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-29 05:25:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:52', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-29 05:25:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:52', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-29 05:25:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:52', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-29 05:25:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:52', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-29 05:25:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:52', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-29 05:25:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:52', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-29 05:25:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:52', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-29 05:25:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:52', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-29 05:25:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:52', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-29 05:25:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:52', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-29 05:25:52') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:52', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-29 05:25:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:52', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-29 05:25:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:52', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-29 05:25:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:52', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-29 05:25:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:52', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-29 05:25:52') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.1ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:55', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-29 05:25:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:55', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-29 05:25:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:55', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-29 05:25:55') + President Load (0.9ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:55', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-29 05:25:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:55', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-29 05:25:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:55', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-29 05:25:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:55', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-29 05:25:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:55', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-29 05:25:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:55', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-29 05:25:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:55', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-29 05:25:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:55', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-29 05:25:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:55', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-29 05:25:55') + President Load (0.9ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:55', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-29 05:25:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:55', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-29 05:25:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:55', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-29 05:25:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:55', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-29 05:25:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:55', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-29 05:25:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:55', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-29 05:25:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:55', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-29 05:25:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:55', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-29 05:25:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:55', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-29 05:25:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:55', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-29 05:25:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:55', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-29 05:25:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:55', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-29 05:25:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:55', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-29 05:25:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:55', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-29 05:25:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:55', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-29 05:25:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:55', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-29 05:25:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:55', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-29 05:25:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:55', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-29 05:25:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:55', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-29 05:25:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:55', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-29 05:25:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:55', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-29 05:25:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:55', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-29 05:25:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:55', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-29 05:25:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:55', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-29 05:25:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:55', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-29 05:25:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:55', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-29 05:25:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:55', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-29 05:25:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:55', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-29 05:25:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:55', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-29 05:25:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:55', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-29 05:25:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:55', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-29 05:25:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:25:55', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-29 05:25:55') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:27:40', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-29 05:27:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:27:40', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-29 05:27:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:27:40', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-29 05:27:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:27:40', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-29 05:27:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:27:40', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-29 05:27:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:27:40', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-29 05:27:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:27:40', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-29 05:27:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:27:40', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-29 05:27:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:27:40', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-29 05:27:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:27:40', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-29 05:27:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:27:40', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-29 05:27:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:27:40', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-29 05:27:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:27:40', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-29 05:27:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:27:40', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-29 05:27:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:27:40', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-29 05:27:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:27:40', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-29 05:27:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:27:40', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-29 05:27:40') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:27:40', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-29 05:27:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:27:40', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-29 05:27:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:27:40', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-29 05:27:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:27:40', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-29 05:27:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:27:40', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-29 05:27:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:27:40', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-29 05:27:40') + President Load (1.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:27:40', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-29 05:27:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (1.8ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:27:40', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-29 05:27:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:27:40', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-29 05:27:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:27:40', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-29 05:27:40') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:27:40', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-29 05:27:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:27:40', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-29 05:27:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:27:40', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-29 05:27:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:27:40', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-29 05:27:40') + President Load (0.8ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:27:40', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-29 05:27:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:27:40', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-29 05:27:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:27:40', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-29 05:27:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:27:40', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-29 05:27:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:27:40', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-29 05:27:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:27:40', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-29 05:27:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:27:40', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-29 05:27:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:27:40', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-29 05:27:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:27:40', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-29 05:27:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:27:40', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-29 05:27:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:27:40', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-29 05:27:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:27:40', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-29 05:27:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:27:40', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-29 05:27:40') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.1ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:31:44', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-29 05:31:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:31:44', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-29 05:31:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:31:44', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-29 05:31:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:31:44', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-29 05:31:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:31:44', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-29 05:31:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.9ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:31:44', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-29 05:31:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:31:44', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-29 05:31:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:31:45', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-29 05:31:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:31:45', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-29 05:31:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:31:45', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-29 05:31:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:31:45', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-29 05:31:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:31:45', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-29 05:31:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:31:45', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-29 05:31:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:31:45', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-29 05:31:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:31:45', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-29 05:31:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:31:45', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-29 05:31:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:31:45', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-29 05:31:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:31:45', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-29 05:31:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.7ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:31:45', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-29 05:31:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:31:45', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-29 05:31:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:31:45', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-29 05:31:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:31:45', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-29 05:31:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:31:45', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-29 05:31:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:31:45', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-29 05:31:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:31:45', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-29 05:31:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:31:45', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-29 05:31:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:31:45', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-29 05:31:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:31:45', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-29 05:31:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:31:45', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-29 05:31:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:31:45', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-29 05:31:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:31:45', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-29 05:31:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:31:45', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-29 05:31:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:31:45', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-29 05:31:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:31:45', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-29 05:31:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:31:45', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-29 05:31:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.9ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:31:45', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-29 05:31:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:31:45', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-29 05:31:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:31:45', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-29 05:31:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:31:45', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-29 05:31:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:31:45', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-29 05:31:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:31:45', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-29 05:31:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:31:45', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-29 05:31:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:31:45', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-29 05:31:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:31:45', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-29 05:31:45') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.1ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:10', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-29 05:32:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:10', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-29 05:32:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:10', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-29 05:32:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:10', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-29 05:32:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:10', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-29 05:32:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:10', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-29 05:32:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:10', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-29 05:32:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:10', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-29 05:32:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:10', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-29 05:32:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:10', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-29 05:32:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:10', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-29 05:32:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:10', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-29 05:32:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:10', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-29 05:32:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:10', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-29 05:32:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:10', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-29 05:32:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:10', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-29 05:32:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:10', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-29 05:32:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:10', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-29 05:32:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:10', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-29 05:32:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:10', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-29 05:32:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:10', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-29 05:32:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:10', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-29 05:32:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:10', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-29 05:32:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:10', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-29 05:32:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:10', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-29 05:32:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:10', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-29 05:32:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:10', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-29 05:32:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:10', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-29 05:32:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:10', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-29 05:32:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:10', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-29 05:32:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:10', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-29 05:32:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:10', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-29 05:32:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:10', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-29 05:32:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:10', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-29 05:32:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:10', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-29 05:32:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:10', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-29 05:32:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:10', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-29 05:32:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:10', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-29 05:32:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:10', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-29 05:32:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:10', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-29 05:32:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:10', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-29 05:32:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:10', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-29 05:32:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:10', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-29 05:32:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:10', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-29 05:32:10') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.1ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:43', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-29 05:32:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:43', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-29 05:32:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:43', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-29 05:32:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:43', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-29 05:32:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:43', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-29 05:32:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:43', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-29 05:32:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:43', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-29 05:32:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:43', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-29 05:32:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:44', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-29 05:32:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:44', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-29 05:32:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:44', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-29 05:32:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:44', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-29 05:32:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:44', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-29 05:32:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:44', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-29 05:32:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:44', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-29 05:32:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:44', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-29 05:32:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:44', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-29 05:32:44') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:44', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-29 05:32:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:44', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-29 05:32:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:44', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-29 05:32:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:44', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-29 05:32:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:44', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-29 05:32:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:44', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-29 05:32:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:44', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-29 05:32:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:44', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-29 05:32:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:44', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-29 05:32:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:44', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-29 05:32:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:44', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-29 05:32:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:44', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-29 05:32:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:44', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-29 05:32:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:44', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-29 05:32:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:44', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-29 05:32:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:44', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-29 05:32:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:44', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-29 05:32:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:44', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-29 05:32:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:44', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-29 05:32:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:44', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-29 05:32:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:44', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-29 05:32:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:44', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-29 05:32:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:44', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-29 05:32:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:44', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-29 05:32:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:44', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-29 05:32:44') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:44', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-29 05:32:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:32:44', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-29 05:32:44') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.1ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:33:18', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-29 05:33:18') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:33:18', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-29 05:33:18') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:33:18', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-29 05:33:18') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:33:18', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-29 05:33:18') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:33:18', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-29 05:33:18') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:33:18', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-29 05:33:18') + President Load (0.9ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:33:18', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-29 05:33:18') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:33:18', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-29 05:33:18') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:33:18', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-29 05:33:18') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:33:18', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-29 05:33:18') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:33:18', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-29 05:33:18') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:33:18', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-29 05:33:18') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:33:18', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-29 05:33:18') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:33:18', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-29 05:33:18') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:33:18', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-29 05:33:18') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:33:18', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-29 05:33:18') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:33:18', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-29 05:33:18') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:33:18', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-29 05:33:18') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:33:18', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-29 05:33:18') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:33:18', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-29 05:33:18') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:33:18', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-29 05:33:18') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:33:18', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-29 05:33:18') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:33:18', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-29 05:33:18') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:33:18', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-29 05:33:18') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:33:18', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-29 05:33:18') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:33:18', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-29 05:33:18') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:33:18', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-29 05:33:18') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:33:18', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-29 05:33:18') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:33:18', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-29 05:33:18') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:33:18', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-29 05:33:18') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:33:18', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-29 05:33:18') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:33:18', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-29 05:33:18') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:33:18', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-29 05:33:18') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:33:18', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-29 05:33:18') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:33:18', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-29 05:33:18') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.9ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:33:18', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-29 05:33:18') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:33:18', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-29 05:33:18') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:33:18', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-29 05:33:18') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:33:18', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-29 05:33:18') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:33:18', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-29 05:33:18') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:33:18', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-29 05:33:18') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:33:18', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-29 05:33:18') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:33:18', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-29 05:33:18') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:33:18', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-29 05:33:18') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.1ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:41:20', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-29 05:41:20') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:41:20', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-29 05:41:20') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:41:20', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-29 05:41:20') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:41:20', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-29 05:41:20') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:41:20', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-29 05:41:20') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:41:20', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-29 05:41:20') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:41:20', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-29 05:41:20') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:41:21', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-29 05:41:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:41:21', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-29 05:41:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:41:21', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-29 05:41:21') + President Load (0.9ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:41:21', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-29 05:41:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:41:21', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-29 05:41:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:41:21', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-29 05:41:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:41:21', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-29 05:41:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:41:21', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-29 05:41:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:41:21', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-29 05:41:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:41:21', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-29 05:41:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:41:21', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-29 05:41:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:41:21', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-29 05:41:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:41:21', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-29 05:41:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:41:21', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-29 05:41:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:41:21', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-29 05:41:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:41:21', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-29 05:41:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:41:21', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-29 05:41:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:41:21', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-29 05:41:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:41:21', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-29 05:41:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:41:21', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-29 05:41:21') + President Load (0.9ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:41:21', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-29 05:41:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:41:21', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-29 05:41:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:41:21', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-29 05:41:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:41:21', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-29 05:41:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:41:21', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-29 05:41:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:41:21', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-29 05:41:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:41:21', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-29 05:41:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:41:21', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-29 05:41:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:41:21', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-29 05:41:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:41:21', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-29 05:41:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:41:21', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-29 05:41:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:41:21', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-29 05:41:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:41:21', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-29 05:41:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:41:21', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-29 05:41:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:41:21', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-29 05:41:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:41:21', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-29 05:41:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 05:41:21', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-29 05:41:21') + SQL (0.7ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.6ms) select sqlite_version(*) + SQL (1.1ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.5ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.9ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.3ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.3ms) DELETE FROM "presidents" WHERE 1=1 + President Load (7.5ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:09:38', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-29 09:09:38') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:09:38', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-29 09:09:38') + President Load (2.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (2.7ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:09:38', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-29 09:09:38') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:09:38', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-29 09:09:38') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (2.0ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:09:38', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-29 09:09:38') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (2.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:09:38', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-29 09:09:38') + President Load (2.1ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:09:39', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-29 09:09:39') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:09:39', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-29 09:09:39') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.7ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:09:39', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-29 09:09:39') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (46.1ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:09:39', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-29 09:09:39') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:09:39', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-29 09:09:39') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.5ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:09:39', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-29 09:09:39') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:09:39', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-29 09:09:39') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:09:39', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-29 09:09:39') + President Load (0.6ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:09:39', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-29 09:09:39') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:09:39', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-29 09:09:39') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:09:39', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-29 09:09:39') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:09:39', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-29 09:09:39') + President Load (0.5ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:09:39', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-29 09:09:39') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:09:39', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-29 09:09:39') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.6ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:09:39', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-29 09:09:39') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:09:39', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-29 09:09:39') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:09:39', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-29 09:09:39') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:09:39', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-29 09:09:39') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:09:39', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-29 09:09:39') + President Load (1.9ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:09:39', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-29 09:09:39') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:09:39', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-29 09:09:39') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:09:39', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-29 09:09:39') + President Load (0.5ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:09:39', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-29 09:09:39') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:09:39', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-29 09:09:39') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:09:39', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-29 09:09:39') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:09:39', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-29 09:09:39') + President Load (0.6ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:09:39', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-29 09:09:39') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:09:39', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-29 09:09:39') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:09:39', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-29 09:09:39') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:09:39', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-29 09:09:39') + President Load (1.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:09:39', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-29 09:09:39') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:09:39', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-29 09:09:39') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:09:39', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-29 09:09:39') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (1.6ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:09:39', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-29 09:09:39') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:09:39', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-29 09:09:39') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:09:39', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-29 09:09:39') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:09:39', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-29 09:09:39') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:09:39', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-29 09:09:39') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:10:45', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-29 09:10:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:10:45', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-29 09:10:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:10:45', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-29 09:10:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:10:45', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-29 09:10:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:10:45', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-29 09:10:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:10:45', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-29 09:10:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:10:45', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-29 09:10:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:10:45', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-29 09:10:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:10:45', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-29 09:10:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:10:45', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-29 09:10:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:10:45', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-29 09:10:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:10:45', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-29 09:10:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:10:45', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-29 09:10:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:10:45', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-29 09:10:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:10:45', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-29 09:10:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:10:45', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-29 09:10:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:10:45', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-29 09:10:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:10:45', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-29 09:10:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:10:45', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-29 09:10:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:10:45', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-29 09:10:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:10:45', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-29 09:10:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:10:45', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-29 09:10:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:10:45', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-29 09:10:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:10:45', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-29 09:10:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:10:45', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-29 09:10:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:10:45', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-29 09:10:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:10:45', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-29 09:10:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:10:45', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-29 09:10:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:10:45', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-29 09:10:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:10:45', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-29 09:10:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:10:45', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-29 09:10:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:10:45', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-29 09:10:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:10:45', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-29 09:10:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:10:45', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-29 09:10:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:10:45', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-29 09:10:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:10:45', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-29 09:10:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:10:45', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-29 09:10:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:10:45', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-29 09:10:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:10:45', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-29 09:10:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:10:45', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-29 09:10:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:10:45', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-29 09:10:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:10:45', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-29 09:10:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:10:45', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-29 09:10:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:10:45', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-29 09:10:45') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:11:54', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-29 09:11:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:11:54', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-29 09:11:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:11:54', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-29 09:11:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:11:54', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-29 09:11:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:11:54', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-29 09:11:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:11:54', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-29 09:11:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:11:54', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-29 09:11:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:11:54', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-29 09:11:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:11:54', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-29 09:11:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:11:54', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-29 09:11:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:11:54', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-29 09:11:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:11:54', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-29 09:11:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:11:54', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-29 09:11:54') + President Load (0.7ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:11:54', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-29 09:11:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:11:54', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-29 09:11:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:11:54', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-29 09:11:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:11:54', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-29 09:11:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:11:54', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-29 09:11:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:11:54', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-29 09:11:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:11:54', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-29 09:11:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:11:54', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-29 09:11:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:11:54', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-29 09:11:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:11:54', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-29 09:11:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:11:54', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-29 09:11:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:11:54', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-29 09:11:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:11:54', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-29 09:11:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:11:54', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-29 09:11:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:11:54', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-29 09:11:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:11:54', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-29 09:11:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:11:54', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-29 09:11:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:11:54', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-29 09:11:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:11:54', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-29 09:11:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:11:54', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-29 09:11:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:11:54', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-29 09:11:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:11:54', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-29 09:11:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:11:54', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-29 09:11:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:11:54', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-29 09:11:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:11:54', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-29 09:11:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:11:54', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-29 09:11:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:11:54', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-29 09:11:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:11:54', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-29 09:11:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:11:54', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-29 09:11:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:11:54', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-29 09:11:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:11:54', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-29 09:11:54') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.1ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:20', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-29 09:12:20') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:20', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-29 09:12:20') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:20', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-29 09:12:20') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:20', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-29 09:12:20') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:20', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-29 09:12:20') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:20', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-29 09:12:20') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:20', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-29 09:12:20') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:20', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-29 09:12:20') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:20', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-29 09:12:20') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:20', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-29 09:12:20') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:20', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-29 09:12:20') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:20', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-29 09:12:20') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:20', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-29 09:12:20') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:20', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-29 09:12:20') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:20', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-29 09:12:20') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:20', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-29 09:12:20') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:20', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-29 09:12:20') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:20', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-29 09:12:20') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:20', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-29 09:12:20') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:20', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-29 09:12:20') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:20', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-29 09:12:20') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:20', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-29 09:12:20') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:20', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-29 09:12:20') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:20', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-29 09:12:20') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:20', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-29 09:12:20') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:20', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-29 09:12:20') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:20', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-29 09:12:20') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:20', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-29 09:12:20') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:20', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-29 09:12:20') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:20', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-29 09:12:20') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:20', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-29 09:12:20') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:20', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-29 09:12:20') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:20', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-29 09:12:20') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:20', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-29 09:12:20') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:20', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-29 09:12:20') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:20', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-29 09:12:20') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:20', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-29 09:12:20') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:20', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-29 09:12:20') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:20', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-29 09:12:20') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:20', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-29 09:12:20') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:20', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-29 09:12:20') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:20', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-29 09:12:20') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:20', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-29 09:12:20') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:20', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-29 09:12:20') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:45', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-29 09:12:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:45', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-29 09:12:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:45', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-29 09:12:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:45', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-29 09:12:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:45', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-29 09:12:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:45', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-29 09:12:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:45', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-29 09:12:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:45', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-29 09:12:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:45', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-29 09:12:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:45', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-29 09:12:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:45', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-29 09:12:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:45', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-29 09:12:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:45', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-29 09:12:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:45', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-29 09:12:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:45', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-29 09:12:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:45', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-29 09:12:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:45', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-29 09:12:45') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:45', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-29 09:12:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:45', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-29 09:12:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:45', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-29 09:12:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:45', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-29 09:12:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:45', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-29 09:12:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:45', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-29 09:12:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:45', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-29 09:12:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:45', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-29 09:12:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:45', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-29 09:12:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:45', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-29 09:12:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:45', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-29 09:12:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:45', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-29 09:12:45') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:45', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-29 09:12:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:45', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-29 09:12:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:45', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-29 09:12:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:45', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-29 09:12:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:45', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-29 09:12:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:45', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-29 09:12:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:45', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-29 09:12:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:45', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-29 09:12:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:45', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-29 09:12:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:45', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-29 09:12:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:45', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-29 09:12:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:45', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-29 09:12:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:45', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-29 09:12:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:45', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-29 09:12:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:12:45', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-29 09:12:45') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.1ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:13:01', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-29 09:13:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:13:01', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-29 09:13:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:13:01', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-29 09:13:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:13:01', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-29 09:13:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:13:01', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-29 09:13:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:13:01', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-29 09:13:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:13:01', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-29 09:13:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:13:01', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-29 09:13:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:13:01', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-29 09:13:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:13:01', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-29 09:13:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:13:01', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-29 09:13:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:13:01', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-29 09:13:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:13:01', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-29 09:13:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:13:01', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-29 09:13:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:13:01', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-29 09:13:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:13:01', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-29 09:13:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:13:01', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-29 09:13:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:13:01', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-29 09:13:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:13:01', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-29 09:13:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:13:01', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-29 09:13:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:13:01', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-29 09:13:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:13:01', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-29 09:13:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:13:01', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-29 09:13:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:13:01', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-29 09:13:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:13:01', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-29 09:13:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:13:01', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-29 09:13:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:13:01', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-29 09:13:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:13:01', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-29 09:13:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:13:01', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-29 09:13:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:13:01', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-29 09:13:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:13:01', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-29 09:13:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:13:01', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-29 09:13:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:13:01', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-29 09:13:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:13:01', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-29 09:13:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:13:01', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-29 09:13:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:13:01', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-29 09:13:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:13:01', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-29 09:13:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:13:01', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-29 09:13:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:13:01', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-29 09:13:01') + President Load (1.8ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:13:01', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-29 09:13:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:13:01', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-29 09:13:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:13:01', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-29 09:13:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:13:01', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-29 09:13:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:13:01', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-29 09:13:01') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.2ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.1ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:18:15', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-29 09:18:15') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:18:15', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-29 09:18:15') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:18:15', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-29 09:18:15') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:18:15', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-29 09:18:15') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:18:15', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-29 09:18:15') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:18:15', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-29 09:18:15') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:18:15', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-29 09:18:15') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:18:15', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-29 09:18:15') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:18:15', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-29 09:18:15') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:18:15', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-29 09:18:15') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:18:15', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-29 09:18:15') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:18:15', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-29 09:18:15') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:18:15', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-29 09:18:15') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:18:15', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-29 09:18:15') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:18:15', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-29 09:18:15') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:18:15', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-29 09:18:15') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:18:15', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-29 09:18:15') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:18:15', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-29 09:18:15') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:18:15', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-29 09:18:15') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:18:16', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-29 09:18:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:18:16', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-29 09:18:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:18:16', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-29 09:18:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:18:16', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-29 09:18:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:18:16', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-29 09:18:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:18:16', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-29 09:18:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:18:16', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-29 09:18:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:18:16', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-29 09:18:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:18:16', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-29 09:18:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:18:16', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-29 09:18:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:18:16', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-29 09:18:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:18:16', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-29 09:18:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:18:16', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-29 09:18:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:18:16', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-29 09:18:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:18:16', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-29 09:18:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:18:16', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-29 09:18:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:18:16', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-29 09:18:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:18:16', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-29 09:18:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:18:16', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-29 09:18:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:18:16', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-29 09:18:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:18:16', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-29 09:18:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:18:16', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-29 09:18:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:18:16', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-29 09:18:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:18:16', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-29 09:18:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:18:16', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-29 09:18:16') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.1ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-29 09:19:26') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-29 09:19:26') + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + President Delete all (0.3ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-29 09:19:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:19:26', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-29 09:19:26') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.1ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:42', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-29 09:21:42') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:42', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-29 09:21:42') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:42', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-29 09:21:42') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:42', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-29 09:21:42') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:42', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-29 09:21:42') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:42', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-29 09:21:42') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:42', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-29 09:21:42') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:42', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-29 09:21:42') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:42', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-29 09:21:42') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:42', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-29 09:21:42') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:42', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-29 09:21:42') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:42', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-29 09:21:42') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:42', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-29 09:21:42') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:42', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-29 09:21:42') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:42', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-29 09:21:42') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:42', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-29 09:21:42') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:42', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-29 09:21:42') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:42', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-29 09:21:42') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:42', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-29 09:21:42') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:42', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-29 09:21:42') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:42', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-29 09:21:42') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:42', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-29 09:21:42') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:42', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-29 09:21:42') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:42', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-29 09:21:42') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:42', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-29 09:21:42') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:42', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-29 09:21:42') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:42', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-29 09:21:42') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:42', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-29 09:21:42') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:42', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-29 09:21:42') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:42', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-29 09:21:42') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:42', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-29 09:21:42') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:42', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-29 09:21:42') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:42', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-29 09:21:42') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:42', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-29 09:21:42') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-29 09:21:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-29 09:21:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-29 09:21:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-29 09:21:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-29 09:21:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-29 09:21:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-29 09:21:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-29 09:21:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-29 09:21:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-29 09:21:43') + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + President Delete all (0.3ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-29 09:21:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-29 09:21:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-29 09:21:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-29 09:21:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-29 09:21:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-29 09:21:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-29 09:21:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-29 09:21:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-29 09:21:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-29 09:21:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-29 09:21:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-29 09:21:43') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-29 09:21:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-29 09:21:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-29 09:21:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-29 09:21:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-29 09:21:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-29 09:21:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-29 09:21:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-29 09:21:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-29 09:21:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-29 09:21:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-29 09:21:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-29 09:21:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-29 09:21:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-29 09:21:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-29 09:21:43') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-29 09:21:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-29 09:21:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-29 09:21:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-29 09:21:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-29 09:21:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-29 09:21:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-29 09:21:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-29 09:21:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-29 09:21:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-29 09:21:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-29 09:21:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-29 09:21:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-29 09:21:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-29 09:21:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-29 09:21:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-29 09:21:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:21:43', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-29 09:21:43') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.1ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:36:45', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-29 09:36:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:36:45', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-29 09:36:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:36:45', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-29 09:36:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:36:45', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-29 09:36:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:36:45', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-29 09:36:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:36:45', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-29 09:36:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:36:45', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-29 09:36:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:36:45', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-29 09:36:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:36:45', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-29 09:36:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:36:45', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-29 09:36:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:36:45', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-29 09:36:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:36:45', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-29 09:36:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:36:45', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-29 09:36:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:36:45', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-29 09:36:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:36:45', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-29 09:36:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:36:45', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-29 09:36:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:36:45', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-29 09:36:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:36:45', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-29 09:36:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:36:45', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-29 09:36:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:36:45', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-29 09:36:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:36:45', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-29 09:36:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:36:45', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-29 09:36:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:36:45', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-29 09:36:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:36:45', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-29 09:36:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:36:45', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-29 09:36:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:36:45', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-29 09:36:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:36:45', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-29 09:36:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:36:45', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-29 09:36:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:36:45', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-29 09:36:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:36:45', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-29 09:36:45') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:36:45', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-29 09:36:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:36:45', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-29 09:36:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:36:45', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-29 09:36:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:36:45', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-29 09:36:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:36:45', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-29 09:36:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:36:45', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-29 09:36:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:36:45', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-29 09:36:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:36:45', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-29 09:36:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:36:45', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-29 09:36:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:36:45', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-29 09:36:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:36:45', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-29 09:36:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:36:45', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-29 09:36:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:36:45', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-29 09:36:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:36:45', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-29 09:36:45') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.1ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:04', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-29 09:37:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:04', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-29 09:37:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:04', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-29 09:37:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:04', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-29 09:37:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:04', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-29 09:37:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:04', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-29 09:37:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:04', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-29 09:37:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:04', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-29 09:37:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:04', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-29 09:37:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:04', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-29 09:37:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:04', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-29 09:37:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:04', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-29 09:37:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:04', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-29 09:37:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:04', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-29 09:37:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:04', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-29 09:37:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:04', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-29 09:37:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:04', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-29 09:37:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:04', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-29 09:37:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:04', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-29 09:37:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:04', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-29 09:37:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:04', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-29 09:37:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:04', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-29 09:37:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:04', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-29 09:37:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:04', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-29 09:37:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:04', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-29 09:37:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:04', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-29 09:37:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:04', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-29 09:37:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:04', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-29 09:37:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:04', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-29 09:37:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:04', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-29 09:37:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:04', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-29 09:37:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:04', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-29 09:37:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:04', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-29 09:37:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:04', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-29 09:37:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:04', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-29 09:37:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:04', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-29 09:37:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:04', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-29 09:37:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:04', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-29 09:37:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:04', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-29 09:37:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:04', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-29 09:37:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:04', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-29 09:37:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:04', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-29 09:37:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:04', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-29 09:37:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:04', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-29 09:37:04') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.1ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:46', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-29 09:37:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:46', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-29 09:37:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:46', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-29 09:37:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:46', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-29 09:37:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:46', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-29 09:37:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:46', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-29 09:37:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:46', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-29 09:37:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:46', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-29 09:37:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:46', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-29 09:37:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:46', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-29 09:37:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:46', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-29 09:37:46') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:46', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-29 09:37:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:46', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-29 09:37:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:46', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-29 09:37:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:46', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-29 09:37:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:46', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-29 09:37:46') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:46', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-29 09:37:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:46', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-29 09:37:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:46', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-29 09:37:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:46', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-29 09:37:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:47', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-29 09:37:47') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:47', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-29 09:37:47') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:47', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-29 09:37:47') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:47', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-29 09:37:47') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:47', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-29 09:37:47') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:47', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-29 09:37:47') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:47', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-29 09:37:47') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:47', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-29 09:37:47') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:47', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-29 09:37:47') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:47', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-29 09:37:47') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:47', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-29 09:37:47') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:47', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-29 09:37:47') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:47', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-29 09:37:47') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:47', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-29 09:37:47') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:47', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-29 09:37:47') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:47', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-29 09:37:47') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:47', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-29 09:37:47') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:47', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-29 09:37:47') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:47', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-29 09:37:47') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:47', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-29 09:37:47') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:47', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-29 09:37:47') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:47', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-29 09:37:47') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:47', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-29 09:37:47') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 09:37:47', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-29 09:37:47') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.2ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.7ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-29 10:05:10') + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + President Delete all (0.3ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:10', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-29 10:05:10') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:11', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-29 10:05:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:11', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-29 10:05:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:11', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-29 10:05:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:11', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-29 10:05:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:11', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-29 10:05:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:11', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-29 10:05:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:11', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-29 10:05:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:11', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-29 10:05:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:11', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-29 10:05:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:11', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-29 10:05:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:11', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-29 10:05:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:11', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-29 10:05:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:11', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-29 10:05:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:11', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-29 10:05:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:11', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-29 10:05:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:11', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-29 10:05:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:11', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-29 10:05:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:11', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-29 10:05:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:11', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-29 10:05:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:11', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-29 10:05:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:11', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-29 10:05:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:11', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-29 10:05:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:11', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-29 10:05:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:11', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-29 10:05:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:11', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-29 10:05:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:11', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-29 10:05:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:11', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-29 10:05:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:11', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-29 10:05:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-29 10:05:11', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-29 10:05:11') + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (1.2ms) select sqlite_version(*) + SQL (0.6ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.3ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.2ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (1.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-30 13:57:07') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.5ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-30 13:57:07') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-30 13:57:07') + President Load (1.0ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (1.1ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-30 13:57:07') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (1.0ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-30 13:57:07') + SQL (1.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + President Delete all (0.3ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 13:57:07') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.5ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:07', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-30 13:57:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-30 13:57:08') + President Load (0.5ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-30 13:57:08') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-30 13:57:08') + President Load (0.8ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-30 13:57:08') + SQL (0.5ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + President Delete all (0.7ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-30 13:57:08') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-30 13:57:08') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-30 13:57:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:57:08', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-30 13:57:08') + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.2ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:22', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-30 13:58:22') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:22', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-30 13:58:22') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:22', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-30 13:58:22') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:22', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-30 13:58:22') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:22', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-30 13:58:22') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:22', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-30 13:58:22') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:22', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-30 13:58:22') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:22', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-30 13:58:22') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:22', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-30 13:58:22') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:22', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-30 13:58:22') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:22', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-30 13:58:22') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:22', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-30 13:58:22') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:22', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-30 13:58:22') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:22', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-30 13:58:22') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:22', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-30 13:58:22') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:22', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-30 13:58:22') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:22', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-30 13:58:22') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:22', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-30 13:58:22') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:22', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-30 13:58:22') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:22', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-30 13:58:22') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:22', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-30 13:58:22') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:22', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 13:58:22') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:22', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-30 13:58:22') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:22', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 13:58:22') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:22', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-30 13:58:22') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:22', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-30 13:58:22') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:22', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-30 13:58:22') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:22', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-30 13:58:22') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (1.0ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:22', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-30 13:58:22') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:22', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-30 13:58:22') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:22', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-30 13:58:22') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:22', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-30 13:58:22') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:22', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-30 13:58:22') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:22', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-30 13:58:22') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:22', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-30 13:58:22') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:22', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-30 13:58:22') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:22', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-30 13:58:22') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:22', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-30 13:58:22') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:22', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-30 13:58:22') + President Load (1.0ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:22', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-30 13:58:22') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:22', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-30 13:58:22') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:22', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-30 13:58:22') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:22', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-30 13:58:22') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:22', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-30 13:58:22') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.6ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.1ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:39', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-30 13:58:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:39', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-30 13:58:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:39', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-30 13:58:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:39', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-30 13:58:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:39', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-30 13:58:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:39', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-30 13:58:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:39', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-30 13:58:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:39', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-30 13:58:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:39', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-30 13:58:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:39', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-30 13:58:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:39', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-30 13:58:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:39', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-30 13:58:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:39', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-30 13:58:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:39', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-30 13:58:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:39', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-30 13:58:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:39', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-30 13:58:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:39', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-30 13:58:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:39', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-30 13:58:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:39', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-30 13:58:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:39', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-30 13:58:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:39', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-30 13:58:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:39', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 13:58:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:39', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-30 13:58:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:39', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 13:58:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:39', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-30 13:58:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:39', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-30 13:58:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:39', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-30 13:58:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:39', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-30 13:58:39') + President Load (1.0ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:39', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-30 13:58:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:39', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-30 13:58:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:39', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-30 13:58:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:39', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-30 13:58:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:39', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-30 13:58:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:39', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-30 13:58:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:39', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-30 13:58:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:39', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-30 13:58:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:39', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-30 13:58:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:39', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-30 13:58:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:39', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-30 13:58:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:39', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-30 13:58:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:39', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-30 13:58:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:39', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-30 13:58:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:39', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-30 13:58:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:39', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-30 13:58:39') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.8ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:50', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-30 13:58:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:50', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-30 13:58:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:50', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-30 13:58:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:50', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-30 13:58:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:50', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-30 13:58:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:50', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-30 13:58:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:50', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-30 13:58:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:50', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-30 13:58:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:50', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-30 13:58:50') + President Load (0.9ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:50', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-30 13:58:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:50', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-30 13:58:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:50', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-30 13:58:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:50', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-30 13:58:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:50', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-30 13:58:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.6ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:50', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-30 13:58:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:50', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-30 13:58:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:50', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-30 13:58:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:50', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-30 13:58:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:50', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-30 13:58:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:50', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-30 13:58:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:50', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-30 13:58:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:50', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 13:58:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:50', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-30 13:58:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:50', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 13:58:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:50', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-30 13:58:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:50', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-30 13:58:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:50', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-30 13:58:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:50', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-30 13:58:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:50', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-30 13:58:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:50', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-30 13:58:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:50', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-30 13:58:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:50', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-30 13:58:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:50', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-30 13:58:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:50', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-30 13:58:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:50', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-30 13:58:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:50', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-30 13:58:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:50', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-30 13:58:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:50', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-30 13:58:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:50', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-30 13:58:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:50', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-30 13:58:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:50', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-30 13:58:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:50', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-30 13:58:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:50', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-30 13:58:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:58:50', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-30 13:58:50') + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:59:28', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-30 13:59:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:59:28', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-30 13:59:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:59:28', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-30 13:59:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:59:28', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-30 13:59:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:59:28', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-30 13:59:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:59:28', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-30 13:59:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:59:28', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-30 13:59:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:59:28', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-30 13:59:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:59:28', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-30 13:59:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:59:28', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-30 13:59:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:59:28', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-30 13:59:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:59:28', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-30 13:59:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:59:28', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-30 13:59:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:59:28', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-30 13:59:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:59:28', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-30 13:59:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:59:28', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-30 13:59:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:59:28', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-30 13:59:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:59:28', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-30 13:59:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:59:28', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-30 13:59:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:59:28', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-30 13:59:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:59:28', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-30 13:59:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:59:28', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 13:59:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:59:28', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-30 13:59:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:59:28', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 13:59:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:59:28', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-30 13:59:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:59:28', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-30 13:59:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:59:28', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-30 13:59:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:59:28', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-30 13:59:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:59:28', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-30 13:59:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:59:28', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-30 13:59:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:59:28', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-30 13:59:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:59:28', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-30 13:59:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:59:28', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-30 13:59:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:59:28', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-30 13:59:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:59:28', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-30 13:59:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:59:28', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-30 13:59:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:59:28', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-30 13:59:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:59:28', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-30 13:59:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:59:28', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-30 13:59:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:59:28', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-30 13:59:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:59:28', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-30 13:59:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:59:28', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-30 13:59:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:59:28', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-30 13:59:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 13:59:28', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-30 13:59:28') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.1ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:28', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-30 14:01:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:28', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-30 14:01:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:28', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-30 14:01:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:28', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-30 14:01:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:28', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-30 14:01:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:28', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-30 14:01:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:28', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-30 14:01:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:28', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-30 14:01:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:28', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-30 14:01:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:28', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-30 14:01:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:28', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-30 14:01:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:28', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-30 14:01:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:28', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-30 14:01:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:28', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-30 14:01:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:28', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-30 14:01:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:28', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-30 14:01:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:28', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-30 14:01:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:28', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-30 14:01:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:28', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-30 14:01:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:28', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-30 14:01:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:28', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-30 14:01:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:28', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 14:01:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:28', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-30 14:01:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:28', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 14:01:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:28', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-30 14:01:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:28', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-30 14:01:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:28', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-30 14:01:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:28', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-30 14:01:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:28', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-30 14:01:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:28', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-30 14:01:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:28', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-30 14:01:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:28', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-30 14:01:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:28', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-30 14:01:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:28', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-30 14:01:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:28', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-30 14:01:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:28', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-30 14:01:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:28', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-30 14:01:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:28', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-30 14:01:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:28', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-30 14:01:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:28', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-30 14:01:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:28', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-30 14:01:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:28', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-30 14:01:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:28', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-30 14:01:28') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:28', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-30 14:01:28') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.1ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:46', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-30 14:01:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:46', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-30 14:01:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:46', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-30 14:01:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.9ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:46', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-30 14:01:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:46', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-30 14:01:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:46', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-30 14:01:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:46', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-30 14:01:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:46', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-30 14:01:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:46', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-30 14:01:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:46', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-30 14:01:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:46', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-30 14:01:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:46', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-30 14:01:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:46', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-30 14:01:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:46', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-30 14:01:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:46', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-30 14:01:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:46', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-30 14:01:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:46', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-30 14:01:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:46', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-30 14:01:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:46', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-30 14:01:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:46', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-30 14:01:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:46', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-30 14:01:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:46', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 14:01:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:46', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-30 14:01:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:46', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 14:01:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:46', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-30 14:01:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:46', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-30 14:01:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:46', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-30 14:01:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:46', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-30 14:01:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:46', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-30 14:01:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:46', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-30 14:01:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:46', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-30 14:01:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:46', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-30 14:01:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:46', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-30 14:01:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:46', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-30 14:01:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:46', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-30 14:01:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:46', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-30 14:01:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:46', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-30 14:01:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:46', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-30 14:01:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:46', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-30 14:01:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (1.0ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:46', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-30 14:01:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:46', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-30 14:01:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:46', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-30 14:01:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:46', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-30 14:01:46') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:46', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-30 14:01:46') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.1ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:57', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-30 14:01:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:57', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-30 14:01:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:57', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-30 14:01:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:57', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-30 14:01:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:57', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-30 14:01:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:57', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-30 14:01:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:57', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-30 14:01:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:57', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-30 14:01:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:57', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-30 14:01:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:57', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-30 14:01:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:57', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-30 14:01:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:57', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-30 14:01:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:57', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-30 14:01:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:57', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-30 14:01:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:57', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-30 14:01:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:57', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-30 14:01:57') + President Load (0.8ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:57', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-30 14:01:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:57', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-30 14:01:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:57', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-30 14:01:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:57', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-30 14:01:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:57', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-30 14:01:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:57', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 14:01:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:57', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-30 14:01:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:57', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 14:01:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:57', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-30 14:01:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:57', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-30 14:01:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:57', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-30 14:01:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:57', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-30 14:01:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:57', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-30 14:01:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:57', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-30 14:01:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:57', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-30 14:01:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:57', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-30 14:01:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:57', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-30 14:01:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:57', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-30 14:01:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:57', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-30 14:01:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:57', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-30 14:01:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:57', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-30 14:01:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:57', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-30 14:01:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:57', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-30 14:01:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:57', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-30 14:01:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:57', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-30 14:01:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:57', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-30 14:01:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:57', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-30 14:01:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:01:57', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-30 14:01:57') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.3ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.1ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:03:04', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-30 14:03:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:03:04', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-30 14:03:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:03:04', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-30 14:03:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:03:04', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-30 14:03:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:03:04', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-30 14:03:04') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:03:04', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-30 14:03:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:03:04', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-30 14:03:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:03:04', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-30 14:03:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:03:04', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-30 14:03:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:03:04', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-30 14:03:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:03:04', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-30 14:03:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:03:04', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-30 14:03:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:03:04', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-30 14:03:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:03:04', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-30 14:03:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:03:04', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-30 14:03:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:03:04', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-30 14:03:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:03:04', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-30 14:03:04') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:03:04', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-30 14:03:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:03:04', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-30 14:03:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:03:04', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-30 14:03:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:03:04', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-30 14:03:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:03:04', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 14:03:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:03:04', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-30 14:03:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:03:04', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 14:03:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:03:04', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-30 14:03:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:03:04', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-30 14:03:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:03:04', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-30 14:03:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:03:04', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-30 14:03:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:03:04', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-30 14:03:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:03:04', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-30 14:03:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:03:04', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-30 14:03:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:03:04', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-30 14:03:04') + President Load (0.9ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:03:04', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-30 14:03:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:03:04', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-30 14:03:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:03:04', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-30 14:03:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:03:04', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-30 14:03:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:03:04', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-30 14:03:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:03:04', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-30 14:03:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:03:04', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-30 14:03:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:03:04', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-30 14:03:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:03:04', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-30 14:03:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:03:04', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-30 14:03:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:03:04', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-30 14:03:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:03:04', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-30 14:03:04') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.1ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:32', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-30 14:11:32') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:32', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-30 14:11:32') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:32', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-30 14:11:32') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:32', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-30 14:11:32') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:32', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-30 14:11:32') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:32', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-30 14:11:32') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:32', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-30 14:11:32') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:32', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-30 14:11:32') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:32', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-30 14:11:32') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:32', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-30 14:11:32') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:32', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-30 14:11:32') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.6ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:32', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-30 14:11:32') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:32', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-30 14:11:32') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:32', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-30 14:11:32') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:32', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-30 14:11:32') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:32', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-30 14:11:32') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:32', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-30 14:11:32') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:32', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-30 14:11:32') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:32', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-30 14:11:32') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:32', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-30 14:11:32') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:32', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-30 14:11:32') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:32', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 14:11:32') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:32', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-30 14:11:32') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:32', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 14:11:32') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:32', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-30 14:11:32') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:32', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-30 14:11:32') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:32', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-30 14:11:32') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:32', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-30 14:11:32') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:32', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-30 14:11:32') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:32', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-30 14:11:32') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:33', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-30 14:11:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:33', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-30 14:11:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:33', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-30 14:11:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:33', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-30 14:11:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:33', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-30 14:11:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:33', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-30 14:11:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:33', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-30 14:11:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:33', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-30 14:11:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:33', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-30 14:11:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:33', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-30 14:11:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:33', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-30 14:11:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:33', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-30 14:11:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:33', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-30 14:11:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:33', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-30 14:11:33') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:48', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-30 14:11:48') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:48', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-30 14:11:48') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:48', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-30 14:11:48') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:48', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-30 14:11:48') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:48', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-30 14:11:48') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:48', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-30 14:11:48') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:48', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-30 14:11:48') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:48', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-30 14:11:48') + President Load (0.5ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:48', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-30 14:11:48') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:48', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-30 14:11:48') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:48', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-30 14:11:48') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:48', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-30 14:11:48') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:48', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-30 14:11:48') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:48', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-30 14:11:48') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:48', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-30 14:11:48') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:48', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-30 14:11:48') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:48', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-30 14:11:48') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:48', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-30 14:11:48') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:48', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-30 14:11:48') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:48', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-30 14:11:48') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:48', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-30 14:11:48') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:48', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 14:11:48') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:48', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-30 14:11:48') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:48', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 14:11:48') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:48', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-30 14:11:48') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:48', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-30 14:11:48') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:48', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-30 14:11:48') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:48', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-30 14:11:48') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:48', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-30 14:11:48') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:48', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-30 14:11:48') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:48', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-30 14:11:48') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:48', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-30 14:11:48') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:48', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-30 14:11:48') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:48', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-30 14:11:48') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:48', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-30 14:11:48') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:48', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-30 14:11:48') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:48', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-30 14:11:48') + President Load (0.6ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:48', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-30 14:11:48') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:48', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-30 14:11:48') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:48', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-30 14:11:48') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:48', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-30 14:11:48') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:48', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-30 14:11:48') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:48', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-30 14:11:48') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:11:48', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-30 14:11:48') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.2ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:17', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-30 14:12:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:17', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-30 14:12:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:17', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-30 14:12:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:17', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-30 14:12:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:17', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-30 14:12:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:17', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-30 14:12:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:17', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-30 14:12:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:17', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-30 14:12:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:17', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-30 14:12:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:17', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-30 14:12:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:17', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-30 14:12:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:17', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-30 14:12:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:17', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-30 14:12:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:17', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-30 14:12:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:17', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-30 14:12:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:17', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-30 14:12:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:17', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-30 14:12:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.5ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:17', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-30 14:12:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:17', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-30 14:12:17') + President Load (0.6ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:17', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-30 14:12:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:17', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-30 14:12:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:17', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 14:12:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:17', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-30 14:12:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:17', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 14:12:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:17', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-30 14:12:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:17', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-30 14:12:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:17', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-30 14:12:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:17', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-30 14:12:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (112.5ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:17', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-30 14:12:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:17', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-30 14:12:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:17', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-30 14:12:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:17', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-30 14:12:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:17', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-30 14:12:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:17', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-30 14:12:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:17', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-30 14:12:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:17', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-30 14:12:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:17', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-30 14:12:17') + President Load (0.5ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:17', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-30 14:12:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:17', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-30 14:12:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:17', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-30 14:12:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:17', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-30 14:12:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:17', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-30 14:12:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:17', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-30 14:12:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:17', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-30 14:12:17') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:52', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-30 14:12:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:52', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-30 14:12:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:52', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-30 14:12:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:52', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-30 14:12:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:52', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-30 14:12:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:52', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-30 14:12:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:52', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-30 14:12:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:52', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-30 14:12:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:52', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-30 14:12:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:52', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-30 14:12:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:52', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-30 14:12:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:52', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-30 14:12:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:52', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-30 14:12:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:52', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-30 14:12:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:52', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-30 14:12:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:52', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-30 14:12:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:52', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-30 14:12:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:52', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-30 14:12:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:52', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-30 14:12:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:52', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-30 14:12:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:52', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-30 14:12:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:52', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 14:12:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:52', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-30 14:12:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:52', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 14:12:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:52', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-30 14:12:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:52', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-30 14:12:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:52', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-30 14:12:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:52', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-30 14:12:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:52', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-30 14:12:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:52', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-30 14:12:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:52', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-30 14:12:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:52', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-30 14:12:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:52', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-30 14:12:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:52', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-30 14:12:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:52', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-30 14:12:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:52', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-30 14:12:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:52', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-30 14:12:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:52', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-30 14:12:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:52', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-30 14:12:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:52', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-30 14:12:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:52', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-30 14:12:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:52', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-30 14:12:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:52', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-30 14:12:52') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:12:52', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-30 14:12:52') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:13:00', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-30 14:13:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:13:00', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-30 14:13:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:13:00', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-30 14:13:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:13:00', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-30 14:13:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:13:00', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-30 14:13:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:13:00', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-30 14:13:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:13:00', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-30 14:13:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:13:00', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-30 14:13:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:13:00', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-30 14:13:00') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:13:00', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-30 14:13:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:13:00', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-30 14:13:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:13:00', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-30 14:13:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:13:00', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-30 14:13:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:13:00', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-30 14:13:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:13:00', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-30 14:13:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:13:00', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-30 14:13:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:13:00', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-30 14:13:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:13:00', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-30 14:13:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:13:00', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-30 14:13:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:13:00', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-30 14:13:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:13:00', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-30 14:13:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:13:00', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 14:13:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:13:00', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-30 14:13:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:13:00', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 14:13:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:13:00', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-30 14:13:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:13:00', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-30 14:13:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:13:00', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-30 14:13:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:13:00', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-30 14:13:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:13:00', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-30 14:13:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:13:00', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-30 14:13:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:13:00', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-30 14:13:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:13:00', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-30 14:13:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:13:00', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-30 14:13:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:13:00', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-30 14:13:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:13:00', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-30 14:13:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:13:00', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-30 14:13:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:13:00', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-30 14:13:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:13:00', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-30 14:13:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:13:00', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-30 14:13:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:13:00', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-30 14:13:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:13:00', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-30 14:13:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:13:00', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-30 14:13:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:13:00', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-30 14:13:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:13:00', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-30 14:13:00') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.1ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:14:36', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-30 14:14:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:14:36', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-30 14:14:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:14:36', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-30 14:14:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:14:36', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-30 14:14:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:14:36', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-30 14:14:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:14:36', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-30 14:14:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:14:36', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-30 14:14:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:14:36', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-30 14:14:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:14:36', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-30 14:14:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:14:36', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-30 14:14:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:14:36', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-30 14:14:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:14:36', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-30 14:14:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:14:36', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-30 14:14:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:14:36', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-30 14:14:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:14:36', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-30 14:14:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:14:36', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-30 14:14:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:14:36', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-30 14:14:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:14:36', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-30 14:14:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:14:36', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-30 14:14:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:14:36', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-30 14:14:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:14:36', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-30 14:14:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:14:36', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 14:14:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:14:36', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-30 14:14:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:14:36', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 14:14:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:14:36', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-30 14:14:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:14:36', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-30 14:14:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:14:36', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-30 14:14:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:14:36', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-30 14:14:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:14:36', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-30 14:14:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:14:36', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-30 14:14:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:14:36', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-30 14:14:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:14:36', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-30 14:14:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:14:36', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-30 14:14:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:14:36', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-30 14:14:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:14:36', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-30 14:14:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:14:36', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-30 14:14:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:14:36', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-30 14:14:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:14:36', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-30 14:14:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:14:36', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-30 14:14:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:14:36', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-30 14:14:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:14:36', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-30 14:14:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:14:36', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-30 14:14:36') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:14:36', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-30 14:14:36') + President Load (0.7ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:14:36', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-30 14:14:36') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.2ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.1ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:15:02', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-30 14:15:02') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:15:02', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-30 14:15:02') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:15:02', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-30 14:15:02') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:15:02', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-30 14:15:02') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:15:02', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-30 14:15:02') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:15:02', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-30 14:15:02') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:15:02', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-30 14:15:02') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:15:02', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-30 14:15:02') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:15:02', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-30 14:15:02') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:15:02', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-30 14:15:02') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:15:02', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-30 14:15:02') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:15:02', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-30 14:15:02') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:15:02', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-30 14:15:02') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:15:02', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-30 14:15:02') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:15:02', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-30 14:15:02') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:15:02', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-30 14:15:02') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:15:02', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-30 14:15:02') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:15:02', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-30 14:15:02') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:15:02', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-30 14:15:02') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:15:02', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-30 14:15:02') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:15:02', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-30 14:15:02') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:15:02', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 14:15:02') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:15:02', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-30 14:15:02') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:15:02', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 14:15:02') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:15:02', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-30 14:15:02') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:15:02', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-30 14:15:02') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:15:02', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-30 14:15:02') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:15:02', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-30 14:15:02') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:15:02', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-30 14:15:02') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:15:03', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-30 14:15:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:15:03', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-30 14:15:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:15:03', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-30 14:15:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:15:03', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-30 14:15:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:15:03', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-30 14:15:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:15:03', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-30 14:15:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:15:03', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-30 14:15:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:15:03', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-30 14:15:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:15:03', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-30 14:15:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:15:03', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-30 14:15:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:15:03', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-30 14:15:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:15:03', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-30 14:15:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:15:03', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-30 14:15:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:15:03', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-30 14:15:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:15:03', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-30 14:15:03') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:21', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-30 14:16:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:21', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-30 14:16:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:21', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-30 14:16:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:21', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-30 14:16:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:21', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-30 14:16:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:21', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-30 14:16:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:21', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-30 14:16:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:21', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-30 14:16:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:21', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-30 14:16:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:21', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-30 14:16:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:21', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-30 14:16:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:21', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-30 14:16:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:21', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-30 14:16:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:21', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-30 14:16:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:21', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-30 14:16:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:21', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-30 14:16:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:21', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-30 14:16:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:21', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-30 14:16:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:21', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-30 14:16:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:21', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-30 14:16:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:21', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-30 14:16:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:21', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 14:16:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:21', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-30 14:16:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:21', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 14:16:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:21', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-30 14:16:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:21', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-30 14:16:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:21', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-30 14:16:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:21', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-30 14:16:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:21', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-30 14:16:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:21', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-30 14:16:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:21', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-30 14:16:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:21', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-30 14:16:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:21', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-30 14:16:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:21', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-30 14:16:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:21', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-30 14:16:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:21', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-30 14:16:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:21', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-30 14:16:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:21', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-30 14:16:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:21', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-30 14:16:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:21', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-30 14:16:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:21', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-30 14:16:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:21', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-30 14:16:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:21', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-30 14:16:21') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:21', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-30 14:16:21') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.1ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:30', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-30 14:16:30') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:30', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-30 14:16:30') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:30', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-30 14:16:30') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:30', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-30 14:16:30') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:30', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-30 14:16:30') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:30', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-30 14:16:30') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:30', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-30 14:16:30') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:30', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-30 14:16:30') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:30', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-30 14:16:30') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:30', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-30 14:16:30') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:30', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-30 14:16:30') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:30', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-30 14:16:30') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:30', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-30 14:16:30') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:30', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-30 14:16:30') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:30', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-30 14:16:30') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:30', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-30 14:16:30') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:30', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-30 14:16:30') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:30', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-30 14:16:30') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:30', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-30 14:16:30') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:30', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-30 14:16:30') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:30', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-30 14:16:30') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:30', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 14:16:30') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:30', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-30 14:16:30') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:30', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 14:16:30') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:30', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-30 14:16:30') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:30', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-30 14:16:30') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:30', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-30 14:16:30') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:30', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-30 14:16:30') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:31', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-30 14:16:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:31', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-30 14:16:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:31', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-30 14:16:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:31', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-30 14:16:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:31', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-30 14:16:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:31', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-30 14:16:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:31', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-30 14:16:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:31', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-30 14:16:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:31', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-30 14:16:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:31', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-30 14:16:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:31', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-30 14:16:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:31', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-30 14:16:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:31', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-30 14:16:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:31', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-30 14:16:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:31', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-30 14:16:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:16:31', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-30 14:16:31') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:22:37', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-30 14:22:37') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:22:37', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-30 14:22:37') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:22:37', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-30 14:22:37') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:22:37', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-30 14:22:37') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:22:37', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-30 14:22:37') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:22:37', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-30 14:22:37') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:22:37', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-30 14:22:37') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:22:37', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-30 14:22:37') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:22:37', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-30 14:22:37') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:22:37', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-30 14:22:37') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:22:37', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-30 14:22:37') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:22:37', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-30 14:22:37') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:22:37', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-30 14:22:37') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:22:37', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-30 14:22:37') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:22:37', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-30 14:22:37') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:22:37', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-30 14:22:37') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:22:37', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-30 14:22:37') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:22:37', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-30 14:22:37') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:22:37', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-30 14:22:37') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:22:37', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-30 14:22:37') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:22:37', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-30 14:22:37') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:22:37', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 14:22:37') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:22:37', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-30 14:22:37') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:22:37', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 14:22:37') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:22:37', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-30 14:22:37') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:22:37', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-30 14:22:37') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:22:37', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-30 14:22:37') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:22:37', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-30 14:22:37') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:22:37', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-30 14:22:37') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:22:37', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-30 14:22:37') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:22:37', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-30 14:22:37') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:22:37', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-30 14:22:37') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:22:37', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-30 14:22:37') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:22:37', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-30 14:22:37') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:22:37', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-30 14:22:37') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:22:37', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-30 14:22:37') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:22:37', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-30 14:22:37') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:22:37', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-30 14:22:37') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:22:37', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-30 14:22:37') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:22:37', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-30 14:22:37') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:22:37', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-30 14:22:37') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:22:37', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-30 14:22:37') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:22:37', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-30 14:22:37') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:22:37', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-30 14:22:37') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.2ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.1ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:23:14', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-30 14:23:14') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:23:14', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-30 14:23:14') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:23:14', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-30 14:23:14') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:23:14', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-30 14:23:14') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:23:14', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-30 14:23:14') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:23:14', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-30 14:23:14') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:23:14', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-30 14:23:14') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:23:14', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-30 14:23:14') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:23:14', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-30 14:23:14') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:23:14', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-30 14:23:14') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:23:14', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-30 14:23:14') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:23:14', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-30 14:23:14') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:23:14', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-30 14:23:14') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:23:14', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-30 14:23:14') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:23:14', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-30 14:23:14') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:23:14', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-30 14:23:14') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:23:14', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-30 14:23:14') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:23:14', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-30 14:23:14') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:23:14', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-30 14:23:14') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:23:14', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-30 14:23:14') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:23:14', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-30 14:23:14') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:23:14', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 14:23:14') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:23:14', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-30 14:23:14') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:23:14', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 14:23:14') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:23:14', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-30 14:23:14') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:23:14', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-30 14:23:14') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:23:14', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-30 14:23:14') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:23:14', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-30 14:23:14') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:23:14', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-30 14:23:14') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:23:14', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-30 14:23:14') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:23:14', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-30 14:23:14') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:23:14', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-30 14:23:14') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:23:14', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-30 14:23:14') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:23:14', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-30 14:23:14') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:23:14', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-30 14:23:14') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:23:14', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-30 14:23:14') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:23:14', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-30 14:23:14') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:23:14', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-30 14:23:14') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:23:14', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-30 14:23:14') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:23:14', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-30 14:23:14') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:23:14', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-30 14:23:14') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:23:14', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-30 14:23:14') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:23:14', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-30 14:23:14') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:23:14', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-30 14:23:14') + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:03', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-30 14:24:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:03', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-30 14:24:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:03', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-30 14:24:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:03', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-30 14:24:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:03', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-30 14:24:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:03', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-30 14:24:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:03', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-30 14:24:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:03', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-30 14:24:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:03', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-30 14:24:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:03', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-30 14:24:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:03', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-30 14:24:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:03', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-30 14:24:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:03', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-30 14:24:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:03', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-30 14:24:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:03', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-30 14:24:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:03', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-30 14:24:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:03', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-30 14:24:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:03', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-30 14:24:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:03', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-30 14:24:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:03', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-30 14:24:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:03', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-30 14:24:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:03', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 14:24:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:03', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-30 14:24:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:03', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 14:24:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:03', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-30 14:24:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:03', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-30 14:24:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:03', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-30 14:24:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:03', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-30 14:24:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:03', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-30 14:24:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:03', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-30 14:24:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:03', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-30 14:24:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:03', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-30 14:24:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:03', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-30 14:24:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:03', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-30 14:24:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:03', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-30 14:24:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:03', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-30 14:24:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:03', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-30 14:24:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:03', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-30 14:24:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:03', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-30 14:24:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:03', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-30 14:24:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:03', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-30 14:24:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:03', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-30 14:24:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:03', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-30 14:24:03') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:03', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-30 14:24:03') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.2ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-30 14:24:11') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-30 14:24:11') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-30 14:24:11') + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + President Delete all (0.3ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-30 14:24:11') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:11', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-30 14:24:11') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-30 14:24:12') + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + President Delete all (0.3ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-30 14:24:12') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:12', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-30 14:24:12') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.2ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-30 14:24:54') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-30 14:24:54') + President Load (0.9ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-30 14:24:54') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.8ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-30 14:24:54') + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + President Delete all (0.3ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.5ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-30 14:24:54') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-30 14:24:54') + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + President Delete all (0.3ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:54', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-30 14:24:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:55', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-30 14:24:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:55', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-30 14:24:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:55', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-30 14:24:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:55', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-30 14:24:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:55', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-30 14:24:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:55', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-30 14:24:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:55', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-30 14:24:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:55', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-30 14:24:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:55', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-30 14:24:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:55', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-30 14:24:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:55', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-30 14:24:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:55', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-30 14:24:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:55', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 14:24:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:55', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-30 14:24:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:55', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 14:24:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:55', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-30 14:24:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:55', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-30 14:24:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:55', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-30 14:24:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:55', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-30 14:24:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:55', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-30 14:24:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.8ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:55', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-30 14:24:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:55', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-30 14:24:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:55', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-30 14:24:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:55', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-30 14:24:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:55', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-30 14:24:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:55', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-30 14:24:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:55', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-30 14:24:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:55', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-30 14:24:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:55', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-30 14:24:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:55', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-30 14:24:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:55', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-30 14:24:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:55', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-30 14:24:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:55', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-30 14:24:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:55', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-30 14:24:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:24:55', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-30 14:24:55') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:54:40', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-30 14:54:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:54:40', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-30 14:54:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:54:40', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-30 14:54:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:54:40', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-30 14:54:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:54:40', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-30 14:54:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:54:40', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-30 14:54:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:54:40', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-30 14:54:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:54:40', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-30 14:54:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:54:40', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-30 14:54:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:54:40', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-30 14:54:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:54:40', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-30 14:54:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:54:40', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-30 14:54:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:54:40', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-30 14:54:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:54:40', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-30 14:54:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:54:40', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-30 14:54:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:54:40', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-30 14:54:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:54:40', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-30 14:54:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:54:40', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-30 14:54:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:54:40', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-30 14:54:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:54:40', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-30 14:54:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:54:40', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-30 14:54:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:54:40', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 14:54:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:54:40', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-30 14:54:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:54:40', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 14:54:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:54:40', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-30 14:54:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:54:40', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-30 14:54:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:54:40', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-30 14:54:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:54:40', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-30 14:54:40') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:54:41', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-30 14:54:41') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:54:41', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-30 14:54:41') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:54:41', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-30 14:54:41') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:54:41', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-30 14:54:41') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:54:41', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-30 14:54:41') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:54:41', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-30 14:54:41') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:54:41', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-30 14:54:41') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:54:41', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-30 14:54:41') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:54:41', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-30 14:54:41') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:54:41', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-30 14:54:41') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:54:41', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-30 14:54:41') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:54:41', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-30 14:54:41') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:54:41', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-30 14:54:41') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:54:41', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-30 14:54:41') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:54:41', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-30 14:54:41') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 14:54:41', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-30 14:54:41') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:08:04', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-30 15:08:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:08:04', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-30 15:08:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:08:04', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-30 15:08:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:08:04', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-30 15:08:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:08:04', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-30 15:08:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:08:04', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-30 15:08:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:08:04', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-30 15:08:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:08:04', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-30 15:08:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:08:04', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-30 15:08:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:08:04', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-30 15:08:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:08:04', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-30 15:08:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:08:04', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-30 15:08:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:08:04', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-30 15:08:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:08:04', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-30 15:08:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:08:04', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-30 15:08:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:08:04', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-30 15:08:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:08:04', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-30 15:08:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:08:04', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-30 15:08:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:08:04', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-30 15:08:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:08:04', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-30 15:08:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:08:04', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-30 15:08:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:08:04', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 15:08:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:08:04', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-30 15:08:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:08:04', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 15:08:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:08:04', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-30 15:08:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:08:04', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-30 15:08:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:08:04', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-30 15:08:04') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:08:04', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-30 15:08:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:08:04', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-30 15:08:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:08:04', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-30 15:08:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:08:04', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-30 15:08:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:08:04', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-30 15:08:04') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:08:04', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-30 15:08:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:08:04', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-30 15:08:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:08:04', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-30 15:08:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:08:04', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-30 15:08:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:08:04', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-30 15:08:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:08:04', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-30 15:08:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:08:04', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-30 15:08:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:08:04', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-30 15:08:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:08:04', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-30 15:08:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:08:04', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-30 15:08:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:08:04', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-30 15:08:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:08:04', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-30 15:08:04') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:04', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-30 15:13:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:04', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-30 15:13:04') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:04', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-30 15:13:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:04', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-30 15:13:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:04', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-30 15:13:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:04', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-30 15:13:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:04', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-30 15:13:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:04', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-30 15:13:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:04', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-30 15:13:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:04', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-30 15:13:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:04', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-30 15:13:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:04', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-30 15:13:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:04', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-30 15:13:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:04', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-30 15:13:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:04', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-30 15:13:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:04', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-30 15:13:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:04', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-30 15:13:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:04', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-30 15:13:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:04', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-30 15:13:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:04', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-30 15:13:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:04', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-30 15:13:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:04', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 15:13:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:04', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-30 15:13:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:04', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 15:13:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:04', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-30 15:13:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:04', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-30 15:13:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:04', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-30 15:13:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:04', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-30 15:13:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:04', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-30 15:13:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:04', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-30 15:13:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:04', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-30 15:13:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:04', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-30 15:13:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:05', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-30 15:13:05') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:05', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-30 15:13:05') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:05', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-30 15:13:05') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:05', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-30 15:13:05') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:05', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-30 15:13:05') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:05', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-30 15:13:05') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:05', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-30 15:13:05') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:05', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-30 15:13:05') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:05', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-30 15:13:05') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:05', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-30 15:13:05') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:05', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-30 15:13:05') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:05', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-30 15:13:05') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.1ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:26', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-30 15:13:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:26', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-30 15:13:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:26', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-30 15:13:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:26', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-30 15:13:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:26', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-30 15:13:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:26', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-30 15:13:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:26', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-30 15:13:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:26', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-30 15:13:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:26', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-30 15:13:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:26', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-30 15:13:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:26', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-30 15:13:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:26', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-30 15:13:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:26', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-30 15:13:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:26', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-30 15:13:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:26', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-30 15:13:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:26', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-30 15:13:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:26', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-30 15:13:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:26', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-30 15:13:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:26', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-30 15:13:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:26', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-30 15:13:26') + President Load (0.7ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:26', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-30 15:13:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:26', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 15:13:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:26', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-30 15:13:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:26', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 15:13:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.9ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:26', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-30 15:13:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:26', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-30 15:13:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:26', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-30 15:13:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:26', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-30 15:13:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:27', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-30 15:13:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:27', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-30 15:13:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:27', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-30 15:13:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (1.0ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:27', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-30 15:13:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:27', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-30 15:13:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:27', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-30 15:13:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:27', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-30 15:13:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:27', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-30 15:13:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:27', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-30 15:13:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:27', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-30 15:13:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:27', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-30 15:13:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:27', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-30 15:13:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:27', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-30 15:13:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:27', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-30 15:13:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:27', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-30 15:13:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:13:27', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-30 15:13:27') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (1.1ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:19', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-30 15:14:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:19', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-30 15:14:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:19', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-30 15:14:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:19', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-30 15:14:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (1.0ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:19', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-30 15:14:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:19', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-30 15:14:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:19', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-30 15:14:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:19', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-30 15:14:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:19', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-30 15:14:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:19', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-30 15:14:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:19', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-30 15:14:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:19', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-30 15:14:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:19', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-30 15:14:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:19', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-30 15:14:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:19', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-30 15:14:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:19', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-30 15:14:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:19', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-30 15:14:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:19', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-30 15:14:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:19', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-30 15:14:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:19', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-30 15:14:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:19', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-30 15:14:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:19', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 15:14:19') + President Load (1.0ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:19', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-30 15:14:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:19', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 15:14:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:19', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-30 15:14:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:19', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-30 15:14:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:19', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-30 15:14:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:19', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-30 15:14:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:19', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-30 15:14:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:19', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-30 15:14:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:19', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-30 15:14:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:19', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-30 15:14:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:19', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-30 15:14:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:19', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-30 15:14:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:19', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-30 15:14:19') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:19', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-30 15:14:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:19', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-30 15:14:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:19', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-30 15:14:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:19', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-30 15:14:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:19', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-30 15:14:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:19', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-30 15:14:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:19', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-30 15:14:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:19', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-30 15:14:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:19', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-30 15:14:19') + SQL (0.6ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.7ms) select sqlite_version(*) + SQL (1.0ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.6ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.5ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.9ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.3ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.4ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:38', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-10-30 15:14:38') + President Load (0.5ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:38', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-10-30 15:14:38') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:38', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-10-30 15:14:38') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:38', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-10-30 15:14:38') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:38', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-10-30 15:14:38') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.5ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:38', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-10-30 15:14:38') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:38', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-10-30 15:14:38') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:38', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-10-30 15:14:38') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:38', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-10-30 15:14:38') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:38', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-10-30 15:14:38') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:38', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-10-30 15:14:38') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.5ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:38', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-10-30 15:14:38') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:38', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-10-30 15:14:38') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (1.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:38', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-10-30 15:14:38') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:38', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-10-30 15:14:38') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:38', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-10-30 15:14:38') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:39', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-10-30 15:14:39') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:39', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-10-30 15:14:39') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:39', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-10-30 15:14:39') + President Load (0.5ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.5ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:39', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-10-30 15:14:39') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:39', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-10-30 15:14:39') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:39', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 15:14:39') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:39', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-10-30 15:14:39') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:39', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-10-30 15:14:39') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:39', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-10-30 15:14:39') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:39', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-10-30 15:14:39') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:39', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-10-30 15:14:39') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:39', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-10-30 15:14:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:39', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-10-30 15:14:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.7ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:39', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-10-30 15:14:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:39', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-10-30 15:14:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:39', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-10-30 15:14:39') + President Load (18.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:39', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-10-30 15:14:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:39', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-10-30 15:14:39') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:39', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-10-30 15:14:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:39', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-10-30 15:14:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:39', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-10-30 15:14:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:39', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-10-30 15:14:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:39', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-10-30 15:14:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:39', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-10-30 15:14:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:39', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-10-30 15:14:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:39', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-10-30 15:14:39') + President Load (0.8ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.5ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:39', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-10-30 15:14:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-10-30 15:14:39', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-10-30 15:14:39') + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-10 06:28:04') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-10 06:28:04') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-10 06:28:04') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-10 06:28:04') + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + President Delete all (0.3ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-10 06:28:04') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-10 06:28:04') + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + President Delete all (0.3ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:04', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-10 06:28:04') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:05', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-10 06:28:05') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:05', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-10 06:28:05') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:05', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-10 06:28:05') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:05', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-10 06:28:05') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:05', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-10 06:28:05') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:05', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-10 06:28:05') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:05', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-10 06:28:05') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:05', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-10 06:28:05') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:05', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-10 06:28:05') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:05', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-10 06:28:05') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:05', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-10 06:28:05') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:05', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-10 06:28:05') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:05', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-10 06:28:05') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:05', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-10 06:28:05') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:05', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-10 06:28:05') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:05', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-10 06:28:05') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:05', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-10 06:28:05') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:28:05', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-10 06:28:05') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.4ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.3ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.2ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-10 06:46:59') + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + President Delete all (0.3ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:46:59', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-10 06:46:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-10 06:47:00') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-10 06:47:00') + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + President Delete all (0.4ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-10 06:47:00') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-10 06:47:00') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-10 06:47:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 06:47:00', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-10 06:47:00') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (3.2ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.1ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:26', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-10 09:07:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:26', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-10 09:07:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:26', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-10 09:07:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:26', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-10 09:07:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:26', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-10 09:07:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:26', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-10 09:07:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:26', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-10 09:07:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:26', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-10 09:07:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:26', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-10 09:07:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:26', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-10 09:07:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:26', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-10 09:07:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:26', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-10 09:07:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:26', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-10 09:07:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:26', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-10 09:07:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:26', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-10 09:07:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:26', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-10 09:07:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:26', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-10 09:07:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:26', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-10 09:07:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:26', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-10 09:07:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:26', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-10 09:07:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:26', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-10 09:07:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.9ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (1.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-10 09:07:27') + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + President Delete all (0.3ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.8ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-10 09:07:27') + President Load (0.7ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-10 09:07:27') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-10 09:07:27') + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + President Delete all (0.3ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-10 09:07:27') + President Load (1.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-10 09:07:27') + President Load (11.5ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.8ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-10 09:07:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:07:27', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-10 09:07:27') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.2ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.1ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.8ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-10 09:18:44') + President Load (0.9ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-10 09:18:44') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-10 09:18:44') + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (1.4ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + President Delete all (0.3ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-10 09:18:44') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-10 09:18:44') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-10 09:18:44') + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + President Delete all (0.3ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-10 09:18:44') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:44', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-10 09:18:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-10 09:18:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-10 09:18:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-10 09:18:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-10 09:18:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-10 09:18:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-10 09:18:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-10 09:18:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-10 09:18:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-10 09:18:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-10 09:18:45') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-10 09:18:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-10 09:18:45') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-10 09:18:45') + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + President Delete all (0.3ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-10 09:18:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-10 09:18:45') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-10 09:18:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-10 09:18:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-10 09:18:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-10 09:18:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.5ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-10 09:18:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-10 09:18:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-10 09:18:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-10 09:18:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-10 09:18:45') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-10 09:18:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-10 09:18:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-10 09:18:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-10 09:18:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-10 09:18:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-10 09:18:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-10 09:18:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-10 09:18:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-10 09:18:45') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-10 09:18:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 09:18:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-10 09:18:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 09:18:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-10 09:18:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-10 09:18:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-10 09:18:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-10 09:18:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-10 09:18:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-10 09:18:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-10 09:18:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-10 09:18:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-10 09:18:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-10 09:18:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-10 09:18:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-10 09:18:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-10 09:18:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-10 09:18:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-10 09:18:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-10 09:18:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-10 09:18:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-10 09:18:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-10 09:18:45') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:18:45', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-10 09:18:45') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.4ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.2ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:34:53', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-10 09:34:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:34:53', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-10 09:34:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:34:53', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-10 09:34:53') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:34:53', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-10 09:34:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:34:53', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-10 09:34:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:34:53', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-10 09:34:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:34:53', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-10 09:34:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:34:53', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-10 09:34:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:34:53', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-10 09:34:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:34:53', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-10 09:34:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:34:53', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-10 09:34:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:34:53', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-10 09:34:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:34:53', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-10 09:34:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:34:53', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-10 09:34:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:34:53', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-10 09:34:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:34:53', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-10 09:34:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:34:53', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-10 09:34:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:34:53', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-10 09:34:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:34:53', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-10 09:34:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:34:54', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-10 09:34:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:34:54', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-10 09:34:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:34:54', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 09:34:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:34:54', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-10 09:34:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:34:54', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 09:34:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:34:54', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-10 09:34:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:34:54', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-10 09:34:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:34:54', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-10 09:34:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:34:54', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-10 09:34:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:34:54', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-10 09:34:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:34:54', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-10 09:34:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:34:54', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-10 09:34:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:34:54', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-10 09:34:54') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:34:54', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-10 09:34:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:34:54', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-10 09:34:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:34:54', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-10 09:34:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:34:54', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-10 09:34:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:34:54', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-10 09:34:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:34:54', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-10 09:34:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:34:54', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-10 09:34:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:34:54', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-10 09:34:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:34:54', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-10 09:34:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:34:54', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-10 09:34:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:34:54', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-10 09:34:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:34:54', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-10 09:34:54') + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.2ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:35:58', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-10 09:35:58') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:35:58', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-10 09:35:58') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:35:58', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-10 09:35:58') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:35:58', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-10 09:35:58') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:35:58', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-10 09:35:58') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:35:58', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-10 09:35:58') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:35:58', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-10 09:35:58') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:35:58', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-10 09:35:58') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:35:58', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-10 09:35:58') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:35:58', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-10 09:35:58') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:35:58', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-10 09:35:58') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:35:58', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-10 09:35:58') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:35:58', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-10 09:35:58') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:35:58', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-10 09:35:58') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:35:58', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-10 09:35:58') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:35:58', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-10 09:35:58') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:35:58', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-10 09:35:58') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:35:58', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-10 09:35:58') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:35:58', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-10 09:35:58') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:35:58', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-10 09:35:58') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:35:58', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-10 09:35:58') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:35:58', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 09:35:58') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:35:58', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-10 09:35:58') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:35:58', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 09:35:58') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:35:58', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-10 09:35:58') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:35:58', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-10 09:35:58') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:35:59', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-10 09:35:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:35:59', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-10 09:35:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:35:59', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-10 09:35:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:35:59', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-10 09:35:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:35:59', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-10 09:35:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:35:59', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-10 09:35:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:35:59', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-10 09:35:59') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:35:59', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-10 09:35:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:35:59', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-10 09:35:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:35:59', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-10 09:35:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:35:59', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-10 09:35:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:35:59', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-10 09:35:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:35:59', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-10 09:35:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:35:59', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-10 09:35:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:35:59', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-10 09:35:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:35:59', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-10 09:35:59') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:35:59', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-10 09:35:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:35:59', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-10 09:35:59') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.2ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:37:33', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-10 09:37:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:37:33', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-10 09:37:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:37:33', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-10 09:37:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:37:33', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-10 09:37:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:37:33', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-10 09:37:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:37:33', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-10 09:37:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:37:33', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-10 09:37:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:37:33', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-10 09:37:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:37:33', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-10 09:37:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:37:33', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-10 09:37:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:37:33', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-10 09:37:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:37:33', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-10 09:37:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:37:33', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-10 09:37:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:37:33', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-10 09:37:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:37:33', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-10 09:37:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:37:33', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-10 09:37:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:37:33', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-10 09:37:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:37:33', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-10 09:37:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:37:33', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-10 09:37:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:37:33', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-10 09:37:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:37:33', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-10 09:37:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:37:33', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 09:37:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:37:33', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-10 09:37:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:37:33', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 09:37:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:37:33', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-10 09:37:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:37:33', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-10 09:37:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:37:33', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-10 09:37:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:37:33', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-10 09:37:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:37:33', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-10 09:37:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:37:33', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-10 09:37:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:37:33', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-10 09:37:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:37:33', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-10 09:37:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:37:34', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-10 09:37:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:37:34', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-10 09:37:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:37:34', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-10 09:37:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:37:34', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-10 09:37:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:37:34', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-10 09:37:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:37:34', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-10 09:37:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:37:34', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-10 09:37:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:37:34', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-10 09:37:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:37:34', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-10 09:37:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:37:34', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-10 09:37:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:37:34', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-10 09:37:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:37:34', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-10 09:37:34') + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.2ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:38:01', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-10 09:38:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:38:01', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-10 09:38:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:38:01', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-10 09:38:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:38:01', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-10 09:38:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:38:01', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-10 09:38:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:38:01', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-10 09:38:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:38:01', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-10 09:38:01') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:38:01', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-10 09:38:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:38:01', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-10 09:38:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:38:01', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-10 09:38:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:38:01', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-10 09:38:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:38:01', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-10 09:38:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:38:01', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-10 09:38:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:38:01', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-10 09:38:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:38:01', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-10 09:38:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:38:01', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-10 09:38:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:38:01', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-10 09:38:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:38:01', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-10 09:38:01') + President Load (1.8ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:38:01', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-10 09:38:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:38:01', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-10 09:38:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:38:01', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-10 09:38:01') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:38:01', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 09:38:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:38:01', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-10 09:38:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:38:01', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 09:38:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:38:01', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-10 09:38:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:38:01', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-10 09:38:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:38:01', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-10 09:38:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:38:01', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-10 09:38:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:38:01', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-10 09:38:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:38:01', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-10 09:38:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:38:01', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-10 09:38:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:38:01', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-10 09:38:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:38:01', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-10 09:38:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:38:01', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-10 09:38:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:38:01', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-10 09:38:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:38:01', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-10 09:38:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:38:01', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-10 09:38:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:38:01', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-10 09:38:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:38:01', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-10 09:38:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:38:01', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-10 09:38:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:38:01', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-10 09:38:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:38:01', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-10 09:38:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:38:01', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-10 09:38:01') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:38:01', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-10 09:38:01') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.7ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.3ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.2ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:41:09', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-10 09:41:09') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:41:09', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-10 09:41:09') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:41:09', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-10 09:41:09') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:41:09', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-10 09:41:09') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:41:09', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-10 09:41:09') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:41:09', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-10 09:41:09') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:41:09', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-10 09:41:09') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:41:09', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-10 09:41:09') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:41:09', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-10 09:41:09') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:41:09', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-10 09:41:09') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:41:09', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-10 09:41:09') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:41:09', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-10 09:41:09') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:41:09', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-10 09:41:09') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:41:09', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-10 09:41:09') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:41:09', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-10 09:41:09') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:41:09', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-10 09:41:09') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:41:09', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-10 09:41:09') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:41:09', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-10 09:41:09') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:41:09', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-10 09:41:09') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:41:09', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-10 09:41:09') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:41:09', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-10 09:41:09') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:41:09', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 09:41:09') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:41:09', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-10 09:41:09') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:41:09', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 09:41:09') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:41:09', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-10 09:41:09') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:41:09', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-10 09:41:09') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:41:09', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-10 09:41:09') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:41:09', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-10 09:41:09') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:41:09', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-10 09:41:09') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:41:09', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-10 09:41:09') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:41:09', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-10 09:41:09') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:41:09', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-10 09:41:09') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:41:09', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-10 09:41:09') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:41:09', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-10 09:41:09') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:41:09', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-10 09:41:09') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:41:09', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-10 09:41:09') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:41:09', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-10 09:41:09') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:41:09', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-10 09:41:09') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:41:09', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-10 09:41:09') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:41:09', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-10 09:41:09') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:41:09', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-10 09:41:09') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:41:09', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-10 09:41:09') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:41:09', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-10 09:41:09') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:41:09', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-10 09:41:09') + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.2ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:42:57', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-10 09:42:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:42:57', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-10 09:42:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:42:57', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-10 09:42:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:42:57', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-10 09:42:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:42:57', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-10 09:42:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:42:57', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-10 09:42:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:42:57', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-10 09:42:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:42:57', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-10 09:42:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:42:57', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-10 09:42:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:42:57', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-10 09:42:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:42:57', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-10 09:42:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:42:57', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-10 09:42:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:42:57', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-10 09:42:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:42:57', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-10 09:42:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:42:57', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-10 09:42:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:42:57', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-10 09:42:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:42:57', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-10 09:42:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:42:57', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-10 09:42:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:42:57', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-10 09:42:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:42:57', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-10 09:42:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:42:57', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-10 09:42:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:42:57', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 09:42:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:42:57', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-10 09:42:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:42:57', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 09:42:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:42:57', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-10 09:42:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:42:57', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-10 09:42:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:42:57', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-10 09:42:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:42:57', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-10 09:42:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:42:57', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-10 09:42:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:42:57', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-10 09:42:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:42:57', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-10 09:42:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:42:57', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-10 09:42:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:42:57', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-10 09:42:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:42:57', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-10 09:42:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:42:57', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-10 09:42:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:42:57', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-10 09:42:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:42:57', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-10 09:42:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:42:57', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-10 09:42:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:42:57', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-10 09:42:57') + President Load (1.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:42:57', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-10 09:42:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:42:57', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-10 09:42:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:42:57', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-10 09:42:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:42:57', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-10 09:42:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:42:57', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-10 09:42:57') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.2ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (1.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:45:55', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-10 09:45:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:45:55', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-10 09:45:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:45:55', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-10 09:45:55') + President Load (0.5ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:45:55', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-10 09:45:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:45:55', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-10 09:45:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:45:55', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-10 09:45:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:45:55', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-10 09:45:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:45:55', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-10 09:45:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:45:55', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-10 09:45:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:45:55', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-10 09:45:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:45:55', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-10 09:45:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:45:55', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-10 09:45:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:45:55', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-10 09:45:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:45:55', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-10 09:45:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:45:55', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-10 09:45:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:45:55', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-10 09:45:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:45:55', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-10 09:45:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:45:55', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-10 09:45:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:45:55', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-10 09:45:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:45:55', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-10 09:45:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:45:55', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-10 09:45:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:45:55', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 09:45:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:45:55', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-10 09:45:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:45:55', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 09:45:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:45:55', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-10 09:45:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:45:55', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-10 09:45:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:45:55', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-10 09:45:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:45:55', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-10 09:45:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:45:55', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-10 09:45:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:45:55', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-10 09:45:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:45:55', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-10 09:45:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:45:55', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-10 09:45:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:45:55', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-10 09:45:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:45:55', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-10 09:45:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:45:55', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-10 09:45:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:45:55', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-10 09:45:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:45:55', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-10 09:45:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:45:55', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-10 09:45:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:45:55', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-10 09:45:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:45:55', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-10 09:45:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:45:55', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-10 09:45:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:45:55', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-10 09:45:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:45:55', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-10 09:45:55') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:45:55', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-10 09:45:55') + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.4ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.2ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:31', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-10 09:47:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:31', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-10 09:47:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:31', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-10 09:47:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:31', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-10 09:47:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:31', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-10 09:47:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:31', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-10 09:47:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:31', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-10 09:47:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:31', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-10 09:47:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:31', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-10 09:47:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:31', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-10 09:47:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:31', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-10 09:47:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:31', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-10 09:47:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:31', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-10 09:47:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:31', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-10 09:47:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:31', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-10 09:47:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:31', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-10 09:47:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:31', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-10 09:47:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:31', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-10 09:47:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:31', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-10 09:47:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:31', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-10 09:47:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:31', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-10 09:47:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:31', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 09:47:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:31', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-10 09:47:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:31', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 09:47:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:31', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-10 09:47:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:31', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-10 09:47:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:31', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-10 09:47:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:31', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-10 09:47:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:31', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-10 09:47:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:31', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-10 09:47:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:31', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-10 09:47:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:31', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-10 09:47:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:31', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-10 09:47:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:31', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-10 09:47:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:31', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-10 09:47:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:31', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-10 09:47:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:31', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-10 09:47:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:31', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-10 09:47:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:31', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-10 09:47:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:31', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-10 09:47:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:31', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-10 09:47:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:31', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-10 09:47:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:31', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-10 09:47:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:31', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-10 09:47:31') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.2ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:59', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-10 09:47:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:59', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-10 09:47:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:59', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-10 09:47:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:59', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-10 09:47:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:59', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-10 09:47:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:59', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-10 09:47:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:59', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-10 09:47:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:59', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-10 09:47:59') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:59', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-10 09:47:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:59', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-10 09:47:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:59', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-10 09:47:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:59', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-10 09:47:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:59', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-10 09:47:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:59', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-10 09:47:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:59', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-10 09:47:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:59', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-10 09:47:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:59', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-10 09:47:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:59', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-10 09:47:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:59', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-10 09:47:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:59', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-10 09:47:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:59', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-10 09:47:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:59', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 09:47:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:59', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-10 09:47:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:59', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 09:47:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:59', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-10 09:47:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:59', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-10 09:47:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:59', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-10 09:47:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:59', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-10 09:47:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:59', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-10 09:47:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:59', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-10 09:47:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:59', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-10 09:47:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:59', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-10 09:47:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:59', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-10 09:47:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:59', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-10 09:47:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:59', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-10 09:47:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:59', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-10 09:47:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:59', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-10 09:47:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:59', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-10 09:47:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:59', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-10 09:47:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:59', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-10 09:47:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:59', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-10 09:47:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:59', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-10 09:47:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:59', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-10 09:47:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:47:59', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-10 09:47:59') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.3ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.2ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:54:06', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-10 09:54:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:54:06', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-10 09:54:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:54:06', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-10 09:54:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:54:06', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-10 09:54:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:54:06', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-10 09:54:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:54:06', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-10 09:54:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:54:06', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-10 09:54:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:54:06', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-10 09:54:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:54:06', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-10 09:54:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:54:06', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-10 09:54:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:54:06', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-10 09:54:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:54:06', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-10 09:54:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:54:06', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-10 09:54:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:54:06', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-10 09:54:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:54:06', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-10 09:54:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:54:06', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-10 09:54:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:54:06', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-10 09:54:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:54:06', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-10 09:54:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:54:06', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-10 09:54:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:54:06', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-10 09:54:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:54:06', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-10 09:54:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:54:06', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 09:54:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:54:06', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-10 09:54:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:54:06', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 09:54:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:54:06', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-10 09:54:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:54:06', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-10 09:54:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:54:06', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-10 09:54:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:54:06', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-10 09:54:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:54:06', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-10 09:54:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:54:06', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-10 09:54:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:54:06', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-10 09:54:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:54:06', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-10 09:54:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:54:06', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-10 09:54:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:54:06', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-10 09:54:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:54:06', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-10 09:54:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:54:06', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-10 09:54:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:54:06', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-10 09:54:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:54:06', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-10 09:54:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:54:06', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-10 09:54:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:54:06', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-10 09:54:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:54:06', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-10 09:54:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:54:06', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-10 09:54:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:54:06', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-10 09:54:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:54:06', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-10 09:54:06') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.2ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:57:25', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-10 09:57:25') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:57:25', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-10 09:57:25') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:57:25', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-10 09:57:25') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:57:25', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-10 09:57:25') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:57:25', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-10 09:57:25') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:57:25', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-10 09:57:25') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:57:25', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-10 09:57:25') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:57:25', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-10 09:57:25') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:57:25', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-10 09:57:25') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:57:25', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-10 09:57:25') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:57:25', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-10 09:57:25') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:57:25', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-10 09:57:25') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:57:25', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-10 09:57:25') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:57:25', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-10 09:57:25') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:57:25', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-10 09:57:25') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:57:25', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-10 09:57:25') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:57:25', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-10 09:57:25') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:57:25', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-10 09:57:25') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:57:25', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-10 09:57:25') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:57:25', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-10 09:57:25') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:57:25', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-10 09:57:25') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:57:25', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 09:57:25') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:57:25', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-10 09:57:25') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:57:25', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 09:57:25') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:57:25', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-10 09:57:25') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:57:25', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-10 09:57:25') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:57:25', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-10 09:57:25') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:57:25', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-10 09:57:25') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:57:25', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-10 09:57:25') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:57:25', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-10 09:57:25') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:57:25', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-10 09:57:25') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:57:25', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-10 09:57:25') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:57:25', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-10 09:57:25') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:57:25', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-10 09:57:25') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:57:25', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-10 09:57:25') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:57:25', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-10 09:57:25') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:57:25', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-10 09:57:25') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:57:25', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-10 09:57:25') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:57:25', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-10 09:57:25') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:57:25', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-10 09:57:25') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:57:25', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-10 09:57:25') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:57:25', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-10 09:57:25') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:57:25', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-10 09:57:25') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 09:57:25', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-10 09:57:25') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.2ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:35', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-10 10:05:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:35', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-10 10:05:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:35', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-10 10:05:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:35', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-10 10:05:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:35', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-10 10:05:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:35', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-10 10:05:35') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:35', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-10 10:05:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:35', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-10 10:05:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:35', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-10 10:05:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:35', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-10 10:05:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:35', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-10 10:05:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:35', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-10 10:05:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:35', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-10 10:05:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:35', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-10 10:05:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:35', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-10 10:05:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:35', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-10 10:05:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:35', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-10 10:05:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:35', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-10 10:05:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:35', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-10 10:05:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:35', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-10 10:05:35') + President Load (0.5ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:35', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-10 10:05:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:35', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 10:05:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:35', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-10 10:05:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:35', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 10:05:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:35', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-10 10:05:35') + President Load (0.9ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:35', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-10 10:05:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:35', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-10 10:05:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:35', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-10 10:05:35') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:35', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-10 10:05:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:35', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-10 10:05:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:35', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-10 10:05:35') + President Load (6.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:35', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-10 10:05:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:35', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-10 10:05:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:35', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-10 10:05:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:35', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-10 10:05:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:35', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-10 10:05:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:35', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-10 10:05:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:35', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-10 10:05:35') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:35', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-10 10:05:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:35', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-10 10:05:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:35', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-10 10:05:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:35', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-10 10:05:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:35', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-10 10:05:35') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:35', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-10 10:05:35') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.2ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:59', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-10 10:05:59') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:59', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-10 10:05:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:59', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-10 10:05:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:59', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-10 10:05:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:59', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-10 10:05:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:59', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-10 10:05:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:59', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-10 10:05:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:59', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-10 10:05:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:59', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-10 10:05:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:59', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-10 10:05:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:59', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-10 10:05:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:59', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-10 10:05:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:59', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-10 10:05:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:59', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-10 10:05:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:59', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-10 10:05:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:59', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-10 10:05:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:59', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-10 10:05:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:59', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-10 10:05:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:59', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-10 10:05:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:59', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-10 10:05:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:59', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-10 10:05:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:59', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 10:05:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:59', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-10 10:05:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:59', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 10:05:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:59', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-10 10:05:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:59', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-10 10:05:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:59', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-10 10:05:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:59', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-10 10:05:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:59', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-10 10:05:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:59', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-10 10:05:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:59', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-10 10:05:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:59', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-10 10:05:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:59', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-10 10:05:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:59', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-10 10:05:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:59', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-10 10:05:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:59', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-10 10:05:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:59', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-10 10:05:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:59', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-10 10:05:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:59', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-10 10:05:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:59', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-10 10:05:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:59', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-10 10:05:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:59', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-10 10:05:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:59', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-10 10:05:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:05:59', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-10 10:05:59') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.6ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.3ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.2ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:08:59', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-10 10:08:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:08:59', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-10 10:08:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:08:59', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-10 10:08:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:08:59', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-10 10:08:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:08:59', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-10 10:08:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:08:59', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-10 10:08:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:08:59', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-10 10:08:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:08:59', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-10 10:08:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:08:59', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-10 10:08:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:08:59', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-10 10:08:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:08:59', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-10 10:08:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:08:59', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-10 10:08:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:08:59', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-10 10:08:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:08:59', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-10 10:08:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:08:59', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-10 10:08:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:08:59', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-10 10:08:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:08:59', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-10 10:08:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:08:59', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-10 10:08:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:08:59', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-10 10:08:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.8ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:08:59', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-10 10:08:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:08:59', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-10 10:08:59') + President Load (1.0ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:08:59', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 10:08:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:08:59', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-10 10:08:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:08:59', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 10:08:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:08:59', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-10 10:08:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:08:59', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-10 10:08:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:08:59', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-10 10:08:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:08:59', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-10 10:08:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:08:59', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-10 10:08:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:08:59', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-10 10:08:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:08:59', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-10 10:08:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:08:59', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-10 10:08:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:08:59', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-10 10:08:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:08:59', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-10 10:08:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:08:59', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-10 10:08:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:08:59', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-10 10:08:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:08:59', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-10 10:08:59') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:08:59', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-10 10:08:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:08:59', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-10 10:08:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:08:59', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-10 10:08:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:08:59', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-10 10:08:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:08:59', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-10 10:08:59') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.5ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:08:59', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-10 10:08:59') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:08:59', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-10 10:08:59') + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.3ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.2ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:09:19', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-10 10:09:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:09:19', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-10 10:09:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:09:19', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-10 10:09:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:09:19', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-10 10:09:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:09:19', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-10 10:09:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:09:19', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-10 10:09:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:09:19', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-10 10:09:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:09:19', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-10 10:09:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:09:19', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-10 10:09:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:09:19', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-10 10:09:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:09:19', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-10 10:09:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:09:19', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-10 10:09:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:09:19', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-10 10:09:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:09:19', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-10 10:09:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:09:19', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-10 10:09:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:09:19', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-10 10:09:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:09:19', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-10 10:09:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:09:19', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-10 10:09:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:09:19', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-10 10:09:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:09:19', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-10 10:09:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:09:19', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-10 10:09:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:09:19', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 10:09:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:09:19', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-10 10:09:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:09:19', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 10:09:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:09:19', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-10 10:09:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:09:19', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-10 10:09:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:09:19', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-10 10:09:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:09:19', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-10 10:09:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:09:19', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-10 10:09:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:09:19', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-10 10:09:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:09:19', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-10 10:09:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:09:19', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-10 10:09:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:09:19', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-10 10:09:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:09:19', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-10 10:09:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:09:19', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-10 10:09:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:09:19', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-10 10:09:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:09:19', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-10 10:09:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:09:19', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-10 10:09:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:09:19', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-10 10:09:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:09:19', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-10 10:09:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:09:19', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-10 10:09:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:09:19', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-10 10:09:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:09:19', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-10 10:09:19') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:09:19', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-10 10:09:19') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.2ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:10:17', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-10 10:10:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:10:17', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-10 10:10:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:10:17', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-10 10:10:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:10:17', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-10 10:10:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:10:17', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-10 10:10:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:10:17', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-10 10:10:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:10:17', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-10 10:10:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:10:17', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-10 10:10:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:10:17', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-10 10:10:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:10:17', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-10 10:10:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:10:17', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-10 10:10:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:10:17', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-10 10:10:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:10:17', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-10 10:10:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:10:17', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-10 10:10:17') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:10:17', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-10 10:10:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:10:17', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-10 10:10:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:10:17', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-10 10:10:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:10:17', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-10 10:10:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:10:17', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-10 10:10:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:10:17', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-10 10:10:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:10:17', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-10 10:10:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:10:17', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 10:10:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:10:17', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-10 10:10:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:10:17', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 10:10:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:10:17', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-10 10:10:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:10:17', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-10 10:10:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:10:17', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-10 10:10:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:10:17', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-10 10:10:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:10:17', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-10 10:10:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:10:17', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-10 10:10:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:10:17', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-10 10:10:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:10:17', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-10 10:10:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:10:17', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-10 10:10:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:10:17', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-10 10:10:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:10:17', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-10 10:10:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:10:17', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-10 10:10:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:10:17', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-10 10:10:17') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:10:17', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-10 10:10:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:10:17', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-10 10:10:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:10:17', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-10 10:10:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:10:17', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-10 10:10:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:10:17', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-10 10:10:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:10:17', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-10 10:10:17') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:10:17', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-10 10:10:17') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.3ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:00', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-10 10:11:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:00', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-10 10:11:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:00', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-10 10:11:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:00', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-10 10:11:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:00', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-10 10:11:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:00', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-10 10:11:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:00', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-10 10:11:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:00', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-10 10:11:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:00', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-10 10:11:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:00', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-10 10:11:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:00', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-10 10:11:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:00', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-10 10:11:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:00', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-10 10:11:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:00', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-10 10:11:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:00', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-10 10:11:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:00', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-10 10:11:00') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:00', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-10 10:11:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:00', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-10 10:11:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:00', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-10 10:11:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:00', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-10 10:11:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:00', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-10 10:11:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:00', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 10:11:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:00', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-10 10:11:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:00', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 10:11:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:00', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-10 10:11:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:00', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-10 10:11:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:00', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-10 10:11:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:00', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-10 10:11:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:00', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-10 10:11:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:00', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-10 10:11:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:00', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-10 10:11:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:00', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-10 10:11:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:00', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-10 10:11:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:00', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-10 10:11:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:00', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-10 10:11:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:00', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-10 10:11:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:00', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-10 10:11:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:00', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-10 10:11:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:00', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-10 10:11:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:00', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-10 10:11:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:00', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-10 10:11:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:00', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-10 10:11:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:00', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-10 10:11:00') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:00', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-10 10:11:00') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.3ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.1ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (15.0ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-10 10:11:16') + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + President Delete all (0.3ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-10 10:11:16') + President Load (1.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-10 10:11:16') + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + President Delete all (0.3ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-10 10:11:16') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-10 10:11:16', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-10 10:11:16') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.2ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:29:50', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-11 06:29:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:29:50', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-11 06:29:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:29:50', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-11 06:29:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:29:50', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-11 06:29:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:29:50', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-11 06:29:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:29:50', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-11 06:29:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:29:50', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-11 06:29:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:29:50', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-11 06:29:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:29:50', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-11 06:29:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:29:50', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-11 06:29:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:29:50', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-11 06:29:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:29:50', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-11 06:29:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:29:50', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-11 06:29:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:29:50', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-11 06:29:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:29:50', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-11 06:29:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:29:50', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-11 06:29:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:29:50', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-11 06:29:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:29:50', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-11 06:29:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:29:50', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-11 06:29:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:29:50', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-11 06:29:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:29:50', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-11 06:29:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:29:50', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 06:29:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:29:50', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-11 06:29:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:29:50', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 06:29:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:29:50', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-11 06:29:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:29:50', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-11 06:29:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:29:50', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-11 06:29:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:29:50', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-11 06:29:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:29:50', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-11 06:29:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:29:50', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-11 06:29:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:29:50', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-11 06:29:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:29:50', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-11 06:29:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:29:50', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-11 06:29:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:29:50', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-11 06:29:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:29:50', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-11 06:29:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:29:50', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-11 06:29:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:29:50', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-11 06:29:50') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:29:50', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-11 06:29:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:29:50', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-11 06:29:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:29:50', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-11 06:29:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:29:50', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-11 06:29:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:29:50', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-11 06:29:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:29:50', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-11 06:29:50') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:29:50', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-11 06:29:50') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.2ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:26', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-11 06:30:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:26', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-11 06:30:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:26', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-11 06:30:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:26', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-11 06:30:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:26', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-11 06:30:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:26', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-11 06:30:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:26', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-11 06:30:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:26', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-11 06:30:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.7ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:26', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-11 06:30:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:26', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-11 06:30:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:26', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-11 06:30:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:26', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-11 06:30:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:26', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-11 06:30:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:26', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-11 06:30:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:26', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-11 06:30:26') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:26', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-11 06:30:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:26', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-11 06:30:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:26', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-11 06:30:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:26', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-11 06:30:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:26', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-11 06:30:26') + President Load (0.6ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:26', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-11 06:30:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:26', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 06:30:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:26', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-11 06:30:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:26', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 06:30:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:26', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-11 06:30:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:26', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-11 06:30:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:26', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-11 06:30:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.7ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:26', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-11 06:30:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:26', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-11 06:30:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:26', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-11 06:30:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:26', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-11 06:30:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:26', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-11 06:30:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:26', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-11 06:30:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:26', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-11 06:30:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:26', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-11 06:30:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:26', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-11 06:30:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:26', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-11 06:30:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:26', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-11 06:30:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:26', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-11 06:30:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:26', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-11 06:30:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:26', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-11 06:30:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:26', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-11 06:30:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:26', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-11 06:30:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:26', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-11 06:30:26') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.2ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:39', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-11 06:30:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:39', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-11 06:30:39') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:39', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-11 06:30:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:39', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-11 06:30:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:39', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-11 06:30:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:39', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-11 06:30:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:39', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-11 06:30:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:39', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-11 06:30:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:39', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-11 06:30:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:39', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-11 06:30:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:39', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-11 06:30:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:39', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-11 06:30:39') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:39', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-11 06:30:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:39', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-11 06:30:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:39', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-11 06:30:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:39', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-11 06:30:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:39', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-11 06:30:39') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:39', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-11 06:30:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:39', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-11 06:30:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:39', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-11 06:30:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:39', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-11 06:30:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:39', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 06:30:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:39', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-11 06:30:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:39', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 06:30:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:39', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-11 06:30:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:39', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-11 06:30:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:39', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-11 06:30:39') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:39', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-11 06:30:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:39', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-11 06:30:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:39', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-11 06:30:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:39', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-11 06:30:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:39', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-11 06:30:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:39', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-11 06:30:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:39', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-11 06:30:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:39', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-11 06:30:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:39', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-11 06:30:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:39', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-11 06:30:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:39', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-11 06:30:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:39', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-11 06:30:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:39', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-11 06:30:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:39', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-11 06:30:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:39', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-11 06:30:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:39', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-11 06:30:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:39', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-11 06:30:39') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.2ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.6ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:49', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-11 06:30:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:49', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-11 06:30:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:49', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-11 06:30:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:49', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-11 06:30:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:49', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-11 06:30:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:49', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-11 06:30:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:49', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-11 06:30:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:49', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-11 06:30:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:49', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-11 06:30:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:49', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-11 06:30:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:49', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-11 06:30:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:49', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-11 06:30:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:49', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-11 06:30:49') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:49', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-11 06:30:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:49', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-11 06:30:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:49', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-11 06:30:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:49', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-11 06:30:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:49', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-11 06:30:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:49', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-11 06:30:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:49', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-11 06:30:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:49', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-11 06:30:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:49', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 06:30:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:49', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-11 06:30:49') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:49', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 06:30:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:49', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-11 06:30:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:49', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-11 06:30:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:49', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-11 06:30:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:49', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-11 06:30:49') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:49', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-11 06:30:49') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:49', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-11 06:30:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:49', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-11 06:30:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:49', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-11 06:30:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:49', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-11 06:30:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:49', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-11 06:30:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:49', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-11 06:30:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:49', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-11 06:30:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:49', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-11 06:30:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:49', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-11 06:30:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:49', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-11 06:30:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:49', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-11 06:30:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:49', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-11 06:30:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:49', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-11 06:30:49') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:49', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-11 06:30:49') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:30:49', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-11 06:30:49') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:33:43', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-11 06:33:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:33:43', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-11 06:33:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:33:43', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-11 06:33:43') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:33:43', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-11 06:33:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:33:43', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-11 06:33:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:33:43', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-11 06:33:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:33:43', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-11 06:33:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:33:43', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-11 06:33:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:33:43', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-11 06:33:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:33:43', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-11 06:33:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:33:43', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-11 06:33:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:33:43', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-11 06:33:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:33:43', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-11 06:33:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:33:43', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-11 06:33:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:33:43', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-11 06:33:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:33:43', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-11 06:33:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:33:43', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-11 06:33:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:33:43', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-11 06:33:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:33:43', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-11 06:33:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:33:43', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-11 06:33:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:33:43', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-11 06:33:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:33:43', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 06:33:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:33:43', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-11 06:33:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:33:43', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 06:33:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:33:43', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-11 06:33:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:33:43', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-11 06:33:43') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:33:43', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-11 06:33:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:33:43', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-11 06:33:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:33:43', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-11 06:33:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:33:43', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-11 06:33:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:33:43', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-11 06:33:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:33:43', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-11 06:33:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:33:43', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-11 06:33:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:33:43', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-11 06:33:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:33:43', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-11 06:33:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:33:43', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-11 06:33:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:33:43', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-11 06:33:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:33:43', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-11 06:33:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:33:43', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-11 06:33:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:33:43', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-11 06:33:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:33:43', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-11 06:33:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:33:43', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-11 06:33:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:33:43', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-11 06:33:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:33:43', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-11 06:33:43') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-11 06:37:26') + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + President Delete all (0.3ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:26', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-11 06:37:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:27', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-11 06:37:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:27', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-11 06:37:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:27', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-11 06:37:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:27', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-11 06:37:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:27', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-11 06:37:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:27', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-11 06:37:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:27', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-11 06:37:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:27', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-11 06:37:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:27', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-11 06:37:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:27', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-11 06:37:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:27', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-11 06:37:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:27', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 06:37:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:27', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-11 06:37:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:27', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 06:37:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:27', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-11 06:37:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:27', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-11 06:37:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:27', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-11 06:37:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:27', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-11 06:37:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.8ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:27', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-11 06:37:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:27', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-11 06:37:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:27', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-11 06:37:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:27', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-11 06:37:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:27', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-11 06:37:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:27', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-11 06:37:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:27', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-11 06:37:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:27', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-11 06:37:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:27', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-11 06:37:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:27', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-11 06:37:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:27', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-11 06:37:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:27', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-11 06:37:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:27', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-11 06:37:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:27', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-11 06:37:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:27', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-11 06:37:27') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:37:27', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-11 06:37:27') + SQL (0.5ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.2ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:53', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-11 06:38:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:53', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-11 06:38:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:53', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-11 06:38:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:53', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-11 06:38:53') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-11 06:38:54') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 06:38:54') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-11 06:38:54') + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + President Delete all (0.3ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-11 06:38:54') + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + President Delete all (0.3ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-11 06:38:54') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-11 06:38:54') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:38:54', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-11 06:38:54') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.1ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-11 06:39:26') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-11 06:39:26') + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + President Delete all (0.3ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-11 06:39:26') + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + President Delete all (0.3ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-11 06:39:26') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:26', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-11 06:39:26') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.2ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-11 06:39:39') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (1.0ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-11 06:39:39') + President Load (0.9ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.9ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-11 06:39:39') + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + President Delete all (0.3ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-11 06:39:39') + President Load (1.0ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-11 06:39:39') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-11 06:39:39') + SQL (1.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + President Delete all (0.3ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (1.0ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-11 06:39:39') + President Load (0.7ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-11 06:39:39') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 06:39:39', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-11 06:39:39') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (1.7ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.1ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:33', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-11 07:17:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:33', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-11 07:17:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:33', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-11 07:17:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:33', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-11 07:17:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:33', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-11 07:17:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:33', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-11 07:17:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:33', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-11 07:17:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:33', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-11 07:17:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:33', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-11 07:17:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:33', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-11 07:17:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:33', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-11 07:17:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:33', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-11 07:17:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:33', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-11 07:17:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:33', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-11 07:17:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:33', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-11 07:17:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:33', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-11 07:17:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:33', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-11 07:17:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:33', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-11 07:17:33') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:33', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-11 07:17:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:33', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-11 07:17:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:33', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-11 07:17:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:33', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 07:17:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:33', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-11 07:17:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:33', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 07:17:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:33', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-11 07:17:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:33', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-11 07:17:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:33', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-11 07:17:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:33', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-11 07:17:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:33', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-11 07:17:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:33', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-11 07:17:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:33', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-11 07:17:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:33', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-11 07:17:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:33', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-11 07:17:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:33', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-11 07:17:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:33', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-11 07:17:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:33', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-11 07:17:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:33', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-11 07:17:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:33', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-11 07:17:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:33', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-11 07:17:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:33', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-11 07:17:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:33', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-11 07:17:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:33', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-11 07:17:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:33', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-11 07:17:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:33', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-11 07:17:33') + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + President Delete all (0.3ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:33', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-11 07:17:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:33', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-11 07:17:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:33', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-11 07:17:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:33', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-11 07:17:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:33', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-11 07:17:33') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-11 07:17:34') + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + President Delete all (0.3ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-11 07:17:34') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:17:34', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-11 07:17:34') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.2ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.5ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.6ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-11 07:23:06') + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + President Delete all (0.3ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:06', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-11 07:23:06') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-11 07:23:07') + President Load (100.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-11 07:23:07') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-11 07:23:07') + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + President Delete all (0.3ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-11 07:23:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 07:23:07', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-11 07:23:07') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 08:59:56') + President Load (1.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-11 08:59:56') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-11 08:59:56') + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + President Delete all (0.3ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-11 08:59:56') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-11 08:59:56') + President Load (1.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 08:59:56') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-11 08:59:56') + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + President Delete all (0.3ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-11 08:59:56') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:56', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-11 08:59:56') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-11 08:59:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-11 08:59:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-11 08:59:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-11 08:59:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-11 08:59:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-11 08:59:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-11 08:59:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-11 08:59:57') + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + President Delete all (0.3ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-11 08:59:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-11 08:59:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-11 08:59:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-11 08:59:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-11 08:59:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-11 08:59:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-11 08:59:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-11 08:59:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-11 08:59:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-11 08:59:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-11 08:59:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-11 08:59:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-11 08:59:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-11 08:59:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-11 08:59:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-11 08:59:57') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-11 08:59:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-11 08:59:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-11 08:59:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-11 08:59:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-11 08:59:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 08:59:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-11 08:59:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 08:59:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-11 08:59:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-11 08:59:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-11 08:59:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-11 08:59:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-11 08:59:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-11 08:59:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-11 08:59:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-11 08:59:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-11 08:59:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-11 08:59:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-11 08:59:57') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-11 08:59:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-11 08:59:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-11 08:59:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-11 08:59:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-11 08:59:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-11 08:59:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-11 08:59:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-11 08:59:57') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 08:59:57', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-11 08:59:57') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (1.1ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-11 09:00:07') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.7ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-11 09:00:07') + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + President Delete all (0.3ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-11 09:00:07') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:07', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-11 09:00:07') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-11 09:00:08') + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + President Delete all (0.3ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-11 09:00:08') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-11 09:00:08') + President Load (0.6ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-11 09:00:08') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:00:08', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-11 09:00:08') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.2ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.6ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-11 09:02:31') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.6ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-11 09:02:31') + SQL (0.5ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + President Delete all (0.3ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.6ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.6ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 09:02:31') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-11 09:02:31') + President Load (0.5ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-11 09:02:31') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.6ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-11 09:02:31') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-11 09:02:31') + President Load (0.5ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-11 09:02:31') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-11 09:02:31') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-11 09:02:31') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-11 09:02:31') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-11 09:02:31') + SQL (0.8ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.6ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + President Delete all (0.6ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-11 09:02:31') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-11 09:02:31') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-11 09:02:31') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-11 09:02:31') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-11 09:02:31') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-11 09:02:31') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.8ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-11 09:02:31') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-11 09:02:31') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-11 09:02:31') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-11 09:02:31') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-11 09:02:31') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-11 09:02:31') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-11 09:02:31') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-11 09:02:31') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-11 09:02:31') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-11 09:02:31') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-11 09:02:31') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-11 09:02:31') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-11 09:02:31') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-11 09:02:31') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-11 09:02:31') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 09:02:31') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-11 09:02:31') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 09:02:31') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-11 09:02:31') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-11 09:02:31') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-11 09:02:31') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-11 09:02:31') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.6ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-11 09:02:31') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-11 09:02:31') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-11 09:02:31') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-11 09:02:31') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-11 09:02:31') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-11 09:02:31') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-11 09:02:31') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-11 09:02:31') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-11 09:02:31') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-11 09:02:31') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-11 09:02:31') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-11 09:02:31') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:31', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-11 09:02:31') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:32', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-11 09:02:32') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:32', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-11 09:02:32') + President Load (0.4ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.4ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:02:32', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-11 09:02:32') + SQL (0.3ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) select sqlite_version(*) + SQL (0.5ms) CREATE TABLE "schema_migrations" ("version" varchar(255) NOT NULL)  + SQL (0.2ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.2ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + SQL (0.4ms) CREATE TABLE "presidents" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255), "born_at" integer, "died_at" integer, "order" integer, "party" varchar(255), "term_started_at" integer, "term_ended_at" integer, "created_at" datetime, "updated_at" datetime)  + SQL (0.2ms) INSERT INTO schema_migrations (version) VALUES ('20091009101447') + President Delete all (0.2ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-11 09:05:43') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-11 09:05:43') + President Load (0.3ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-11 09:05:43') + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + President Delete all (0.3ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-11 09:05:43') + President Load (104.7ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:43', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-11 09:05:43') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-11 09:05:44') + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) SELECT version FROM schema_migrations +Migrating to CreatePresidents (20091009101447) + President Delete all (0.3ms) DELETE FROM "presidents" WHERE 1=1 + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 1) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 1, 1789, 1797, 1799, 'George', 'Washington', 1732, 'None, Federalist ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 2) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 2, 1797, 1801, 1826, 'John', 'Adams', 1735, 'Federalist ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 3) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 3, 1801, 1809, 1826, 'Thomas', 'Jefferson', 1743, 'Democratic-Republican ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 4) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 4, 1809, 1817, 1836, 'James', 'Madison', 1751, 'Democratic-Republican ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 5) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 5, 1817, 1825, 1831, 'James', 'Monroe', 1758, 'Democratic-Republican ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 6) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 6, 1825, 1829, 1848, 'John', 'Adams', 1767, 'Democratic-Republican ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 7) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 7, 1829, 1837, 1845, 'Andrew', 'Jackson', 1767, 'Democrat ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 8) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 8, 1837, 1841, 1862, 'Martin', 'Buren', 1782, 'Democrat ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 9) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 9, 1841, 1841, 1841, 'William', 'Harrison', 1773, 'Whig ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 10) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 10, 1841, 1845, 1862, 'John', 'Tyler', 1790, 'Whig ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 11) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 11, 1845, 1849, 1849, 'James', 'Polk', 1795, 'Democrat ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 12) LIMIT 1 + President Create (0.3ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 12, 1849, 1850, 1850, 'Zachary', 'Taylor', 1784, 'Whig ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 13) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 13, 1850, 1853, 1874, 'Millard', 'Fillmore', 1800, 'Whig ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 14) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 14, 1853, 1857, 1869, 'Franklin', 'Pierce', 1804, 'Democrat ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 15) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 15, 1857, 1861, 1868, 'James', 'Buchanan', 1791, 'Democrat ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 16) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 16, 1861, 1865, 1865, 'Abraham', 'Lincoln', 1809, 'Republican ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 17) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 17, 1865, 1869, 1875, 'Andrew', 'Johnson', 1808, 'National Union ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 18) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 18, 1869, 1877, 1885, 'Ulysses', 'Grant', 1822, 'Republican ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 19) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 19, 1877, 1881, 1893, 'Rutherford', 'Hayes', 1822, 'Republican ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 20) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 20, 1881, 1881, 1881, 'James', 'Garfield', 1831, 'Republican ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 21) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 21, 1881, 1885, 1886, 'Chester', 'Arthur', 1829, 'Republican ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 22) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 22, 1885, 1889, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 23) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 23, 1889, 1893, 1901, 'Benjamin', 'Harrison', 1833, 'Republican ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 24) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 24, 1893, 1897, 1908, 'Grover', 'Cleveland', 1837, 'Democrat ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 25) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 25, 1897, 1901, 1901, 'William', 'McKinley', 1843, 'Republican ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 26) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 26, 1901, 1909, 1919, 'Theodore', 'Roosevelt', 1858, 'Republican ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 27) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 27, 1909, 1913, 1930, 'William', 'Taft', 1857, 'Republican ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 28) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 28, 1913, 1921, 1924, 'Woodrow', 'Wilson', 1856, 'Democrat ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 29) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 29, 1921, 1923, 1923, 'Warren', 'Harding', 1865, 'Republican ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 30) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 30, 1923, 1929, 1933, 'Calvin', 'Coolidge', 1872, 'Republican ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 31) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 31, 1929, 1933, 1964, 'Herbert', 'Hoover', 1874, 'Republican ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 32) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 32, 1933, 1945, 1945, 'Franklin', 'Roosevelt', 1882, 'Democrat ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 33) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 33, 1945, 1953, 1972, 'Harry', 'Truman', 1884, 'Democrat ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 34) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 34, 1953, 1961, 1969, 'Dwight', 'Eisenhower', 1890, 'Republican ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 35) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 35, 1961, 1963, 1963, 'John', 'Kennedy', 1917, 'Democrat ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 36) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 36, 1963, 1969, 1973, 'Lyndon', 'Johnson', 1908, 'Democrat ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 37) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 37, 1969, 1974, 1994, 'Richard', 'Nixon', 1913, 'Republican ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 38) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 38, 1974, 1977, 2006, 'Gerald', 'Ford', 1913, 'Republican ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 39) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 39, 1977, 1981, NULL, 'James', 'Carter', 1924, 'Democrat ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 40) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 40, 1981, 1989, 2004, 'Ronald', 'Reagan', 1911, 'Republican ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 41) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 41, 1989, 1993, NULL, 'George', 'Bush', 1924, 'Republican ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 42) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 42, 1993, 2001, NULL, 'Bill', 'Clinton', 1946, 'Democrat ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 43) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 43, 2001, 2009, NULL, 'George', 'Bush', 1946, 'Republican ', '2009-11-11 09:05:44') + President Load (0.2ms) SELECT "presidents".id FROM "presidents" WHERE ("presidents"."order" = 44) LIMIT 1 + President Create (0.2ms) INSERT INTO "presidents" ("updated_at", "order", "term_started_at", "term_ended_at", "died_at", "first_name", "last_name", "born_at", "party", "created_at") VALUES('2009-11-11 09:05:44', 44, 2009, NULL, NULL, 'Barack', 'Obama', 1961, 'Democrat ', '2009-11-11 09:05:44') diff --git a/presidents/public/404.html b/presidents/public/404.html new file mode 100644 index 0000000..eff660b --- /dev/null +++ b/presidents/public/404.html @@ -0,0 +1,30 @@ + + + + + + + The page you were looking for doesn't exist (404) + + + + + +
+

The page you were looking for doesn't exist.

+

You may have mistyped the address or the page may have moved.

+
+ + \ No newline at end of file diff --git a/presidents/public/422.html b/presidents/public/422.html new file mode 100644 index 0000000..b54e4a3 --- /dev/null +++ b/presidents/public/422.html @@ -0,0 +1,30 @@ + + + + + + + The change you wanted was rejected (422) + + + + + +
+

The change you wanted was rejected.

+

Maybe you tried to change something you didn't have access to.

+
+ + \ No newline at end of file diff --git a/presidents/public/500.html b/presidents/public/500.html new file mode 100644 index 0000000..ec3bbf0 --- /dev/null +++ b/presidents/public/500.html @@ -0,0 +1,30 @@ + + + + + + + We're sorry, but something went wrong (500) + + + + + +
+

We're sorry, but something went wrong.

+

We've been notified about this issue and we'll take a look at it shortly.

+
+ + diff --git a/presidents/public/favicon.ico b/presidents/public/favicon.ico new file mode 100644 index 0000000..e69de29 diff --git a/presidents/public/images/rails.png b/presidents/public/images/rails.png new file mode 100644 index 0000000000000000000000000000000000000000..d5edc04e65f555e3ba4dcdaad39dc352e75b575e GIT binary patch literal 6646 zcmVpVcQya!6@Dsmj@#jv7C*qh zIhOJ6_K0n?*d`*T7TDuW-}m`9Kz3~>+7`DUkbAraU%yi+R{N~~XA2B%zt-4=tLimUer9!2M~N{G5bftFij_O&)a zsHnOppFIzebQ`RA0$!yUM-lg#*o@_O2wf422iLnM6cU(ktYU8#;*G!QGhIy9+ZfzKjLuZo%@a z-i@9A`X%J{^;2q&ZHY3C(B%gqCPW!8{9C0PMcNZccefK){s|V5-xxtHQc@uf>XqhD z7#N^siWqetgq29aX>G^olMf=bbRF6@Y(}zYxw6o!9WBdG1unP}<(V;zKlcR2p86fq zYjaqB^;Ycq>Wy@5T1xOzG3tucG3e%nPvajaN{CrFbnzv^9&K3$NrDm*eQe4`BGQ2bI;dFEwyt>hK%X!L6)82aOZp zsrGcJ#7PoX7)s|~t6is?FfX*7vWdREi58tiY4S)t6u*|kv?J)d_$r+CH#eZ?Ef+I_ z(eVlX8dh~4QP?o*E`_MgaNFIKj*rtN(0Raj3ECjSXcWfd#27NYs&~?t`QZFT}!Zaf=ldZIhi}LhQlqLo+o5(Pvui&{7PD__^53f9j>HW`Q z_V8X5j~$|GP9qXu0C#!@RX2}lXD35@3N5{BkUi%jtaPQ*H6OX2zIz4QPuqmTv3`vG{zc>l3t0B9E75h< z8&twGh%dp7WPNI+tRl%#gf2}Epg8st+~O4GjtwJsXfN;EjAmyr6z5dnaFU(;IV~QK zW62fogF~zA``(Q>_SmD!izc6Y4zq*97|NAPHp1j5X7Op2%;GLYm>^HEMyObo6s7l) zE3n|aOHi5~B84!}b^b*-aL2E)>OEJX_tJ~t<#VJ?bT?lDwyDB&5SZ$_1aUhmAY}#* zs@V1I+c5md9%R-o#_DUfqVtRk>59{+Opd5Yu%dAU#VQW}^m}x-30ftBx#527{^pI4 z6l2C6C7QBG$~NLYb3rVdLD#Z{+SleOp`(Lg5J}`kxdTHe(nV5BdpLrD=l|)e$gEqA zwI6vuX-PFCtcDIH>bGY2dwq&^tf+&R?)nY-@7_j%4CMRAF}C9w%p86W<2!aSY$p+k zrkFtG=cGo38RnrG28;?PNk%7a@faaXq&MS*&?1Z`7Ojw7(#>}ZG4nMAs3VXxfdW>i zY4VX02c5;f7jDPY_7@Oa)CHH}cH<3y#}_!nng^W+h1e-RL*YFYOteC@h?BtJZ+?sE zy)P5^8Mregx{nQaw1NY-|3>{Z)|0`?zc?G2-acYiSU`tj#sSGfm7k86ZQ0SQgPevcklHxM9<~4yW zR796sisf1|!#{Z=e^)0;_8iUhL8g(;j$l=02FTPZ(dZV@s#aQ`DHkLM6=YsbE4iQ!b#*374l0Jw5;jD%J;vQayq=nD8-kHI~f9Ux|32SJUM`> zGp2UGK*4t?cRKi!2he`zI#j0f${I#f-jeT?u_C7S4WsA0)ryi-1L0(@%pa^&g5x=e z=KW9+Nn(=)1T&S8g_ug%dgk*~l2O-$r9#zEGBdQsweO%t*6F4c8JC36JtTizCyy+E4h%G(+ z5>y$%0txMuQ$e~wjFgN(xrAndHQo`Za+K*?gUVDTBV&Ap^}|{w#CIq{DRe}+l@(Ec zCCV6f_?dY_{+f{}6XGn!pL_up?}@>KijT^$w#Lb6iHW&^8RP~g6y=vZBXx~B9nI^i zGexaPjcd(%)zGw!DG_dDwh-7x6+ST#R^${iz_M$uM!da8SxgB_;Z0G%Y*HpvLjKw; zX=ir7i1O$-T|*TBoH$dlW+TLf5j5sep^DlDtkox;Kg{Q%EXWedJq@J@%VAcK)j3y1 zShM!CS#qax;D@RND%2t3W6kv+#Ky0F9<3YKDbV^XJ=^$s(Vtza8V72YY)577nnldI zHMA0PUo!F3j(ubV*CM@PiK<^|RM2(DuCbG7`W}Rg(xdYC>C~ z;1KJGLN&$cRxSZunjXcntykmpFJ7;dk>shY(DdK&3K_JDJ6R%D`e~6Qv67@Rwu+q9 z*|NG{r}4F8f{Dfzt0+cZMd$fvlX3Q`dzM46@r?ISxr;9gBTG2rmfiGOD*#c*3f)cc zF+PFZobY$-^}J8 z%n=h4;x2}cP!@SiVd!v;^Wwo0(N??-ygDr7gG^NKxDjSo{5T{?$|Qo5;8V!~D6O;F*I zuY!gd@+2j_8Rn=UWDa#*4E2auWoGYDddMW7t0=yuC(xLWky?vLimM~!$3fgu!dR>p z?L?!8z>6v$|MsLb&dU?ob)Zd!B)!a*Z2eTE7 zKCzP&e}XO>CT%=o(v+WUY`Az*`9inbTG& z_9_*oQKw;sc8{ipoBC`S4Tb7a%tUE)1fE+~ib$;|(`|4QbXc2>VzFi%1nX%ti;^s3~NIL0R}!!a{0A zyCRp0F7Y&vcP&3`&Dzv5!&#h}F2R-h&QhIfq*ts&qO13{_CP}1*sLz!hI9VoTSzTu zok5pV0+~jrGymE~{TgbS#nN5+*rF7ij)cnSLQw0Ltc70zmk|O!O(kM<3zw-sUvkx~ z2`y+{xAwKSa-0}n7{$I@Zop7CWy%_xIeN1e-7&OjQ6vZZPbZ^3_ z(~=;ZSP98S2oB#35b1~_x`2gWiPdIVddEf`AD9<@c_s)TM;3J$T_l?pr{<7PTgdiy zBc5IGx)g~n=s+Z$RzYCmv8PlJu%gkh^;%mTGMc)UwRINVD~K;`Rl!5@hhGg;y>5qj zq|u-Yf0q_~Y+Mbivkkfa0nAOzB1acnytogsj_m7FB(-FjihMek#GAU4M!iXCgdK8a zjoKm?*|iz7;dHm4$^hh(`Ufl>yb>$hjIA-;>{>C}G0Di%bGvUsJkfLAV|xq32c>RqJqTBJ3Dx zYC;*Dt|S$b6)aCJFnK(Eey$M1DpVV~_MIhwK> zygo(jWC|_IRw|456`roEyXtkNLWNAt-4N1qyN$I@DvBzt;e|?g<*HK1%~cq|^u*}C zmMrwh>{QAq?Ar~4l^DqT%SQ)w)FA(#7#u+N;>E975rYML>)LgE`2<7nN=C1pC{IkV zVw}_&v6j&S?QVh*)wF3#XmE@0($^BVl1969csLKUBNer{suVd!a~B!0MxWY?=(GD6 zy$G&ERFR#i6G4=2F?R4}Mz3B?3tnpoX3)qFF2sh9-Jn*e%9F>i{WG7$_~XyOO2!+@ z6k+38KyD@-0=uee54D0!Z1@B^ilj~StchdOn(*qvg~s5QJpWGc!6U^Aj!xt-HZn_V zS%|fyQ5YS@EP2lBIodXCLjG_+a)%En+7jzngk@J>6D~^xbxKkvf-R0-c%mX+o{?&j zZZ%RxFeav8Y0gkwtdtrwUb-i0Egd2C=ADu%w5VV-hNJvl)GZ?M;y$!?b=S+wKRK7Q zcOjPT!p<*#8m;TsBih=@Xc&c)?Vy`Ys>IvK@|1%N+M6J-^RCRaZcPP2eQh9DEGZr+ z?8B~wF14mk4Xkuen{wY^CWwS1PI<8gikY*)3?RSo5l8es4*J z43k_BIwc}of=6Pfs%xIxlMDGOJN zvl!a>G)52XMqA%fbgkZi%)%bN*ZzZw2!rn4@+J)2eK#kWuEW{)W~-`y1vhA5-7p%R z&f5N!a9f8cK1Xa=O}=9{wg%}Ur^+8Y(!UCeqw>%wj@|bYHD-bZO~mk3L$9_^MmF3G zvCiK^e@q6G?tHkM8%GqsBMZaB20W$UEt_5r~jc#WlR>Bv{6W>A=!#InoY zLOd04@Rz?*7PpW8u|+}bt`?+Z(GsX{Br4A2$ZZ(26Degmr9`O=t2KgHTL*==R3xcP z&Y(J7hC@6_x8zVz!CX3l4Xtss6i7r#E6kXMNN1~>9KTRzewfp))ij%)SBBl0fZdYP zd!zzQD5u8yk-u|41|Rqz7_tCFUMThZJVj)yQf6^Cwtn|Ew6cm5J|u1Bq>MWX-AfB&NE;C z62@=-0le`E6-CurMKjoIy)BuUmhMGJb}pPx!@GLWMT+wH2R?wA=MEy)o57~feFp8P zY@YXAyt4<1FD<|iw{FGQu~GEI<4C64)V*QiVk+VzOV^9GWf4ir#oYgHJz!wq>iZV#_6@_{)&lum)4x z_Of*CLVQ7wdT#XT-(h0qH%mcIF7yzMIvvTN3bPceK>PpJi(=3Nny zbSn}p$dGKQUlX&-t~RR)#F7I<8NCD^yke(vdf#4^aAh}M-{tS9-&^tC4`KU_pToXy z+|K8sx}a)Kh{h{;*V1#hs1xB%(?j>)g~`Wv(9F)f=Qn)(daVB7hZtcp^#LrEr1T1J zZSJ*lVyVVjhy)mkex9Whn=EinKDHe@KlfQI-Fl7M?-c~HnW0;C;+MbUY8?FToy;A+ zs&Nc7VZ=Of+e!G6s#+S5WBU)kgQq_I1@!uH74GJ-+O|%0HXm9Mqlvp|j%0`T>fr9^ zK;qo>XdwZW<>%tTA+<(1^6(>=-2N;hRgBnjvEjN;VbKMbFg--WrGy|XESoH1p|M4` z86(gC^vB4qScASZ&cdpT{~QDN-jC|GJ(RYoW1VW4!SSn- zhQds9&RBKn6M&GVK_Aayt(Hekbnw=tr>f z^o@v9_*iQO1*zeOrts9Q-$pc@!StS&kz$cF`s@pM`rmJXTP&h5G)A74!0e%ZJbl}( zssI|_!%~_hZFypv*S^JE5N&Kvmx7KiG<|fGMO=WrH+@Yhuj+KwiS#l4>@%2nl zS)mDikfmokO4q2A)hRVZBq2-5q&XC>%HOLkOYxZ66(s86?=0s4z5xbiOV)}L-&6b)h6(~CIaR#JNw~46+WBiU7IhB zq!NuR4!TsYnyBg>@G=Ib*cMq^k<}AMpCeYEf&dzfiGI-wOQ7hb+nA zkN7_){y&c3xC0 AQ~&?~ literal 0 HcmV?d00001 diff --git a/presidents/public/index.html b/presidents/public/index.html new file mode 100644 index 0000000..0dd5189 --- /dev/null +++ b/presidents/public/index.html @@ -0,0 +1,275 @@ + + + + + Ruby on Rails: Welcome aboard + + + + + + +
+ + +
+ + + + +
+

Getting started

+

Here’s how to get rolling:

+ +
    +
  1. +

    Use script/generate to create your models and controllers

    +

    To see all available options, run it without parameters.

    +
  2. + +
  3. +

    Set up a default route and remove or rename this file

    +

    Routes are set up in config/routes.rb.

    +
  4. + +
  5. +

    Create your database

    +

    Run rake db:migrate to create your database. If you're not using SQLite (the default), edit config/database.yml with your username and password.

    +
  6. +
+
+
+ + +
+ + \ No newline at end of file diff --git a/presidents/public/javascripts/application.js b/presidents/public/javascripts/application.js new file mode 100644 index 0000000..fe45776 --- /dev/null +++ b/presidents/public/javascripts/application.js @@ -0,0 +1,2 @@ +// Place your application-specific JavaScript functions and classes here +// This file is automatically included by javascript_include_tag :defaults diff --git a/presidents/public/javascripts/controls.js b/presidents/public/javascripts/controls.js new file mode 100644 index 0000000..ca29aef --- /dev/null +++ b/presidents/public/javascripts/controls.js @@ -0,0 +1,963 @@ +// Copyright (c) 2005-2008 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) +// (c) 2005-2008 Ivan Krstic (http://blogs.law.harvard.edu/ivan) +// (c) 2005-2008 Jon Tirsen (http://www.tirsen.com) +// Contributors: +// Richard Livsey +// Rahul Bhargava +// Rob Wills +// +// script.aculo.us is freely distributable under the terms of an MIT-style license. +// For details, see the script.aculo.us web site: http://script.aculo.us/ + +// Autocompleter.Base handles all the autocompletion functionality +// that's independent of the data source for autocompletion. This +// includes drawing the autocompletion menu, observing keyboard +// and mouse events, and similar. +// +// Specific autocompleters need to provide, at the very least, +// a getUpdatedChoices function that will be invoked every time +// the text inside the monitored textbox changes. This method +// should get the text for which to provide autocompletion by +// invoking this.getToken(), NOT by directly accessing +// this.element.value. This is to allow incremental tokenized +// autocompletion. Specific auto-completion logic (AJAX, etc) +// belongs in getUpdatedChoices. +// +// Tokenized incremental autocompletion is enabled automatically +// when an autocompleter is instantiated with the 'tokens' option +// in the options parameter, e.g.: +// new Ajax.Autocompleter('id','upd', '/url/', { tokens: ',' }); +// will incrementally autocomplete with a comma as the token. +// Additionally, ',' in the above example can be replaced with +// a token array, e.g. { tokens: [',', '\n'] } which +// enables autocompletion on multiple tokens. This is most +// useful when one of the tokens is \n (a newline), as it +// allows smart autocompletion after linebreaks. + +if(typeof Effect == 'undefined') + throw("controls.js requires including script.aculo.us' effects.js library"); + +var Autocompleter = { }; +Autocompleter.Base = Class.create({ + baseInitialize: function(element, update, options) { + element = $(element); + this.element = element; + this.update = $(update); + this.hasFocus = false; + this.changed = false; + this.active = false; + this.index = 0; + this.entryCount = 0; + this.oldElementValue = this.element.value; + + if(this.setOptions) + this.setOptions(options); + else + this.options = options || { }; + + this.options.paramName = this.options.paramName || this.element.name; + this.options.tokens = this.options.tokens || []; + this.options.frequency = this.options.frequency || 0.4; + this.options.minChars = this.options.minChars || 1; + this.options.onShow = this.options.onShow || + function(element, update){ + if(!update.style.position || update.style.position=='absolute') { + update.style.position = 'absolute'; + Position.clone(element, update, { + setHeight: false, + offsetTop: element.offsetHeight + }); + } + Effect.Appear(update,{duration:0.15}); + }; + this.options.onHide = this.options.onHide || + function(element, update){ new Effect.Fade(update,{duration:0.15}) }; + + if(typeof(this.options.tokens) == 'string') + this.options.tokens = new Array(this.options.tokens); + // Force carriage returns as token delimiters anyway + if (!this.options.tokens.include('\n')) + this.options.tokens.push('\n'); + + this.observer = null; + + this.element.setAttribute('autocomplete','off'); + + Element.hide(this.update); + + Event.observe(this.element, 'blur', this.onBlur.bindAsEventListener(this)); + Event.observe(this.element, 'keydown', this.onKeyPress.bindAsEventListener(this)); + }, + + show: function() { + if(Element.getStyle(this.update, 'display')=='none') this.options.onShow(this.element, this.update); + if(!this.iefix && + (Prototype.Browser.IE) && + (Element.getStyle(this.update, 'position')=='absolute')) { + new Insertion.After(this.update, + ''); + this.iefix = $(this.update.id+'_iefix'); + } + if(this.iefix) setTimeout(this.fixIEOverlapping.bind(this), 50); + }, + + fixIEOverlapping: function() { + Position.clone(this.update, this.iefix, {setTop:(!this.update.style.height)}); + this.iefix.style.zIndex = 1; + this.update.style.zIndex = 2; + Element.show(this.iefix); + }, + + hide: function() { + this.stopIndicator(); + if(Element.getStyle(this.update, 'display')!='none') this.options.onHide(this.element, this.update); + if(this.iefix) Element.hide(this.iefix); + }, + + startIndicator: function() { + if(this.options.indicator) Element.show(this.options.indicator); + }, + + stopIndicator: function() { + if(this.options.indicator) Element.hide(this.options.indicator); + }, + + onKeyPress: function(event) { + if(this.active) + switch(event.keyCode) { + case Event.KEY_TAB: + case Event.KEY_RETURN: + this.selectEntry(); + Event.stop(event); + case Event.KEY_ESC: + this.hide(); + this.active = false; + Event.stop(event); + return; + case Event.KEY_LEFT: + case Event.KEY_RIGHT: + return; + case Event.KEY_UP: + this.markPrevious(); + this.render(); + Event.stop(event); + return; + case Event.KEY_DOWN: + this.markNext(); + this.render(); + Event.stop(event); + return; + } + else + if(event.keyCode==Event.KEY_TAB || event.keyCode==Event.KEY_RETURN || + (Prototype.Browser.WebKit > 0 && event.keyCode == 0)) return; + + this.changed = true; + this.hasFocus = true; + + if(this.observer) clearTimeout(this.observer); + this.observer = + setTimeout(this.onObserverEvent.bind(this), this.options.frequency*1000); + }, + + activate: function() { + this.changed = false; + this.hasFocus = true; + this.getUpdatedChoices(); + }, + + onHover: function(event) { + var element = Event.findElement(event, 'LI'); + if(this.index != element.autocompleteIndex) + { + this.index = element.autocompleteIndex; + this.render(); + } + Event.stop(event); + }, + + onClick: function(event) { + var element = Event.findElement(event, 'LI'); + this.index = element.autocompleteIndex; + this.selectEntry(); + this.hide(); + }, + + onBlur: function(event) { + // needed to make click events working + setTimeout(this.hide.bind(this), 250); + this.hasFocus = false; + this.active = false; + }, + + render: function() { + if(this.entryCount > 0) { + for (var i = 0; i < this.entryCount; i++) + this.index==i ? + Element.addClassName(this.getEntry(i),"selected") : + Element.removeClassName(this.getEntry(i),"selected"); + if(this.hasFocus) { + this.show(); + this.active = true; + } + } else { + this.active = false; + this.hide(); + } + }, + + markPrevious: function() { + if(this.index > 0) this.index--; + else this.index = this.entryCount-1; + this.getEntry(this.index).scrollIntoView(true); + }, + + markNext: function() { + if(this.index < this.entryCount-1) this.index++; + else this.index = 0; + this.getEntry(this.index).scrollIntoView(false); + }, + + getEntry: function(index) { + return this.update.firstChild.childNodes[index]; + }, + + getCurrentEntry: function() { + return this.getEntry(this.index); + }, + + selectEntry: function() { + this.active = false; + this.updateElement(this.getCurrentEntry()); + }, + + updateElement: function(selectedElement) { + if (this.options.updateElement) { + this.options.updateElement(selectedElement); + return; + } + var value = ''; + if (this.options.select) { + var nodes = $(selectedElement).select('.' + this.options.select) || []; + if(nodes.length>0) value = Element.collectTextNodes(nodes[0], this.options.select); + } else + value = Element.collectTextNodesIgnoreClass(selectedElement, 'informal'); + + var bounds = this.getTokenBounds(); + if (bounds[0] != -1) { + var newValue = this.element.value.substr(0, bounds[0]); + var whitespace = this.element.value.substr(bounds[0]).match(/^\s+/); + if (whitespace) + newValue += whitespace[0]; + this.element.value = newValue + value + this.element.value.substr(bounds[1]); + } else { + this.element.value = value; + } + this.oldElementValue = this.element.value; + this.element.focus(); + + if (this.options.afterUpdateElement) + this.options.afterUpdateElement(this.element, selectedElement); + }, + + updateChoices: function(choices) { + if(!this.changed && this.hasFocus) { + this.update.innerHTML = choices; + Element.cleanWhitespace(this.update); + Element.cleanWhitespace(this.update.down()); + + if(this.update.firstChild && this.update.down().childNodes) { + this.entryCount = + this.update.down().childNodes.length; + for (var i = 0; i < this.entryCount; i++) { + var entry = this.getEntry(i); + entry.autocompleteIndex = i; + this.addObservers(entry); + } + } else { + this.entryCount = 0; + } + + this.stopIndicator(); + this.index = 0; + + if(this.entryCount==1 && this.options.autoSelect) { + this.selectEntry(); + this.hide(); + } else { + this.render(); + } + } + }, + + addObservers: function(element) { + Event.observe(element, "mouseover", this.onHover.bindAsEventListener(this)); + Event.observe(element, "click", this.onClick.bindAsEventListener(this)); + }, + + onObserverEvent: function() { + this.changed = false; + this.tokenBounds = null; + if(this.getToken().length>=this.options.minChars) { + this.getUpdatedChoices(); + } else { + this.active = false; + this.hide(); + } + this.oldElementValue = this.element.value; + }, + + getToken: function() { + var bounds = this.getTokenBounds(); + return this.element.value.substring(bounds[0], bounds[1]).strip(); + }, + + getTokenBounds: function() { + if (null != this.tokenBounds) return this.tokenBounds; + var value = this.element.value; + if (value.strip().empty()) return [-1, 0]; + var diff = arguments.callee.getFirstDifferencePos(value, this.oldElementValue); + var offset = (diff == this.oldElementValue.length ? 1 : 0); + var prevTokenPos = -1, nextTokenPos = value.length; + var tp; + for (var index = 0, l = this.options.tokens.length; index < l; ++index) { + tp = value.lastIndexOf(this.options.tokens[index], diff + offset - 1); + if (tp > prevTokenPos) prevTokenPos = tp; + tp = value.indexOf(this.options.tokens[index], diff + offset); + if (-1 != tp && tp < nextTokenPos) nextTokenPos = tp; + } + return (this.tokenBounds = [prevTokenPos + 1, nextTokenPos]); + } +}); + +Autocompleter.Base.prototype.getTokenBounds.getFirstDifferencePos = function(newS, oldS) { + var boundary = Math.min(newS.length, oldS.length); + for (var index = 0; index < boundary; ++index) + if (newS[index] != oldS[index]) + return index; + return boundary; +}; + +Ajax.Autocompleter = Class.create(Autocompleter.Base, { + initialize: function(element, update, url, options) { + this.baseInitialize(element, update, options); + this.options.asynchronous = true; + this.options.onComplete = this.onComplete.bind(this); + this.options.defaultParams = this.options.parameters || null; + this.url = url; + }, + + getUpdatedChoices: function() { + this.startIndicator(); + + var entry = encodeURIComponent(this.options.paramName) + '=' + + encodeURIComponent(this.getToken()); + + this.options.parameters = this.options.callback ? + this.options.callback(this.element, entry) : entry; + + if(this.options.defaultParams) + this.options.parameters += '&' + this.options.defaultParams; + + new Ajax.Request(this.url, this.options); + }, + + onComplete: function(request) { + this.updateChoices(request.responseText); + } +}); + +// The local array autocompleter. Used when you'd prefer to +// inject an array of autocompletion options into the page, rather +// than sending out Ajax queries, which can be quite slow sometimes. +// +// The constructor takes four parameters. The first two are, as usual, +// the id of the monitored textbox, and id of the autocompletion menu. +// The third is the array you want to autocomplete from, and the fourth +// is the options block. +// +// Extra local autocompletion options: +// - choices - How many autocompletion choices to offer +// +// - partialSearch - If false, the autocompleter will match entered +// text only at the beginning of strings in the +// autocomplete array. Defaults to true, which will +// match text at the beginning of any *word* in the +// strings in the autocomplete array. If you want to +// search anywhere in the string, additionally set +// the option fullSearch to true (default: off). +// +// - fullSsearch - Search anywhere in autocomplete array strings. +// +// - partialChars - How many characters to enter before triggering +// a partial match (unlike minChars, which defines +// how many characters are required to do any match +// at all). Defaults to 2. +// +// - ignoreCase - Whether to ignore case when autocompleting. +// Defaults to true. +// +// It's possible to pass in a custom function as the 'selector' +// option, if you prefer to write your own autocompletion logic. +// In that case, the other options above will not apply unless +// you support them. + +Autocompleter.Local = Class.create(Autocompleter.Base, { + initialize: function(element, update, array, options) { + this.baseInitialize(element, update, options); + this.options.array = array; + }, + + getUpdatedChoices: function() { + this.updateChoices(this.options.selector(this)); + }, + + setOptions: function(options) { + this.options = Object.extend({ + choices: 10, + partialSearch: true, + partialChars: 2, + ignoreCase: true, + fullSearch: false, + selector: function(instance) { + var ret = []; // Beginning matches + var partial = []; // Inside matches + var entry = instance.getToken(); + var count = 0; + + for (var i = 0; i < instance.options.array.length && + ret.length < instance.options.choices ; i++) { + + var elem = instance.options.array[i]; + var foundPos = instance.options.ignoreCase ? + elem.toLowerCase().indexOf(entry.toLowerCase()) : + elem.indexOf(entry); + + while (foundPos != -1) { + if (foundPos == 0 && elem.length != entry.length) { + ret.push("
  • " + elem.substr(0, entry.length) + "" + + elem.substr(entry.length) + "
  • "); + break; + } else if (entry.length >= instance.options.partialChars && + instance.options.partialSearch && foundPos != -1) { + if (instance.options.fullSearch || /\s/.test(elem.substr(foundPos-1,1))) { + partial.push("
  • " + elem.substr(0, foundPos) + "" + + elem.substr(foundPos, entry.length) + "" + elem.substr( + foundPos + entry.length) + "
  • "); + break; + } + } + + foundPos = instance.options.ignoreCase ? + elem.toLowerCase().indexOf(entry.toLowerCase(), foundPos + 1) : + elem.indexOf(entry, foundPos + 1); + + } + } + if (partial.length) + ret = ret.concat(partial.slice(0, instance.options.choices - ret.length)); + return "
      " + ret.join('') + "
    "; + } + }, options || { }); + } +}); + +// AJAX in-place editor and collection editor +// Full rewrite by Christophe Porteneuve (April 2007). + +// Use this if you notice weird scrolling problems on some browsers, +// the DOM might be a bit confused when this gets called so do this +// waits 1 ms (with setTimeout) until it does the activation +Field.scrollFreeActivate = function(field) { + setTimeout(function() { + Field.activate(field); + }, 1); +}; + +Ajax.InPlaceEditor = Class.create({ + initialize: function(element, url, options) { + this.url = url; + this.element = element = $(element); + this.prepareOptions(); + this._controls = { }; + arguments.callee.dealWithDeprecatedOptions(options); // DEPRECATION LAYER!!! + Object.extend(this.options, options || { }); + if (!this.options.formId && this.element.id) { + this.options.formId = this.element.id + '-inplaceeditor'; + if ($(this.options.formId)) + this.options.formId = ''; + } + if (this.options.externalControl) + this.options.externalControl = $(this.options.externalControl); + if (!this.options.externalControl) + this.options.externalControlOnly = false; + this._originalBackground = this.element.getStyle('background-color') || 'transparent'; + this.element.title = this.options.clickToEditText; + this._boundCancelHandler = this.handleFormCancellation.bind(this); + this._boundComplete = (this.options.onComplete || Prototype.emptyFunction).bind(this); + this._boundFailureHandler = this.handleAJAXFailure.bind(this); + this._boundSubmitHandler = this.handleFormSubmission.bind(this); + this._boundWrapperHandler = this.wrapUp.bind(this); + this.registerListeners(); + }, + checkForEscapeOrReturn: function(e) { + if (!this._editing || e.ctrlKey || e.altKey || e.shiftKey) return; + if (Event.KEY_ESC == e.keyCode) + this.handleFormCancellation(e); + else if (Event.KEY_RETURN == e.keyCode) + this.handleFormSubmission(e); + }, + createControl: function(mode, handler, extraClasses) { + var control = this.options[mode + 'Control']; + var text = this.options[mode + 'Text']; + if ('button' == control) { + var btn = document.createElement('input'); + btn.type = 'submit'; + btn.value = text; + btn.className = 'editor_' + mode + '_button'; + if ('cancel' == mode) + btn.onclick = this._boundCancelHandler; + this._form.appendChild(btn); + this._controls[mode] = btn; + } else if ('link' == control) { + var link = document.createElement('a'); + link.href = '#'; + link.appendChild(document.createTextNode(text)); + link.onclick = 'cancel' == mode ? this._boundCancelHandler : this._boundSubmitHandler; + link.className = 'editor_' + mode + '_link'; + if (extraClasses) + link.className += ' ' + extraClasses; + this._form.appendChild(link); + this._controls[mode] = link; + } + }, + createEditField: function() { + var text = (this.options.loadTextURL ? this.options.loadingText : this.getText()); + var fld; + if (1 >= this.options.rows && !/\r|\n/.test(this.getText())) { + fld = document.createElement('input'); + fld.type = 'text'; + var size = this.options.size || this.options.cols || 0; + if (0 < size) fld.size = size; + } else { + fld = document.createElement('textarea'); + fld.rows = (1 >= this.options.rows ? this.options.autoRows : this.options.rows); + fld.cols = this.options.cols || 40; + } + fld.name = this.options.paramName; + fld.value = text; // No HTML breaks conversion anymore + fld.className = 'editor_field'; + if (this.options.submitOnBlur) + fld.onblur = this._boundSubmitHandler; + this._controls.editor = fld; + if (this.options.loadTextURL) + this.loadExternalText(); + this._form.appendChild(this._controls.editor); + }, + createForm: function() { + var ipe = this; + function addText(mode, condition) { + var text = ipe.options['text' + mode + 'Controls']; + if (!text || condition === false) return; + ipe._form.appendChild(document.createTextNode(text)); + }; + this._form = $(document.createElement('form')); + this._form.id = this.options.formId; + this._form.addClassName(this.options.formClassName); + this._form.onsubmit = this._boundSubmitHandler; + this.createEditField(); + if ('textarea' == this._controls.editor.tagName.toLowerCase()) + this._form.appendChild(document.createElement('br')); + if (this.options.onFormCustomization) + this.options.onFormCustomization(this, this._form); + addText('Before', this.options.okControl || this.options.cancelControl); + this.createControl('ok', this._boundSubmitHandler); + addText('Between', this.options.okControl && this.options.cancelControl); + this.createControl('cancel', this._boundCancelHandler, 'editor_cancel'); + addText('After', this.options.okControl || this.options.cancelControl); + }, + destroy: function() { + if (this._oldInnerHTML) + this.element.innerHTML = this._oldInnerHTML; + this.leaveEditMode(); + this.unregisterListeners(); + }, + enterEditMode: function(e) { + if (this._saving || this._editing) return; + this._editing = true; + this.triggerCallback('onEnterEditMode'); + if (this.options.externalControl) + this.options.externalControl.hide(); + this.element.hide(); + this.createForm(); + this.element.parentNode.insertBefore(this._form, this.element); + if (!this.options.loadTextURL) + this.postProcessEditField(); + if (e) Event.stop(e); + }, + enterHover: function(e) { + if (this.options.hoverClassName) + this.element.addClassName(this.options.hoverClassName); + if (this._saving) return; + this.triggerCallback('onEnterHover'); + }, + getText: function() { + return this.element.innerHTML.unescapeHTML(); + }, + handleAJAXFailure: function(transport) { + this.triggerCallback('onFailure', transport); + if (this._oldInnerHTML) { + this.element.innerHTML = this._oldInnerHTML; + this._oldInnerHTML = null; + } + }, + handleFormCancellation: function(e) { + this.wrapUp(); + if (e) Event.stop(e); + }, + handleFormSubmission: function(e) { + var form = this._form; + var value = $F(this._controls.editor); + this.prepareSubmission(); + var params = this.options.callback(form, value) || ''; + if (Object.isString(params)) + params = params.toQueryParams(); + params.editorId = this.element.id; + if (this.options.htmlResponse) { + var options = Object.extend({ evalScripts: true }, this.options.ajaxOptions); + Object.extend(options, { + parameters: params, + onComplete: this._boundWrapperHandler, + onFailure: this._boundFailureHandler + }); + new Ajax.Updater({ success: this.element }, this.url, options); + } else { + var options = Object.extend({ method: 'get' }, this.options.ajaxOptions); + Object.extend(options, { + parameters: params, + onComplete: this._boundWrapperHandler, + onFailure: this._boundFailureHandler + }); + new Ajax.Request(this.url, options); + } + if (e) Event.stop(e); + }, + leaveEditMode: function() { + this.element.removeClassName(this.options.savingClassName); + this.removeForm(); + this.leaveHover(); + this.element.style.backgroundColor = this._originalBackground; + this.element.show(); + if (this.options.externalControl) + this.options.externalControl.show(); + this._saving = false; + this._editing = false; + this._oldInnerHTML = null; + this.triggerCallback('onLeaveEditMode'); + }, + leaveHover: function(e) { + if (this.options.hoverClassName) + this.element.removeClassName(this.options.hoverClassName); + if (this._saving) return; + this.triggerCallback('onLeaveHover'); + }, + loadExternalText: function() { + this._form.addClassName(this.options.loadingClassName); + this._controls.editor.disabled = true; + var options = Object.extend({ method: 'get' }, this.options.ajaxOptions); + Object.extend(options, { + parameters: 'editorId=' + encodeURIComponent(this.element.id), + onComplete: Prototype.emptyFunction, + onSuccess: function(transport) { + this._form.removeClassName(this.options.loadingClassName); + var text = transport.responseText; + if (this.options.stripLoadedTextTags) + text = text.stripTags(); + this._controls.editor.value = text; + this._controls.editor.disabled = false; + this.postProcessEditField(); + }.bind(this), + onFailure: this._boundFailureHandler + }); + new Ajax.Request(this.options.loadTextURL, options); + }, + postProcessEditField: function() { + var fpc = this.options.fieldPostCreation; + if (fpc) + $(this._controls.editor)['focus' == fpc ? 'focus' : 'activate'](); + }, + prepareOptions: function() { + this.options = Object.clone(Ajax.InPlaceEditor.DefaultOptions); + Object.extend(this.options, Ajax.InPlaceEditor.DefaultCallbacks); + [this._extraDefaultOptions].flatten().compact().each(function(defs) { + Object.extend(this.options, defs); + }.bind(this)); + }, + prepareSubmission: function() { + this._saving = true; + this.removeForm(); + this.leaveHover(); + this.showSaving(); + }, + registerListeners: function() { + this._listeners = { }; + var listener; + $H(Ajax.InPlaceEditor.Listeners).each(function(pair) { + listener = this[pair.value].bind(this); + this._listeners[pair.key] = listener; + if (!this.options.externalControlOnly) + this.element.observe(pair.key, listener); + if (this.options.externalControl) + this.options.externalControl.observe(pair.key, listener); + }.bind(this)); + }, + removeForm: function() { + if (!this._form) return; + this._form.remove(); + this._form = null; + this._controls = { }; + }, + showSaving: function() { + this._oldInnerHTML = this.element.innerHTML; + this.element.innerHTML = this.options.savingText; + this.element.addClassName(this.options.savingClassName); + this.element.style.backgroundColor = this._originalBackground; + this.element.show(); + }, + triggerCallback: function(cbName, arg) { + if ('function' == typeof this.options[cbName]) { + this.options[cbName](this, arg); + } + }, + unregisterListeners: function() { + $H(this._listeners).each(function(pair) { + if (!this.options.externalControlOnly) + this.element.stopObserving(pair.key, pair.value); + if (this.options.externalControl) + this.options.externalControl.stopObserving(pair.key, pair.value); + }.bind(this)); + }, + wrapUp: function(transport) { + this.leaveEditMode(); + // Can't use triggerCallback due to backward compatibility: requires + // binding + direct element + this._boundComplete(transport, this.element); + } +}); + +Object.extend(Ajax.InPlaceEditor.prototype, { + dispose: Ajax.InPlaceEditor.prototype.destroy +}); + +Ajax.InPlaceCollectionEditor = Class.create(Ajax.InPlaceEditor, { + initialize: function($super, element, url, options) { + this._extraDefaultOptions = Ajax.InPlaceCollectionEditor.DefaultOptions; + $super(element, url, options); + }, + + createEditField: function() { + var list = document.createElement('select'); + list.name = this.options.paramName; + list.size = 1; + this._controls.editor = list; + this._collection = this.options.collection || []; + if (this.options.loadCollectionURL) + this.loadCollection(); + else + this.checkForExternalText(); + this._form.appendChild(this._controls.editor); + }, + + loadCollection: function() { + this._form.addClassName(this.options.loadingClassName); + this.showLoadingText(this.options.loadingCollectionText); + var options = Object.extend({ method: 'get' }, this.options.ajaxOptions); + Object.extend(options, { + parameters: 'editorId=' + encodeURIComponent(this.element.id), + onComplete: Prototype.emptyFunction, + onSuccess: function(transport) { + var js = transport.responseText.strip(); + if (!/^\[.*\]$/.test(js)) // TODO: improve sanity check + throw('Server returned an invalid collection representation.'); + this._collection = eval(js); + this.checkForExternalText(); + }.bind(this), + onFailure: this.onFailure + }); + new Ajax.Request(this.options.loadCollectionURL, options); + }, + + showLoadingText: function(text) { + this._controls.editor.disabled = true; + var tempOption = this._controls.editor.firstChild; + if (!tempOption) { + tempOption = document.createElement('option'); + tempOption.value = ''; + this._controls.editor.appendChild(tempOption); + tempOption.selected = true; + } + tempOption.update((text || '').stripScripts().stripTags()); + }, + + checkForExternalText: function() { + this._text = this.getText(); + if (this.options.loadTextURL) + this.loadExternalText(); + else + this.buildOptionList(); + }, + + loadExternalText: function() { + this.showLoadingText(this.options.loadingText); + var options = Object.extend({ method: 'get' }, this.options.ajaxOptions); + Object.extend(options, { + parameters: 'editorId=' + encodeURIComponent(this.element.id), + onComplete: Prototype.emptyFunction, + onSuccess: function(transport) { + this._text = transport.responseText.strip(); + this.buildOptionList(); + }.bind(this), + onFailure: this.onFailure + }); + new Ajax.Request(this.options.loadTextURL, options); + }, + + buildOptionList: function() { + this._form.removeClassName(this.options.loadingClassName); + this._collection = this._collection.map(function(entry) { + return 2 === entry.length ? entry : [entry, entry].flatten(); + }); + var marker = ('value' in this.options) ? this.options.value : this._text; + var textFound = this._collection.any(function(entry) { + return entry[0] == marker; + }.bind(this)); + this._controls.editor.update(''); + var option; + this._collection.each(function(entry, index) { + option = document.createElement('option'); + option.value = entry[0]; + option.selected = textFound ? entry[0] == marker : 0 == index; + option.appendChild(document.createTextNode(entry[1])); + this._controls.editor.appendChild(option); + }.bind(this)); + this._controls.editor.disabled = false; + Field.scrollFreeActivate(this._controls.editor); + } +}); + +//**** DEPRECATION LAYER FOR InPlace[Collection]Editor! **** +//**** This only exists for a while, in order to let **** +//**** users adapt to the new API. Read up on the new **** +//**** API and convert your code to it ASAP! **** + +Ajax.InPlaceEditor.prototype.initialize.dealWithDeprecatedOptions = function(options) { + if (!options) return; + function fallback(name, expr) { + if (name in options || expr === undefined) return; + options[name] = expr; + }; + fallback('cancelControl', (options.cancelLink ? 'link' : (options.cancelButton ? 'button' : + options.cancelLink == options.cancelButton == false ? false : undefined))); + fallback('okControl', (options.okLink ? 'link' : (options.okButton ? 'button' : + options.okLink == options.okButton == false ? false : undefined))); + fallback('highlightColor', options.highlightcolor); + fallback('highlightEndColor', options.highlightendcolor); +}; + +Object.extend(Ajax.InPlaceEditor, { + DefaultOptions: { + ajaxOptions: { }, + autoRows: 3, // Use when multi-line w/ rows == 1 + cancelControl: 'link', // 'link'|'button'|false + cancelText: 'cancel', + clickToEditText: 'Click to edit', + externalControl: null, // id|elt + externalControlOnly: false, + fieldPostCreation: 'activate', // 'activate'|'focus'|false + formClassName: 'inplaceeditor-form', + formId: null, // id|elt + highlightColor: '#ffff99', + highlightEndColor: '#ffffff', + hoverClassName: '', + htmlResponse: true, + loadingClassName: 'inplaceeditor-loading', + loadingText: 'Loading...', + okControl: 'button', // 'link'|'button'|false + okText: 'ok', + paramName: 'value', + rows: 1, // If 1 and multi-line, uses autoRows + savingClassName: 'inplaceeditor-saving', + savingText: 'Saving...', + size: 0, + stripLoadedTextTags: false, + submitOnBlur: false, + textAfterControls: '', + textBeforeControls: '', + textBetweenControls: '' + }, + DefaultCallbacks: { + callback: function(form) { + return Form.serialize(form); + }, + onComplete: function(transport, element) { + // For backward compatibility, this one is bound to the IPE, and passes + // the element directly. It was too often customized, so we don't break it. + new Effect.Highlight(element, { + startcolor: this.options.highlightColor, keepBackgroundImage: true }); + }, + onEnterEditMode: null, + onEnterHover: function(ipe) { + ipe.element.style.backgroundColor = ipe.options.highlightColor; + if (ipe._effect) + ipe._effect.cancel(); + }, + onFailure: function(transport, ipe) { + alert('Error communication with the server: ' + transport.responseText.stripTags()); + }, + onFormCustomization: null, // Takes the IPE and its generated form, after editor, before controls. + onLeaveEditMode: null, + onLeaveHover: function(ipe) { + ipe._effect = new Effect.Highlight(ipe.element, { + startcolor: ipe.options.highlightColor, endcolor: ipe.options.highlightEndColor, + restorecolor: ipe._originalBackground, keepBackgroundImage: true + }); + } + }, + Listeners: { + click: 'enterEditMode', + keydown: 'checkForEscapeOrReturn', + mouseover: 'enterHover', + mouseout: 'leaveHover' + } +}); + +Ajax.InPlaceCollectionEditor.DefaultOptions = { + loadingCollectionText: 'Loading options...' +}; + +// Delayed observer, like Form.Element.Observer, +// but waits for delay after last key input +// Ideal for live-search fields + +Form.Element.DelayedObserver = Class.create({ + initialize: function(element, delay, callback) { + this.delay = delay || 0.5; + this.element = $(element); + this.callback = callback; + this.timer = null; + this.lastValue = $F(this.element); + Event.observe(this.element,'keyup',this.delayedListener.bindAsEventListener(this)); + }, + delayedListener: function(event) { + if(this.lastValue == $F(this.element)) return; + if(this.timer) clearTimeout(this.timer); + this.timer = setTimeout(this.onTimerEvent.bind(this), this.delay * 1000); + this.lastValue = $F(this.element); + }, + onTimerEvent: function() { + this.timer = null; + this.callback(this.element, $F(this.element)); + } +}); \ No newline at end of file diff --git a/presidents/public/javascripts/dragdrop.js b/presidents/public/javascripts/dragdrop.js new file mode 100644 index 0000000..07229f9 --- /dev/null +++ b/presidents/public/javascripts/dragdrop.js @@ -0,0 +1,973 @@ +// Copyright (c) 2005-2008 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) +// (c) 2005-2008 Sammi Williams (http://www.oriontransfer.co.nz, sammi@oriontransfer.co.nz) +// +// script.aculo.us is freely distributable under the terms of an MIT-style license. +// For details, see the script.aculo.us web site: http://script.aculo.us/ + +if(Object.isUndefined(Effect)) + throw("dragdrop.js requires including script.aculo.us' effects.js library"); + +var Droppables = { + drops: [], + + remove: function(element) { + this.drops = this.drops.reject(function(d) { return d.element==$(element) }); + }, + + add: function(element) { + element = $(element); + var options = Object.extend({ + greedy: true, + hoverclass: null, + tree: false + }, arguments[1] || { }); + + // cache containers + if(options.containment) { + options._containers = []; + var containment = options.containment; + if(Object.isArray(containment)) { + containment.each( function(c) { options._containers.push($(c)) }); + } else { + options._containers.push($(containment)); + } + } + + if(options.accept) options.accept = [options.accept].flatten(); + + Element.makePositioned(element); // fix IE + options.element = element; + + this.drops.push(options); + }, + + findDeepestChild: function(drops) { + deepest = drops[0]; + + for (i = 1; i < drops.length; ++i) + if (Element.isParent(drops[i].element, deepest.element)) + deepest = drops[i]; + + return deepest; + }, + + isContained: function(element, drop) { + var containmentNode; + if(drop.tree) { + containmentNode = element.treeNode; + } else { + containmentNode = element.parentNode; + } + return drop._containers.detect(function(c) { return containmentNode == c }); + }, + + isAffected: function(point, element, drop) { + return ( + (drop.element!=element) && + ((!drop._containers) || + this.isContained(element, drop)) && + ((!drop.accept) || + (Element.classNames(element).detect( + function(v) { return drop.accept.include(v) } ) )) && + Position.within(drop.element, point[0], point[1]) ); + }, + + deactivate: function(drop) { + if(drop.hoverclass) + Element.removeClassName(drop.element, drop.hoverclass); + this.last_active = null; + }, + + activate: function(drop) { + if(drop.hoverclass) + Element.addClassName(drop.element, drop.hoverclass); + this.last_active = drop; + }, + + show: function(point, element) { + if(!this.drops.length) return; + var drop, affected = []; + + this.drops.each( function(drop) { + if(Droppables.isAffected(point, element, drop)) + affected.push(drop); + }); + + if(affected.length>0) + drop = Droppables.findDeepestChild(affected); + + if(this.last_active && this.last_active != drop) this.deactivate(this.last_active); + if (drop) { + Position.within(drop.element, point[0], point[1]); + if(drop.onHover) + drop.onHover(element, drop.element, Position.overlap(drop.overlap, drop.element)); + + if (drop != this.last_active) Droppables.activate(drop); + } + }, + + fire: function(event, element) { + if(!this.last_active) return; + Position.prepare(); + + if (this.isAffected([Event.pointerX(event), Event.pointerY(event)], element, this.last_active)) + if (this.last_active.onDrop) { + this.last_active.onDrop(element, this.last_active.element, event); + return true; + } + }, + + reset: function() { + if(this.last_active) + this.deactivate(this.last_active); + } +}; + +var Draggables = { + drags: [], + observers: [], + + register: function(draggable) { + if(this.drags.length == 0) { + this.eventMouseUp = this.endDrag.bindAsEventListener(this); + this.eventMouseMove = this.updateDrag.bindAsEventListener(this); + this.eventKeypress = this.keyPress.bindAsEventListener(this); + + Event.observe(document, "mouseup", this.eventMouseUp); + Event.observe(document, "mousemove", this.eventMouseMove); + Event.observe(document, "keypress", this.eventKeypress); + } + this.drags.push(draggable); + }, + + unregister: function(draggable) { + this.drags = this.drags.reject(function(d) { return d==draggable }); + if(this.drags.length == 0) { + Event.stopObserving(document, "mouseup", this.eventMouseUp); + Event.stopObserving(document, "mousemove", this.eventMouseMove); + Event.stopObserving(document, "keypress", this.eventKeypress); + } + }, + + activate: function(draggable) { + if(draggable.options.delay) { + this._timeout = setTimeout(function() { + Draggables._timeout = null; + window.focus(); + Draggables.activeDraggable = draggable; + }.bind(this), draggable.options.delay); + } else { + window.focus(); // allows keypress events if window isn't currently focused, fails for Safari + this.activeDraggable = draggable; + } + }, + + deactivate: function() { + this.activeDraggable = null; + }, + + updateDrag: function(event) { + if(!this.activeDraggable) return; + var pointer = [Event.pointerX(event), Event.pointerY(event)]; + // Mozilla-based browsers fire successive mousemove events with + // the same coordinates, prevent needless redrawing (moz bug?) + if(this._lastPointer && (this._lastPointer.inspect() == pointer.inspect())) return; + this._lastPointer = pointer; + + this.activeDraggable.updateDrag(event, pointer); + }, + + endDrag: function(event) { + if(this._timeout) { + clearTimeout(this._timeout); + this._timeout = null; + } + if(!this.activeDraggable) return; + this._lastPointer = null; + this.activeDraggable.endDrag(event); + this.activeDraggable = null; + }, + + keyPress: function(event) { + if(this.activeDraggable) + this.activeDraggable.keyPress(event); + }, + + addObserver: function(observer) { + this.observers.push(observer); + this._cacheObserverCallbacks(); + }, + + removeObserver: function(element) { // element instead of observer fixes mem leaks + this.observers = this.observers.reject( function(o) { return o.element==element }); + this._cacheObserverCallbacks(); + }, + + notify: function(eventName, draggable, event) { // 'onStart', 'onEnd', 'onDrag' + if(this[eventName+'Count'] > 0) + this.observers.each( function(o) { + if(o[eventName]) o[eventName](eventName, draggable, event); + }); + if(draggable.options[eventName]) draggable.options[eventName](draggable, event); + }, + + _cacheObserverCallbacks: function() { + ['onStart','onEnd','onDrag'].each( function(eventName) { + Draggables[eventName+'Count'] = Draggables.observers.select( + function(o) { return o[eventName]; } + ).length; + }); + } +}; + +/*--------------------------------------------------------------------------*/ + +var Draggable = Class.create({ + initialize: function(element) { + var defaults = { + handle: false, + reverteffect: function(element, top_offset, left_offset) { + var dur = Math.sqrt(Math.abs(top_offset^2)+Math.abs(left_offset^2))*0.02; + new Effect.Move(element, { x: -left_offset, y: -top_offset, duration: dur, + queue: {scope:'_draggable', position:'end'} + }); + }, + endeffect: function(element) { + var toOpacity = Object.isNumber(element._opacity) ? element._opacity : 1.0; + new Effect.Opacity(element, {duration:0.2, from:0.7, to:toOpacity, + queue: {scope:'_draggable', position:'end'}, + afterFinish: function(){ + Draggable._dragging[element] = false + } + }); + }, + zindex: 1000, + revert: false, + quiet: false, + scroll: false, + scrollSensitivity: 20, + scrollSpeed: 15, + snap: false, // false, or xy or [x,y] or function(x,y){ return [x,y] } + delay: 0 + }; + + if(!arguments[1] || Object.isUndefined(arguments[1].endeffect)) + Object.extend(defaults, { + starteffect: function(element) { + element._opacity = Element.getOpacity(element); + Draggable._dragging[element] = true; + new Effect.Opacity(element, {duration:0.2, from:element._opacity, to:0.7}); + } + }); + + var options = Object.extend(defaults, arguments[1] || { }); + + this.element = $(element); + + if(options.handle && Object.isString(options.handle)) + this.handle = this.element.down('.'+options.handle, 0); + + if(!this.handle) this.handle = $(options.handle); + if(!this.handle) this.handle = this.element; + + if(options.scroll && !options.scroll.scrollTo && !options.scroll.outerHTML) { + options.scroll = $(options.scroll); + this._isScrollChild = Element.childOf(this.element, options.scroll); + } + + Element.makePositioned(this.element); // fix IE + + this.options = options; + this.dragging = false; + + this.eventMouseDown = this.initDrag.bindAsEventListener(this); + Event.observe(this.handle, "mousedown", this.eventMouseDown); + + Draggables.register(this); + }, + + destroy: function() { + Event.stopObserving(this.handle, "mousedown", this.eventMouseDown); + Draggables.unregister(this); + }, + + currentDelta: function() { + return([ + parseInt(Element.getStyle(this.element,'left') || '0'), + parseInt(Element.getStyle(this.element,'top') || '0')]); + }, + + initDrag: function(event) { + if(!Object.isUndefined(Draggable._dragging[this.element]) && + Draggable._dragging[this.element]) return; + if(Event.isLeftClick(event)) { + // abort on form elements, fixes a Firefox issue + var src = Event.element(event); + if((tag_name = src.tagName.toUpperCase()) && ( + tag_name=='INPUT' || + tag_name=='SELECT' || + tag_name=='OPTION' || + tag_name=='BUTTON' || + tag_name=='TEXTAREA')) return; + + var pointer = [Event.pointerX(event), Event.pointerY(event)]; + var pos = Position.cumulativeOffset(this.element); + this.offset = [0,1].map( function(i) { return (pointer[i] - pos[i]) }); + + Draggables.activate(this); + Event.stop(event); + } + }, + + startDrag: function(event) { + this.dragging = true; + if(!this.delta) + this.delta = this.currentDelta(); + + if(this.options.zindex) { + this.originalZ = parseInt(Element.getStyle(this.element,'z-index') || 0); + this.element.style.zIndex = this.options.zindex; + } + + if(this.options.ghosting) { + this._clone = this.element.cloneNode(true); + this._originallyAbsolute = (this.element.getStyle('position') == 'absolute'); + if (!this._originallyAbsolute) + Position.absolutize(this.element); + this.element.parentNode.insertBefore(this._clone, this.element); + } + + if(this.options.scroll) { + if (this.options.scroll == window) { + var where = this._getWindowScroll(this.options.scroll); + this.originalScrollLeft = where.left; + this.originalScrollTop = where.top; + } else { + this.originalScrollLeft = this.options.scroll.scrollLeft; + this.originalScrollTop = this.options.scroll.scrollTop; + } + } + + Draggables.notify('onStart', this, event); + + if(this.options.starteffect) this.options.starteffect(this.element); + }, + + updateDrag: function(event, pointer) { + if(!this.dragging) this.startDrag(event); + + if(!this.options.quiet){ + Position.prepare(); + Droppables.show(pointer, this.element); + } + + Draggables.notify('onDrag', this, event); + + this.draw(pointer); + if(this.options.change) this.options.change(this); + + if(this.options.scroll) { + this.stopScrolling(); + + var p; + if (this.options.scroll == window) { + with(this._getWindowScroll(this.options.scroll)) { p = [ left, top, left+width, top+height ]; } + } else { + p = Position.page(this.options.scroll); + p[0] += this.options.scroll.scrollLeft + Position.deltaX; + p[1] += this.options.scroll.scrollTop + Position.deltaY; + p.push(p[0]+this.options.scroll.offsetWidth); + p.push(p[1]+this.options.scroll.offsetHeight); + } + var speed = [0,0]; + if(pointer[0] < (p[0]+this.options.scrollSensitivity)) speed[0] = pointer[0]-(p[0]+this.options.scrollSensitivity); + if(pointer[1] < (p[1]+this.options.scrollSensitivity)) speed[1] = pointer[1]-(p[1]+this.options.scrollSensitivity); + if(pointer[0] > (p[2]-this.options.scrollSensitivity)) speed[0] = pointer[0]-(p[2]-this.options.scrollSensitivity); + if(pointer[1] > (p[3]-this.options.scrollSensitivity)) speed[1] = pointer[1]-(p[3]-this.options.scrollSensitivity); + this.startScrolling(speed); + } + + // fix AppleWebKit rendering + if(Prototype.Browser.WebKit) window.scrollBy(0,0); + + Event.stop(event); + }, + + finishDrag: function(event, success) { + this.dragging = false; + + if(this.options.quiet){ + Position.prepare(); + var pointer = [Event.pointerX(event), Event.pointerY(event)]; + Droppables.show(pointer, this.element); + } + + if(this.options.ghosting) { + if (!this._originallyAbsolute) + Position.relativize(this.element); + delete this._originallyAbsolute; + Element.remove(this._clone); + this._clone = null; + } + + var dropped = false; + if(success) { + dropped = Droppables.fire(event, this.element); + if (!dropped) dropped = false; + } + if(dropped && this.options.onDropped) this.options.onDropped(this.element); + Draggables.notify('onEnd', this, event); + + var revert = this.options.revert; + if(revert && Object.isFunction(revert)) revert = revert(this.element); + + var d = this.currentDelta(); + if(revert && this.options.reverteffect) { + if (dropped == 0 || revert != 'failure') + this.options.reverteffect(this.element, + d[1]-this.delta[1], d[0]-this.delta[0]); + } else { + this.delta = d; + } + + if(this.options.zindex) + this.element.style.zIndex = this.originalZ; + + if(this.options.endeffect) + this.options.endeffect(this.element); + + Draggables.deactivate(this); + Droppables.reset(); + }, + + keyPress: function(event) { + if(event.keyCode!=Event.KEY_ESC) return; + this.finishDrag(event, false); + Event.stop(event); + }, + + endDrag: function(event) { + if(!this.dragging) return; + this.stopScrolling(); + this.finishDrag(event, true); + Event.stop(event); + }, + + draw: function(point) { + var pos = Position.cumulativeOffset(this.element); + if(this.options.ghosting) { + var r = Position.realOffset(this.element); + pos[0] += r[0] - Position.deltaX; pos[1] += r[1] - Position.deltaY; + } + + var d = this.currentDelta(); + pos[0] -= d[0]; pos[1] -= d[1]; + + if(this.options.scroll && (this.options.scroll != window && this._isScrollChild)) { + pos[0] -= this.options.scroll.scrollLeft-this.originalScrollLeft; + pos[1] -= this.options.scroll.scrollTop-this.originalScrollTop; + } + + var p = [0,1].map(function(i){ + return (point[i]-pos[i]-this.offset[i]) + }.bind(this)); + + if(this.options.snap) { + if(Object.isFunction(this.options.snap)) { + p = this.options.snap(p[0],p[1],this); + } else { + if(Object.isArray(this.options.snap)) { + p = p.map( function(v, i) { + return (v/this.options.snap[i]).round()*this.options.snap[i] }.bind(this)); + } else { + p = p.map( function(v) { + return (v/this.options.snap).round()*this.options.snap }.bind(this)); + } + }} + + var style = this.element.style; + if((!this.options.constraint) || (this.options.constraint=='horizontal')) + style.left = p[0] + "px"; + if((!this.options.constraint) || (this.options.constraint=='vertical')) + style.top = p[1] + "px"; + + if(style.visibility=="hidden") style.visibility = ""; // fix gecko rendering + }, + + stopScrolling: function() { + if(this.scrollInterval) { + clearInterval(this.scrollInterval); + this.scrollInterval = null; + Draggables._lastScrollPointer = null; + } + }, + + startScrolling: function(speed) { + if(!(speed[0] || speed[1])) return; + this.scrollSpeed = [speed[0]*this.options.scrollSpeed,speed[1]*this.options.scrollSpeed]; + this.lastScrolled = new Date(); + this.scrollInterval = setInterval(this.scroll.bind(this), 10); + }, + + scroll: function() { + var current = new Date(); + var delta = current - this.lastScrolled; + this.lastScrolled = current; + if(this.options.scroll == window) { + with (this._getWindowScroll(this.options.scroll)) { + if (this.scrollSpeed[0] || this.scrollSpeed[1]) { + var d = delta / 1000; + this.options.scroll.scrollTo( left + d*this.scrollSpeed[0], top + d*this.scrollSpeed[1] ); + } + } + } else { + this.options.scroll.scrollLeft += this.scrollSpeed[0] * delta / 1000; + this.options.scroll.scrollTop += this.scrollSpeed[1] * delta / 1000; + } + + Position.prepare(); + Droppables.show(Draggables._lastPointer, this.element); + Draggables.notify('onDrag', this); + if (this._isScrollChild) { + Draggables._lastScrollPointer = Draggables._lastScrollPointer || $A(Draggables._lastPointer); + Draggables._lastScrollPointer[0] += this.scrollSpeed[0] * delta / 1000; + Draggables._lastScrollPointer[1] += this.scrollSpeed[1] * delta / 1000; + if (Draggables._lastScrollPointer[0] < 0) + Draggables._lastScrollPointer[0] = 0; + if (Draggables._lastScrollPointer[1] < 0) + Draggables._lastScrollPointer[1] = 0; + this.draw(Draggables._lastScrollPointer); + } + + if(this.options.change) this.options.change(this); + }, + + _getWindowScroll: function(w) { + var T, L, W, H; + with (w.document) { + if (w.document.documentElement && documentElement.scrollTop) { + T = documentElement.scrollTop; + L = documentElement.scrollLeft; + } else if (w.document.body) { + T = body.scrollTop; + L = body.scrollLeft; + } + if (w.innerWidth) { + W = w.innerWidth; + H = w.innerHeight; + } else if (w.document.documentElement && documentElement.clientWidth) { + W = documentElement.clientWidth; + H = documentElement.clientHeight; + } else { + W = body.offsetWidth; + H = body.offsetHeight; + } + } + return { top: T, left: L, width: W, height: H }; + } +}); + +Draggable._dragging = { }; + +/*--------------------------------------------------------------------------*/ + +var SortableObserver = Class.create({ + initialize: function(element, observer) { + this.element = $(element); + this.observer = observer; + this.lastValue = Sortable.serialize(this.element); + }, + + onStart: function() { + this.lastValue = Sortable.serialize(this.element); + }, + + onEnd: function() { + Sortable.unmark(); + if(this.lastValue != Sortable.serialize(this.element)) + this.observer(this.element) + } +}); + +var Sortable = { + SERIALIZE_RULE: /^[^_\-](?:[A-Za-z0-9\-\_]*)[_](.*)$/, + + sortables: { }, + + _findRootElement: function(element) { + while (element.tagName.toUpperCase() != "BODY") { + if(element.id && Sortable.sortables[element.id]) return element; + element = element.parentNode; + } + }, + + options: function(element) { + element = Sortable._findRootElement($(element)); + if(!element) return; + return Sortable.sortables[element.id]; + }, + + destroy: function(element){ + element = $(element); + var s = Sortable.sortables[element.id]; + + if(s) { + Draggables.removeObserver(s.element); + s.droppables.each(function(d){ Droppables.remove(d) }); + s.draggables.invoke('destroy'); + + delete Sortable.sortables[s.element.id]; + } + }, + + create: function(element) { + element = $(element); + var options = Object.extend({ + element: element, + tag: 'li', // assumes li children, override with tag: 'tagname' + dropOnEmpty: false, + tree: false, + treeTag: 'ul', + overlap: 'vertical', // one of 'vertical', 'horizontal' + constraint: 'vertical', // one of 'vertical', 'horizontal', false + containment: element, // also takes array of elements (or id's); or false + handle: false, // or a CSS class + only: false, + delay: 0, + hoverclass: null, + ghosting: false, + quiet: false, + scroll: false, + scrollSensitivity: 20, + scrollSpeed: 15, + format: this.SERIALIZE_RULE, + + // these take arrays of elements or ids and can be + // used for better initialization performance + elements: false, + handles: false, + + onChange: Prototype.emptyFunction, + onUpdate: Prototype.emptyFunction + }, arguments[1] || { }); + + // clear any old sortable with same element + this.destroy(element); + + // build options for the draggables + var options_for_draggable = { + revert: true, + quiet: options.quiet, + scroll: options.scroll, + scrollSpeed: options.scrollSpeed, + scrollSensitivity: options.scrollSensitivity, + delay: options.delay, + ghosting: options.ghosting, + constraint: options.constraint, + handle: options.handle }; + + if(options.starteffect) + options_for_draggable.starteffect = options.starteffect; + + if(options.reverteffect) + options_for_draggable.reverteffect = options.reverteffect; + else + if(options.ghosting) options_for_draggable.reverteffect = function(element) { + element.style.top = 0; + element.style.left = 0; + }; + + if(options.endeffect) + options_for_draggable.endeffect = options.endeffect; + + if(options.zindex) + options_for_draggable.zindex = options.zindex; + + // build options for the droppables + var options_for_droppable = { + overlap: options.overlap, + containment: options.containment, + tree: options.tree, + hoverclass: options.hoverclass, + onHover: Sortable.onHover + }; + + var options_for_tree = { + onHover: Sortable.onEmptyHover, + overlap: options.overlap, + containment: options.containment, + hoverclass: options.hoverclass + }; + + // fix for gecko engine + Element.cleanWhitespace(element); + + options.draggables = []; + options.droppables = []; + + // drop on empty handling + if(options.dropOnEmpty || options.tree) { + Droppables.add(element, options_for_tree); + options.droppables.push(element); + } + + (options.elements || this.findElements(element, options) || []).each( function(e,i) { + var handle = options.handles ? $(options.handles[i]) : + (options.handle ? $(e).select('.' + options.handle)[0] : e); + options.draggables.push( + new Draggable(e, Object.extend(options_for_draggable, { handle: handle }))); + Droppables.add(e, options_for_droppable); + if(options.tree) e.treeNode = element; + options.droppables.push(e); + }); + + if(options.tree) { + (Sortable.findTreeElements(element, options) || []).each( function(e) { + Droppables.add(e, options_for_tree); + e.treeNode = element; + options.droppables.push(e); + }); + } + + // keep reference + this.sortables[element.id] = options; + + // for onupdate + Draggables.addObserver(new SortableObserver(element, options.onUpdate)); + + }, + + // return all suitable-for-sortable elements in a guaranteed order + findElements: function(element, options) { + return Element.findChildren( + element, options.only, options.tree ? true : false, options.tag); + }, + + findTreeElements: function(element, options) { + return Element.findChildren( + element, options.only, options.tree ? true : false, options.treeTag); + }, + + onHover: function(element, dropon, overlap) { + if(Element.isParent(dropon, element)) return; + + if(overlap > .33 && overlap < .66 && Sortable.options(dropon).tree) { + return; + } else if(overlap>0.5) { + Sortable.mark(dropon, 'before'); + if(dropon.previousSibling != element) { + var oldParentNode = element.parentNode; + element.style.visibility = "hidden"; // fix gecko rendering + dropon.parentNode.insertBefore(element, dropon); + if(dropon.parentNode!=oldParentNode) + Sortable.options(oldParentNode).onChange(element); + Sortable.options(dropon.parentNode).onChange(element); + } + } else { + Sortable.mark(dropon, 'after'); + var nextElement = dropon.nextSibling || null; + if(nextElement != element) { + var oldParentNode = element.parentNode; + element.style.visibility = "hidden"; // fix gecko rendering + dropon.parentNode.insertBefore(element, nextElement); + if(dropon.parentNode!=oldParentNode) + Sortable.options(oldParentNode).onChange(element); + Sortable.options(dropon.parentNode).onChange(element); + } + } + }, + + onEmptyHover: function(element, dropon, overlap) { + var oldParentNode = element.parentNode; + var droponOptions = Sortable.options(dropon); + + if(!Element.isParent(dropon, element)) { + var index; + + var children = Sortable.findElements(dropon, {tag: droponOptions.tag, only: droponOptions.only}); + var child = null; + + if(children) { + var offset = Element.offsetSize(dropon, droponOptions.overlap) * (1.0 - overlap); + + for (index = 0; index < children.length; index += 1) { + if (offset - Element.offsetSize (children[index], droponOptions.overlap) >= 0) { + offset -= Element.offsetSize (children[index], droponOptions.overlap); + } else if (offset - (Element.offsetSize (children[index], droponOptions.overlap) / 2) >= 0) { + child = index + 1 < children.length ? children[index + 1] : null; + break; + } else { + child = children[index]; + break; + } + } + } + + dropon.insertBefore(element, child); + + Sortable.options(oldParentNode).onChange(element); + droponOptions.onChange(element); + } + }, + + unmark: function() { + if(Sortable._marker) Sortable._marker.hide(); + }, + + mark: function(dropon, position) { + // mark on ghosting only + var sortable = Sortable.options(dropon.parentNode); + if(sortable && !sortable.ghosting) return; + + if(!Sortable._marker) { + Sortable._marker = + ($('dropmarker') || Element.extend(document.createElement('DIV'))). + hide().addClassName('dropmarker').setStyle({position:'absolute'}); + document.getElementsByTagName("body").item(0).appendChild(Sortable._marker); + } + var offsets = Position.cumulativeOffset(dropon); + Sortable._marker.setStyle({left: offsets[0]+'px', top: offsets[1] + 'px'}); + + if(position=='after') + if(sortable.overlap == 'horizontal') + Sortable._marker.setStyle({left: (offsets[0]+dropon.clientWidth) + 'px'}); + else + Sortable._marker.setStyle({top: (offsets[1]+dropon.clientHeight) + 'px'}); + + Sortable._marker.show(); + }, + + _tree: function(element, options, parent) { + var children = Sortable.findElements(element, options) || []; + + for (var i = 0; i < children.length; ++i) { + var match = children[i].id.match(options.format); + + if (!match) continue; + + var child = { + id: encodeURIComponent(match ? match[1] : null), + element: element, + parent: parent, + children: [], + position: parent.children.length, + container: $(children[i]).down(options.treeTag) + }; + + /* Get the element containing the children and recurse over it */ + if (child.container) + this._tree(child.container, options, child); + + parent.children.push (child); + } + + return parent; + }, + + tree: function(element) { + element = $(element); + var sortableOptions = this.options(element); + var options = Object.extend({ + tag: sortableOptions.tag, + treeTag: sortableOptions.treeTag, + only: sortableOptions.only, + name: element.id, + format: sortableOptions.format + }, arguments[1] || { }); + + var root = { + id: null, + parent: null, + children: [], + container: element, + position: 0 + }; + + return Sortable._tree(element, options, root); + }, + + /* Construct a [i] index for a particular node */ + _constructIndex: function(node) { + var index = ''; + do { + if (node.id) index = '[' + node.position + ']' + index; + } while ((node = node.parent) != null); + return index; + }, + + sequence: function(element) { + element = $(element); + var options = Object.extend(this.options(element), arguments[1] || { }); + + return $(this.findElements(element, options) || []).map( function(item) { + return item.id.match(options.format) ? item.id.match(options.format)[1] : ''; + }); + }, + + setSequence: function(element, new_sequence) { + element = $(element); + var options = Object.extend(this.options(element), arguments[2] || { }); + + var nodeMap = { }; + this.findElements(element, options).each( function(n) { + if (n.id.match(options.format)) + nodeMap[n.id.match(options.format)[1]] = [n, n.parentNode]; + n.parentNode.removeChild(n); + }); + + new_sequence.each(function(ident) { + var n = nodeMap[ident]; + if (n) { + n[1].appendChild(n[0]); + delete nodeMap[ident]; + } + }); + }, + + serialize: function(element) { + element = $(element); + var options = Object.extend(Sortable.options(element), arguments[1] || { }); + var name = encodeURIComponent( + (arguments[1] && arguments[1].name) ? arguments[1].name : element.id); + + if (options.tree) { + return Sortable.tree(element, arguments[1]).children.map( function (item) { + return [name + Sortable._constructIndex(item) + "[id]=" + + encodeURIComponent(item.id)].concat(item.children.map(arguments.callee)); + }).flatten().join('&'); + } else { + return Sortable.sequence(element, arguments[1]).map( function(item) { + return name + "[]=" + encodeURIComponent(item); + }).join('&'); + } + } +}; + +// Returns true if child is contained within element +Element.isParent = function(child, element) { + if (!child.parentNode || child == element) return false; + if (child.parentNode == element) return true; + return Element.isParent(child.parentNode, element); +}; + +Element.findChildren = function(element, only, recursive, tagName) { + if(!element.hasChildNodes()) return null; + tagName = tagName.toUpperCase(); + if(only) only = [only].flatten(); + var elements = []; + $A(element.childNodes).each( function(e) { + if(e.tagName && e.tagName.toUpperCase()==tagName && + (!only || (Element.classNames(e).detect(function(v) { return only.include(v) })))) + elements.push(e); + if(recursive) { + var grandchildren = Element.findChildren(e, only, recursive, tagName); + if(grandchildren) elements.push(grandchildren); + } + }); + + return (elements.length>0 ? elements.flatten() : []); +}; + +Element.offsetSize = function (element, type) { + return element['offset' + ((type=='vertical' || type=='height') ? 'Height' : 'Width')]; +}; \ No newline at end of file diff --git a/presidents/public/javascripts/effects.js b/presidents/public/javascripts/effects.js new file mode 100644 index 0000000..5a639d2 --- /dev/null +++ b/presidents/public/javascripts/effects.js @@ -0,0 +1,1128 @@ +// Copyright (c) 2005-2008 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) +// Contributors: +// Justin Palmer (http://encytemedia.com/) +// Mark Pilgrim (http://diveintomark.org/) +// Martin Bialasinki +// +// script.aculo.us is freely distributable under the terms of an MIT-style license. +// For details, see the script.aculo.us web site: http://script.aculo.us/ + +// converts rgb() and #xxx to #xxxxxx format, +// returns self (or first argument) if not convertable +String.prototype.parseColor = function() { + var color = '#'; + if (this.slice(0,4) == 'rgb(') { + var cols = this.slice(4,this.length-1).split(','); + var i=0; do { color += parseInt(cols[i]).toColorPart() } while (++i<3); + } else { + if (this.slice(0,1) == '#') { + if (this.length==4) for(var i=1;i<4;i++) color += (this.charAt(i) + this.charAt(i)).toLowerCase(); + if (this.length==7) color = this.toLowerCase(); + } + } + return (color.length==7 ? color : (arguments[0] || this)); +}; + +/*--------------------------------------------------------------------------*/ + +Element.collectTextNodes = function(element) { + return $A($(element).childNodes).collect( function(node) { + return (node.nodeType==3 ? node.nodeValue : + (node.hasChildNodes() ? Element.collectTextNodes(node) : '')); + }).flatten().join(''); +}; + +Element.collectTextNodesIgnoreClass = function(element, className) { + return $A($(element).childNodes).collect( function(node) { + return (node.nodeType==3 ? node.nodeValue : + ((node.hasChildNodes() && !Element.hasClassName(node,className)) ? + Element.collectTextNodesIgnoreClass(node, className) : '')); + }).flatten().join(''); +}; + +Element.setContentZoom = function(element, percent) { + element = $(element); + element.setStyle({fontSize: (percent/100) + 'em'}); + if (Prototype.Browser.WebKit) window.scrollBy(0,0); + return element; +}; + +Element.getInlineOpacity = function(element){ + return $(element).style.opacity || ''; +}; + +Element.forceRerendering = function(element) { + try { + element = $(element); + var n = document.createTextNode(' '); + element.appendChild(n); + element.removeChild(n); + } catch(e) { } +}; + +/*--------------------------------------------------------------------------*/ + +var Effect = { + _elementDoesNotExistError: { + name: 'ElementDoesNotExistError', + message: 'The specified DOM element does not exist, but is required for this effect to operate' + }, + Transitions: { + linear: Prototype.K, + sinoidal: function(pos) { + return (-Math.cos(pos*Math.PI)/2) + .5; + }, + reverse: function(pos) { + return 1-pos; + }, + flicker: function(pos) { + var pos = ((-Math.cos(pos*Math.PI)/4) + .75) + Math.random()/4; + return pos > 1 ? 1 : pos; + }, + wobble: function(pos) { + return (-Math.cos(pos*Math.PI*(9*pos))/2) + .5; + }, + pulse: function(pos, pulses) { + return (-Math.cos((pos*((pulses||5)-.5)*2)*Math.PI)/2) + .5; + }, + spring: function(pos) { + return 1 - (Math.cos(pos * 4.5 * Math.PI) * Math.exp(-pos * 6)); + }, + none: function(pos) { + return 0; + }, + full: function(pos) { + return 1; + } + }, + DefaultOptions: { + duration: 1.0, // seconds + fps: 100, // 100= assume 66fps max. + sync: false, // true for combining + from: 0.0, + to: 1.0, + delay: 0.0, + queue: 'parallel' + }, + tagifyText: function(element) { + var tagifyStyle = 'position:relative'; + if (Prototype.Browser.IE) tagifyStyle += ';zoom:1'; + + element = $(element); + $A(element.childNodes).each( function(child) { + if (child.nodeType==3) { + child.nodeValue.toArray().each( function(character) { + element.insertBefore( + new Element('span', {style: tagifyStyle}).update( + character == ' ' ? String.fromCharCode(160) : character), + child); + }); + Element.remove(child); + } + }); + }, + multiple: function(element, effect) { + var elements; + if (((typeof element == 'object') || + Object.isFunction(element)) && + (element.length)) + elements = element; + else + elements = $(element).childNodes; + + var options = Object.extend({ + speed: 0.1, + delay: 0.0 + }, arguments[2] || { }); + var masterDelay = options.delay; + + $A(elements).each( function(element, index) { + new effect(element, Object.extend(options, { delay: index * options.speed + masterDelay })); + }); + }, + PAIRS: { + 'slide': ['SlideDown','SlideUp'], + 'blind': ['BlindDown','BlindUp'], + 'appear': ['Appear','Fade'] + }, + toggle: function(element, effect) { + element = $(element); + effect = (effect || 'appear').toLowerCase(); + var options = Object.extend({ + queue: { position:'end', scope:(element.id || 'global'), limit: 1 } + }, arguments[2] || { }); + Effect[element.visible() ? + Effect.PAIRS[effect][1] : Effect.PAIRS[effect][0]](element, options); + } +}; + +Effect.DefaultOptions.transition = Effect.Transitions.sinoidal; + +/* ------------- core effects ------------- */ + +Effect.ScopedQueue = Class.create(Enumerable, { + initialize: function() { + this.effects = []; + this.interval = null; + }, + _each: function(iterator) { + this.effects._each(iterator); + }, + add: function(effect) { + var timestamp = new Date().getTime(); + + var position = Object.isString(effect.options.queue) ? + effect.options.queue : effect.options.queue.position; + + switch(position) { + case 'front': + // move unstarted effects after this effect + this.effects.findAll(function(e){ return e.state=='idle' }).each( function(e) { + e.startOn += effect.finishOn; + e.finishOn += effect.finishOn; + }); + break; + case 'with-last': + timestamp = this.effects.pluck('startOn').max() || timestamp; + break; + case 'end': + // start effect after last queued effect has finished + timestamp = this.effects.pluck('finishOn').max() || timestamp; + break; + } + + effect.startOn += timestamp; + effect.finishOn += timestamp; + + if (!effect.options.queue.limit || (this.effects.length < effect.options.queue.limit)) + this.effects.push(effect); + + if (!this.interval) + this.interval = setInterval(this.loop.bind(this), 15); + }, + remove: function(effect) { + this.effects = this.effects.reject(function(e) { return e==effect }); + if (this.effects.length == 0) { + clearInterval(this.interval); + this.interval = null; + } + }, + loop: function() { + var timePos = new Date().getTime(); + for(var i=0, len=this.effects.length;i= this.startOn) { + if (timePos >= this.finishOn) { + this.render(1.0); + this.cancel(); + this.event('beforeFinish'); + if (this.finish) this.finish(); + this.event('afterFinish'); + return; + } + var pos = (timePos - this.startOn) / this.totalTime, + frame = (pos * this.totalFrames).round(); + if (frame > this.currentFrame) { + this.render(pos); + this.currentFrame = frame; + } + } + }, + cancel: function() { + if (!this.options.sync) + Effect.Queues.get(Object.isString(this.options.queue) ? + 'global' : this.options.queue.scope).remove(this); + this.state = 'finished'; + }, + event: function(eventName) { + if (this.options[eventName + 'Internal']) this.options[eventName + 'Internal'](this); + if (this.options[eventName]) this.options[eventName](this); + }, + inspect: function() { + var data = $H(); + for(property in this) + if (!Object.isFunction(this[property])) data.set(property, this[property]); + return '#'; + } +}); + +Effect.Parallel = Class.create(Effect.Base, { + initialize: function(effects) { + this.effects = effects || []; + this.start(arguments[1]); + }, + update: function(position) { + this.effects.invoke('render', position); + }, + finish: function(position) { + this.effects.each( function(effect) { + effect.render(1.0); + effect.cancel(); + effect.event('beforeFinish'); + if (effect.finish) effect.finish(position); + effect.event('afterFinish'); + }); + } +}); + +Effect.Tween = Class.create(Effect.Base, { + initialize: function(object, from, to) { + object = Object.isString(object) ? $(object) : object; + var args = $A(arguments), method = args.last(), + options = args.length == 5 ? args[3] : null; + this.method = Object.isFunction(method) ? method.bind(object) : + Object.isFunction(object[method]) ? object[method].bind(object) : + function(value) { object[method] = value }; + this.start(Object.extend({ from: from, to: to }, options || { })); + }, + update: function(position) { + this.method(position); + } +}); + +Effect.Event = Class.create(Effect.Base, { + initialize: function() { + this.start(Object.extend({ duration: 0 }, arguments[0] || { })); + }, + update: Prototype.emptyFunction +}); + +Effect.Opacity = Class.create(Effect.Base, { + initialize: function(element) { + this.element = $(element); + if (!this.element) throw(Effect._elementDoesNotExistError); + // make this work on IE on elements without 'layout' + if (Prototype.Browser.IE && (!this.element.currentStyle.hasLayout)) + this.element.setStyle({zoom: 1}); + var options = Object.extend({ + from: this.element.getOpacity() || 0.0, + to: 1.0 + }, arguments[1] || { }); + this.start(options); + }, + update: function(position) { + this.element.setOpacity(position); + } +}); + +Effect.Move = Class.create(Effect.Base, { + initialize: function(element) { + this.element = $(element); + if (!this.element) throw(Effect._elementDoesNotExistError); + var options = Object.extend({ + x: 0, + y: 0, + mode: 'relative' + }, arguments[1] || { }); + this.start(options); + }, + setup: function() { + this.element.makePositioned(); + this.originalLeft = parseFloat(this.element.getStyle('left') || '0'); + this.originalTop = parseFloat(this.element.getStyle('top') || '0'); + if (this.options.mode == 'absolute') { + this.options.x = this.options.x - this.originalLeft; + this.options.y = this.options.y - this.originalTop; + } + }, + update: function(position) { + this.element.setStyle({ + left: (this.options.x * position + this.originalLeft).round() + 'px', + top: (this.options.y * position + this.originalTop).round() + 'px' + }); + } +}); + +// for backwards compatibility +Effect.MoveBy = function(element, toTop, toLeft) { + return new Effect.Move(element, + Object.extend({ x: toLeft, y: toTop }, arguments[3] || { })); +}; + +Effect.Scale = Class.create(Effect.Base, { + initialize: function(element, percent) { + this.element = $(element); + if (!this.element) throw(Effect._elementDoesNotExistError); + var options = Object.extend({ + scaleX: true, + scaleY: true, + scaleContent: true, + scaleFromCenter: false, + scaleMode: 'box', // 'box' or 'contents' or { } with provided values + scaleFrom: 100.0, + scaleTo: percent + }, arguments[2] || { }); + this.start(options); + }, + setup: function() { + this.restoreAfterFinish = this.options.restoreAfterFinish || false; + this.elementPositioning = this.element.getStyle('position'); + + this.originalStyle = { }; + ['top','left','width','height','fontSize'].each( function(k) { + this.originalStyle[k] = this.element.style[k]; + }.bind(this)); + + this.originalTop = this.element.offsetTop; + this.originalLeft = this.element.offsetLeft; + + var fontSize = this.element.getStyle('font-size') || '100%'; + ['em','px','%','pt'].each( function(fontSizeType) { + if (fontSize.indexOf(fontSizeType)>0) { + this.fontSize = parseFloat(fontSize); + this.fontSizeType = fontSizeType; + } + }.bind(this)); + + this.factor = (this.options.scaleTo - this.options.scaleFrom)/100; + + this.dims = null; + if (this.options.scaleMode=='box') + this.dims = [this.element.offsetHeight, this.element.offsetWidth]; + if (/^content/.test(this.options.scaleMode)) + this.dims = [this.element.scrollHeight, this.element.scrollWidth]; + if (!this.dims) + this.dims = [this.options.scaleMode.originalHeight, + this.options.scaleMode.originalWidth]; + }, + update: function(position) { + var currentScale = (this.options.scaleFrom/100.0) + (this.factor * position); + if (this.options.scaleContent && this.fontSize) + this.element.setStyle({fontSize: this.fontSize * currentScale + this.fontSizeType }); + this.setDimensions(this.dims[0] * currentScale, this.dims[1] * currentScale); + }, + finish: function(position) { + if (this.restoreAfterFinish) this.element.setStyle(this.originalStyle); + }, + setDimensions: function(height, width) { + var d = { }; + if (this.options.scaleX) d.width = width.round() + 'px'; + if (this.options.scaleY) d.height = height.round() + 'px'; + if (this.options.scaleFromCenter) { + var topd = (height - this.dims[0])/2; + var leftd = (width - this.dims[1])/2; + if (this.elementPositioning == 'absolute') { + if (this.options.scaleY) d.top = this.originalTop-topd + 'px'; + if (this.options.scaleX) d.left = this.originalLeft-leftd + 'px'; + } else { + if (this.options.scaleY) d.top = -topd + 'px'; + if (this.options.scaleX) d.left = -leftd + 'px'; + } + } + this.element.setStyle(d); + } +}); + +Effect.Highlight = Class.create(Effect.Base, { + initialize: function(element) { + this.element = $(element); + if (!this.element) throw(Effect._elementDoesNotExistError); + var options = Object.extend({ startcolor: '#ffff99' }, arguments[1] || { }); + this.start(options); + }, + setup: function() { + // Prevent executing on elements not in the layout flow + if (this.element.getStyle('display')=='none') { this.cancel(); return; } + // Disable background image during the effect + this.oldStyle = { }; + if (!this.options.keepBackgroundImage) { + this.oldStyle.backgroundImage = this.element.getStyle('background-image'); + this.element.setStyle({backgroundImage: 'none'}); + } + if (!this.options.endcolor) + this.options.endcolor = this.element.getStyle('background-color').parseColor('#ffffff'); + if (!this.options.restorecolor) + this.options.restorecolor = this.element.getStyle('background-color'); + // init color calculations + this._base = $R(0,2).map(function(i){ return parseInt(this.options.startcolor.slice(i*2+1,i*2+3),16) }.bind(this)); + this._delta = $R(0,2).map(function(i){ return parseInt(this.options.endcolor.slice(i*2+1,i*2+3),16)-this._base[i] }.bind(this)); + }, + update: function(position) { + this.element.setStyle({backgroundColor: $R(0,2).inject('#',function(m,v,i){ + return m+((this._base[i]+(this._delta[i]*position)).round().toColorPart()); }.bind(this)) }); + }, + finish: function() { + this.element.setStyle(Object.extend(this.oldStyle, { + backgroundColor: this.options.restorecolor + })); + } +}); + +Effect.ScrollTo = function(element) { + var options = arguments[1] || { }, + scrollOffsets = document.viewport.getScrollOffsets(), + elementOffsets = $(element).cumulativeOffset(); + + if (options.offset) elementOffsets[1] += options.offset; + + return new Effect.Tween(null, + scrollOffsets.top, + elementOffsets[1], + options, + function(p){ scrollTo(scrollOffsets.left, p.round()); } + ); +}; + +/* ------------- combination effects ------------- */ + +Effect.Fade = function(element) { + element = $(element); + var oldOpacity = element.getInlineOpacity(); + var options = Object.extend({ + from: element.getOpacity() || 1.0, + to: 0.0, + afterFinishInternal: function(effect) { + if (effect.options.to!=0) return; + effect.element.hide().setStyle({opacity: oldOpacity}); + } + }, arguments[1] || { }); + return new Effect.Opacity(element,options); +}; + +Effect.Appear = function(element) { + element = $(element); + var options = Object.extend({ + from: (element.getStyle('display') == 'none' ? 0.0 : element.getOpacity() || 0.0), + to: 1.0, + // force Safari to render floated elements properly + afterFinishInternal: function(effect) { + effect.element.forceRerendering(); + }, + beforeSetup: function(effect) { + effect.element.setOpacity(effect.options.from).show(); + }}, arguments[1] || { }); + return new Effect.Opacity(element,options); +}; + +Effect.Puff = function(element) { + element = $(element); + var oldStyle = { + opacity: element.getInlineOpacity(), + position: element.getStyle('position'), + top: element.style.top, + left: element.style.left, + width: element.style.width, + height: element.style.height + }; + return new Effect.Parallel( + [ new Effect.Scale(element, 200, + { sync: true, scaleFromCenter: true, scaleContent: true, restoreAfterFinish: true }), + new Effect.Opacity(element, { sync: true, to: 0.0 } ) ], + Object.extend({ duration: 1.0, + beforeSetupInternal: function(effect) { + Position.absolutize(effect.effects[0].element); + }, + afterFinishInternal: function(effect) { + effect.effects[0].element.hide().setStyle(oldStyle); } + }, arguments[1] || { }) + ); +}; + +Effect.BlindUp = function(element) { + element = $(element); + element.makeClipping(); + return new Effect.Scale(element, 0, + Object.extend({ scaleContent: false, + scaleX: false, + restoreAfterFinish: true, + afterFinishInternal: function(effect) { + effect.element.hide().undoClipping(); + } + }, arguments[1] || { }) + ); +}; + +Effect.BlindDown = function(element) { + element = $(element); + var elementDimensions = element.getDimensions(); + return new Effect.Scale(element, 100, Object.extend({ + scaleContent: false, + scaleX: false, + scaleFrom: 0, + scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width}, + restoreAfterFinish: true, + afterSetup: function(effect) { + effect.element.makeClipping().setStyle({height: '0px'}).show(); + }, + afterFinishInternal: function(effect) { + effect.element.undoClipping(); + } + }, arguments[1] || { })); +}; + +Effect.SwitchOff = function(element) { + element = $(element); + var oldOpacity = element.getInlineOpacity(); + return new Effect.Appear(element, Object.extend({ + duration: 0.4, + from: 0, + transition: Effect.Transitions.flicker, + afterFinishInternal: function(effect) { + new Effect.Scale(effect.element, 1, { + duration: 0.3, scaleFromCenter: true, + scaleX: false, scaleContent: false, restoreAfterFinish: true, + beforeSetup: function(effect) { + effect.element.makePositioned().makeClipping(); + }, + afterFinishInternal: function(effect) { + effect.element.hide().undoClipping().undoPositioned().setStyle({opacity: oldOpacity}); + } + }); + } + }, arguments[1] || { })); +}; + +Effect.DropOut = function(element) { + element = $(element); + var oldStyle = { + top: element.getStyle('top'), + left: element.getStyle('left'), + opacity: element.getInlineOpacity() }; + return new Effect.Parallel( + [ new Effect.Move(element, {x: 0, y: 100, sync: true }), + new Effect.Opacity(element, { sync: true, to: 0.0 }) ], + Object.extend( + { duration: 0.5, + beforeSetup: function(effect) { + effect.effects[0].element.makePositioned(); + }, + afterFinishInternal: function(effect) { + effect.effects[0].element.hide().undoPositioned().setStyle(oldStyle); + } + }, arguments[1] || { })); +}; + +Effect.Shake = function(element) { + element = $(element); + var options = Object.extend({ + distance: 20, + duration: 0.5 + }, arguments[1] || {}); + var distance = parseFloat(options.distance); + var split = parseFloat(options.duration) / 10.0; + var oldStyle = { + top: element.getStyle('top'), + left: element.getStyle('left') }; + return new Effect.Move(element, + { x: distance, y: 0, duration: split, afterFinishInternal: function(effect) { + new Effect.Move(effect.element, + { x: -distance*2, y: 0, duration: split*2, afterFinishInternal: function(effect) { + new Effect.Move(effect.element, + { x: distance*2, y: 0, duration: split*2, afterFinishInternal: function(effect) { + new Effect.Move(effect.element, + { x: -distance*2, y: 0, duration: split*2, afterFinishInternal: function(effect) { + new Effect.Move(effect.element, + { x: distance*2, y: 0, duration: split*2, afterFinishInternal: function(effect) { + new Effect.Move(effect.element, + { x: -distance, y: 0, duration: split, afterFinishInternal: function(effect) { + effect.element.undoPositioned().setStyle(oldStyle); + }}); }}); }}); }}); }}); }}); +}; + +Effect.SlideDown = function(element) { + element = $(element).cleanWhitespace(); + // SlideDown need to have the content of the element wrapped in a container element with fixed height! + var oldInnerBottom = element.down().getStyle('bottom'); + var elementDimensions = element.getDimensions(); + return new Effect.Scale(element, 100, Object.extend({ + scaleContent: false, + scaleX: false, + scaleFrom: window.opera ? 0 : 1, + scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width}, + restoreAfterFinish: true, + afterSetup: function(effect) { + effect.element.makePositioned(); + effect.element.down().makePositioned(); + if (window.opera) effect.element.setStyle({top: ''}); + effect.element.makeClipping().setStyle({height: '0px'}).show(); + }, + afterUpdateInternal: function(effect) { + effect.element.down().setStyle({bottom: + (effect.dims[0] - effect.element.clientHeight) + 'px' }); + }, + afterFinishInternal: function(effect) { + effect.element.undoClipping().undoPositioned(); + effect.element.down().undoPositioned().setStyle({bottom: oldInnerBottom}); } + }, arguments[1] || { }) + ); +}; + +Effect.SlideUp = function(element) { + element = $(element).cleanWhitespace(); + var oldInnerBottom = element.down().getStyle('bottom'); + var elementDimensions = element.getDimensions(); + return new Effect.Scale(element, window.opera ? 0 : 1, + Object.extend({ scaleContent: false, + scaleX: false, + scaleMode: 'box', + scaleFrom: 100, + scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width}, + restoreAfterFinish: true, + afterSetup: function(effect) { + effect.element.makePositioned(); + effect.element.down().makePositioned(); + if (window.opera) effect.element.setStyle({top: ''}); + effect.element.makeClipping().show(); + }, + afterUpdateInternal: function(effect) { + effect.element.down().setStyle({bottom: + (effect.dims[0] - effect.element.clientHeight) + 'px' }); + }, + afterFinishInternal: function(effect) { + effect.element.hide().undoClipping().undoPositioned(); + effect.element.down().undoPositioned().setStyle({bottom: oldInnerBottom}); + } + }, arguments[1] || { }) + ); +}; + +// Bug in opera makes the TD containing this element expand for a instance after finish +Effect.Squish = function(element) { + return new Effect.Scale(element, window.opera ? 1 : 0, { + restoreAfterFinish: true, + beforeSetup: function(effect) { + effect.element.makeClipping(); + }, + afterFinishInternal: function(effect) { + effect.element.hide().undoClipping(); + } + }); +}; + +Effect.Grow = function(element) { + element = $(element); + var options = Object.extend({ + direction: 'center', + moveTransition: Effect.Transitions.sinoidal, + scaleTransition: Effect.Transitions.sinoidal, + opacityTransition: Effect.Transitions.full + }, arguments[1] || { }); + var oldStyle = { + top: element.style.top, + left: element.style.left, + height: element.style.height, + width: element.style.width, + opacity: element.getInlineOpacity() }; + + var dims = element.getDimensions(); + var initialMoveX, initialMoveY; + var moveX, moveY; + + switch (options.direction) { + case 'top-left': + initialMoveX = initialMoveY = moveX = moveY = 0; + break; + case 'top-right': + initialMoveX = dims.width; + initialMoveY = moveY = 0; + moveX = -dims.width; + break; + case 'bottom-left': + initialMoveX = moveX = 0; + initialMoveY = dims.height; + moveY = -dims.height; + break; + case 'bottom-right': + initialMoveX = dims.width; + initialMoveY = dims.height; + moveX = -dims.width; + moveY = -dims.height; + break; + case 'center': + initialMoveX = dims.width / 2; + initialMoveY = dims.height / 2; + moveX = -dims.width / 2; + moveY = -dims.height / 2; + break; + } + + return new Effect.Move(element, { + x: initialMoveX, + y: initialMoveY, + duration: 0.01, + beforeSetup: function(effect) { + effect.element.hide().makeClipping().makePositioned(); + }, + afterFinishInternal: function(effect) { + new Effect.Parallel( + [ new Effect.Opacity(effect.element, { sync: true, to: 1.0, from: 0.0, transition: options.opacityTransition }), + new Effect.Move(effect.element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition }), + new Effect.Scale(effect.element, 100, { + scaleMode: { originalHeight: dims.height, originalWidth: dims.width }, + sync: true, scaleFrom: window.opera ? 1 : 0, transition: options.scaleTransition, restoreAfterFinish: true}) + ], Object.extend({ + beforeSetup: function(effect) { + effect.effects[0].element.setStyle({height: '0px'}).show(); + }, + afterFinishInternal: function(effect) { + effect.effects[0].element.undoClipping().undoPositioned().setStyle(oldStyle); + } + }, options) + ); + } + }); +}; + +Effect.Shrink = function(element) { + element = $(element); + var options = Object.extend({ + direction: 'center', + moveTransition: Effect.Transitions.sinoidal, + scaleTransition: Effect.Transitions.sinoidal, + opacityTransition: Effect.Transitions.none + }, arguments[1] || { }); + var oldStyle = { + top: element.style.top, + left: element.style.left, + height: element.style.height, + width: element.style.width, + opacity: element.getInlineOpacity() }; + + var dims = element.getDimensions(); + var moveX, moveY; + + switch (options.direction) { + case 'top-left': + moveX = moveY = 0; + break; + case 'top-right': + moveX = dims.width; + moveY = 0; + break; + case 'bottom-left': + moveX = 0; + moveY = dims.height; + break; + case 'bottom-right': + moveX = dims.width; + moveY = dims.height; + break; + case 'center': + moveX = dims.width / 2; + moveY = dims.height / 2; + break; + } + + return new Effect.Parallel( + [ new Effect.Opacity(element, { sync: true, to: 0.0, from: 1.0, transition: options.opacityTransition }), + new Effect.Scale(element, window.opera ? 1 : 0, { sync: true, transition: options.scaleTransition, restoreAfterFinish: true}), + new Effect.Move(element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition }) + ], Object.extend({ + beforeStartInternal: function(effect) { + effect.effects[0].element.makePositioned().makeClipping(); + }, + afterFinishInternal: function(effect) { + effect.effects[0].element.hide().undoClipping().undoPositioned().setStyle(oldStyle); } + }, options) + ); +}; + +Effect.Pulsate = function(element) { + element = $(element); + var options = arguments[1] || { }, + oldOpacity = element.getInlineOpacity(), + transition = options.transition || Effect.Transitions.linear, + reverser = function(pos){ + return 1 - transition((-Math.cos((pos*(options.pulses||5)*2)*Math.PI)/2) + .5); + }; + + return new Effect.Opacity(element, + Object.extend(Object.extend({ duration: 2.0, from: 0, + afterFinishInternal: function(effect) { effect.element.setStyle({opacity: oldOpacity}); } + }, options), {transition: reverser})); +}; + +Effect.Fold = function(element) { + element = $(element); + var oldStyle = { + top: element.style.top, + left: element.style.left, + width: element.style.width, + height: element.style.height }; + element.makeClipping(); + return new Effect.Scale(element, 5, Object.extend({ + scaleContent: false, + scaleX: false, + afterFinishInternal: function(effect) { + new Effect.Scale(element, 1, { + scaleContent: false, + scaleY: false, + afterFinishInternal: function(effect) { + effect.element.hide().undoClipping().setStyle(oldStyle); + } }); + }}, arguments[1] || { })); +}; + +Effect.Morph = Class.create(Effect.Base, { + initialize: function(element) { + this.element = $(element); + if (!this.element) throw(Effect._elementDoesNotExistError); + var options = Object.extend({ + style: { } + }, arguments[1] || { }); + + if (!Object.isString(options.style)) this.style = $H(options.style); + else { + if (options.style.include(':')) + this.style = options.style.parseStyle(); + else { + this.element.addClassName(options.style); + this.style = $H(this.element.getStyles()); + this.element.removeClassName(options.style); + var css = this.element.getStyles(); + this.style = this.style.reject(function(style) { + return style.value == css[style.key]; + }); + options.afterFinishInternal = function(effect) { + effect.element.addClassName(effect.options.style); + effect.transforms.each(function(transform) { + effect.element.style[transform.style] = ''; + }); + }; + } + } + this.start(options); + }, + + setup: function(){ + function parseColor(color){ + if (!color || ['rgba(0, 0, 0, 0)','transparent'].include(color)) color = '#ffffff'; + color = color.parseColor(); + return $R(0,2).map(function(i){ + return parseInt( color.slice(i*2+1,i*2+3), 16 ); + }); + } + this.transforms = this.style.map(function(pair){ + var property = pair[0], value = pair[1], unit = null; + + if (value.parseColor('#zzzzzz') != '#zzzzzz') { + value = value.parseColor(); + unit = 'color'; + } else if (property == 'opacity') { + value = parseFloat(value); + if (Prototype.Browser.IE && (!this.element.currentStyle.hasLayout)) + this.element.setStyle({zoom: 1}); + } else if (Element.CSS_LENGTH.test(value)) { + var components = value.match(/^([\+\-]?[0-9\.]+)(.*)$/); + value = parseFloat(components[1]); + unit = (components.length == 3) ? components[2] : null; + } + + var originalValue = this.element.getStyle(property); + return { + style: property.camelize(), + originalValue: unit=='color' ? parseColor(originalValue) : parseFloat(originalValue || 0), + targetValue: unit=='color' ? parseColor(value) : value, + unit: unit + }; + }.bind(this)).reject(function(transform){ + return ( + (transform.originalValue == transform.targetValue) || + ( + transform.unit != 'color' && + (isNaN(transform.originalValue) || isNaN(transform.targetValue)) + ) + ); + }); + }, + update: function(position) { + var style = { }, transform, i = this.transforms.length; + while(i--) + style[(transform = this.transforms[i]).style] = + transform.unit=='color' ? '#'+ + (Math.round(transform.originalValue[0]+ + (transform.targetValue[0]-transform.originalValue[0])*position)).toColorPart() + + (Math.round(transform.originalValue[1]+ + (transform.targetValue[1]-transform.originalValue[1])*position)).toColorPart() + + (Math.round(transform.originalValue[2]+ + (transform.targetValue[2]-transform.originalValue[2])*position)).toColorPart() : + (transform.originalValue + + (transform.targetValue - transform.originalValue) * position).toFixed(3) + + (transform.unit === null ? '' : transform.unit); + this.element.setStyle(style, true); + } +}); + +Effect.Transform = Class.create({ + initialize: function(tracks){ + this.tracks = []; + this.options = arguments[1] || { }; + this.addTracks(tracks); + }, + addTracks: function(tracks){ + tracks.each(function(track){ + track = $H(track); + var data = track.values().first(); + this.tracks.push($H({ + ids: track.keys().first(), + effect: Effect.Morph, + options: { style: data } + })); + }.bind(this)); + return this; + }, + play: function(){ + return new Effect.Parallel( + this.tracks.map(function(track){ + var ids = track.get('ids'), effect = track.get('effect'), options = track.get('options'); + var elements = [$(ids) || $$(ids)].flatten(); + return elements.map(function(e){ return new effect(e, Object.extend({ sync:true }, options)) }); + }).flatten(), + this.options + ); + } +}); + +Element.CSS_PROPERTIES = $w( + 'backgroundColor backgroundPosition borderBottomColor borderBottomStyle ' + + 'borderBottomWidth borderLeftColor borderLeftStyle borderLeftWidth ' + + 'borderRightColor borderRightStyle borderRightWidth borderSpacing ' + + 'borderTopColor borderTopStyle borderTopWidth bottom clip color ' + + 'fontSize fontWeight height left letterSpacing lineHeight ' + + 'marginBottom marginLeft marginRight marginTop markerOffset maxHeight '+ + 'maxWidth minHeight minWidth opacity outlineColor outlineOffset ' + + 'outlineWidth paddingBottom paddingLeft paddingRight paddingTop ' + + 'right textIndent top width wordSpacing zIndex'); + +Element.CSS_LENGTH = /^(([\+\-]?[0-9\.]+)(em|ex|px|in|cm|mm|pt|pc|\%))|0$/; + +String.__parseStyleElement = document.createElement('div'); +String.prototype.parseStyle = function(){ + var style, styleRules = $H(); + if (Prototype.Browser.WebKit) + style = new Element('div',{style:this}).style; + else { + String.__parseStyleElement.innerHTML = '
    '; + style = String.__parseStyleElement.childNodes[0].style; + } + + Element.CSS_PROPERTIES.each(function(property){ + if (style[property]) styleRules.set(property, style[property]); + }); + + if (Prototype.Browser.IE && this.include('opacity')) + styleRules.set('opacity', this.match(/opacity:\s*((?:0|1)?(?:\.\d*)?)/)[1]); + + return styleRules; +}; + +if (document.defaultView && document.defaultView.getComputedStyle) { + Element.getStyles = function(element) { + var css = document.defaultView.getComputedStyle($(element), null); + return Element.CSS_PROPERTIES.inject({ }, function(styles, property) { + styles[property] = css[property]; + return styles; + }); + }; +} else { + Element.getStyles = function(element) { + element = $(element); + var css = element.currentStyle, styles; + styles = Element.CSS_PROPERTIES.inject({ }, function(results, property) { + results[property] = css[property]; + return results; + }); + if (!styles.opacity) styles.opacity = element.getOpacity(); + return styles; + }; +} + +Effect.Methods = { + morph: function(element, style) { + element = $(element); + new Effect.Morph(element, Object.extend({ style: style }, arguments[2] || { })); + return element; + }, + visualEffect: function(element, effect, options) { + element = $(element); + var s = effect.dasherize().camelize(), klass = s.charAt(0).toUpperCase() + s.substring(1); + new Effect[klass](element, options); + return element; + }, + highlight: function(element, options) { + element = $(element); + new Effect.Highlight(element, options); + return element; + } +}; + +$w('fade appear grow shrink fold blindUp blindDown slideUp slideDown '+ + 'pulsate shake puff squish switchOff dropOut').each( + function(effect) { + Effect.Methods[effect] = function(element, options){ + element = $(element); + Effect[effect.charAt(0).toUpperCase() + effect.substring(1)](element, options); + return element; + }; + } +); + +$w('getInlineOpacity forceRerendering setContentZoom collectTextNodes collectTextNodesIgnoreClass getStyles').each( + function(f) { Effect.Methods[f] = Element[f]; } +); + +Element.addMethods(Effect.Methods); \ No newline at end of file diff --git a/presidents/public/javascripts/prototype.js b/presidents/public/javascripts/prototype.js new file mode 100644 index 0000000..dfe8ab4 --- /dev/null +++ b/presidents/public/javascripts/prototype.js @@ -0,0 +1,4320 @@ +/* Prototype JavaScript framework, version 1.6.0.3 + * (c) 2005-2008 Sam Stephenson + * + * Prototype is freely distributable under the terms of an MIT-style license. + * For details, see the Prototype web site: http://www.prototypejs.org/ + * + *--------------------------------------------------------------------------*/ + +var Prototype = { + Version: '1.6.0.3', + + Browser: { + IE: !!(window.attachEvent && + navigator.userAgent.indexOf('Opera') === -1), + Opera: navigator.userAgent.indexOf('Opera') > -1, + WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1, + Gecko: navigator.userAgent.indexOf('Gecko') > -1 && + navigator.userAgent.indexOf('KHTML') === -1, + MobileSafari: !!navigator.userAgent.match(/Apple.*Mobile.*Safari/) + }, + + BrowserFeatures: { + XPath: !!document.evaluate, + SelectorsAPI: !!document.querySelector, + ElementExtensions: !!window.HTMLElement, + SpecificElementExtensions: + document.createElement('div')['__proto__'] && + document.createElement('div')['__proto__'] !== + document.createElement('form')['__proto__'] + }, + + ScriptFragment: ']*>([\\S\\s]*?)<\/script>', + JSONFilter: /^\/\*-secure-([\s\S]*)\*\/\s*$/, + + emptyFunction: function() { }, + K: function(x) { return x } +}; + +if (Prototype.Browser.MobileSafari) + Prototype.BrowserFeatures.SpecificElementExtensions = false; + + +/* Based on Alex Arnell's inheritance implementation. */ +var Class = { + create: function() { + var parent = null, properties = $A(arguments); + if (Object.isFunction(properties[0])) + parent = properties.shift(); + + function klass() { + this.initialize.apply(this, arguments); + } + + Object.extend(klass, Class.Methods); + klass.superclass = parent; + klass.subclasses = []; + + if (parent) { + var subclass = function() { }; + subclass.prototype = parent.prototype; + klass.prototype = new subclass; + parent.subclasses.push(klass); + } + + for (var i = 0; i < properties.length; i++) + klass.addMethods(properties[i]); + + if (!klass.prototype.initialize) + klass.prototype.initialize = Prototype.emptyFunction; + + klass.prototype.constructor = klass; + + return klass; + } +}; + +Class.Methods = { + addMethods: function(source) { + var ancestor = this.superclass && this.superclass.prototype; + var properties = Object.keys(source); + + if (!Object.keys({ toString: true }).length) + properties.push("toString", "valueOf"); + + for (var i = 0, length = properties.length; i < length; i++) { + var property = properties[i], value = source[property]; + if (ancestor && Object.isFunction(value) && + value.argumentNames().first() == "$super") { + var method = value; + value = (function(m) { + return function() { return ancestor[m].apply(this, arguments) }; + })(property).wrap(method); + + value.valueOf = method.valueOf.bind(method); + value.toString = method.toString.bind(method); + } + this.prototype[property] = value; + } + + return this; + } +}; + +var Abstract = { }; + +Object.extend = function(destination, source) { + for (var property in source) + destination[property] = source[property]; + return destination; +}; + +Object.extend(Object, { + inspect: function(object) { + try { + if (Object.isUndefined(object)) return 'undefined'; + if (object === null) return 'null'; + return object.inspect ? object.inspect() : String(object); + } catch (e) { + if (e instanceof RangeError) return '...'; + throw e; + } + }, + + toJSON: function(object) { + var type = typeof object; + switch (type) { + case 'undefined': + case 'function': + case 'unknown': return; + case 'boolean': return object.toString(); + } + + if (object === null) return 'null'; + if (object.toJSON) return object.toJSON(); + if (Object.isElement(object)) return; + + var results = []; + for (var property in object) { + var value = Object.toJSON(object[property]); + if (!Object.isUndefined(value)) + results.push(property.toJSON() + ': ' + value); + } + + return '{' + results.join(', ') + '}'; + }, + + toQueryString: function(object) { + return $H(object).toQueryString(); + }, + + toHTML: function(object) { + return object && object.toHTML ? object.toHTML() : String.interpret(object); + }, + + keys: function(object) { + var keys = []; + for (var property in object) + keys.push(property); + return keys; + }, + + values: function(object) { + var values = []; + for (var property in object) + values.push(object[property]); + return values; + }, + + clone: function(object) { + return Object.extend({ }, object); + }, + + isElement: function(object) { + return !!(object && object.nodeType == 1); + }, + + isArray: function(object) { + return object != null && typeof object == "object" && + 'splice' in object && 'join' in object; + }, + + isHash: function(object) { + return object instanceof Hash; + }, + + isFunction: function(object) { + return typeof object == "function"; + }, + + isString: function(object) { + return typeof object == "string"; + }, + + isNumber: function(object) { + return typeof object == "number"; + }, + + isUndefined: function(object) { + return typeof object == "undefined"; + } +}); + +Object.extend(Function.prototype, { + argumentNames: function() { + var names = this.toString().match(/^[\s\(]*function[^(]*\(([^\)]*)\)/)[1] + .replace(/\s+/g, '').split(','); + return names.length == 1 && !names[0] ? [] : names; + }, + + bind: function() { + if (arguments.length < 2 && Object.isUndefined(arguments[0])) return this; + var __method = this, args = $A(arguments), object = args.shift(); + return function() { + return __method.apply(object, args.concat($A(arguments))); + } + }, + + bindAsEventListener: function() { + var __method = this, args = $A(arguments), object = args.shift(); + return function(event) { + return __method.apply(object, [event || window.event].concat(args)); + } + }, + + curry: function() { + if (!arguments.length) return this; + var __method = this, args = $A(arguments); + return function() { + return __method.apply(this, args.concat($A(arguments))); + } + }, + + delay: function() { + var __method = this, args = $A(arguments), timeout = args.shift() * 1000; + return window.setTimeout(function() { + return __method.apply(__method, args); + }, timeout); + }, + + defer: function() { + var args = [0.01].concat($A(arguments)); + return this.delay.apply(this, args); + }, + + wrap: function(wrapper) { + var __method = this; + return function() { + return wrapper.apply(this, [__method.bind(this)].concat($A(arguments))); + } + }, + + methodize: function() { + if (this._methodized) return this._methodized; + var __method = this; + return this._methodized = function() { + return __method.apply(null, [this].concat($A(arguments))); + }; + } +}); + +Date.prototype.toJSON = function() { + return '"' + this.getUTCFullYear() + '-' + + (this.getUTCMonth() + 1).toPaddedString(2) + '-' + + this.getUTCDate().toPaddedString(2) + 'T' + + this.getUTCHours().toPaddedString(2) + ':' + + this.getUTCMinutes().toPaddedString(2) + ':' + + this.getUTCSeconds().toPaddedString(2) + 'Z"'; +}; + +var Try = { + these: function() { + var returnValue; + + for (var i = 0, length = arguments.length; i < length; i++) { + var lambda = arguments[i]; + try { + returnValue = lambda(); + break; + } catch (e) { } + } + + return returnValue; + } +}; + +RegExp.prototype.match = RegExp.prototype.test; + +RegExp.escape = function(str) { + return String(str).replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1'); +}; + +/*--------------------------------------------------------------------------*/ + +var PeriodicalExecuter = Class.create({ + initialize: function(callback, frequency) { + this.callback = callback; + this.frequency = frequency; + this.currentlyExecuting = false; + + this.registerCallback(); + }, + + registerCallback: function() { + this.timer = setInterval(this.onTimerEvent.bind(this), this.frequency * 1000); + }, + + execute: function() { + this.callback(this); + }, + + stop: function() { + if (!this.timer) return; + clearInterval(this.timer); + this.timer = null; + }, + + onTimerEvent: function() { + if (!this.currentlyExecuting) { + try { + this.currentlyExecuting = true; + this.execute(); + } finally { + this.currentlyExecuting = false; + } + } + } +}); +Object.extend(String, { + interpret: function(value) { + return value == null ? '' : String(value); + }, + specialChar: { + '\b': '\\b', + '\t': '\\t', + '\n': '\\n', + '\f': '\\f', + '\r': '\\r', + '\\': '\\\\' + } +}); + +Object.extend(String.prototype, { + gsub: function(pattern, replacement) { + var result = '', source = this, match; + replacement = arguments.callee.prepareReplacement(replacement); + + while (source.length > 0) { + if (match = source.match(pattern)) { + result += source.slice(0, match.index); + result += String.interpret(replacement(match)); + source = source.slice(match.index + match[0].length); + } else { + result += source, source = ''; + } + } + return result; + }, + + sub: function(pattern, replacement, count) { + replacement = this.gsub.prepareReplacement(replacement); + count = Object.isUndefined(count) ? 1 : count; + + return this.gsub(pattern, function(match) { + if (--count < 0) return match[0]; + return replacement(match); + }); + }, + + scan: function(pattern, iterator) { + this.gsub(pattern, iterator); + return String(this); + }, + + truncate: function(length, truncation) { + length = length || 30; + truncation = Object.isUndefined(truncation) ? '...' : truncation; + return this.length > length ? + this.slice(0, length - truncation.length) + truncation : String(this); + }, + + strip: function() { + return this.replace(/^\s+/, '').replace(/\s+$/, ''); + }, + + stripTags: function() { + return this.replace(/<\/?[^>]+>/gi, ''); + }, + + stripScripts: function() { + return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), ''); + }, + + extractScripts: function() { + var matchAll = new RegExp(Prototype.ScriptFragment, 'img'); + var matchOne = new RegExp(Prototype.ScriptFragment, 'im'); + return (this.match(matchAll) || []).map(function(scriptTag) { + return (scriptTag.match(matchOne) || ['', ''])[1]; + }); + }, + + evalScripts: function() { + return this.extractScripts().map(function(script) { return eval(script) }); + }, + + escapeHTML: function() { + var self = arguments.callee; + self.text.data = this; + return self.div.innerHTML; + }, + + unescapeHTML: function() { + var div = new Element('div'); + div.innerHTML = this.stripTags(); + return div.childNodes[0] ? (div.childNodes.length > 1 ? + $A(div.childNodes).inject('', function(memo, node) { return memo+node.nodeValue }) : + div.childNodes[0].nodeValue) : ''; + }, + + toQueryParams: function(separator) { + var match = this.strip().match(/([^?#]*)(#.*)?$/); + if (!match) return { }; + + return match[1].split(separator || '&').inject({ }, function(hash, pair) { + if ((pair = pair.split('='))[0]) { + var key = decodeURIComponent(pair.shift()); + var value = pair.length > 1 ? pair.join('=') : pair[0]; + if (value != undefined) value = decodeURIComponent(value); + + if (key in hash) { + if (!Object.isArray(hash[key])) hash[key] = [hash[key]]; + hash[key].push(value); + } + else hash[key] = value; + } + return hash; + }); + }, + + toArray: function() { + return this.split(''); + }, + + succ: function() { + return this.slice(0, this.length - 1) + + String.fromCharCode(this.charCodeAt(this.length - 1) + 1); + }, + + times: function(count) { + return count < 1 ? '' : new Array(count + 1).join(this); + }, + + camelize: function() { + var parts = this.split('-'), len = parts.length; + if (len == 1) return parts[0]; + + var camelized = this.charAt(0) == '-' + ? parts[0].charAt(0).toUpperCase() + parts[0].substring(1) + : parts[0]; + + for (var i = 1; i < len; i++) + camelized += parts[i].charAt(0).toUpperCase() + parts[i].substring(1); + + return camelized; + }, + + capitalize: function() { + return this.charAt(0).toUpperCase() + this.substring(1).toLowerCase(); + }, + + underscore: function() { + return this.gsub(/::/, '/').gsub(/([A-Z]+)([A-Z][a-z])/,'#{1}_#{2}').gsub(/([a-z\d])([A-Z])/,'#{1}_#{2}').gsub(/-/,'_').toLowerCase(); + }, + + dasherize: function() { + return this.gsub(/_/,'-'); + }, + + inspect: function(useDoubleQuotes) { + var escapedString = this.gsub(/[\x00-\x1f\\]/, function(match) { + var character = String.specialChar[match[0]]; + return character ? character : '\\u00' + match[0].charCodeAt().toPaddedString(2, 16); + }); + if (useDoubleQuotes) return '"' + escapedString.replace(/"/g, '\\"') + '"'; + return "'" + escapedString.replace(/'/g, '\\\'') + "'"; + }, + + toJSON: function() { + return this.inspect(true); + }, + + unfilterJSON: function(filter) { + return this.sub(filter || Prototype.JSONFilter, '#{1}'); + }, + + isJSON: function() { + var str = this; + if (str.blank()) return false; + str = this.replace(/\\./g, '@').replace(/"[^"\\\n\r]*"/g, ''); + return (/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(str); + }, + + evalJSON: function(sanitize) { + var json = this.unfilterJSON(); + try { + if (!sanitize || json.isJSON()) return eval('(' + json + ')'); + } catch (e) { } + throw new SyntaxError('Badly formed JSON string: ' + this.inspect()); + }, + + include: function(pattern) { + return this.indexOf(pattern) > -1; + }, + + startsWith: function(pattern) { + return this.indexOf(pattern) === 0; + }, + + endsWith: function(pattern) { + var d = this.length - pattern.length; + return d >= 0 && this.lastIndexOf(pattern) === d; + }, + + empty: function() { + return this == ''; + }, + + blank: function() { + return /^\s*$/.test(this); + }, + + interpolate: function(object, pattern) { + return new Template(this, pattern).evaluate(object); + } +}); + +if (Prototype.Browser.WebKit || Prototype.Browser.IE) Object.extend(String.prototype, { + escapeHTML: function() { + return this.replace(/&/g,'&').replace(//g,'>'); + }, + unescapeHTML: function() { + return this.stripTags().replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>'); + } +}); + +String.prototype.gsub.prepareReplacement = function(replacement) { + if (Object.isFunction(replacement)) return replacement; + var template = new Template(replacement); + return function(match) { return template.evaluate(match) }; +}; + +String.prototype.parseQuery = String.prototype.toQueryParams; + +Object.extend(String.prototype.escapeHTML, { + div: document.createElement('div'), + text: document.createTextNode('') +}); + +String.prototype.escapeHTML.div.appendChild(String.prototype.escapeHTML.text); + +var Template = Class.create({ + initialize: function(template, pattern) { + this.template = template.toString(); + this.pattern = pattern || Template.Pattern; + }, + + evaluate: function(object) { + if (Object.isFunction(object.toTemplateReplacements)) + object = object.toTemplateReplacements(); + + return this.template.gsub(this.pattern, function(match) { + if (object == null) return ''; + + var before = match[1] || ''; + if (before == '\\') return match[2]; + + var ctx = object, expr = match[3]; + var pattern = /^([^.[]+|\[((?:.*?[^\\])?)\])(\.|\[|$)/; + match = pattern.exec(expr); + if (match == null) return before; + + while (match != null) { + var comp = match[1].startsWith('[') ? match[2].gsub('\\\\]', ']') : match[1]; + ctx = ctx[comp]; + if (null == ctx || '' == match[3]) break; + expr = expr.substring('[' == match[3] ? match[1].length : match[0].length); + match = pattern.exec(expr); + } + + return before + String.interpret(ctx); + }); + } +}); +Template.Pattern = /(^|.|\r|\n)(#\{(.*?)\})/; + +var $break = { }; + +var Enumerable = { + each: function(iterator, context) { + var index = 0; + try { + this._each(function(value) { + iterator.call(context, value, index++); + }); + } catch (e) { + if (e != $break) throw e; + } + return this; + }, + + eachSlice: function(number, iterator, context) { + var index = -number, slices = [], array = this.toArray(); + if (number < 1) return array; + while ((index += number) < array.length) + slices.push(array.slice(index, index+number)); + return slices.collect(iterator, context); + }, + + all: function(iterator, context) { + iterator = iterator || Prototype.K; + var result = true; + this.each(function(value, index) { + result = result && !!iterator.call(context, value, index); + if (!result) throw $break; + }); + return result; + }, + + any: function(iterator, context) { + iterator = iterator || Prototype.K; + var result = false; + this.each(function(value, index) { + if (result = !!iterator.call(context, value, index)) + throw $break; + }); + return result; + }, + + collect: function(iterator, context) { + iterator = iterator || Prototype.K; + var results = []; + this.each(function(value, index) { + results.push(iterator.call(context, value, index)); + }); + return results; + }, + + detect: function(iterator, context) { + var result; + this.each(function(value, index) { + if (iterator.call(context, value, index)) { + result = value; + throw $break; + } + }); + return result; + }, + + findAll: function(iterator, context) { + var results = []; + this.each(function(value, index) { + if (iterator.call(context, value, index)) + results.push(value); + }); + return results; + }, + + grep: function(filter, iterator, context) { + iterator = iterator || Prototype.K; + var results = []; + + if (Object.isString(filter)) + filter = new RegExp(filter); + + this.each(function(value, index) { + if (filter.match(value)) + results.push(iterator.call(context, value, index)); + }); + return results; + }, + + include: function(object) { + if (Object.isFunction(this.indexOf)) + if (this.indexOf(object) != -1) return true; + + var found = false; + this.each(function(value) { + if (value == object) { + found = true; + throw $break; + } + }); + return found; + }, + + inGroupsOf: function(number, fillWith) { + fillWith = Object.isUndefined(fillWith) ? null : fillWith; + return this.eachSlice(number, function(slice) { + while(slice.length < number) slice.push(fillWith); + return slice; + }); + }, + + inject: function(memo, iterator, context) { + this.each(function(value, index) { + memo = iterator.call(context, memo, value, index); + }); + return memo; + }, + + invoke: function(method) { + var args = $A(arguments).slice(1); + return this.map(function(value) { + return value[method].apply(value, args); + }); + }, + + max: function(iterator, context) { + iterator = iterator || Prototype.K; + var result; + this.each(function(value, index) { + value = iterator.call(context, value, index); + if (result == null || value >= result) + result = value; + }); + return result; + }, + + min: function(iterator, context) { + iterator = iterator || Prototype.K; + var result; + this.each(function(value, index) { + value = iterator.call(context, value, index); + if (result == null || value < result) + result = value; + }); + return result; + }, + + partition: function(iterator, context) { + iterator = iterator || Prototype.K; + var trues = [], falses = []; + this.each(function(value, index) { + (iterator.call(context, value, index) ? + trues : falses).push(value); + }); + return [trues, falses]; + }, + + pluck: function(property) { + var results = []; + this.each(function(value) { + results.push(value[property]); + }); + return results; + }, + + reject: function(iterator, context) { + var results = []; + this.each(function(value, index) { + if (!iterator.call(context, value, index)) + results.push(value); + }); + return results; + }, + + sortBy: function(iterator, context) { + return this.map(function(value, index) { + return { + value: value, + criteria: iterator.call(context, value, index) + }; + }).sort(function(left, right) { + var a = left.criteria, b = right.criteria; + return a < b ? -1 : a > b ? 1 : 0; + }).pluck('value'); + }, + + toArray: function() { + return this.map(); + }, + + zip: function() { + var iterator = Prototype.K, args = $A(arguments); + if (Object.isFunction(args.last())) + iterator = args.pop(); + + var collections = [this].concat(args).map($A); + return this.map(function(value, index) { + return iterator(collections.pluck(index)); + }); + }, + + size: function() { + return this.toArray().length; + }, + + inspect: function() { + return '#'; + } +}; + +Object.extend(Enumerable, { + map: Enumerable.collect, + find: Enumerable.detect, + select: Enumerable.findAll, + filter: Enumerable.findAll, + member: Enumerable.include, + entries: Enumerable.toArray, + every: Enumerable.all, + some: Enumerable.any +}); +function $A(iterable) { + if (!iterable) return []; + if (iterable.toArray) return iterable.toArray(); + var length = iterable.length || 0, results = new Array(length); + while (length--) results[length] = iterable[length]; + return results; +} + +if (Prototype.Browser.WebKit) { + $A = function(iterable) { + if (!iterable) return []; + // In Safari, only use the `toArray` method if it's not a NodeList. + // A NodeList is a function, has an function `item` property, and a numeric + // `length` property. Adapted from Google Doctype. + if (!(typeof iterable === 'function' && typeof iterable.length === + 'number' && typeof iterable.item === 'function') && iterable.toArray) + return iterable.toArray(); + var length = iterable.length || 0, results = new Array(length); + while (length--) results[length] = iterable[length]; + return results; + }; +} + +Array.from = $A; + +Object.extend(Array.prototype, Enumerable); + +if (!Array.prototype._reverse) Array.prototype._reverse = Array.prototype.reverse; + +Object.extend(Array.prototype, { + _each: function(iterator) { + for (var i = 0, length = this.length; i < length; i++) + iterator(this[i]); + }, + + clear: function() { + this.length = 0; + return this; + }, + + first: function() { + return this[0]; + }, + + last: function() { + return this[this.length - 1]; + }, + + compact: function() { + return this.select(function(value) { + return value != null; + }); + }, + + flatten: function() { + return this.inject([], function(array, value) { + return array.concat(Object.isArray(value) ? + value.flatten() : [value]); + }); + }, + + without: function() { + var values = $A(arguments); + return this.select(function(value) { + return !values.include(value); + }); + }, + + reverse: function(inline) { + return (inline !== false ? this : this.toArray())._reverse(); + }, + + reduce: function() { + return this.length > 1 ? this : this[0]; + }, + + uniq: function(sorted) { + return this.inject([], function(array, value, index) { + if (0 == index || (sorted ? array.last() != value : !array.include(value))) + array.push(value); + return array; + }); + }, + + intersect: function(array) { + return this.uniq().findAll(function(item) { + return array.detect(function(value) { return item === value }); + }); + }, + + clone: function() { + return [].concat(this); + }, + + size: function() { + return this.length; + }, + + inspect: function() { + return '[' + this.map(Object.inspect).join(', ') + ']'; + }, + + toJSON: function() { + var results = []; + this.each(function(object) { + var value = Object.toJSON(object); + if (!Object.isUndefined(value)) results.push(value); + }); + return '[' + results.join(', ') + ']'; + } +}); + +// use native browser JS 1.6 implementation if available +if (Object.isFunction(Array.prototype.forEach)) + Array.prototype._each = Array.prototype.forEach; + +if (!Array.prototype.indexOf) Array.prototype.indexOf = function(item, i) { + i || (i = 0); + var length = this.length; + if (i < 0) i = length + i; + for (; i < length; i++) + if (this[i] === item) return i; + return -1; +}; + +if (!Array.prototype.lastIndexOf) Array.prototype.lastIndexOf = function(item, i) { + i = isNaN(i) ? this.length : (i < 0 ? this.length + i : i) + 1; + var n = this.slice(0, i).reverse().indexOf(item); + return (n < 0) ? n : i - n - 1; +}; + +Array.prototype.toArray = Array.prototype.clone; + +function $w(string) { + if (!Object.isString(string)) return []; + string = string.strip(); + return string ? string.split(/\s+/) : []; +} + +if (Prototype.Browser.Opera){ + Array.prototype.concat = function() { + var array = []; + for (var i = 0, length = this.length; i < length; i++) array.push(this[i]); + for (var i = 0, length = arguments.length; i < length; i++) { + if (Object.isArray(arguments[i])) { + for (var j = 0, arrayLength = arguments[i].length; j < arrayLength; j++) + array.push(arguments[i][j]); + } else { + array.push(arguments[i]); + } + } + return array; + }; +} +Object.extend(Number.prototype, { + toColorPart: function() { + return this.toPaddedString(2, 16); + }, + + succ: function() { + return this + 1; + }, + + times: function(iterator, context) { + $R(0, this, true).each(iterator, context); + return this; + }, + + toPaddedString: function(length, radix) { + var string = this.toString(radix || 10); + return '0'.times(length - string.length) + string; + }, + + toJSON: function() { + return isFinite(this) ? this.toString() : 'null'; + } +}); + +$w('abs round ceil floor').each(function(method){ + Number.prototype[method] = Math[method].methodize(); +}); +function $H(object) { + return new Hash(object); +}; + +var Hash = Class.create(Enumerable, (function() { + + function toQueryPair(key, value) { + if (Object.isUndefined(value)) return key; + return key + '=' + encodeURIComponent(String.interpret(value)); + } + + return { + initialize: function(object) { + this._object = Object.isHash(object) ? object.toObject() : Object.clone(object); + }, + + _each: function(iterator) { + for (var key in this._object) { + var value = this._object[key], pair = [key, value]; + pair.key = key; + pair.value = value; + iterator(pair); + } + }, + + set: function(key, value) { + return this._object[key] = value; + }, + + get: function(key) { + // simulating poorly supported hasOwnProperty + if (this._object[key] !== Object.prototype[key]) + return this._object[key]; + }, + + unset: function(key) { + var value = this._object[key]; + delete this._object[key]; + return value; + }, + + toObject: function() { + return Object.clone(this._object); + }, + + keys: function() { + return this.pluck('key'); + }, + + values: function() { + return this.pluck('value'); + }, + + index: function(value) { + var match = this.detect(function(pair) { + return pair.value === value; + }); + return match && match.key; + }, + + merge: function(object) { + return this.clone().update(object); + }, + + update: function(object) { + return new Hash(object).inject(this, function(result, pair) { + result.set(pair.key, pair.value); + return result; + }); + }, + + toQueryString: function() { + return this.inject([], function(results, pair) { + var key = encodeURIComponent(pair.key), values = pair.value; + + if (values && typeof values == 'object') { + if (Object.isArray(values)) + return results.concat(values.map(toQueryPair.curry(key))); + } else results.push(toQueryPair(key, values)); + return results; + }).join('&'); + }, + + inspect: function() { + return '#'; + }, + + toJSON: function() { + return Object.toJSON(this.toObject()); + }, + + clone: function() { + return new Hash(this); + } + } +})()); + +Hash.prototype.toTemplateReplacements = Hash.prototype.toObject; +Hash.from = $H; +var ObjectRange = Class.create(Enumerable, { + initialize: function(start, end, exclusive) { + this.start = start; + this.end = end; + this.exclusive = exclusive; + }, + + _each: function(iterator) { + var value = this.start; + while (this.include(value)) { + iterator(value); + value = value.succ(); + } + }, + + include: function(value) { + if (value < this.start) + return false; + if (this.exclusive) + return value < this.end; + return value <= this.end; + } +}); + +var $R = function(start, end, exclusive) { + return new ObjectRange(start, end, exclusive); +}; + +var Ajax = { + getTransport: function() { + return Try.these( + function() {return new XMLHttpRequest()}, + function() {return new ActiveXObject('Msxml2.XMLHTTP')}, + function() {return new ActiveXObject('Microsoft.XMLHTTP')} + ) || false; + }, + + activeRequestCount: 0 +}; + +Ajax.Responders = { + responders: [], + + _each: function(iterator) { + this.responders._each(iterator); + }, + + register: function(responder) { + if (!this.include(responder)) + this.responders.push(responder); + }, + + unregister: function(responder) { + this.responders = this.responders.without(responder); + }, + + dispatch: function(callback, request, transport, json) { + this.each(function(responder) { + if (Object.isFunction(responder[callback])) { + try { + responder[callback].apply(responder, [request, transport, json]); + } catch (e) { } + } + }); + } +}; + +Object.extend(Ajax.Responders, Enumerable); + +Ajax.Responders.register({ + onCreate: function() { Ajax.activeRequestCount++ }, + onComplete: function() { Ajax.activeRequestCount-- } +}); + +Ajax.Base = Class.create({ + initialize: function(options) { + this.options = { + method: 'post', + asynchronous: true, + contentType: 'application/x-www-form-urlencoded', + encoding: 'UTF-8', + parameters: '', + evalJSON: true, + evalJS: true + }; + Object.extend(this.options, options || { }); + + this.options.method = this.options.method.toLowerCase(); + + if (Object.isString(this.options.parameters)) + this.options.parameters = this.options.parameters.toQueryParams(); + else if (Object.isHash(this.options.parameters)) + this.options.parameters = this.options.parameters.toObject(); + } +}); + +Ajax.Request = Class.create(Ajax.Base, { + _complete: false, + + initialize: function($super, url, options) { + $super(options); + this.transport = Ajax.getTransport(); + this.request(url); + }, + + request: function(url) { + this.url = url; + this.method = this.options.method; + var params = Object.clone(this.options.parameters); + + if (!['get', 'post'].include(this.method)) { + // simulate other verbs over post + params['_method'] = this.method; + this.method = 'post'; + } + + this.parameters = params; + + if (params = Object.toQueryString(params)) { + // when GET, append parameters to URL + if (this.method == 'get') + this.url += (this.url.include('?') ? '&' : '?') + params; + else if (/Konqueror|Safari|KHTML/.test(navigator.userAgent)) + params += '&_='; + } + + try { + var response = new Ajax.Response(this); + if (this.options.onCreate) this.options.onCreate(response); + Ajax.Responders.dispatch('onCreate', this, response); + + this.transport.open(this.method.toUpperCase(), this.url, + this.options.asynchronous); + + if (this.options.asynchronous) this.respondToReadyState.bind(this).defer(1); + + this.transport.onreadystatechange = this.onStateChange.bind(this); + this.setRequestHeaders(); + + this.body = this.method == 'post' ? (this.options.postBody || params) : null; + this.transport.send(this.body); + + /* Force Firefox to handle ready state 4 for synchronous requests */ + if (!this.options.asynchronous && this.transport.overrideMimeType) + this.onStateChange(); + + } + catch (e) { + this.dispatchException(e); + } + }, + + onStateChange: function() { + var readyState = this.transport.readyState; + if (readyState > 1 && !((readyState == 4) && this._complete)) + this.respondToReadyState(this.transport.readyState); + }, + + setRequestHeaders: function() { + var headers = { + 'X-Requested-With': 'XMLHttpRequest', + 'X-Prototype-Version': Prototype.Version, + 'Accept': 'text/javascript, text/html, application/xml, text/xml, */*' + }; + + if (this.method == 'post') { + headers['Content-type'] = this.options.contentType + + (this.options.encoding ? '; charset=' + this.options.encoding : ''); + + /* Force "Connection: close" for older Mozilla browsers to work + * around a bug where XMLHttpRequest sends an incorrect + * Content-length header. See Mozilla Bugzilla #246651. + */ + if (this.transport.overrideMimeType && + (navigator.userAgent.match(/Gecko\/(\d{4})/) || [0,2005])[1] < 2005) + headers['Connection'] = 'close'; + } + + // user-defined headers + if (typeof this.options.requestHeaders == 'object') { + var extras = this.options.requestHeaders; + + if (Object.isFunction(extras.push)) + for (var i = 0, length = extras.length; i < length; i += 2) + headers[extras[i]] = extras[i+1]; + else + $H(extras).each(function(pair) { headers[pair.key] = pair.value }); + } + + for (var name in headers) + this.transport.setRequestHeader(name, headers[name]); + }, + + success: function() { + var status = this.getStatus(); + return !status || (status >= 200 && status < 300); + }, + + getStatus: function() { + try { + return this.transport.status || 0; + } catch (e) { return 0 } + }, + + respondToReadyState: function(readyState) { + var state = Ajax.Request.Events[readyState], response = new Ajax.Response(this); + + if (state == 'Complete') { + try { + this._complete = true; + (this.options['on' + response.status] + || this.options['on' + (this.success() ? 'Success' : 'Failure')] + || Prototype.emptyFunction)(response, response.headerJSON); + } catch (e) { + this.dispatchException(e); + } + + var contentType = response.getHeader('Content-type'); + if (this.options.evalJS == 'force' + || (this.options.evalJS && this.isSameOrigin() && contentType + && contentType.match(/^\s*(text|application)\/(x-)?(java|ecma)script(;.*)?\s*$/i))) + this.evalResponse(); + } + + try { + (this.options['on' + state] || Prototype.emptyFunction)(response, response.headerJSON); + Ajax.Responders.dispatch('on' + state, this, response, response.headerJSON); + } catch (e) { + this.dispatchException(e); + } + + if (state == 'Complete') { + // avoid memory leak in MSIE: clean up + this.transport.onreadystatechange = Prototype.emptyFunction; + } + }, + + isSameOrigin: function() { + var m = this.url.match(/^\s*https?:\/\/[^\/]*/); + return !m || (m[0] == '#{protocol}//#{domain}#{port}'.interpolate({ + protocol: location.protocol, + domain: document.domain, + port: location.port ? ':' + location.port : '' + })); + }, + + getHeader: function(name) { + try { + return this.transport.getResponseHeader(name) || null; + } catch (e) { return null } + }, + + evalResponse: function() { + try { + return eval((this.transport.responseText || '').unfilterJSON()); + } catch (e) { + this.dispatchException(e); + } + }, + + dispatchException: function(exception) { + (this.options.onException || Prototype.emptyFunction)(this, exception); + Ajax.Responders.dispatch('onException', this, exception); + } +}); + +Ajax.Request.Events = + ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete']; + +Ajax.Response = Class.create({ + initialize: function(request){ + this.request = request; + var transport = this.transport = request.transport, + readyState = this.readyState = transport.readyState; + + if((readyState > 2 && !Prototype.Browser.IE) || readyState == 4) { + this.status = this.getStatus(); + this.statusText = this.getStatusText(); + this.responseText = String.interpret(transport.responseText); + this.headerJSON = this._getHeaderJSON(); + } + + if(readyState == 4) { + var xml = transport.responseXML; + this.responseXML = Object.isUndefined(xml) ? null : xml; + this.responseJSON = this._getResponseJSON(); + } + }, + + status: 0, + statusText: '', + + getStatus: Ajax.Request.prototype.getStatus, + + getStatusText: function() { + try { + return this.transport.statusText || ''; + } catch (e) { return '' } + }, + + getHeader: Ajax.Request.prototype.getHeader, + + getAllHeaders: function() { + try { + return this.getAllResponseHeaders(); + } catch (e) { return null } + }, + + getResponseHeader: function(name) { + return this.transport.getResponseHeader(name); + }, + + getAllResponseHeaders: function() { + return this.transport.getAllResponseHeaders(); + }, + + _getHeaderJSON: function() { + var json = this.getHeader('X-JSON'); + if (!json) return null; + json = decodeURIComponent(escape(json)); + try { + return json.evalJSON(this.request.options.sanitizeJSON || + !this.request.isSameOrigin()); + } catch (e) { + this.request.dispatchException(e); + } + }, + + _getResponseJSON: function() { + var options = this.request.options; + if (!options.evalJSON || (options.evalJSON != 'force' && + !(this.getHeader('Content-type') || '').include('application/json')) || + this.responseText.blank()) + return null; + try { + return this.responseText.evalJSON(options.sanitizeJSON || + !this.request.isSameOrigin()); + } catch (e) { + this.request.dispatchException(e); + } + } +}); + +Ajax.Updater = Class.create(Ajax.Request, { + initialize: function($super, container, url, options) { + this.container = { + success: (container.success || container), + failure: (container.failure || (container.success ? null : container)) + }; + + options = Object.clone(options); + var onComplete = options.onComplete; + options.onComplete = (function(response, json) { + this.updateContent(response.responseText); + if (Object.isFunction(onComplete)) onComplete(response, json); + }).bind(this); + + $super(url, options); + }, + + updateContent: function(responseText) { + var receiver = this.container[this.success() ? 'success' : 'failure'], + options = this.options; + + if (!options.evalScripts) responseText = responseText.stripScripts(); + + if (receiver = $(receiver)) { + if (options.insertion) { + if (Object.isString(options.insertion)) { + var insertion = { }; insertion[options.insertion] = responseText; + receiver.insert(insertion); + } + else options.insertion(receiver, responseText); + } + else receiver.update(responseText); + } + } +}); + +Ajax.PeriodicalUpdater = Class.create(Ajax.Base, { + initialize: function($super, container, url, options) { + $super(options); + this.onComplete = this.options.onComplete; + + this.frequency = (this.options.frequency || 2); + this.decay = (this.options.decay || 1); + + this.updater = { }; + this.container = container; + this.url = url; + + this.start(); + }, + + start: function() { + this.options.onComplete = this.updateComplete.bind(this); + this.onTimerEvent(); + }, + + stop: function() { + this.updater.options.onComplete = undefined; + clearTimeout(this.timer); + (this.onComplete || Prototype.emptyFunction).apply(this, arguments); + }, + + updateComplete: function(response) { + if (this.options.decay) { + this.decay = (response.responseText == this.lastText ? + this.decay * this.options.decay : 1); + + this.lastText = response.responseText; + } + this.timer = this.onTimerEvent.bind(this).delay(this.decay * this.frequency); + }, + + onTimerEvent: function() { + this.updater = new Ajax.Updater(this.container, this.url, this.options); + } +}); +function $(element) { + if (arguments.length > 1) { + for (var i = 0, elements = [], length = arguments.length; i < length; i++) + elements.push($(arguments[i])); + return elements; + } + if (Object.isString(element)) + element = document.getElementById(element); + return Element.extend(element); +} + +if (Prototype.BrowserFeatures.XPath) { + document._getElementsByXPath = function(expression, parentElement) { + var results = []; + var query = document.evaluate(expression, $(parentElement) || document, + null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null); + for (var i = 0, length = query.snapshotLength; i < length; i++) + results.push(Element.extend(query.snapshotItem(i))); + return results; + }; +} + +/*--------------------------------------------------------------------------*/ + +if (!window.Node) var Node = { }; + +if (!Node.ELEMENT_NODE) { + // DOM level 2 ECMAScript Language Binding + Object.extend(Node, { + ELEMENT_NODE: 1, + ATTRIBUTE_NODE: 2, + TEXT_NODE: 3, + CDATA_SECTION_NODE: 4, + ENTITY_REFERENCE_NODE: 5, + ENTITY_NODE: 6, + PROCESSING_INSTRUCTION_NODE: 7, + COMMENT_NODE: 8, + DOCUMENT_NODE: 9, + DOCUMENT_TYPE_NODE: 10, + DOCUMENT_FRAGMENT_NODE: 11, + NOTATION_NODE: 12 + }); +} + +(function() { + var element = this.Element; + this.Element = function(tagName, attributes) { + attributes = attributes || { }; + tagName = tagName.toLowerCase(); + var cache = Element.cache; + if (Prototype.Browser.IE && attributes.name) { + tagName = '<' + tagName + ' name="' + attributes.name + '">'; + delete attributes.name; + return Element.writeAttribute(document.createElement(tagName), attributes); + } + if (!cache[tagName]) cache[tagName] = Element.extend(document.createElement(tagName)); + return Element.writeAttribute(cache[tagName].cloneNode(false), attributes); + }; + Object.extend(this.Element, element || { }); + if (element) this.Element.prototype = element.prototype; +}).call(window); + +Element.cache = { }; + +Element.Methods = { + visible: function(element) { + return $(element).style.display != 'none'; + }, + + toggle: function(element) { + element = $(element); + Element[Element.visible(element) ? 'hide' : 'show'](element); + return element; + }, + + hide: function(element) { + element = $(element); + element.style.display = 'none'; + return element; + }, + + show: function(element) { + element = $(element); + element.style.display = ''; + return element; + }, + + remove: function(element) { + element = $(element); + element.parentNode.removeChild(element); + return element; + }, + + update: function(element, content) { + element = $(element); + if (content && content.toElement) content = content.toElement(); + if (Object.isElement(content)) return element.update().insert(content); + content = Object.toHTML(content); + element.innerHTML = content.stripScripts(); + content.evalScripts.bind(content).defer(); + return element; + }, + + replace: function(element, content) { + element = $(element); + if (content && content.toElement) content = content.toElement(); + else if (!Object.isElement(content)) { + content = Object.toHTML(content); + var range = element.ownerDocument.createRange(); + range.selectNode(element); + content.evalScripts.bind(content).defer(); + content = range.createContextualFragment(content.stripScripts()); + } + element.parentNode.replaceChild(content, element); + return element; + }, + + insert: function(element, insertions) { + element = $(element); + + if (Object.isString(insertions) || Object.isNumber(insertions) || + Object.isElement(insertions) || (insertions && (insertions.toElement || insertions.toHTML))) + insertions = {bottom:insertions}; + + var content, insert, tagName, childNodes; + + for (var position in insertions) { + content = insertions[position]; + position = position.toLowerCase(); + insert = Element._insertionTranslations[position]; + + if (content && content.toElement) content = content.toElement(); + if (Object.isElement(content)) { + insert(element, content); + continue; + } + + content = Object.toHTML(content); + + tagName = ((position == 'before' || position == 'after') + ? element.parentNode : element).tagName.toUpperCase(); + + childNodes = Element._getContentFromAnonymousElement(tagName, content.stripScripts()); + + if (position == 'top' || position == 'after') childNodes.reverse(); + childNodes.each(insert.curry(element)); + + content.evalScripts.bind(content).defer(); + } + + return element; + }, + + wrap: function(element, wrapper, attributes) { + element = $(element); + if (Object.isElement(wrapper)) + $(wrapper).writeAttribute(attributes || { }); + else if (Object.isString(wrapper)) wrapper = new Element(wrapper, attributes); + else wrapper = new Element('div', wrapper); + if (element.parentNode) + element.parentNode.replaceChild(wrapper, element); + wrapper.appendChild(element); + return wrapper; + }, + + inspect: function(element) { + element = $(element); + var result = '<' + element.tagName.toLowerCase(); + $H({'id': 'id', 'className': 'class'}).each(function(pair) { + var property = pair.first(), attribute = pair.last(); + var value = (element[property] || '').toString(); + if (value) result += ' ' + attribute + '=' + value.inspect(true); + }); + return result + '>'; + }, + + recursivelyCollect: function(element, property) { + element = $(element); + var elements = []; + while (element = element[property]) + if (element.nodeType == 1) + elements.push(Element.extend(element)); + return elements; + }, + + ancestors: function(element) { + return $(element).recursivelyCollect('parentNode'); + }, + + descendants: function(element) { + return $(element).select("*"); + }, + + firstDescendant: function(element) { + element = $(element).firstChild; + while (element && element.nodeType != 1) element = element.nextSibling; + return $(element); + }, + + immediateDescendants: function(element) { + if (!(element = $(element).firstChild)) return []; + while (element && element.nodeType != 1) element = element.nextSibling; + if (element) return [element].concat($(element).nextSiblings()); + return []; + }, + + previousSiblings: function(element) { + return $(element).recursivelyCollect('previousSibling'); + }, + + nextSiblings: function(element) { + return $(element).recursivelyCollect('nextSibling'); + }, + + siblings: function(element) { + element = $(element); + return element.previousSiblings().reverse().concat(element.nextSiblings()); + }, + + match: function(element, selector) { + if (Object.isString(selector)) + selector = new Selector(selector); + return selector.match($(element)); + }, + + up: function(element, expression, index) { + element = $(element); + if (arguments.length == 1) return $(element.parentNode); + var ancestors = element.ancestors(); + return Object.isNumber(expression) ? ancestors[expression] : + Selector.findElement(ancestors, expression, index); + }, + + down: function(element, expression, index) { + element = $(element); + if (arguments.length == 1) return element.firstDescendant(); + return Object.isNumber(expression) ? element.descendants()[expression] : + Element.select(element, expression)[index || 0]; + }, + + previous: function(element, expression, index) { + element = $(element); + if (arguments.length == 1) return $(Selector.handlers.previousElementSibling(element)); + var previousSiblings = element.previousSiblings(); + return Object.isNumber(expression) ? previousSiblings[expression] : + Selector.findElement(previousSiblings, expression, index); + }, + + next: function(element, expression, index) { + element = $(element); + if (arguments.length == 1) return $(Selector.handlers.nextElementSibling(element)); + var nextSiblings = element.nextSiblings(); + return Object.isNumber(expression) ? nextSiblings[expression] : + Selector.findElement(nextSiblings, expression, index); + }, + + select: function() { + var args = $A(arguments), element = $(args.shift()); + return Selector.findChildElements(element, args); + }, + + adjacent: function() { + var args = $A(arguments), element = $(args.shift()); + return Selector.findChildElements(element.parentNode, args).without(element); + }, + + identify: function(element) { + element = $(element); + var id = element.readAttribute('id'), self = arguments.callee; + if (id) return id; + do { id = 'anonymous_element_' + self.counter++ } while ($(id)); + element.writeAttribute('id', id); + return id; + }, + + readAttribute: function(element, name) { + element = $(element); + if (Prototype.Browser.IE) { + var t = Element._attributeTranslations.read; + if (t.values[name]) return t.values[name](element, name); + if (t.names[name]) name = t.names[name]; + if (name.include(':')) { + return (!element.attributes || !element.attributes[name]) ? null : + element.attributes[name].value; + } + } + return element.getAttribute(name); + }, + + writeAttribute: function(element, name, value) { + element = $(element); + var attributes = { }, t = Element._attributeTranslations.write; + + if (typeof name == 'object') attributes = name; + else attributes[name] = Object.isUndefined(value) ? true : value; + + for (var attr in attributes) { + name = t.names[attr] || attr; + value = attributes[attr]; + if (t.values[attr]) name = t.values[attr](element, value); + if (value === false || value === null) + element.removeAttribute(name); + else if (value === true) + element.setAttribute(name, name); + else element.setAttribute(name, value); + } + return element; + }, + + getHeight: function(element) { + return $(element).getDimensions().height; + }, + + getWidth: function(element) { + return $(element).getDimensions().width; + }, + + classNames: function(element) { + return new Element.ClassNames(element); + }, + + hasClassName: function(element, className) { + if (!(element = $(element))) return; + var elementClassName = element.className; + return (elementClassName.length > 0 && (elementClassName == className || + new RegExp("(^|\\s)" + className + "(\\s|$)").test(elementClassName))); + }, + + addClassName: function(element, className) { + if (!(element = $(element))) return; + if (!element.hasClassName(className)) + element.className += (element.className ? ' ' : '') + className; + return element; + }, + + removeClassName: function(element, className) { + if (!(element = $(element))) return; + element.className = element.className.replace( + new RegExp("(^|\\s+)" + className + "(\\s+|$)"), ' ').strip(); + return element; + }, + + toggleClassName: function(element, className) { + if (!(element = $(element))) return; + return element[element.hasClassName(className) ? + 'removeClassName' : 'addClassName'](className); + }, + + // removes whitespace-only text node children + cleanWhitespace: function(element) { + element = $(element); + var node = element.firstChild; + while (node) { + var nextNode = node.nextSibling; + if (node.nodeType == 3 && !/\S/.test(node.nodeValue)) + element.removeChild(node); + node = nextNode; + } + return element; + }, + + empty: function(element) { + return $(element).innerHTML.blank(); + }, + + descendantOf: function(element, ancestor) { + element = $(element), ancestor = $(ancestor); + + if (element.compareDocumentPosition) + return (element.compareDocumentPosition(ancestor) & 8) === 8; + + if (ancestor.contains) + return ancestor.contains(element) && ancestor !== element; + + while (element = element.parentNode) + if (element == ancestor) return true; + + return false; + }, + + scrollTo: function(element) { + element = $(element); + var pos = element.cumulativeOffset(); + window.scrollTo(pos[0], pos[1]); + return element; + }, + + getStyle: function(element, style) { + element = $(element); + style = style == 'float' ? 'cssFloat' : style.camelize(); + var value = element.style[style]; + if (!value || value == 'auto') { + var css = document.defaultView.getComputedStyle(element, null); + value = css ? css[style] : null; + } + if (style == 'opacity') return value ? parseFloat(value) : 1.0; + return value == 'auto' ? null : value; + }, + + getOpacity: function(element) { + return $(element).getStyle('opacity'); + }, + + setStyle: function(element, styles) { + element = $(element); + var elementStyle = element.style, match; + if (Object.isString(styles)) { + element.style.cssText += ';' + styles; + return styles.include('opacity') ? + element.setOpacity(styles.match(/opacity:\s*(\d?\.?\d*)/)[1]) : element; + } + for (var property in styles) + if (property == 'opacity') element.setOpacity(styles[property]); + else + elementStyle[(property == 'float' || property == 'cssFloat') ? + (Object.isUndefined(elementStyle.styleFloat) ? 'cssFloat' : 'styleFloat') : + property] = styles[property]; + + return element; + }, + + setOpacity: function(element, value) { + element = $(element); + element.style.opacity = (value == 1 || value === '') ? '' : + (value < 0.00001) ? 0 : value; + return element; + }, + + getDimensions: function(element) { + element = $(element); + var display = element.getStyle('display'); + if (display != 'none' && display != null) // Safari bug + return {width: element.offsetWidth, height: element.offsetHeight}; + + // All *Width and *Height properties give 0 on elements with display none, + // so enable the element temporarily + var els = element.style; + var originalVisibility = els.visibility; + var originalPosition = els.position; + var originalDisplay = els.display; + els.visibility = 'hidden'; + els.position = 'absolute'; + els.display = 'block'; + var originalWidth = element.clientWidth; + var originalHeight = element.clientHeight; + els.display = originalDisplay; + els.position = originalPosition; + els.visibility = originalVisibility; + return {width: originalWidth, height: originalHeight}; + }, + + makePositioned: function(element) { + element = $(element); + var pos = Element.getStyle(element, 'position'); + if (pos == 'static' || !pos) { + element._madePositioned = true; + element.style.position = 'relative'; + // Opera returns the offset relative to the positioning context, when an + // element is position relative but top and left have not been defined + if (Prototype.Browser.Opera) { + element.style.top = 0; + element.style.left = 0; + } + } + return element; + }, + + undoPositioned: function(element) { + element = $(element); + if (element._madePositioned) { + element._madePositioned = undefined; + element.style.position = + element.style.top = + element.style.left = + element.style.bottom = + element.style.right = ''; + } + return element; + }, + + makeClipping: function(element) { + element = $(element); + if (element._overflow) return element; + element._overflow = Element.getStyle(element, 'overflow') || 'auto'; + if (element._overflow !== 'hidden') + element.style.overflow = 'hidden'; + return element; + }, + + undoClipping: function(element) { + element = $(element); + if (!element._overflow) return element; + element.style.overflow = element._overflow == 'auto' ? '' : element._overflow; + element._overflow = null; + return element; + }, + + cumulativeOffset: function(element) { + var valueT = 0, valueL = 0; + do { + valueT += element.offsetTop || 0; + valueL += element.offsetLeft || 0; + element = element.offsetParent; + } while (element); + return Element._returnOffset(valueL, valueT); + }, + + positionedOffset: function(element) { + var valueT = 0, valueL = 0; + do { + valueT += element.offsetTop || 0; + valueL += element.offsetLeft || 0; + element = element.offsetParent; + if (element) { + if (element.tagName.toUpperCase() == 'BODY') break; + var p = Element.getStyle(element, 'position'); + if (p !== 'static') break; + } + } while (element); + return Element._returnOffset(valueL, valueT); + }, + + absolutize: function(element) { + element = $(element); + if (element.getStyle('position') == 'absolute') return element; + // Position.prepare(); // To be done manually by Scripty when it needs it. + + var offsets = element.positionedOffset(); + var top = offsets[1]; + var left = offsets[0]; + var width = element.clientWidth; + var height = element.clientHeight; + + element._originalLeft = left - parseFloat(element.style.left || 0); + element._originalTop = top - parseFloat(element.style.top || 0); + element._originalWidth = element.style.width; + element._originalHeight = element.style.height; + + element.style.position = 'absolute'; + element.style.top = top + 'px'; + element.style.left = left + 'px'; + element.style.width = width + 'px'; + element.style.height = height + 'px'; + return element; + }, + + relativize: function(element) { + element = $(element); + if (element.getStyle('position') == 'relative') return element; + // Position.prepare(); // To be done manually by Scripty when it needs it. + + element.style.position = 'relative'; + var top = parseFloat(element.style.top || 0) - (element._originalTop || 0); + var left = parseFloat(element.style.left || 0) - (element._originalLeft || 0); + + element.style.top = top + 'px'; + element.style.left = left + 'px'; + element.style.height = element._originalHeight; + element.style.width = element._originalWidth; + return element; + }, + + cumulativeScrollOffset: function(element) { + var valueT = 0, valueL = 0; + do { + valueT += element.scrollTop || 0; + valueL += element.scrollLeft || 0; + element = element.parentNode; + } while (element); + return Element._returnOffset(valueL, valueT); + }, + + getOffsetParent: function(element) { + if (element.offsetParent) return $(element.offsetParent); + if (element == document.body) return $(element); + + while ((element = element.parentNode) && element != document.body) + if (Element.getStyle(element, 'position') != 'static') + return $(element); + + return $(document.body); + }, + + viewportOffset: function(forElement) { + var valueT = 0, valueL = 0; + + var element = forElement; + do { + valueT += element.offsetTop || 0; + valueL += element.offsetLeft || 0; + + // Safari fix + if (element.offsetParent == document.body && + Element.getStyle(element, 'position') == 'absolute') break; + + } while (element = element.offsetParent); + + element = forElement; + do { + if (!Prototype.Browser.Opera || (element.tagName && (element.tagName.toUpperCase() == 'BODY'))) { + valueT -= element.scrollTop || 0; + valueL -= element.scrollLeft || 0; + } + } while (element = element.parentNode); + + return Element._returnOffset(valueL, valueT); + }, + + clonePosition: function(element, source) { + var options = Object.extend({ + setLeft: true, + setTop: true, + setWidth: true, + setHeight: true, + offsetTop: 0, + offsetLeft: 0 + }, arguments[2] || { }); + + // find page position of source + source = $(source); + var p = source.viewportOffset(); + + // find coordinate system to use + element = $(element); + var delta = [0, 0]; + var parent = null; + // delta [0,0] will do fine with position: fixed elements, + // position:absolute needs offsetParent deltas + if (Element.getStyle(element, 'position') == 'absolute') { + parent = element.getOffsetParent(); + delta = parent.viewportOffset(); + } + + // correct by body offsets (fixes Safari) + if (parent == document.body) { + delta[0] -= document.body.offsetLeft; + delta[1] -= document.body.offsetTop; + } + + // set position + if (options.setLeft) element.style.left = (p[0] - delta[0] + options.offsetLeft) + 'px'; + if (options.setTop) element.style.top = (p[1] - delta[1] + options.offsetTop) + 'px'; + if (options.setWidth) element.style.width = source.offsetWidth + 'px'; + if (options.setHeight) element.style.height = source.offsetHeight + 'px'; + return element; + } +}; + +Element.Methods.identify.counter = 1; + +Object.extend(Element.Methods, { + getElementsBySelector: Element.Methods.select, + childElements: Element.Methods.immediateDescendants +}); + +Element._attributeTranslations = { + write: { + names: { + className: 'class', + htmlFor: 'for' + }, + values: { } + } +}; + +if (Prototype.Browser.Opera) { + Element.Methods.getStyle = Element.Methods.getStyle.wrap( + function(proceed, element, style) { + switch (style) { + case 'left': case 'top': case 'right': case 'bottom': + if (proceed(element, 'position') === 'static') return null; + case 'height': case 'width': + // returns '0px' for hidden elements; we want it to return null + if (!Element.visible(element)) return null; + + // returns the border-box dimensions rather than the content-box + // dimensions, so we subtract padding and borders from the value + var dim = parseInt(proceed(element, style), 10); + + if (dim !== element['offset' + style.capitalize()]) + return dim + 'px'; + + var properties; + if (style === 'height') { + properties = ['border-top-width', 'padding-top', + 'padding-bottom', 'border-bottom-width']; + } + else { + properties = ['border-left-width', 'padding-left', + 'padding-right', 'border-right-width']; + } + return properties.inject(dim, function(memo, property) { + var val = proceed(element, property); + return val === null ? memo : memo - parseInt(val, 10); + }) + 'px'; + default: return proceed(element, style); + } + } + ); + + Element.Methods.readAttribute = Element.Methods.readAttribute.wrap( + function(proceed, element, attribute) { + if (attribute === 'title') return element.title; + return proceed(element, attribute); + } + ); +} + +else if (Prototype.Browser.IE) { + // IE doesn't report offsets correctly for static elements, so we change them + // to "relative" to get the values, then change them back. + Element.Methods.getOffsetParent = Element.Methods.getOffsetParent.wrap( + function(proceed, element) { + element = $(element); + // IE throws an error if element is not in document + try { element.offsetParent } + catch(e) { return $(document.body) } + var position = element.getStyle('position'); + if (position !== 'static') return proceed(element); + element.setStyle({ position: 'relative' }); + var value = proceed(element); + element.setStyle({ position: position }); + return value; + } + ); + + $w('positionedOffset viewportOffset').each(function(method) { + Element.Methods[method] = Element.Methods[method].wrap( + function(proceed, element) { + element = $(element); + try { element.offsetParent } + catch(e) { return Element._returnOffset(0,0) } + var position = element.getStyle('position'); + if (position !== 'static') return proceed(element); + // Trigger hasLayout on the offset parent so that IE6 reports + // accurate offsetTop and offsetLeft values for position: fixed. + var offsetParent = element.getOffsetParent(); + if (offsetParent && offsetParent.getStyle('position') === 'fixed') + offsetParent.setStyle({ zoom: 1 }); + element.setStyle({ position: 'relative' }); + var value = proceed(element); + element.setStyle({ position: position }); + return value; + } + ); + }); + + Element.Methods.cumulativeOffset = Element.Methods.cumulativeOffset.wrap( + function(proceed, element) { + try { element.offsetParent } + catch(e) { return Element._returnOffset(0,0) } + return proceed(element); + } + ); + + Element.Methods.getStyle = function(element, style) { + element = $(element); + style = (style == 'float' || style == 'cssFloat') ? 'styleFloat' : style.camelize(); + var value = element.style[style]; + if (!value && element.currentStyle) value = element.currentStyle[style]; + + if (style == 'opacity') { + if (value = (element.getStyle('filter') || '').match(/alpha\(opacity=(.*)\)/)) + if (value[1]) return parseFloat(value[1]) / 100; + return 1.0; + } + + if (value == 'auto') { + if ((style == 'width' || style == 'height') && (element.getStyle('display') != 'none')) + return element['offset' + style.capitalize()] + 'px'; + return null; + } + return value; + }; + + Element.Methods.setOpacity = function(element, value) { + function stripAlpha(filter){ + return filter.replace(/alpha\([^\)]*\)/gi,''); + } + element = $(element); + var currentStyle = element.currentStyle; + if ((currentStyle && !currentStyle.hasLayout) || + (!currentStyle && element.style.zoom == 'normal')) + element.style.zoom = 1; + + var filter = element.getStyle('filter'), style = element.style; + if (value == 1 || value === '') { + (filter = stripAlpha(filter)) ? + style.filter = filter : style.removeAttribute('filter'); + return element; + } else if (value < 0.00001) value = 0; + style.filter = stripAlpha(filter) + + 'alpha(opacity=' + (value * 100) + ')'; + return element; + }; + + Element._attributeTranslations = { + read: { + names: { + 'class': 'className', + 'for': 'htmlFor' + }, + values: { + _getAttr: function(element, attribute) { + return element.getAttribute(attribute, 2); + }, + _getAttrNode: function(element, attribute) { + var node = element.getAttributeNode(attribute); + return node ? node.value : ""; + }, + _getEv: function(element, attribute) { + attribute = element.getAttribute(attribute); + return attribute ? attribute.toString().slice(23, -2) : null; + }, + _flag: function(element, attribute) { + return $(element).hasAttribute(attribute) ? attribute : null; + }, + style: function(element) { + return element.style.cssText.toLowerCase(); + }, + title: function(element) { + return element.title; + } + } + } + }; + + Element._attributeTranslations.write = { + names: Object.extend({ + cellpadding: 'cellPadding', + cellspacing: 'cellSpacing' + }, Element._attributeTranslations.read.names), + values: { + checked: function(element, value) { + element.checked = !!value; + }, + + style: function(element, value) { + element.style.cssText = value ? value : ''; + } + } + }; + + Element._attributeTranslations.has = {}; + + $w('colSpan rowSpan vAlign dateTime accessKey tabIndex ' + + 'encType maxLength readOnly longDesc frameBorder').each(function(attr) { + Element._attributeTranslations.write.names[attr.toLowerCase()] = attr; + Element._attributeTranslations.has[attr.toLowerCase()] = attr; + }); + + (function(v) { + Object.extend(v, { + href: v._getAttr, + src: v._getAttr, + type: v._getAttr, + action: v._getAttrNode, + disabled: v._flag, + checked: v._flag, + readonly: v._flag, + multiple: v._flag, + onload: v._getEv, + onunload: v._getEv, + onclick: v._getEv, + ondblclick: v._getEv, + onmousedown: v._getEv, + onmouseup: v._getEv, + onmouseover: v._getEv, + onmousemove: v._getEv, + onmouseout: v._getEv, + onfocus: v._getEv, + onblur: v._getEv, + onkeypress: v._getEv, + onkeydown: v._getEv, + onkeyup: v._getEv, + onsubmit: v._getEv, + onreset: v._getEv, + onselect: v._getEv, + onchange: v._getEv + }); + })(Element._attributeTranslations.read.values); +} + +else if (Prototype.Browser.Gecko && /rv:1\.8\.0/.test(navigator.userAgent)) { + Element.Methods.setOpacity = function(element, value) { + element = $(element); + element.style.opacity = (value == 1) ? 0.999999 : + (value === '') ? '' : (value < 0.00001) ? 0 : value; + return element; + }; +} + +else if (Prototype.Browser.WebKit) { + Element.Methods.setOpacity = function(element, value) { + element = $(element); + element.style.opacity = (value == 1 || value === '') ? '' : + (value < 0.00001) ? 0 : value; + + if (value == 1) + if(element.tagName.toUpperCase() == 'IMG' && element.width) { + element.width++; element.width--; + } else try { + var n = document.createTextNode(' '); + element.appendChild(n); + element.removeChild(n); + } catch (e) { } + + return element; + }; + + // Safari returns margins on body which is incorrect if the child is absolutely + // positioned. For performance reasons, redefine Element#cumulativeOffset for + // KHTML/WebKit only. + Element.Methods.cumulativeOffset = function(element) { + var valueT = 0, valueL = 0; + do { + valueT += element.offsetTop || 0; + valueL += element.offsetLeft || 0; + if (element.offsetParent == document.body) + if (Element.getStyle(element, 'position') == 'absolute') break; + + element = element.offsetParent; + } while (element); + + return Element._returnOffset(valueL, valueT); + }; +} + +if (Prototype.Browser.IE || Prototype.Browser.Opera) { + // IE and Opera are missing .innerHTML support for TABLE-related and SELECT elements + Element.Methods.update = function(element, content) { + element = $(element); + + if (content && content.toElement) content = content.toElement(); + if (Object.isElement(content)) return element.update().insert(content); + + content = Object.toHTML(content); + var tagName = element.tagName.toUpperCase(); + + if (tagName in Element._insertionTranslations.tags) { + $A(element.childNodes).each(function(node) { element.removeChild(node) }); + Element._getContentFromAnonymousElement(tagName, content.stripScripts()) + .each(function(node) { element.appendChild(node) }); + } + else element.innerHTML = content.stripScripts(); + + content.evalScripts.bind(content).defer(); + return element; + }; +} + +if ('outerHTML' in document.createElement('div')) { + Element.Methods.replace = function(element, content) { + element = $(element); + + if (content && content.toElement) content = content.toElement(); + if (Object.isElement(content)) { + element.parentNode.replaceChild(content, element); + return element; + } + + content = Object.toHTML(content); + var parent = element.parentNode, tagName = parent.tagName.toUpperCase(); + + if (Element._insertionTranslations.tags[tagName]) { + var nextSibling = element.next(); + var fragments = Element._getContentFromAnonymousElement(tagName, content.stripScripts()); + parent.removeChild(element); + if (nextSibling) + fragments.each(function(node) { parent.insertBefore(node, nextSibling) }); + else + fragments.each(function(node) { parent.appendChild(node) }); + } + else element.outerHTML = content.stripScripts(); + + content.evalScripts.bind(content).defer(); + return element; + }; +} + +Element._returnOffset = function(l, t) { + var result = [l, t]; + result.left = l; + result.top = t; + return result; +}; + +Element._getContentFromAnonymousElement = function(tagName, html) { + var div = new Element('div'), t = Element._insertionTranslations.tags[tagName]; + if (t) { + div.innerHTML = t[0] + html + t[1]; + t[2].times(function() { div = div.firstChild }); + } else div.innerHTML = html; + return $A(div.childNodes); +}; + +Element._insertionTranslations = { + before: function(element, node) { + element.parentNode.insertBefore(node, element); + }, + top: function(element, node) { + element.insertBefore(node, element.firstChild); + }, + bottom: function(element, node) { + element.appendChild(node); + }, + after: function(element, node) { + element.parentNode.insertBefore(node, element.nextSibling); + }, + tags: { + TABLE: ['', '
    ', 1], + TBODY: ['', '
    ', 2], + TR: ['', '
    ', 3], + TD: ['
    ', '
    ', 4], + SELECT: ['', 1] + } +}; + +(function() { + Object.extend(this.tags, { + THEAD: this.tags.TBODY, + TFOOT: this.tags.TBODY, + TH: this.tags.TD + }); +}).call(Element._insertionTranslations); + +Element.Methods.Simulated = { + hasAttribute: function(element, attribute) { + attribute = Element._attributeTranslations.has[attribute] || attribute; + var node = $(element).getAttributeNode(attribute); + return !!(node && node.specified); + } +}; + +Element.Methods.ByTag = { }; + +Object.extend(Element, Element.Methods); + +if (!Prototype.BrowserFeatures.ElementExtensions && + document.createElement('div')['__proto__']) { + window.HTMLElement = { }; + window.HTMLElement.prototype = document.createElement('div')['__proto__']; + Prototype.BrowserFeatures.ElementExtensions = true; +} + +Element.extend = (function() { + if (Prototype.BrowserFeatures.SpecificElementExtensions) + return Prototype.K; + + var Methods = { }, ByTag = Element.Methods.ByTag; + + var extend = Object.extend(function(element) { + if (!element || element._extendedByPrototype || + element.nodeType != 1 || element == window) return element; + + var methods = Object.clone(Methods), + tagName = element.tagName.toUpperCase(), property, value; + + // extend methods for specific tags + if (ByTag[tagName]) Object.extend(methods, ByTag[tagName]); + + for (property in methods) { + value = methods[property]; + if (Object.isFunction(value) && !(property in element)) + element[property] = value.methodize(); + } + + element._extendedByPrototype = Prototype.emptyFunction; + return element; + + }, { + refresh: function() { + // extend methods for all tags (Safari doesn't need this) + if (!Prototype.BrowserFeatures.ElementExtensions) { + Object.extend(Methods, Element.Methods); + Object.extend(Methods, Element.Methods.Simulated); + } + } + }); + + extend.refresh(); + return extend; +})(); + +Element.hasAttribute = function(element, attribute) { + if (element.hasAttribute) return element.hasAttribute(attribute); + return Element.Methods.Simulated.hasAttribute(element, attribute); +}; + +Element.addMethods = function(methods) { + var F = Prototype.BrowserFeatures, T = Element.Methods.ByTag; + + if (!methods) { + Object.extend(Form, Form.Methods); + Object.extend(Form.Element, Form.Element.Methods); + Object.extend(Element.Methods.ByTag, { + "FORM": Object.clone(Form.Methods), + "INPUT": Object.clone(Form.Element.Methods), + "SELECT": Object.clone(Form.Element.Methods), + "TEXTAREA": Object.clone(Form.Element.Methods) + }); + } + + if (arguments.length == 2) { + var tagName = methods; + methods = arguments[1]; + } + + if (!tagName) Object.extend(Element.Methods, methods || { }); + else { + if (Object.isArray(tagName)) tagName.each(extend); + else extend(tagName); + } + + function extend(tagName) { + tagName = tagName.toUpperCase(); + if (!Element.Methods.ByTag[tagName]) + Element.Methods.ByTag[tagName] = { }; + Object.extend(Element.Methods.ByTag[tagName], methods); + } + + function copy(methods, destination, onlyIfAbsent) { + onlyIfAbsent = onlyIfAbsent || false; + for (var property in methods) { + var value = methods[property]; + if (!Object.isFunction(value)) continue; + if (!onlyIfAbsent || !(property in destination)) + destination[property] = value.methodize(); + } + } + + function findDOMClass(tagName) { + var klass; + var trans = { + "OPTGROUP": "OptGroup", "TEXTAREA": "TextArea", "P": "Paragraph", + "FIELDSET": "FieldSet", "UL": "UList", "OL": "OList", "DL": "DList", + "DIR": "Directory", "H1": "Heading", "H2": "Heading", "H3": "Heading", + "H4": "Heading", "H5": "Heading", "H6": "Heading", "Q": "Quote", + "INS": "Mod", "DEL": "Mod", "A": "Anchor", "IMG": "Image", "CAPTION": + "TableCaption", "COL": "TableCol", "COLGROUP": "TableCol", "THEAD": + "TableSection", "TFOOT": "TableSection", "TBODY": "TableSection", "TR": + "TableRow", "TH": "TableCell", "TD": "TableCell", "FRAMESET": + "FrameSet", "IFRAME": "IFrame" + }; + if (trans[tagName]) klass = 'HTML' + trans[tagName] + 'Element'; + if (window[klass]) return window[klass]; + klass = 'HTML' + tagName + 'Element'; + if (window[klass]) return window[klass]; + klass = 'HTML' + tagName.capitalize() + 'Element'; + if (window[klass]) return window[klass]; + + window[klass] = { }; + window[klass].prototype = document.createElement(tagName)['__proto__']; + return window[klass]; + } + + if (F.ElementExtensions) { + copy(Element.Methods, HTMLElement.prototype); + copy(Element.Methods.Simulated, HTMLElement.prototype, true); + } + + if (F.SpecificElementExtensions) { + for (var tag in Element.Methods.ByTag) { + var klass = findDOMClass(tag); + if (Object.isUndefined(klass)) continue; + copy(T[tag], klass.prototype); + } + } + + Object.extend(Element, Element.Methods); + delete Element.ByTag; + + if (Element.extend.refresh) Element.extend.refresh(); + Element.cache = { }; +}; + +document.viewport = { + getDimensions: function() { + var dimensions = { }, B = Prototype.Browser; + $w('width height').each(function(d) { + var D = d.capitalize(); + if (B.WebKit && !document.evaluate) { + // Safari <3.0 needs self.innerWidth/Height + dimensions[d] = self['inner' + D]; + } else if (B.Opera && parseFloat(window.opera.version()) < 9.5) { + // Opera <9.5 needs document.body.clientWidth/Height + dimensions[d] = document.body['client' + D] + } else { + dimensions[d] = document.documentElement['client' + D]; + } + }); + return dimensions; + }, + + getWidth: function() { + return this.getDimensions().width; + }, + + getHeight: function() { + return this.getDimensions().height; + }, + + getScrollOffsets: function() { + return Element._returnOffset( + window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft, + window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop); + } +}; +/* Portions of the Selector class are derived from Jack Slocum's DomQuery, + * part of YUI-Ext version 0.40, distributed under the terms of an MIT-style + * license. Please see http://www.yui-ext.com/ for more information. */ + +var Selector = Class.create({ + initialize: function(expression) { + this.expression = expression.strip(); + + if (this.shouldUseSelectorsAPI()) { + this.mode = 'selectorsAPI'; + } else if (this.shouldUseXPath()) { + this.mode = 'xpath'; + this.compileXPathMatcher(); + } else { + this.mode = "normal"; + this.compileMatcher(); + } + + }, + + shouldUseXPath: function() { + if (!Prototype.BrowserFeatures.XPath) return false; + + var e = this.expression; + + // Safari 3 chokes on :*-of-type and :empty + if (Prototype.Browser.WebKit && + (e.include("-of-type") || e.include(":empty"))) + return false; + + // XPath can't do namespaced attributes, nor can it read + // the "checked" property from DOM nodes + if ((/(\[[\w-]*?:|:checked)/).test(e)) + return false; + + return true; + }, + + shouldUseSelectorsAPI: function() { + if (!Prototype.BrowserFeatures.SelectorsAPI) return false; + + if (!Selector._div) Selector._div = new Element('div'); + + // Make sure the browser treats the selector as valid. Test on an + // isolated element to minimize cost of this check. + try { + Selector._div.querySelector(this.expression); + } catch(e) { + return false; + } + + return true; + }, + + compileMatcher: function() { + var e = this.expression, ps = Selector.patterns, h = Selector.handlers, + c = Selector.criteria, le, p, m; + + if (Selector._cache[e]) { + this.matcher = Selector._cache[e]; + return; + } + + this.matcher = ["this.matcher = function(root) {", + "var r = root, h = Selector.handlers, c = false, n;"]; + + while (e && le != e && (/\S/).test(e)) { + le = e; + for (var i in ps) { + p = ps[i]; + if (m = e.match(p)) { + this.matcher.push(Object.isFunction(c[i]) ? c[i](m) : + new Template(c[i]).evaluate(m)); + e = e.replace(m[0], ''); + break; + } + } + } + + this.matcher.push("return h.unique(n);\n}"); + eval(this.matcher.join('\n')); + Selector._cache[this.expression] = this.matcher; + }, + + compileXPathMatcher: function() { + var e = this.expression, ps = Selector.patterns, + x = Selector.xpath, le, m; + + if (Selector._cache[e]) { + this.xpath = Selector._cache[e]; return; + } + + this.matcher = ['.//*']; + while (e && le != e && (/\S/).test(e)) { + le = e; + for (var i in ps) { + if (m = e.match(ps[i])) { + this.matcher.push(Object.isFunction(x[i]) ? x[i](m) : + new Template(x[i]).evaluate(m)); + e = e.replace(m[0], ''); + break; + } + } + } + + this.xpath = this.matcher.join(''); + Selector._cache[this.expression] = this.xpath; + }, + + findElements: function(root) { + root = root || document; + var e = this.expression, results; + + switch (this.mode) { + case 'selectorsAPI': + // querySelectorAll queries document-wide, then filters to descendants + // of the context element. That's not what we want. + // Add an explicit context to the selector if necessary. + if (root !== document) { + var oldId = root.id, id = $(root).identify(); + e = "#" + id + " " + e; + } + + results = $A(root.querySelectorAll(e)).map(Element.extend); + root.id = oldId; + + return results; + case 'xpath': + return document._getElementsByXPath(this.xpath, root); + default: + return this.matcher(root); + } + }, + + match: function(element) { + this.tokens = []; + + var e = this.expression, ps = Selector.patterns, as = Selector.assertions; + var le, p, m; + + while (e && le !== e && (/\S/).test(e)) { + le = e; + for (var i in ps) { + p = ps[i]; + if (m = e.match(p)) { + // use the Selector.assertions methods unless the selector + // is too complex. + if (as[i]) { + this.tokens.push([i, Object.clone(m)]); + e = e.replace(m[0], ''); + } else { + // reluctantly do a document-wide search + // and look for a match in the array + return this.findElements(document).include(element); + } + } + } + } + + var match = true, name, matches; + for (var i = 0, token; token = this.tokens[i]; i++) { + name = token[0], matches = token[1]; + if (!Selector.assertions[name](element, matches)) { + match = false; break; + } + } + + return match; + }, + + toString: function() { + return this.expression; + }, + + inspect: function() { + return "#"; + } +}); + +Object.extend(Selector, { + _cache: { }, + + xpath: { + descendant: "//*", + child: "/*", + adjacent: "/following-sibling::*[1]", + laterSibling: '/following-sibling::*', + tagName: function(m) { + if (m[1] == '*') return ''; + return "[local-name()='" + m[1].toLowerCase() + + "' or local-name()='" + m[1].toUpperCase() + "']"; + }, + className: "[contains(concat(' ', @class, ' '), ' #{1} ')]", + id: "[@id='#{1}']", + attrPresence: function(m) { + m[1] = m[1].toLowerCase(); + return new Template("[@#{1}]").evaluate(m); + }, + attr: function(m) { + m[1] = m[1].toLowerCase(); + m[3] = m[5] || m[6]; + return new Template(Selector.xpath.operators[m[2]]).evaluate(m); + }, + pseudo: function(m) { + var h = Selector.xpath.pseudos[m[1]]; + if (!h) return ''; + if (Object.isFunction(h)) return h(m); + return new Template(Selector.xpath.pseudos[m[1]]).evaluate(m); + }, + operators: { + '=': "[@#{1}='#{3}']", + '!=': "[@#{1}!='#{3}']", + '^=': "[starts-with(@#{1}, '#{3}')]", + '$=': "[substring(@#{1}, (string-length(@#{1}) - string-length('#{3}') + 1))='#{3}']", + '*=': "[contains(@#{1}, '#{3}')]", + '~=': "[contains(concat(' ', @#{1}, ' '), ' #{3} ')]", + '|=': "[contains(concat('-', @#{1}, '-'), '-#{3}-')]" + }, + pseudos: { + 'first-child': '[not(preceding-sibling::*)]', + 'last-child': '[not(following-sibling::*)]', + 'only-child': '[not(preceding-sibling::* or following-sibling::*)]', + 'empty': "[count(*) = 0 and (count(text()) = 0)]", + 'checked': "[@checked]", + 'disabled': "[(@disabled) and (@type!='hidden')]", + 'enabled': "[not(@disabled) and (@type!='hidden')]", + 'not': function(m) { + var e = m[6], p = Selector.patterns, + x = Selector.xpath, le, v; + + var exclusion = []; + while (e && le != e && (/\S/).test(e)) { + le = e; + for (var i in p) { + if (m = e.match(p[i])) { + v = Object.isFunction(x[i]) ? x[i](m) : new Template(x[i]).evaluate(m); + exclusion.push("(" + v.substring(1, v.length - 1) + ")"); + e = e.replace(m[0], ''); + break; + } + } + } + return "[not(" + exclusion.join(" and ") + ")]"; + }, + 'nth-child': function(m) { + return Selector.xpath.pseudos.nth("(count(./preceding-sibling::*) + 1) ", m); + }, + 'nth-last-child': function(m) { + return Selector.xpath.pseudos.nth("(count(./following-sibling::*) + 1) ", m); + }, + 'nth-of-type': function(m) { + return Selector.xpath.pseudos.nth("position() ", m); + }, + 'nth-last-of-type': function(m) { + return Selector.xpath.pseudos.nth("(last() + 1 - position()) ", m); + }, + 'first-of-type': function(m) { + m[6] = "1"; return Selector.xpath.pseudos['nth-of-type'](m); + }, + 'last-of-type': function(m) { + m[6] = "1"; return Selector.xpath.pseudos['nth-last-of-type'](m); + }, + 'only-of-type': function(m) { + var p = Selector.xpath.pseudos; return p['first-of-type'](m) + p['last-of-type'](m); + }, + nth: function(fragment, m) { + var mm, formula = m[6], predicate; + if (formula == 'even') formula = '2n+0'; + if (formula == 'odd') formula = '2n+1'; + if (mm = formula.match(/^(\d+)$/)) // digit only + return '[' + fragment + "= " + mm[1] + ']'; + if (mm = formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // an+b + if (mm[1] == "-") mm[1] = -1; + var a = mm[1] ? Number(mm[1]) : 1; + var b = mm[2] ? Number(mm[2]) : 0; + predicate = "[((#{fragment} - #{b}) mod #{a} = 0) and " + + "((#{fragment} - #{b}) div #{a} >= 0)]"; + return new Template(predicate).evaluate({ + fragment: fragment, a: a, b: b }); + } + } + } + }, + + criteria: { + tagName: 'n = h.tagName(n, r, "#{1}", c); c = false;', + className: 'n = h.className(n, r, "#{1}", c); c = false;', + id: 'n = h.id(n, r, "#{1}", c); c = false;', + attrPresence: 'n = h.attrPresence(n, r, "#{1}", c); c = false;', + attr: function(m) { + m[3] = (m[5] || m[6]); + return new Template('n = h.attr(n, r, "#{1}", "#{3}", "#{2}", c); c = false;').evaluate(m); + }, + pseudo: function(m) { + if (m[6]) m[6] = m[6].replace(/"/g, '\\"'); + return new Template('n = h.pseudo(n, "#{1}", "#{6}", r, c); c = false;').evaluate(m); + }, + descendant: 'c = "descendant";', + child: 'c = "child";', + adjacent: 'c = "adjacent";', + laterSibling: 'c = "laterSibling";' + }, + + patterns: { + // combinators must be listed first + // (and descendant needs to be last combinator) + laterSibling: /^\s*~\s*/, + child: /^\s*>\s*/, + adjacent: /^\s*\+\s*/, + descendant: /^\s/, + + // selectors follow + tagName: /^\s*(\*|[\w\-]+)(\b|$)?/, + id: /^#([\w\-\*]+)(\b|$)/, + className: /^\.([\w\-\*]+)(\b|$)/, + pseudo: +/^:((first|last|nth|nth-last|only)(-child|-of-type)|empty|checked|(en|dis)abled|not)(\((.*?)\))?(\b|$|(?=\s|[:+~>]))/, + attrPresence: /^\[((?:[\w]+:)?[\w]+)\]/, + attr: /\[((?:[\w-]*:)?[\w-]+)\s*(?:([!^$*~|]?=)\s*((['"])([^\4]*?)\4|([^'"][^\]]*?)))?\]/ + }, + + // for Selector.match and Element#match + assertions: { + tagName: function(element, matches) { + return matches[1].toUpperCase() == element.tagName.toUpperCase(); + }, + + className: function(element, matches) { + return Element.hasClassName(element, matches[1]); + }, + + id: function(element, matches) { + return element.id === matches[1]; + }, + + attrPresence: function(element, matches) { + return Element.hasAttribute(element, matches[1]); + }, + + attr: function(element, matches) { + var nodeValue = Element.readAttribute(element, matches[1]); + return nodeValue && Selector.operators[matches[2]](nodeValue, matches[5] || matches[6]); + } + }, + + handlers: { + // UTILITY FUNCTIONS + // joins two collections + concat: function(a, b) { + for (var i = 0, node; node = b[i]; i++) + a.push(node); + return a; + }, + + // marks an array of nodes for counting + mark: function(nodes) { + var _true = Prototype.emptyFunction; + for (var i = 0, node; node = nodes[i]; i++) + node._countedByPrototype = _true; + return nodes; + }, + + unmark: function(nodes) { + for (var i = 0, node; node = nodes[i]; i++) + node._countedByPrototype = undefined; + return nodes; + }, + + // mark each child node with its position (for nth calls) + // "ofType" flag indicates whether we're indexing for nth-of-type + // rather than nth-child + index: function(parentNode, reverse, ofType) { + parentNode._countedByPrototype = Prototype.emptyFunction; + if (reverse) { + for (var nodes = parentNode.childNodes, i = nodes.length - 1, j = 1; i >= 0; i--) { + var node = nodes[i]; + if (node.nodeType == 1 && (!ofType || node._countedByPrototype)) node.nodeIndex = j++; + } + } else { + for (var i = 0, j = 1, nodes = parentNode.childNodes; node = nodes[i]; i++) + if (node.nodeType == 1 && (!ofType || node._countedByPrototype)) node.nodeIndex = j++; + } + }, + + // filters out duplicates and extends all nodes + unique: function(nodes) { + if (nodes.length == 0) return nodes; + var results = [], n; + for (var i = 0, l = nodes.length; i < l; i++) + if (!(n = nodes[i])._countedByPrototype) { + n._countedByPrototype = Prototype.emptyFunction; + results.push(Element.extend(n)); + } + return Selector.handlers.unmark(results); + }, + + // COMBINATOR FUNCTIONS + descendant: function(nodes) { + var h = Selector.handlers; + for (var i = 0, results = [], node; node = nodes[i]; i++) + h.concat(results, node.getElementsByTagName('*')); + return results; + }, + + child: function(nodes) { + var h = Selector.handlers; + for (var i = 0, results = [], node; node = nodes[i]; i++) { + for (var j = 0, child; child = node.childNodes[j]; j++) + if (child.nodeType == 1 && child.tagName != '!') results.push(child); + } + return results; + }, + + adjacent: function(nodes) { + for (var i = 0, results = [], node; node = nodes[i]; i++) { + var next = this.nextElementSibling(node); + if (next) results.push(next); + } + return results; + }, + + laterSibling: function(nodes) { + var h = Selector.handlers; + for (var i = 0, results = [], node; node = nodes[i]; i++) + h.concat(results, Element.nextSiblings(node)); + return results; + }, + + nextElementSibling: function(node) { + while (node = node.nextSibling) + if (node.nodeType == 1) return node; + return null; + }, + + previousElementSibling: function(node) { + while (node = node.previousSibling) + if (node.nodeType == 1) return node; + return null; + }, + + // TOKEN FUNCTIONS + tagName: function(nodes, root, tagName, combinator) { + var uTagName = tagName.toUpperCase(); + var results = [], h = Selector.handlers; + if (nodes) { + if (combinator) { + // fastlane for ordinary descendant combinators + if (combinator == "descendant") { + for (var i = 0, node; node = nodes[i]; i++) + h.concat(results, node.getElementsByTagName(tagName)); + return results; + } else nodes = this[combinator](nodes); + if (tagName == "*") return nodes; + } + for (var i = 0, node; node = nodes[i]; i++) + if (node.tagName.toUpperCase() === uTagName) results.push(node); + return results; + } else return root.getElementsByTagName(tagName); + }, + + id: function(nodes, root, id, combinator) { + var targetNode = $(id), h = Selector.handlers; + if (!targetNode) return []; + if (!nodes && root == document) return [targetNode]; + if (nodes) { + if (combinator) { + if (combinator == 'child') { + for (var i = 0, node; node = nodes[i]; i++) + if (targetNode.parentNode == node) return [targetNode]; + } else if (combinator == 'descendant') { + for (var i = 0, node; node = nodes[i]; i++) + if (Element.descendantOf(targetNode, node)) return [targetNode]; + } else if (combinator == 'adjacent') { + for (var i = 0, node; node = nodes[i]; i++) + if (Selector.handlers.previousElementSibling(targetNode) == node) + return [targetNode]; + } else nodes = h[combinator](nodes); + } + for (var i = 0, node; node = nodes[i]; i++) + if (node == targetNode) return [targetNode]; + return []; + } + return (targetNode && Element.descendantOf(targetNode, root)) ? [targetNode] : []; + }, + + className: function(nodes, root, className, combinator) { + if (nodes && combinator) nodes = this[combinator](nodes); + return Selector.handlers.byClassName(nodes, root, className); + }, + + byClassName: function(nodes, root, className) { + if (!nodes) nodes = Selector.handlers.descendant([root]); + var needle = ' ' + className + ' '; + for (var i = 0, results = [], node, nodeClassName; node = nodes[i]; i++) { + nodeClassName = node.className; + if (nodeClassName.length == 0) continue; + if (nodeClassName == className || (' ' + nodeClassName + ' ').include(needle)) + results.push(node); + } + return results; + }, + + attrPresence: function(nodes, root, attr, combinator) { + if (!nodes) nodes = root.getElementsByTagName("*"); + if (nodes && combinator) nodes = this[combinator](nodes); + var results = []; + for (var i = 0, node; node = nodes[i]; i++) + if (Element.hasAttribute(node, attr)) results.push(node); + return results; + }, + + attr: function(nodes, root, attr, value, operator, combinator) { + if (!nodes) nodes = root.getElementsByTagName("*"); + if (nodes && combinator) nodes = this[combinator](nodes); + var handler = Selector.operators[operator], results = []; + for (var i = 0, node; node = nodes[i]; i++) { + var nodeValue = Element.readAttribute(node, attr); + if (nodeValue === null) continue; + if (handler(nodeValue, value)) results.push(node); + } + return results; + }, + + pseudo: function(nodes, name, value, root, combinator) { + if (nodes && combinator) nodes = this[combinator](nodes); + if (!nodes) nodes = root.getElementsByTagName("*"); + return Selector.pseudos[name](nodes, value, root); + } + }, + + pseudos: { + 'first-child': function(nodes, value, root) { + for (var i = 0, results = [], node; node = nodes[i]; i++) { + if (Selector.handlers.previousElementSibling(node)) continue; + results.push(node); + } + return results; + }, + 'last-child': function(nodes, value, root) { + for (var i = 0, results = [], node; node = nodes[i]; i++) { + if (Selector.handlers.nextElementSibling(node)) continue; + results.push(node); + } + return results; + }, + 'only-child': function(nodes, value, root) { + var h = Selector.handlers; + for (var i = 0, results = [], node; node = nodes[i]; i++) + if (!h.previousElementSibling(node) && !h.nextElementSibling(node)) + results.push(node); + return results; + }, + 'nth-child': function(nodes, formula, root) { + return Selector.pseudos.nth(nodes, formula, root); + }, + 'nth-last-child': function(nodes, formula, root) { + return Selector.pseudos.nth(nodes, formula, root, true); + }, + 'nth-of-type': function(nodes, formula, root) { + return Selector.pseudos.nth(nodes, formula, root, false, true); + }, + 'nth-last-of-type': function(nodes, formula, root) { + return Selector.pseudos.nth(nodes, formula, root, true, true); + }, + 'first-of-type': function(nodes, formula, root) { + return Selector.pseudos.nth(nodes, "1", root, false, true); + }, + 'last-of-type': function(nodes, formula, root) { + return Selector.pseudos.nth(nodes, "1", root, true, true); + }, + 'only-of-type': function(nodes, formula, root) { + var p = Selector.pseudos; + return p['last-of-type'](p['first-of-type'](nodes, formula, root), formula, root); + }, + + // handles the an+b logic + getIndices: function(a, b, total) { + if (a == 0) return b > 0 ? [b] : []; + return $R(1, total).inject([], function(memo, i) { + if (0 == (i - b) % a && (i - b) / a >= 0) memo.push(i); + return memo; + }); + }, + + // handles nth(-last)-child, nth(-last)-of-type, and (first|last)-of-type + nth: function(nodes, formula, root, reverse, ofType) { + if (nodes.length == 0) return []; + if (formula == 'even') formula = '2n+0'; + if (formula == 'odd') formula = '2n+1'; + var h = Selector.handlers, results = [], indexed = [], m; + h.mark(nodes); + for (var i = 0, node; node = nodes[i]; i++) { + if (!node.parentNode._countedByPrototype) { + h.index(node.parentNode, reverse, ofType); + indexed.push(node.parentNode); + } + } + if (formula.match(/^\d+$/)) { // just a number + formula = Number(formula); + for (var i = 0, node; node = nodes[i]; i++) + if (node.nodeIndex == formula) results.push(node); + } else if (m = formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // an+b + if (m[1] == "-") m[1] = -1; + var a = m[1] ? Number(m[1]) : 1; + var b = m[2] ? Number(m[2]) : 0; + var indices = Selector.pseudos.getIndices(a, b, nodes.length); + for (var i = 0, node, l = indices.length; node = nodes[i]; i++) { + for (var j = 0; j < l; j++) + if (node.nodeIndex == indices[j]) results.push(node); + } + } + h.unmark(nodes); + h.unmark(indexed); + return results; + }, + + 'empty': function(nodes, value, root) { + for (var i = 0, results = [], node; node = nodes[i]; i++) { + // IE treats comments as element nodes + if (node.tagName == '!' || node.firstChild) continue; + results.push(node); + } + return results; + }, + + 'not': function(nodes, selector, root) { + var h = Selector.handlers, selectorType, m; + var exclusions = new Selector(selector).findElements(root); + h.mark(exclusions); + for (var i = 0, results = [], node; node = nodes[i]; i++) + if (!node._countedByPrototype) results.push(node); + h.unmark(exclusions); + return results; + }, + + 'enabled': function(nodes, value, root) { + for (var i = 0, results = [], node; node = nodes[i]; i++) + if (!node.disabled && (!node.type || node.type !== 'hidden')) + results.push(node); + return results; + }, + + 'disabled': function(nodes, value, root) { + for (var i = 0, results = [], node; node = nodes[i]; i++) + if (node.disabled) results.push(node); + return results; + }, + + 'checked': function(nodes, value, root) { + for (var i = 0, results = [], node; node = nodes[i]; i++) + if (node.checked) results.push(node); + return results; + } + }, + + operators: { + '=': function(nv, v) { return nv == v; }, + '!=': function(nv, v) { return nv != v; }, + '^=': function(nv, v) { return nv == v || nv && nv.startsWith(v); }, + '$=': function(nv, v) { return nv == v || nv && nv.endsWith(v); }, + '*=': function(nv, v) { return nv == v || nv && nv.include(v); }, + '$=': function(nv, v) { return nv.endsWith(v); }, + '*=': function(nv, v) { return nv.include(v); }, + '~=': function(nv, v) { return (' ' + nv + ' ').include(' ' + v + ' '); }, + '|=': function(nv, v) { return ('-' + (nv || "").toUpperCase() + + '-').include('-' + (v || "").toUpperCase() + '-'); } + }, + + split: function(expression) { + var expressions = []; + expression.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/, function(m) { + expressions.push(m[1].strip()); + }); + return expressions; + }, + + matchElements: function(elements, expression) { + var matches = $$(expression), h = Selector.handlers; + h.mark(matches); + for (var i = 0, results = [], element; element = elements[i]; i++) + if (element._countedByPrototype) results.push(element); + h.unmark(matches); + return results; + }, + + findElement: function(elements, expression, index) { + if (Object.isNumber(expression)) { + index = expression; expression = false; + } + return Selector.matchElements(elements, expression || '*')[index || 0]; + }, + + findChildElements: function(element, expressions) { + expressions = Selector.split(expressions.join(',')); + var results = [], h = Selector.handlers; + for (var i = 0, l = expressions.length, selector; i < l; i++) { + selector = new Selector(expressions[i].strip()); + h.concat(results, selector.findElements(element)); + } + return (l > 1) ? h.unique(results) : results; + } +}); + +if (Prototype.Browser.IE) { + Object.extend(Selector.handlers, { + // IE returns comment nodes on getElementsByTagName("*"). + // Filter them out. + concat: function(a, b) { + for (var i = 0, node; node = b[i]; i++) + if (node.tagName !== "!") a.push(node); + return a; + }, + + // IE improperly serializes _countedByPrototype in (inner|outer)HTML. + unmark: function(nodes) { + for (var i = 0, node; node = nodes[i]; i++) + node.removeAttribute('_countedByPrototype'); + return nodes; + } + }); +} + +function $$() { + return Selector.findChildElements(document, $A(arguments)); +} +var Form = { + reset: function(form) { + $(form).reset(); + return form; + }, + + serializeElements: function(elements, options) { + if (typeof options != 'object') options = { hash: !!options }; + else if (Object.isUndefined(options.hash)) options.hash = true; + var key, value, submitted = false, submit = options.submit; + + var data = elements.inject({ }, function(result, element) { + if (!element.disabled && element.name) { + key = element.name; value = $(element).getValue(); + if (value != null && element.type != 'file' && (element.type != 'submit' || (!submitted && + submit !== false && (!submit || key == submit) && (submitted = true)))) { + if (key in result) { + // a key is already present; construct an array of values + if (!Object.isArray(result[key])) result[key] = [result[key]]; + result[key].push(value); + } + else result[key] = value; + } + } + return result; + }); + + return options.hash ? data : Object.toQueryString(data); + } +}; + +Form.Methods = { + serialize: function(form, options) { + return Form.serializeElements(Form.getElements(form), options); + }, + + getElements: function(form) { + return $A($(form).getElementsByTagName('*')).inject([], + function(elements, child) { + if (Form.Element.Serializers[child.tagName.toLowerCase()]) + elements.push(Element.extend(child)); + return elements; + } + ); + }, + + getInputs: function(form, typeName, name) { + form = $(form); + var inputs = form.getElementsByTagName('input'); + + if (!typeName && !name) return $A(inputs).map(Element.extend); + + for (var i = 0, matchingInputs = [], length = inputs.length; i < length; i++) { + var input = inputs[i]; + if ((typeName && input.type != typeName) || (name && input.name != name)) + continue; + matchingInputs.push(Element.extend(input)); + } + + return matchingInputs; + }, + + disable: function(form) { + form = $(form); + Form.getElements(form).invoke('disable'); + return form; + }, + + enable: function(form) { + form = $(form); + Form.getElements(form).invoke('enable'); + return form; + }, + + findFirstElement: function(form) { + var elements = $(form).getElements().findAll(function(element) { + return 'hidden' != element.type && !element.disabled; + }); + var firstByIndex = elements.findAll(function(element) { + return element.hasAttribute('tabIndex') && element.tabIndex >= 0; + }).sortBy(function(element) { return element.tabIndex }).first(); + + return firstByIndex ? firstByIndex : elements.find(function(element) { + return ['input', 'select', 'textarea'].include(element.tagName.toLowerCase()); + }); + }, + + focusFirstElement: function(form) { + form = $(form); + form.findFirstElement().activate(); + return form; + }, + + request: function(form, options) { + form = $(form), options = Object.clone(options || { }); + + var params = options.parameters, action = form.readAttribute('action') || ''; + if (action.blank()) action = window.location.href; + options.parameters = form.serialize(true); + + if (params) { + if (Object.isString(params)) params = params.toQueryParams(); + Object.extend(options.parameters, params); + } + + if (form.hasAttribute('method') && !options.method) + options.method = form.method; + + return new Ajax.Request(action, options); + } +}; + +/*--------------------------------------------------------------------------*/ + +Form.Element = { + focus: function(element) { + $(element).focus(); + return element; + }, + + select: function(element) { + $(element).select(); + return element; + } +}; + +Form.Element.Methods = { + serialize: function(element) { + element = $(element); + if (!element.disabled && element.name) { + var value = element.getValue(); + if (value != undefined) { + var pair = { }; + pair[element.name] = value; + return Object.toQueryString(pair); + } + } + return ''; + }, + + getValue: function(element) { + element = $(element); + var method = element.tagName.toLowerCase(); + return Form.Element.Serializers[method](element); + }, + + setValue: function(element, value) { + element = $(element); + var method = element.tagName.toLowerCase(); + Form.Element.Serializers[method](element, value); + return element; + }, + + clear: function(element) { + $(element).value = ''; + return element; + }, + + present: function(element) { + return $(element).value != ''; + }, + + activate: function(element) { + element = $(element); + try { + element.focus(); + if (element.select && (element.tagName.toLowerCase() != 'input' || + !['button', 'reset', 'submit'].include(element.type))) + element.select(); + } catch (e) { } + return element; + }, + + disable: function(element) { + element = $(element); + element.disabled = true; + return element; + }, + + enable: function(element) { + element = $(element); + element.disabled = false; + return element; + } +}; + +/*--------------------------------------------------------------------------*/ + +var Field = Form.Element; +var $F = Form.Element.Methods.getValue; + +/*--------------------------------------------------------------------------*/ + +Form.Element.Serializers = { + input: function(element, value) { + switch (element.type.toLowerCase()) { + case 'checkbox': + case 'radio': + return Form.Element.Serializers.inputSelector(element, value); + default: + return Form.Element.Serializers.textarea(element, value); + } + }, + + inputSelector: function(element, value) { + if (Object.isUndefined(value)) return element.checked ? element.value : null; + else element.checked = !!value; + }, + + textarea: function(element, value) { + if (Object.isUndefined(value)) return element.value; + else element.value = value; + }, + + select: function(element, value) { + if (Object.isUndefined(value)) + return this[element.type == 'select-one' ? + 'selectOne' : 'selectMany'](element); + else { + var opt, currentValue, single = !Object.isArray(value); + for (var i = 0, length = element.length; i < length; i++) { + opt = element.options[i]; + currentValue = this.optionValue(opt); + if (single) { + if (currentValue == value) { + opt.selected = true; + return; + } + } + else opt.selected = value.include(currentValue); + } + } + }, + + selectOne: function(element) { + var index = element.selectedIndex; + return index >= 0 ? this.optionValue(element.options[index]) : null; + }, + + selectMany: function(element) { + var values, length = element.length; + if (!length) return null; + + for (var i = 0, values = []; i < length; i++) { + var opt = element.options[i]; + if (opt.selected) values.push(this.optionValue(opt)); + } + return values; + }, + + optionValue: function(opt) { + // extend element because hasAttribute may not be native + return Element.extend(opt).hasAttribute('value') ? opt.value : opt.text; + } +}; + +/*--------------------------------------------------------------------------*/ + +Abstract.TimedObserver = Class.create(PeriodicalExecuter, { + initialize: function($super, element, frequency, callback) { + $super(callback, frequency); + this.element = $(element); + this.lastValue = this.getValue(); + }, + + execute: function() { + var value = this.getValue(); + if (Object.isString(this.lastValue) && Object.isString(value) ? + this.lastValue != value : String(this.lastValue) != String(value)) { + this.callback(this.element, value); + this.lastValue = value; + } + } +}); + +Form.Element.Observer = Class.create(Abstract.TimedObserver, { + getValue: function() { + return Form.Element.getValue(this.element); + } +}); + +Form.Observer = Class.create(Abstract.TimedObserver, { + getValue: function() { + return Form.serialize(this.element); + } +}); + +/*--------------------------------------------------------------------------*/ + +Abstract.EventObserver = Class.create({ + initialize: function(element, callback) { + this.element = $(element); + this.callback = callback; + + this.lastValue = this.getValue(); + if (this.element.tagName.toLowerCase() == 'form') + this.registerFormCallbacks(); + else + this.registerCallback(this.element); + }, + + onElementEvent: function() { + var value = this.getValue(); + if (this.lastValue != value) { + this.callback(this.element, value); + this.lastValue = value; + } + }, + + registerFormCallbacks: function() { + Form.getElements(this.element).each(this.registerCallback, this); + }, + + registerCallback: function(element) { + if (element.type) { + switch (element.type.toLowerCase()) { + case 'checkbox': + case 'radio': + Event.observe(element, 'click', this.onElementEvent.bind(this)); + break; + default: + Event.observe(element, 'change', this.onElementEvent.bind(this)); + break; + } + } + } +}); + +Form.Element.EventObserver = Class.create(Abstract.EventObserver, { + getValue: function() { + return Form.Element.getValue(this.element); + } +}); + +Form.EventObserver = Class.create(Abstract.EventObserver, { + getValue: function() { + return Form.serialize(this.element); + } +}); +if (!window.Event) var Event = { }; + +Object.extend(Event, { + KEY_BACKSPACE: 8, + KEY_TAB: 9, + KEY_RETURN: 13, + KEY_ESC: 27, + KEY_LEFT: 37, + KEY_UP: 38, + KEY_RIGHT: 39, + KEY_DOWN: 40, + KEY_DELETE: 46, + KEY_HOME: 36, + KEY_END: 35, + KEY_PAGEUP: 33, + KEY_PAGEDOWN: 34, + KEY_INSERT: 45, + + cache: { }, + + relatedTarget: function(event) { + var element; + switch(event.type) { + case 'mouseover': element = event.fromElement; break; + case 'mouseout': element = event.toElement; break; + default: return null; + } + return Element.extend(element); + } +}); + +Event.Methods = (function() { + var isButton; + + if (Prototype.Browser.IE) { + var buttonMap = { 0: 1, 1: 4, 2: 2 }; + isButton = function(event, code) { + return event.button == buttonMap[code]; + }; + + } else if (Prototype.Browser.WebKit) { + isButton = function(event, code) { + switch (code) { + case 0: return event.which == 1 && !event.metaKey; + case 1: return event.which == 1 && event.metaKey; + default: return false; + } + }; + + } else { + isButton = function(event, code) { + return event.which ? (event.which === code + 1) : (event.button === code); + }; + } + + return { + isLeftClick: function(event) { return isButton(event, 0) }, + isMiddleClick: function(event) { return isButton(event, 1) }, + isRightClick: function(event) { return isButton(event, 2) }, + + element: function(event) { + event = Event.extend(event); + + var node = event.target, + type = event.type, + currentTarget = event.currentTarget; + + if (currentTarget && currentTarget.tagName) { + // Firefox screws up the "click" event when moving between radio buttons + // via arrow keys. It also screws up the "load" and "error" events on images, + // reporting the document as the target instead of the original image. + if (type === 'load' || type === 'error' || + (type === 'click' && currentTarget.tagName.toLowerCase() === 'input' + && currentTarget.type === 'radio')) + node = currentTarget; + } + if (node.nodeType == Node.TEXT_NODE) node = node.parentNode; + return Element.extend(node); + }, + + findElement: function(event, expression) { + var element = Event.element(event); + if (!expression) return element; + var elements = [element].concat(element.ancestors()); + return Selector.findElement(elements, expression, 0); + }, + + pointer: function(event) { + var docElement = document.documentElement, + body = document.body || { scrollLeft: 0, scrollTop: 0 }; + return { + x: event.pageX || (event.clientX + + (docElement.scrollLeft || body.scrollLeft) - + (docElement.clientLeft || 0)), + y: event.pageY || (event.clientY + + (docElement.scrollTop || body.scrollTop) - + (docElement.clientTop || 0)) + }; + }, + + pointerX: function(event) { return Event.pointer(event).x }, + pointerY: function(event) { return Event.pointer(event).y }, + + stop: function(event) { + Event.extend(event); + event.preventDefault(); + event.stopPropagation(); + event.stopped = true; + } + }; +})(); + +Event.extend = (function() { + var methods = Object.keys(Event.Methods).inject({ }, function(m, name) { + m[name] = Event.Methods[name].methodize(); + return m; + }); + + if (Prototype.Browser.IE) { + Object.extend(methods, { + stopPropagation: function() { this.cancelBubble = true }, + preventDefault: function() { this.returnValue = false }, + inspect: function() { return "[object Event]" } + }); + + return function(event) { + if (!event) return false; + if (event._extendedByPrototype) return event; + + event._extendedByPrototype = Prototype.emptyFunction; + var pointer = Event.pointer(event); + Object.extend(event, { + target: event.srcElement, + relatedTarget: Event.relatedTarget(event), + pageX: pointer.x, + pageY: pointer.y + }); + return Object.extend(event, methods); + }; + + } else { + Event.prototype = Event.prototype || document.createEvent("HTMLEvents")['__proto__']; + Object.extend(Event.prototype, methods); + return Prototype.K; + } +})(); + +Object.extend(Event, (function() { + var cache = Event.cache; + + function getEventID(element) { + if (element._prototypeEventID) return element._prototypeEventID[0]; + arguments.callee.id = arguments.callee.id || 1; + return element._prototypeEventID = [++arguments.callee.id]; + } + + function getDOMEventName(eventName) { + if (eventName && eventName.include(':')) return "dataavailable"; + return eventName; + } + + function getCacheForID(id) { + return cache[id] = cache[id] || { }; + } + + function getWrappersForEventName(id, eventName) { + var c = getCacheForID(id); + return c[eventName] = c[eventName] || []; + } + + function createWrapper(element, eventName, handler) { + var id = getEventID(element); + var c = getWrappersForEventName(id, eventName); + if (c.pluck("handler").include(handler)) return false; + + var wrapper = function(event) { + if (!Event || !Event.extend || + (event.eventName && event.eventName != eventName)) + return false; + + Event.extend(event); + handler.call(element, event); + }; + + wrapper.handler = handler; + c.push(wrapper); + return wrapper; + } + + function findWrapper(id, eventName, handler) { + var c = getWrappersForEventName(id, eventName); + return c.find(function(wrapper) { return wrapper.handler == handler }); + } + + function destroyWrapper(id, eventName, handler) { + var c = getCacheForID(id); + if (!c[eventName]) return false; + c[eventName] = c[eventName].without(findWrapper(id, eventName, handler)); + } + + function destroyCache() { + for (var id in cache) + for (var eventName in cache[id]) + cache[id][eventName] = null; + } + + + // Internet Explorer needs to remove event handlers on page unload + // in order to avoid memory leaks. + if (window.attachEvent) { + window.attachEvent("onunload", destroyCache); + } + + // Safari has a dummy event handler on page unload so that it won't + // use its bfcache. Safari <= 3.1 has an issue with restoring the "document" + // object when page is returned to via the back button using its bfcache. + if (Prototype.Browser.WebKit) { + window.addEventListener('unload', Prototype.emptyFunction, false); + } + + return { + observe: function(element, eventName, handler) { + element = $(element); + var name = getDOMEventName(eventName); + + var wrapper = createWrapper(element, eventName, handler); + if (!wrapper) return element; + + if (element.addEventListener) { + element.addEventListener(name, wrapper, false); + } else { + element.attachEvent("on" + name, wrapper); + } + + return element; + }, + + stopObserving: function(element, eventName, handler) { + element = $(element); + var id = getEventID(element), name = getDOMEventName(eventName); + + if (!handler && eventName) { + getWrappersForEventName(id, eventName).each(function(wrapper) { + element.stopObserving(eventName, wrapper.handler); + }); + return element; + + } else if (!eventName) { + Object.keys(getCacheForID(id)).each(function(eventName) { + element.stopObserving(eventName); + }); + return element; + } + + var wrapper = findWrapper(id, eventName, handler); + if (!wrapper) return element; + + if (element.removeEventListener) { + element.removeEventListener(name, wrapper, false); + } else { + element.detachEvent("on" + name, wrapper); + } + + destroyWrapper(id, eventName, handler); + + return element; + }, + + fire: function(element, eventName, memo) { + element = $(element); + if (element == document && document.createEvent && !element.dispatchEvent) + element = document.documentElement; + + var event; + if (document.createEvent) { + event = document.createEvent("HTMLEvents"); + event.initEvent("dataavailable", true, true); + } else { + event = document.createEventObject(); + event.eventType = "ondataavailable"; + } + + event.eventName = eventName; + event.memo = memo || { }; + + if (document.createEvent) { + element.dispatchEvent(event); + } else { + element.fireEvent(event.eventType, event); + } + + return Event.extend(event); + } + }; +})()); + +Object.extend(Event, Event.Methods); + +Element.addMethods({ + fire: Event.fire, + observe: Event.observe, + stopObserving: Event.stopObserving +}); + +Object.extend(document, { + fire: Element.Methods.fire.methodize(), + observe: Element.Methods.observe.methodize(), + stopObserving: Element.Methods.stopObserving.methodize(), + loaded: false +}); + +(function() { + /* Support for the DOMContentLoaded event is based on work by Dan Webb, + Matthias Miller, Dean Edwards and John Resig. */ + + var timer; + + function fireContentLoadedEvent() { + if (document.loaded) return; + if (timer) window.clearInterval(timer); + document.fire("dom:loaded"); + document.loaded = true; + } + + if (document.addEventListener) { + if (Prototype.Browser.WebKit) { + timer = window.setInterval(function() { + if (/loaded|complete/.test(document.readyState)) + fireContentLoadedEvent(); + }, 0); + + Event.observe(window, "load", fireContentLoadedEvent); + + } else { + document.addEventListener("DOMContentLoaded", + fireContentLoadedEvent, false); + } + + } else { + document.write(" + + + +
    +

    <%=h exception.class %> at <%=h path %>

    +

    <%=h exception.message %>

    + + + + + + +
    Ruby<%=h frames.first.filename %>: in <%=h frames.first.function %>, line <%=h frames.first.lineno %>
    Web<%=h req.request_method %> <%=h(req.host + path)%>
    + +

    Jump to:

    + +
    + +
    +

    Traceback (innermost first)

    +
      +<% frames.each { |frame| %> +
    • + <%=h frame.filename %>: in <%=h frame.function %> + + <% if frame.context_line %> +
      + <% if frame.pre_context %> +
        + <% frame.pre_context.each { |line| %> +
      1. <%=h line %>
      2. + <% } %> +
      + <% end %> + +
        +
      1. <%=h frame.context_line %>...
      + + <% if frame.post_context %> +
        + <% frame.post_context.each { |line| %> +
      1. <%=h line %>
      2. + <% } %> +
      + <% end %> +
      + <% end %> +
    • +<% } %> +
    +
    + +
    +

    Request information

    + +

    GET

    + <% unless req.GET.empty? %> + + + + + + + + + <% req.GET.sort_by { |k, v| k.to_s }.each { |key, val| %> + + + + + <% } %> + +
    VariableValue
    <%=h key %>
    <%=h val.inspect %>
    + <% else %> +

    No GET data.

    + <% end %> + +

    POST

    + <% unless req.POST.empty? %> + + + + + + + + + <% req.POST.sort_by { |k, v| k.to_s }.each { |key, val| %> + + + + + <% } %> + +
    VariableValue
    <%=h key %>
    <%=h val.inspect %>
    + <% else %> +

    No POST data.

    + <% end %> + + + + <% unless req.cookies.empty? %> + + + + + + + + + <% req.cookies.each { |key, val| %> + + + + + <% } %> + +
    VariableValue
    <%=h key %>
    <%=h val.inspect %>
    + <% else %> +

    No cookie data.

    + <% end %> + +

    Rack ENV

    + + + + + + + + + <% env.sort_by { |k, v| k.to_s }.each { |key, val| %> + + + + + <% } %> + +
    VariableValue
    <%=h key %>
    <%=h val %>
    + +
    + +
    +

    + You're seeing this error because you use Rack::ShowExceptions. +

    +
    + + + +HTML + + # :startdoc: + end +end diff --git a/presidents/vendor/gems/rack-1.0.0/lib/rack/showstatus.rb b/presidents/vendor/gems/rack-1.0.0/lib/rack/showstatus.rb new file mode 100644 index 0000000..28258c7 --- /dev/null +++ b/presidents/vendor/gems/rack-1.0.0/lib/rack/showstatus.rb @@ -0,0 +1,106 @@ +require 'erb' +require 'rack/request' +require 'rack/utils' + +module Rack + # Rack::ShowStatus catches all empty responses the app it wraps and + # replaces them with a site explaining the error. + # + # Additional details can be put into rack.showstatus.detail + # and will be shown as HTML. If such details exist, the error page + # is always rendered, even if the reply was not empty. + + class ShowStatus + def initialize(app) + @app = app + @template = ERB.new(TEMPLATE) + end + + def call(env) + status, headers, body = @app.call(env) + headers = Utils::HeaderHash.new(headers) + empty = headers['Content-Length'].to_i <= 0 + + # client or server error, or explicit message + if (status.to_i >= 400 && empty) || env["rack.showstatus.detail"] + req = Rack::Request.new(env) + message = Rack::Utils::HTTP_STATUS_CODES[status.to_i] || status.to_s + detail = env["rack.showstatus.detail"] || message + body = @template.result(binding) + size = Rack::Utils.bytesize(body) + [status, headers.merge("Content-Type" => "text/html", "Content-Length" => size.to_s), [body]] + else + [status, headers, body] + end + end + + def h(obj) # :nodoc: + case obj + when String + Utils.escape_html(obj) + else + Utils.escape_html(obj.inspect) + end + end + + # :stopdoc: + +# adapted from Django +# Copyright (c) 2005, the Lawrence Journal-World +# Used under the modified BSD license: +# http://www.xfree86.org/3.3.6/COPYRIGHT2.html#5 +TEMPLATE = <<'HTML' + + + + + <%=h message %> at <%=h req.script_name + req.path_info %> + + + + +
    +

    <%=h message %> (<%= status.to_i %>)

    + + + + + + + + + +
    Request Method:<%=h req.request_method %>
    Request URL:<%=h req.url %>
    +
    +
    +

    <%= detail %>

    +
    + +
    +

    + You're seeing this error because you use Rack::ShowStatus. +

    +
    + + +HTML + + # :startdoc: + end +end diff --git a/presidents/vendor/gems/rack-1.0.0/lib/rack/static.rb b/presidents/vendor/gems/rack-1.0.0/lib/rack/static.rb new file mode 100644 index 0000000..168e8f8 --- /dev/null +++ b/presidents/vendor/gems/rack-1.0.0/lib/rack/static.rb @@ -0,0 +1,38 @@ +module Rack + + # The Rack::Static middleware intercepts requests for static files + # (javascript files, images, stylesheets, etc) based on the url prefixes + # passed in the options, and serves them using a Rack::File object. This + # allows a Rack stack to serve both static and dynamic content. + # + # Examples: + # use Rack::Static, :urls => ["/media"] + # will serve all requests beginning with /media from the "media" folder + # located in the current directory (ie media/*). + # + # use Rack::Static, :urls => ["/css", "/images"], :root => "public" + # will serve all requests beginning with /css or /images from the folder + # "public" in the current directory (ie public/css/* and public/images/*) + + class Static + + def initialize(app, options={}) + @app = app + @urls = options[:urls] || ["/favicon.ico"] + root = options[:root] || Dir.pwd + @file_server = Rack::File.new(root) + end + + def call(env) + path = env["PATH_INFO"] + can_serve = @urls.any? { |url| path.index(url) == 0 } + + if can_serve + @file_server.call(env) + else + @app.call(env) + end + end + + end +end diff --git a/presidents/vendor/gems/rack-1.0.0/lib/rack/urlmap.rb b/presidents/vendor/gems/rack-1.0.0/lib/rack/urlmap.rb new file mode 100644 index 0000000..fcf6616 --- /dev/null +++ b/presidents/vendor/gems/rack-1.0.0/lib/rack/urlmap.rb @@ -0,0 +1,55 @@ +module Rack + # Rack::URLMap takes a hash mapping urls or paths to apps, and + # dispatches accordingly. Support for HTTP/1.1 host names exists if + # the URLs start with http:// or https://. + # + # URLMap modifies the SCRIPT_NAME and PATH_INFO such that the part + # relevant for dispatch is in the SCRIPT_NAME, and the rest in the + # PATH_INFO. This should be taken care of when you need to + # reconstruct the URL in order to create links. + # + # URLMap dispatches in such a way that the longest paths are tried + # first, since they are most specific. + + class URLMap + def initialize(map = {}) + remap(map) + end + + def remap(map) + @mapping = map.map { |location, app| + if location =~ %r{\Ahttps?://(.*?)(/.*)} + host, location = $1, $2 + else + host = nil + end + + unless location[0] == ?/ + raise ArgumentError, "paths need to start with /" + end + location = location.chomp('/') + + [host, location, app] + }.sort_by { |(h, l, a)| [h ? -h.size : (-1.0 / 0.0), -l.size] } # Longest path first + end + + def call(env) + path = env["PATH_INFO"].to_s.squeeze("/") + script_name = env['SCRIPT_NAME'] + hHost, sName, sPort = env.values_at('HTTP_HOST','SERVER_NAME','SERVER_PORT') + @mapping.each { |host, location, app| + next unless (hHost == host || sName == host \ + || (host.nil? && (hHost == sName || hHost == sName+':'+sPort))) + next unless location == path[0, location.size] + next unless path[location.size] == nil || path[location.size] == ?/ + + return app.call( + env.merge( + 'SCRIPT_NAME' => (script_name + location), + 'PATH_INFO' => path[location.size..-1])) + } + [404, {"Content-Type" => "text/plain"}, ["Not Found: #{path}"]] + end + end +end + diff --git a/presidents/vendor/gems/rack-1.0.0/lib/rack/utils.rb b/presidents/vendor/gems/rack-1.0.0/lib/rack/utils.rb new file mode 100644 index 0000000..6aaf478 --- /dev/null +++ b/presidents/vendor/gems/rack-1.0.0/lib/rack/utils.rb @@ -0,0 +1,397 @@ +require 'set' +require 'tempfile' + +module Rack + # Rack::Utils contains a grab-bag of useful methods for writing web + # applications adopted from all kinds of Ruby libraries. + + module Utils + # Performs URI escaping so that you can construct proper + # query strings faster. Use this rather than the cgi.rb + # version since it's faster. (Stolen from Camping). + def escape(s) + s.to_s.gsub(/([^ a-zA-Z0-9_.-]+)/n) { + '%'+$1.unpack('H2'*$1.size).join('%').upcase + }.tr(' ', '+') + end + module_function :escape + + # Unescapes a URI escaped string. (Stolen from Camping). + def unescape(s) + s.tr('+', ' ').gsub(/((?:%[0-9a-fA-F]{2})+)/n){ + [$1.delete('%')].pack('H*') + } + end + module_function :unescape + + # Stolen from Mongrel, with some small modifications: + # Parses a query string by breaking it up at the '&' + # and ';' characters. You can also use this to parse + # cookies by changing the characters used in the second + # parameter (which defaults to '&;'). + def parse_query(qs, d = '&;') + params = {} + + (qs || '').split(/[#{d}] */n).each do |p| + k, v = unescape(p).split('=', 2) + + if cur = params[k] + if cur.class == Array + params[k] << v + else + params[k] = [cur, v] + end + else + params[k] = v + end + end + + return params + end + module_function :parse_query + + def parse_nested_query(qs, d = '&;') + params = {} + + (qs || '').split(/[#{d}] */n).each do |p| + k, v = unescape(p).split('=', 2) + normalize_params(params, k, v) + end + + return params + end + module_function :parse_nested_query + + def normalize_params(params, name, v = nil) + name =~ %r([\[\]]*([^\[\]]+)\]*) + k = $1 || '' + after = $' || '' + + return if k.empty? + + if after == "" + params[k] = v + elsif after == "[]" + params[k] ||= [] + raise TypeError, "expected Array (got #{params[k].class.name}) for param `#{k}'" unless params[k].is_a?(Array) + params[k] << v + elsif after =~ %r(^\[\]\[([^\[\]]+)\]$) || after =~ %r(^\[\](.+)$) + child_key = $1 + params[k] ||= [] + raise TypeError, "expected Array (got #{params[k].class.name}) for param `#{k}'" unless params[k].is_a?(Array) + if params[k].last.is_a?(Hash) && !params[k].last.key?(child_key) + normalize_params(params[k].last, child_key, v) + else + params[k] << normalize_params({}, child_key, v) + end + else + params[k] ||= {} + raise TypeError, "expected Hash (got #{params[k].class.name}) for param `#{k}'" unless params[k].is_a?(Hash) + params[k] = normalize_params(params[k], after, v) + end + + return params + end + module_function :normalize_params + + def build_query(params) + params.map { |k, v| + if v.class == Array + build_query(v.map { |x| [k, x] }) + else + escape(k) + "=" + escape(v) + end + }.join("&") + end + module_function :build_query + + # Escape ampersands, brackets and quotes to their HTML/XML entities. + def escape_html(string) + string.to_s.gsub("&", "&"). + gsub("<", "<"). + gsub(">", ">"). + gsub("'", "'"). + gsub('"', """) + end + module_function :escape_html + + def select_best_encoding(available_encodings, accept_encoding) + # http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html + + expanded_accept_encoding = + accept_encoding.map { |m, q| + if m == "*" + (available_encodings - accept_encoding.map { |m2, _| m2 }).map { |m2| [m2, q] } + else + [[m, q]] + end + }.inject([]) { |mem, list| + mem + list + } + + encoding_candidates = expanded_accept_encoding.sort_by { |_, q| -q }.map { |m, _| m } + + unless encoding_candidates.include?("identity") + encoding_candidates.push("identity") + end + + expanded_accept_encoding.find_all { |m, q| + q == 0.0 + }.each { |m, _| + encoding_candidates.delete(m) + } + + return (encoding_candidates & available_encodings)[0] + end + module_function :select_best_encoding + + # Return the bytesize of String; uses String#length under Ruby 1.8 and + # String#bytesize under 1.9. + if ''.respond_to?(:bytesize) + def bytesize(string) + string.bytesize + end + else + def bytesize(string) + string.size + end + end + module_function :bytesize + + # Context allows the use of a compatible middleware at different points + # in a request handling stack. A compatible middleware must define + # #context which should take the arguments env and app. The first of which + # would be the request environment. The second of which would be the rack + # application that the request would be forwarded to. + class Context + attr_reader :for, :app + + def initialize(app_f, app_r) + raise 'running context does not respond to #context' unless app_f.respond_to? :context + @for, @app = app_f, app_r + end + + def call(env) + @for.context(env, @app) + end + + def recontext(app) + self.class.new(@for, app) + end + + def context(env, app=@app) + recontext(app).call(env) + end + end + + # A case-insensitive Hash that preserves the original case of a + # header when set. + class HeaderHash < Hash + def initialize(hash={}) + @names = {} + hash.each { |k, v| self[k] = v } + end + + def to_hash + inject({}) do |hash, (k,v)| + if v.respond_to? :to_ary + hash[k] = v.to_ary.join("\n") + else + hash[k] = v + end + hash + end + end + + def [](k) + super @names[k.downcase] + end + + def []=(k, v) + delete k + @names[k.downcase] = k + super k, v + end + + def delete(k) + super @names.delete(k.downcase) + end + + def include?(k) + @names.has_key? k.downcase + end + + alias_method :has_key?, :include? + alias_method :member?, :include? + alias_method :key?, :include? + + def merge!(other) + other.each { |k, v| self[k] = v } + self + end + + def merge(other) + hash = dup + hash.merge! other + end + end + + # Every standard HTTP code mapped to the appropriate message. + # Stolen from Mongrel. + HTTP_STATUS_CODES = { + 100 => 'Continue', + 101 => 'Switching Protocols', + 200 => 'OK', + 201 => 'Created', + 202 => 'Accepted', + 203 => 'Non-Authoritative Information', + 204 => 'No Content', + 205 => 'Reset Content', + 206 => 'Partial Content', + 300 => 'Multiple Choices', + 301 => 'Moved Permanently', + 302 => 'Found', + 303 => 'See Other', + 304 => 'Not Modified', + 305 => 'Use Proxy', + 307 => 'Temporary Redirect', + 400 => 'Bad Request', + 401 => 'Unauthorized', + 402 => 'Payment Required', + 403 => 'Forbidden', + 404 => 'Not Found', + 405 => 'Method Not Allowed', + 406 => 'Not Acceptable', + 407 => 'Proxy Authentication Required', + 408 => 'Request Timeout', + 409 => 'Conflict', + 410 => 'Gone', + 411 => 'Length Required', + 412 => 'Precondition Failed', + 413 => 'Request Entity Too Large', + 414 => 'Request-URI Too Large', + 415 => 'Unsupported Media Type', + 416 => 'Requested Range Not Satisfiable', + 417 => 'Expectation Failed', + 500 => 'Internal Server Error', + 501 => 'Not Implemented', + 502 => 'Bad Gateway', + 503 => 'Service Unavailable', + 504 => 'Gateway Timeout', + 505 => 'HTTP Version Not Supported' + } + + # Responses with HTTP status codes that should not have an entity body + STATUS_WITH_NO_ENTITY_BODY = Set.new((100..199).to_a << 204 << 304) + + # A multipart form data parser, adapted from IOWA. + # + # Usually, Rack::Request#POST takes care of calling this. + + module Multipart + EOL = "\r\n" + + def self.parse_multipart(env) + unless env['CONTENT_TYPE'] =~ + %r|\Amultipart/.*boundary=\"?([^\";,]+)\"?|n + nil + else + boundary = "--#{$1}" + + params = {} + buf = "" + content_length = env['CONTENT_LENGTH'].to_i + input = env['rack.input'] + input.rewind + + boundary_size = boundary.size + EOL.size + bufsize = 16384 + + content_length -= boundary_size + + read_buffer = '' + + status = input.read(boundary_size, read_buffer) + raise EOFError, "bad content body" unless status == boundary + EOL + + rx = /(?:#{EOL})?#{Regexp.quote boundary}(#{EOL}|--)/n + + loop { + head = nil + body = '' + filename = content_type = name = nil + + until head && buf =~ rx + if !head && i = buf.index(EOL+EOL) + head = buf.slice!(0, i+2) # First \r\n + buf.slice!(0, 2) # Second \r\n + + filename = head[/Content-Disposition:.* filename="?([^\";]*)"?/ni, 1] + content_type = head[/Content-Type: (.*)#{EOL}/ni, 1] + name = head[/Content-Disposition:.*\s+name="?([^\";]*)"?/ni, 1] || head[/Content-ID:\s*([^#{EOL}]*)/ni, 1] + + if content_type || filename + body = Tempfile.new("RackMultipart") + body.binmode if body.respond_to?(:binmode) + end + + next + end + + # Save the read body part. + if head && (boundary_size+4 < buf.size) + body << buf.slice!(0, buf.size - (boundary_size+4)) + end + + c = input.read(bufsize < content_length ? bufsize : content_length, read_buffer) + raise EOFError, "bad content body" if c.nil? || c.empty? + buf << c + content_length -= c.size + end + + # Save the rest. + if i = buf.index(rx) + body << buf.slice!(0, i) + buf.slice!(0, boundary_size+2) + + content_length = -1 if $1 == "--" + end + + if filename == "" + # filename is blank which means no file has been selected + data = nil + elsif filename + body.rewind + + # Take the basename of the upload's original filename. + # This handles the full Windows paths given by Internet Explorer + # (and perhaps other broken user agents) without affecting + # those which give the lone filename. + filename =~ /^(?:.*[:\\\/])?(.*)/m + filename = $1 + + data = {:filename => filename, :type => content_type, + :name => name, :tempfile => body, :head => head} + elsif !filename && content_type + body.rewind + + # Generic multipart cases, not coming from a form + data = {:type => content_type, + :name => name, :tempfile => body, :head => head} + else + data = body + end + + Utils.normalize_params(params, name, data) unless data.nil? + + break if buf.empty? || content_length == -1 + } + + input.rewind + + params + end + end + end + end +end diff --git a/presidents/vendor/gems/rack-1.0.0/rack.gemspec b/presidents/vendor/gems/rack-1.0.0/rack.gemspec new file mode 100644 index 0000000..eac1e84 --- /dev/null +++ b/presidents/vendor/gems/rack-1.0.0/rack.gemspec @@ -0,0 +1,54 @@ +# -*- encoding: utf-8 -*- + +Gem::Specification.new do |s| + s.name = %q{rack} + s.version = "1.0.0" + + s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version= + s.authors = ["Christian Neukirchen"] + s.date = %q{2009-04-25} + s.default_executable = %q{rackup} + s.description = %q{Rack provides minimal, modular and adaptable interface for developing web applications in Ruby. By wrapping HTTP requests and responses in the simplest way possible, it unifies and distills the API for web servers, web frameworks, and software in between (the so-called middleware) into a single method call. Also see http://rack.rubyforge.org.} + s.email = %q{chneukirchen@gmail.com} + s.executables = ["rackup"] + s.extra_rdoc_files = ["README", "SPEC", "RDOX", "KNOWN-ISSUES"] + s.files = ["COPYING", "KNOWN-ISSUES", "README", "Rakefile", "bin/rackup", "contrib/rack_logo.svg", "example/lobster.ru", "example/protectedlobster.rb", "example/protectedlobster.ru", "lib/rack.rb", "lib/rack/adapter/camping.rb", "lib/rack/auth/abstract/handler.rb", "lib/rack/auth/abstract/request.rb", "lib/rack/auth/basic.rb", "lib/rack/auth/digest/md5.rb", "lib/rack/auth/digest/nonce.rb", "lib/rack/auth/digest/params.rb", "lib/rack/auth/digest/request.rb", "lib/rack/auth/openid.rb", "lib/rack/builder.rb", "lib/rack/cascade.rb", "lib/rack/chunked.rb", "lib/rack/commonlogger.rb", "lib/rack/conditionalget.rb", "lib/rack/content_length.rb", "lib/rack/content_type.rb", "lib/rack/deflater.rb", "lib/rack/directory.rb", "lib/rack/file.rb", "lib/rack/handler.rb", "lib/rack/handler/cgi.rb", "lib/rack/handler/evented_mongrel.rb", "lib/rack/handler/fastcgi.rb", "lib/rack/handler/lsws.rb", "lib/rack/handler/mongrel.rb", "lib/rack/handler/scgi.rb", "lib/rack/handler/swiftiplied_mongrel.rb", "lib/rack/handler/thin.rb", "lib/rack/handler/webrick.rb", "lib/rack/head.rb", "lib/rack/lint.rb", "lib/rack/lobster.rb", "lib/rack/lock.rb", "lib/rack/methodoverride.rb", "lib/rack/mime.rb", "lib/rack/mock.rb", "lib/rack/recursive.rb", "lib/rack/reloader.rb", "lib/rack/request.rb", "lib/rack/response.rb", "lib/rack/rewindable_input.rb", "lib/rack/session/abstract/id.rb", "lib/rack/session/cookie.rb", "lib/rack/session/memcache.rb", "lib/rack/session/pool.rb", "lib/rack/showexceptions.rb", "lib/rack/showstatus.rb", "lib/rack/static.rb", "lib/rack/urlmap.rb", "lib/rack/utils.rb", "test/cgi/lighttpd.conf", "test/cgi/test", "test/cgi/test.fcgi", "test/cgi/test.ru", "test/multipart/binary", "test/multipart/empty", "test/multipart/ie", "test/multipart/nested", "test/multipart/none", "test/multipart/text", "test/spec_rack_auth_basic.rb", "test/spec_rack_auth_digest.rb", "test/spec_rack_auth_openid.rb", "test/spec_rack_builder.rb", "test/spec_rack_camping.rb", "test/spec_rack_cascade.rb", "test/spec_rack_cgi.rb", "test/spec_rack_chunked.rb", "test/spec_rack_commonlogger.rb", "test/spec_rack_conditionalget.rb", "test/spec_rack_content_length.rb", "test/spec_rack_content_type.rb", "test/spec_rack_deflater.rb", "test/spec_rack_directory.rb", "test/spec_rack_fastcgi.rb", "test/spec_rack_file.rb", "test/spec_rack_handler.rb", "test/spec_rack_head.rb", "test/spec_rack_lint.rb", "test/spec_rack_lobster.rb", "test/spec_rack_lock.rb", "test/spec_rack_methodoverride.rb", "test/spec_rack_mock.rb", "test/spec_rack_mongrel.rb", "test/spec_rack_recursive.rb", "test/spec_rack_request.rb", "test/spec_rack_response.rb", "test/spec_rack_rewindable_input.rb", "test/spec_rack_session_cookie.rb", "test/spec_rack_session_memcache.rb", "test/spec_rack_session_pool.rb", "test/spec_rack_showexceptions.rb", "test/spec_rack_showstatus.rb", "test/spec_rack_static.rb", "test/spec_rack_thin.rb", "test/spec_rack_urlmap.rb", "test/spec_rack_utils.rb", "test/spec_rack_webrick.rb", "test/testrequest.rb", "test/unregistered_handler/rack/handler/unregistered.rb", "test/unregistered_handler/rack/handler/unregistered_long_one.rb", "SPEC", "RDOX", "rack.gemspec"] + s.has_rdoc = true + s.homepage = %q{http://rack.rubyforge.org} + s.require_paths = ["lib"] + s.rubyforge_project = %q{rack} + s.rubygems_version = %q{1.3.1} + s.summary = %q{a modular Ruby webserver interface} + s.test_files = ["test/spec_rack_auth_basic.rb", "test/spec_rack_auth_digest.rb", "test/spec_rack_auth_openid.rb", "test/spec_rack_builder.rb", "test/spec_rack_camping.rb", "test/spec_rack_cascade.rb", "test/spec_rack_cgi.rb", "test/spec_rack_chunked.rb", "test/spec_rack_commonlogger.rb", "test/spec_rack_conditionalget.rb", "test/spec_rack_content_length.rb", "test/spec_rack_content_type.rb", "test/spec_rack_deflater.rb", "test/spec_rack_directory.rb", "test/spec_rack_fastcgi.rb", "test/spec_rack_file.rb", "test/spec_rack_handler.rb", "test/spec_rack_head.rb", "test/spec_rack_lint.rb", "test/spec_rack_lobster.rb", "test/spec_rack_lock.rb", "test/spec_rack_methodoverride.rb", "test/spec_rack_mock.rb", "test/spec_rack_mongrel.rb", "test/spec_rack_recursive.rb", "test/spec_rack_request.rb", "test/spec_rack_response.rb", "test/spec_rack_rewindable_input.rb", "test/spec_rack_session_cookie.rb", "test/spec_rack_session_memcache.rb", "test/spec_rack_session_pool.rb", "test/spec_rack_showexceptions.rb", "test/spec_rack_showstatus.rb", "test/spec_rack_static.rb", "test/spec_rack_thin.rb", "test/spec_rack_urlmap.rb", "test/spec_rack_utils.rb", "test/spec_rack_webrick.rb"] + + if s.respond_to? :specification_version then + current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION + s.specification_version = 2 + + if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then + s.add_development_dependency(%q, [">= 0"]) + s.add_development_dependency(%q, [">= 0"]) + s.add_development_dependency(%q, [">= 0"]) + s.add_development_dependency(%q, [">= 0"]) + s.add_development_dependency(%q, [">= 0"]) + s.add_development_dependency(%q, ["~> 2.0.0"]) + s.add_development_dependency(%q, [">= 0"]) + else + s.add_dependency(%q, [">= 0"]) + s.add_dependency(%q, [">= 0"]) + s.add_dependency(%q, [">= 0"]) + s.add_dependency(%q, [">= 0"]) + s.add_dependency(%q, [">= 0"]) + s.add_dependency(%q, ["~> 2.0.0"]) + s.add_dependency(%q, [">= 0"]) + end + else + s.add_dependency(%q, [">= 0"]) + s.add_dependency(%q, [">= 0"]) + s.add_dependency(%q, [">= 0"]) + s.add_dependency(%q, [">= 0"]) + s.add_dependency(%q, [">= 0"]) + s.add_dependency(%q, ["~> 2.0.0"]) + s.add_dependency(%q, [">= 0"]) + end +end diff --git a/presidents/vendor/gems/rack-1.0.0/test/cgi/lighttpd.conf b/presidents/vendor/gems/rack-1.0.0/test/cgi/lighttpd.conf new file mode 100644 index 0000000..889726c --- /dev/null +++ b/presidents/vendor/gems/rack-1.0.0/test/cgi/lighttpd.conf @@ -0,0 +1,20 @@ +server.modules = ("mod_fastcgi", "mod_cgi") +server.document-root = "." +server.errorlog = "lighttpd.errors" +server.port = 9203 + +server.event-handler = "select" + +cgi.assign = ("/test" => "", +# ".ru" => "" + ) + +fastcgi.server = ("test.fcgi" => ("localhost" => + ("min-procs" => 1, + "socket" => "/tmp/rack-test-fcgi", + "bin-path" => "test.fcgi")), + "test.ru" => ("localhost" => + ("min-procs" => 1, + "socket" => "/tmp/rack-test-ru-fcgi", + "bin-path" => "test.ru")), + ) diff --git a/presidents/vendor/gems/rack-1.0.0/test/cgi/test b/presidents/vendor/gems/rack-1.0.0/test/cgi/test new file mode 100755 index 0000000..e4837a4 --- /dev/null +++ b/presidents/vendor/gems/rack-1.0.0/test/cgi/test @@ -0,0 +1,9 @@ +#!/usr/bin/env ruby +# -*- ruby -*- + +$: << File.join(File.dirname(__FILE__), "..", "..", "lib") + +require 'rack' +require '../testrequest' + +Rack::Handler::CGI.run(Rack::Lint.new(TestRequest.new)) diff --git a/presidents/vendor/gems/rack-1.0.0/test/cgi/test.fcgi b/presidents/vendor/gems/rack-1.0.0/test/cgi/test.fcgi new file mode 100755 index 0000000..5e104fc --- /dev/null +++ b/presidents/vendor/gems/rack-1.0.0/test/cgi/test.fcgi @@ -0,0 +1,8 @@ +#!/usr/bin/env ruby +# -*- ruby -*- + +$:.unshift '../../lib' +require 'rack' +require '../testrequest' + +Rack::Handler::FastCGI.run(Rack::Lint.new(TestRequest.new)) diff --git a/presidents/vendor/gems/rack-1.0.0/test/cgi/test.ru b/presidents/vendor/gems/rack-1.0.0/test/cgi/test.ru new file mode 100755 index 0000000..4054b88 --- /dev/null +++ b/presidents/vendor/gems/rack-1.0.0/test/cgi/test.ru @@ -0,0 +1,7 @@ +#!/usr/bin/env ../../bin/rackup +#\ -E deployment -I ../../lib +# -*- ruby -*- + +require '../testrequest' + +run TestRequest.new diff --git a/presidents/vendor/gems/rack-1.0.0/test/multipart/binary b/presidents/vendor/gems/rack-1.0.0/test/multipart/binary new file mode 100644 index 0000000000000000000000000000000000000000..a3bd67c4973fae2a6aaff0f69b50f2bde312d298 GIT binary patch literal 26667 zcmbrmcRZH=7e9UxvdNyg(`{tSNMwf0jAV}}*)uC-6=jEv?8wR%**k<}71=8*Ss`To z&fWX-{XM?_{vN+akFs*z*Y$dx*E#1o&dtj!Yc3}s@)y!R8ACnOB{(rp8LmPX` zN30Sk%*X#O>}r1Bj@RDF%8Ad}(F!j8e{M(Tv9qN(%ErOm%90;`f_cqQ&D*y~2pI?w z1R+sYlGjEMte5clCwx5kx0AYh9zNh%sNRxC&M<#68}s7eI|R;329MyQ(!alo-F8w4 z^6-bUysVDb_B>j`aCwpw0!qbiwYv}9%XWdf^8 z!oKd!4^1hQyNyv_r#Y!RmC^a}vQj~YlVnBC#?V<3c~dzcs?JE*r^fDJ!@hHLnUeU@ z>g(7_-}LBPEPqkmKXwj3KQP^qlBVl&36MdNH^SR_ly9}KD4}CD$q3-p+py6nKWFi@fq?-OCm&w|eWaqgpWmria_)JXs`1|L z?(V#2a&yYDXgh+SOg0K-A_{68Y!{)RHUZIK+gVsz&nwriTWA?XmY`oFP3oPUu zLW(52Fy;MleOx7j5__GR>dSTg`r%tm&Kv5nZ-Z&$xs`NaJ^g$ta*!SM7MQrswWR)+P~AR`^V-o@XKC_;arm18l_-2LOn44H>(^_>?4xY#?Hj(?Rd z?8>i2zwTPAXiz-z#x#q+^-&?~_3LBo5h@}R$=~EWpwPYRD#M~SJ$g- zG~p?l;(`zgJmwrIsjRtB8yr<((v>~$g-G(qKeGyKv9#1x?Q?XCmIV8u}bK^f6rp{EEuyg(K&+Hb$krEEc;)_G{Y5r zwz94UnA3%}-g~i65kDxb9{tuvoMv+D!AX4?yF)9M3{liVr7_>NBPywMR^_3HzkZj< z@y+DeQA)z%cnVrF!)`h@HU*WiKV@)74gz$Fg2Y0}S@|)->fDEWKUsd1{@FOXyKv{g zi*WBm4n=-VN5)tF=GtPqT-M+q!Or?3MA=K)cyrR{_g}T%qw5Rr;T2ZzZEZ|H2|C_O zZ!&wOH^U!&)H}Q%uK1*x{6)%BMpl$ZJu^2CkIrtUb*ff@&gVYw;duqz1qC*U65-Y^ zZF<>ZH{zO6iSMg=(@&beoL@Oo$Zj&jm!HYLh5K>QwRO7D=X|kA{h$5wWEWFA1U@S{ z>p6Me7506f=V&-+O=hZt(~wWh!^_M3CA`Nv#9VPZ>ni?aR?zvwHOVK<_HapIhQ99d z`(3BbGf(!vy^zluI6nhNyLv?n>k20)`RN>)zrKN)nKW75pC4;Tz-7bY5dpiAqI1K! z>fCx<@qIY5&ukmLMNG5gUL_=ua`E!2|1Q^|uu1+?X}x+u>k|Ha;^)tw?-uHnPQTOP zN_%5U3324^ts|4bYn1T8_wYAA);&#HG8cLz>fN`Wn;G6e3&OC@;ib|N1}_T<3Gq|l zw9bl6M{pI_L%i1XE>gr}UWJ>RQA<~M>0elchRpssxms#m`#a{>uV2}3(xoBR#3gxA z{d{Ik$LH{)X3}sGye=0-zCY4?0(cgv=%?EPEwbV>rJKD?qY;n}_?OcCk0{j3{Wvcz{tu)eSB=dW5fv zD@z`aRvz&oAo^)Bfoq+N_q_d5*_i#u&PYbeKbtdWEuoYge&>;DSz24|ueN&=x1uka zP_VGD{4BTxwPa}6bBM8g8IKgPfY7H2XQM$J&m*6@yUknETzh^jEg8Bn?dxBmW{t@Y zvK%8U)-}reX1mVQEB;oyfC%@;$xSV)uOlO*pZfb*w9U-?_eahA({xQtiq9eL*GR*I zR`BKdIndZa3tlD<9z2L^pL;3S|CJl530C-6QS`~8oD*yI8iHKEew`1o#`g5t4c9KH zjI|t7f!BHS&6Yd$wpFlhVeuXX&7X%|l8|dP; zUNMx1;<)ST_$F^}~!SAJk1I%r$PWspD}SWn`u@lgk7mWKC|`mk$q?k#NO$Ks-kX`8D7 zSA6<%aE@HzH{IWD+UsmQjqeC2RD~%b6&D&CtRvuo2~4Vq)5M}i$ryxJwsKSxfAI9? z9yZBl4S2*5tUjxXOyzTK(Z636=)9ZYIKFOkMoj%-DZ&b8|OFt%aqfw?9%kL4f2Q z`uOLMVnLG<{j#P^n1N(;dYFTshp8r`^Le$AW_S@Ll9PN6aG{H`>=x|Z9#VBRg)iK~; zV~uoLU4T$!*D=sHX?ncXHjjcgq z@+ES^W_IpuQ)iuDjtcZ4i&lcJXHYl|LH2*Q4G}t;zj>=|Q&nA7#$$AeB9!kXdh8Re z@&`B1Wf@c9kFa*tbdjAprozHJy`654PSq{SYm9TWnUyp&W(r5wRELI!7_cijWHEuQ z<((FQBgYyOAkXT89T16DW`tG*nKdenOu>f$dl_A7?EZ9nJ6^x^K&8yc%d1quA6d~D z-jzwteU9BSW!g3mxBsQDuXxGMfUD8g;7c6(@mS$ssmwA6Z^*QC9pRlHLqbBz8?4=| z9Q8h0xKyd+h^MBfpH`Wcp54wH{?_y0>IdeSoBwX+Z$to25G{>{?;-{AN+RvciLb9E z!eSP4{zYj%B7-ey)bDy%Uq2!8gFeqwtl8U0Kx!(JlewS|wX&`^wX!KisC>kfWAtap z8J5Bf9KW*!LoCN+2P6mYxiFO`c0agvM_c>P=M3p)PByk2ZT2{m)n}GezwMAfnO)*1 zrZUI3|BfE0P$I&XR#rw>vsRl2J=+Ui!Q6T!$0u{`&u8$Y$|4pHIzD|;>X~zve>y=z z^D7PO$?ADTJHavsGTcR^6AOXfObo*5&*bFf_=^`WRPu(ef3mGQO|Tpbgd3T4W@_e% z>%P6>R@dm=c$xz7GRzgG;xYF4aq!gHAm)_PE2Xxpuz(HIUZE|5Dr~TH_r>umkZCikBa16=hl) z^E$qj?`+3&BhG9R5=U2&)JNiJ!M^4XsQ7u(4|<&W&FLMh3>QrUj~G{%Y^d>ZmYzL( z)_y1N_7q%}Y|Tyly&C(YKQFC!|6q0lCo>Nht=Zw_RQvcKYUbPY`3AzvlH2j&i1QGo z*)~^1#3M1LP|QJLkFybrS_t($>5*~XKTq_~H@L&)I7^LPB6oQ8&&uB4wt_o(x@a`I za@H%FQGpW=6Ywu_heRC=QE9E*O>GDgmzHL79^p9nOPyM37L%lw>s8vO6kSIA#%7$- zY}GjjE?<20b&-DF@cPozxjY@N_!B(6kNf}KCPJVz;Wm!F%G1CYfs2Hpm7$xqMZ|iD zRQ*l$vs6`8pNlh*&K!h!E_AP{5!4zxj#b%>P7Y?@%Ag7Fcw^W;?T6VG1chajl4*cS z>yT)Yi~V64i^i0v3oK^zEdmjo{QMfackT$yXGcqU2j{L5GhxFck#nO z^Q39NofQ{aUGf%`v$wNYkq}|lW%4JlE>gZ6A2$@BBR+M!cDNbN5)8Ypc$5 zPEP(W{{6lnmbt+PULrJ8#*dRZ4Vku>X|Fia<#MR{qyyP}JS%C}M4fy`pOfqb9M5|8 zQ>Qyu$#}<6hsmI@$-_|I`ZG6DZ*%Au>rOgWhpVcnSTvetbN;L@)Gbaf(k<+N@bIB2 z8o!M%Mybu*Y1f(Nr}ITd=zQ=viHIhBtOtad@9OH(=;`RZO3ldd=TOk{gwD;Vaput@P5hOm!Ic`L7dRBu7kVpLO?5U1 zP+WPBwGML_vnamMD2YXrz(wPv*ifdriuPJsgZk4wHN(9<)^<%iQ46BA#(ui2F-+Z` zK8eL9C)*BL3qLH^pZv(uoMA;|{JdST0${@f8=FA|P>uqAb{LLtf}%lx-*-=^029=eJsXr03*7G&aiDMNMvn2bcqKQu2A<1ft>M{GC5 z$Fv#I%UO5zw74|fW{+bYU3EMAwzhXm=<3zmcokRci1@i~*XZgHHpsJuRO>WMnGrM` zg$LXYBSZ#{mrI^n8bp~VWqv7*%cR4{9(+!qO7yX}N0Ww{I&wSAGGgOJJQngwpNCJc zKnHWhQ$|KcyPi*<@&P5KeYhGF2w-`EjVsH8Ctg$`_-sej#AIp~`j>~1jMp}55|6?+ zWYiWF1AwVnSp=}SrHj|ubv4AtQq9IDIqG?o5j}^S_|%0+#YghlgQ;Iv-4X%24-`k- zn`PsQgoY?`mL`4*0QJHx9g2oYv-J&yUKiuZjj8&?U(=2Cp`QLGTaX@AA?Wr+5>8tpa>Cw4_jil)FNOc*}-?F%WUlnM9cQ-99an4C+ zxh7=gm!5kO#-W+d&#g{1mIvza_7$Xp9Hs- zW>K6+>X58?yMjs%uKaicc!5=AtkxF)E!wAu!A(dUDhw!k}I|ym}-1n{6SaxGRA& zvn!#(lcq|jH+W24wco$%TlxClh)+vX$7;ErH(cupu;G6&vqwc$HI9k&d1*fJv#9VM zF;krzg7I8|GR`W6-_jWbEj}8AWxc}cjQlUc-jSjQ>@NO&&m&Ru?wzdwGHG!4ZpZp~ z)fyop0Le&}HAaUV$0Y&X{T@d)l?^{@^3I#c1+VwUe9u$V^u?L1palx3sS%?=>}{*Y z6=Q#3Zl+&V2M_RW)U1Lf;FxR)PA<6w%ixPzf^@`8h_LLeVl?oKFHCQ1)R!GkeNQzk z_TX+8aHmq3f=s~*kj8mbNFMKixU-o?d3YBE00(J#`VZ+j&x+k%URnZ*PkQYF4bVKI zK=TAa=U&cZm#C6s&k~v9=5tF9Qp(&do$(5tW0PBSHN%nTFuW(6rZ#MI7Vnie$F!zi zb2|wMG+C9EI`&szf4y+wf--yD6(CTAyBA&AfRego`fV(*bJgSx^LeBjX<7X7qcUj1 zu$CuYh1(!O5;mouor5ETnlN}VeU{&;*!f9|A%S=99YpJJX))2P6H7*4Tbsf}Q&ZsQ z_wxG%UC}K5ObCU9ix>JLoH-O)kesRO5<5E{5};N14Y)xXgfoY;r+#5wCd8bAE=2h% z9kDV1t8$){2UUjDJiTEk=WKc6NqW;0o8*g1!@JIiQg3hX&R41Lj~+eZ^(%@8*gNsb zhX%_pK&b#;HG5KWIcXC-;e>T??FV+lDQ z3v=99b`vM#F|HxMZy*}B$ws~AEEbE2AvN|p6j2MxqA3nZdZJpHU+-;>pJziRv5;BI z;_q*@S077{guRX~7Hj)zxVmj2`441=6A=yYq?-Pvcy+l6_Md7pKe;b#q{bKS# z1^_nzIi;%r`M0y)SQ_Zk+~d8DSW|>|Sm|(m3j}_r@v>sXf%)O@#m%I?hrof$v!JPH z@MXvyFPc)1i^ifI(8}qa;%S|bp0S;ZUl8Lx9h!4S|JCOv@ZHkGaoooLffsIJAlhS5 z{^|eF5x0?h4TNi7FyR5LtX10WWdooj;!;!9cCK`mFj^Pmunl*wy2;(VdGjnbHulom zXz6I;t5-L^4h%SR^j4_g`xaNe=$PLD(2$g#-lSJL$}+g>=I&aXDw5K7GVQ&_>wjOy z9doOwUlX;SwpShPa9h%(#$TnSIp7AcJhsDKE~W;wx=IealWb`qSW_G?6G?a(k?E-@ z`f5>5jJJ=cX>4k0N`!pxu-H}zm7ljOPQ47hj#F{vZa~#gF%OTaFe?xi3lWM7CV(}` zUiU2#2&$jP;NVmf<(nq&YNY+tL5{Jfl;PfLR-hCZ~q0$a8xvN34o z7_`Bnn|Sj=aXc1rJ2~D{*)IZWSsd0HT3?~5@uuyq&|*$nKoB~hFNxKMvk}DA)m7g) zkM2%wZS6O|B5Dm;G$oE*&YiW-;USrjV>+#cbE&AP)UKxV+4#1}W*%0EMVYl_m9JNezqFK=o(U96bB?I%U&cYa1+aNw{!ykkDj z#l__a0AiIBAjO%kjt&tIEn)8|5m1Q4JJsjfeiGJuthe#f^xnk^jf(R4x%W30_@_cf zne8VzIKWQ)#G{heE#vVS;qEy2RcSNKBbve+YiZCd>z16mNJPVPFbu$JmzLj@smn?e zw<0O|z=VnHck9-Dpx9;E*qlW%~2yS1q}l(iz(lZ=POjWHctfo||_4VE)IoC2=@f6;`Lmhn=rpy&?ic zt3sB;oQ)EPx-QFC)N(NL!q_U%EyR&VzSBF0&eQS^6>Zc4$<^1NKb~(Vdz+V+akoH6 z{SsHuFKWzFSTp`;BaA4;9U7-x*ys*YV(LnPrt3*EXAX|DL`4=b?GVgL{z7!6TfNh#o`@Sei0<5~ zY}=SR)tCD>fk=GIfs2#rIdkLK05!*nLLBzn2t@!<1+HYHun5!=hrOHx=qjfouQ7G~ zqQ}6k4iv5Ky`bdIiS}pjHTRb=D6qN=bIlY*XL`zcSHheWHqVS{%*CC zWmJsWUnOp@b91OM=94uvG&Hxh{aO7cy}u8e;$_P&4bj`i6B#*mrzSk|YxrSVAK?u1 zfBX6s?Y=CA9f-UPm=t?S#4XU&Sk@+jhduB|UHt2PMOiobTlgbY45Vc0*GM>DTuhpd z4gSVBB|nFXwQVa;)B4*q%!zL}Hz_~g!BmrL zGBir}j_+nYU#OWN%6jho`F~VE08VEH5w|hHG7pdczi$2fiVbZ-^TK{Y%Ja>KYK>Yl za*ZSZ{;&B|G?kFgPsTof$!Y4q=+yCu2hNPy0g`#Ar8mWN^qJqPo@_ zMfpPD!G@|_aG%&8M;1x1Yy56S(fRMZ-OnaWQQQqZDPAD#z#QWit*fZFsH6fY|} zMH~d@4A^`_q=ghAmL>OyMbpP9J@BkGu40W@f&S=W5Nd@{^3>yt2B3_SI)7mZ*On_( zVN06*+*G?iB7Aa)dKX<~pFDZu4~?ejS%lMc!(+k_^HdOiHON2W#-jNz{1arDdRP<; z4CqI`f2RZBJb?Srwn{M;eV8?7fAP7we%|sY7p4;Jf)9+uAsP$w^ChP~4i3D3R`W8V zq})~pcIW5kj~E#k6w7#21CBg_>AhX7d$v~Ib^7j;ZRkj<&`Dlw7Ps$72qq=6&e zc7ecwwpM~2JG%R2yN zEJ8-HQTy{MJPV@)~_AZj%Z z7g`T@mK92y{{Gx-I{w|ejD;e=?mFMmbat=GFc97Syzt$-C6fj(7pmS0!CAknn>~|~ zBThJod<748g+7l8a=?qUyt`Wn%2IU`+!x!GD_1h4_a`6uaHuD{8K727#fIPGIW=r6 zdYhZiEs&6qc$V{UKQHN07DQhB-+dY+rz(r`gCk7>B@+|o4<75|Gij1Oe=MCdvK?i~ zKb|f1XZRcQCC<3bV>!nWz5szCBm}Rarp8Otz+f!DqM||~JUo2U*4mn`y`qR>QX{nK zepd@KZ4BIJl|By_qJ;NP2*b(@rA-KjWrIkL2T?#9bQ!2*(5%~y*j9NYSTciXCGw)p z^?j#I(4RxN17hFP!{x+OY5!9Lgxuqg3{S5dv=x%>?(Sqb{skr3EWH)){{H=2fN9G> zw`5rEOWB7|--&>FZz4WZRaF&4!YGP%8n0Z<>FMcFOYHp?hpW+a^lMUcq}a%FA9w(> zXQ&tF5q;1JXHd$&&lA^Qf282ZK%0;l{{~q1aUjbi`X26hCFjNgA@5i%hq|#q;ub%P zpniKBHjp4Fe*S2{9(H($A`i_qm7F0Wo?cymemkaZ+Bx5B9rzN%TU{D*h_F5d=<&&t zGevn`S0g8Gt0To}7br6|PTWq( z+xa{%FZy3yIvElJ>St$X=N9-$oVYL392?PJ6#LipS5bt16n6db=?rpSQ0}TZT?onh zG5c*{_3+k{%JJsNg?k7&E}|u@-nC`1cp-rsnI#YJsMO&qhA3aame3%V2gP)`ah}Hk zm*w2)ta9v+h9}3DSb1>a(K2lqru~lASL;1D{Ybqtyu7lfKR8U7VP&2ri`bnO=x|BA z+S1a~ zTDVH?O&NqaJ)A>utH{N5qeWh;J-y7z8uD5#*Bp3tPEg07+aj0x&WTeU%JfO6tA+O- z7zW7R+IZt5lLW}ixVVL9W(zztOkJgf;Y#RtKX{YGi*(T=exhy-eA3*v>lQXKs;QdnRom{mybv{MY7<$0FlCd;8Ua%rRf8`4tyL#*7 zi>kww6yu~1OslR!e^{WHeH}y!*v!S6+64)&&Pq(ocxj=SdJl=!pJ3J9YrObA3Al z2IwOBfJ#a6eb3?RVQm-re}b=q$fS>*N!5q1ykWZak{;52qKUq~R|LBIr;O9P!oqN` z{V7kg$@frsAuHq{e z?)&oRi-;4duijQg$7Vw*INQ^w2O6f9JJ2Ci9vcFf0QnD>jvxV{v@}>D=5itCAmpK} z=pJ&m3$#OXA`oI8QqCjs83abie%RID=IcY_uVK$V+O$d59T1kRYpmko;`-ZX2b%=g z5uXIFU8a6Y3a4wkP?u73VHBOqRS1#4KdfDQUH$i zHqQRx2G@y-ic0S2*RQ^!K*){nceJ&&eQ#)Jut#3*Z%y934OOGz&$yisWWtPR8)nZ- zK7RbDp=RbXY@AJgN_j_F~#-LrJLB?hV8T;PV*CE~ny_!((1C8{vGS^>y0tTe7!oIS@ zf}R)=4=A+hN*7aQHtW}(qqHjb%3*##rC(hZ5h%0oI0UXCM1lNcG;Gui2xU&d-}=pQ zcbC3DJvdM3Tx)z1#Ug$2sP#O{jXK!C#OqOa+}#nH@WpDt=|C$!89$m?_mJ>Cn0qcn z7edeS`EXv$F|l_s&xPqML!YPQPJxcz?KE-fr{+mvmIhTIfpk_B5eJd`uMh)vVZ>x@ zJrus+#b7zDN{fy#PYOy(=4-B`bGP;NQBt~{ybbX#9O}aiAjM=p;m#h@;K}X+4!hlm zR}YybRE`Cm+7wJX4P~ST3FlYN8QN(`@)~{r6?D!p+5~Q9@&s6sU4%3U{CyV?c@gsBR)i_UM#^n#M}`#zz*kaZmy!Xwzgc`URrLw$|HOG zUro@+IHii%>6UA9+Cv6*ZwbJ1JD0Syf6}0}8ZRGTQ)yF^pTK0mcc@;i zE$(Y0jabO#r_MF5QX5*|h8H#*p2^9G{l5%66Gr@6wzQ0>HY~1&#+!t>`l|1J`b*VU zgGl&!c#r|K@(@^duv=UZBx*r%`NxkNIHN@P95G6M?D#?NN=u`y3`XKSCKLLnB)+ib zfi1G-Tjc_cGf}uYSG?}y(f42|xbn|X@OX^UYOe3NEHV&>5;6;a)4}|6V8iq!{EofC z)!6UX{~gHE;i{$P*0q=NJ3cu0{rk67ofsM$2{}5=24dTxT)z|N{ujECG3dQ2e*#y( z^HVvFUF5HB8yS<>04_K&og;3s9Uezrf!38l=!eDG*5lU|S{&cxB zo?A}}*Tk(VK0ZDaj)fQYD%jshS)@`4Tf605;S=BWqs`_sM+lNTx1?I6aRxC>Za2!; z->3!}uWNxC6f2GnWGP8W2b-8B)#8emyzy&VnUjZnto7;nQMseYu~cBQbUCT4aeamI(dXI{PqStpOH9KL}L<1gipTOeK?qhdq9cP*t5g zK&ip+-@We2FfcMISXx@{%aF%1;0Fmbp8T2Eg^#%tL}lwdJO{-b*L<%i>D+JwYX+*W1~!FcEDrn>MtC56!}*&Mp66T)a#Evd`T8r zyA>*LvG0b=j&fWDzAdr$9EU(T4-qvr^*N7?$?NY*N*pmn=vB~|L9MRRW7hP?e|g;E zSwYhI7yoe684Cfc>H`B0ee#4*byd}gz7r)C)e8d-o1V9CGcs;7Y8VO+SdqQW(+cQN+n=(&-pMmv+?tJC)c@F6|Akth88 z{fvOJiD=Gce8%8sT%tK-j`mL>NSK)fSDJdWmyPtx^Hsl&camER)yaEHjI<5 zl}NP;)D?HuoB8|$+3MUUZ<)<-0?h118G$2Hz2-3PwrrL057? z$(q@Y)#s$`Cwh)_OkJ&i)+fGUjzjNqf5us3?_wC~UaGG--9vJmOYYZ2MMo54ADHzk zx<)dHgc074A!d}DYpV$DnAZTKAox!juxoKD%>OSY z5ML6CTA=n5 z4X|C2>6&oPy~RuJxB2Q64qf|5shM>7+qVx~Z{BhrRXd$V%uZDU9)Ql}ED#~eC9K0(wo8s11Dp`>V zn4~HvN1?~av$X|l>eJ8P1K+=MUg74Z?C9zm#kDb(wS-K52nV!UL{!wHdjIZ6fCm{S z)s7}}U}=qd=50Esl5hC>ps^g6D{0|eEp~!sb^`+?=}tGf%B;|{8<7MPgr^|NYKDNV!WKK{i+M~ZbUqwzHDgUl}v30-}Cu}{{*wvPvEqBr}f@>kREKctPDt9a%dHZ z*ahoXbqtz5VaghF9N#a0NjviBiej$5xxXe8Qe;%^sHLLP!!k5H?C>VtNQ{D}SZ$p7 zt;EYUYy=NU0wKd2Iq2318IURcIt&g`@p`OR`(J_xks4|YLhtW5zs2l}ocRVIepZIQ zIFBOh8(e5vM#*WZs3sqRbB>yZM(UHmXQ!5Rye&^-Ol$n$>TBh^;U~qQ>0rv^jZ2r_ zT$gzw|NX;N$ig3Ng_HUAMBfz@T!Q2$J|Wl1*n2tpM#V~+=k%fL%D@{v-_eq~I`R4S z>KW2;W6-XdWyvFn+ug3IDp$g33Ef%h>(x+EA(R-6l4qS;f`?s%6v<*mw{*I35z`^{ zgpe?%53KF2X=MjNCy!rqFfDCd?GkXrJ< zCJ)v;KQo~2qk(91yv5nx7~jo?)C|Rwfupq?n&5OkKmKc$J+ICh&Q6aqs^-k1vG-}- z%YsdIU~q7789LFysr&JXi5gSDy>Rp<@Jd`L+QubH>aB zF60N|7>N@&#Gf+oh!-18&4yy|0@LWs@@<~+)wz3dJKUpfPE=7=9-Gm1{!mn;HVJHK zL}NYHtnD8idPI$|ZH@wZmi@mD)l+}+=!G5{|N5-{4J1qOyBYC%)!}xzkkiu>fTaAV zDK?hk=HthQsT&vL%##MgY5DyG!M$`C^}(^$0AE?CL-V$n44a3b`mpowAIjZd3+~+K zr3t?!V_0dpP76(ME+7842<69b#!;Fg1~T z+;!87%`%^qNi4H@Z^Vcj+#~xYWlKxZ;4I1=dv8^0(&T$6kG$C2*ap6X1=z~%CUEXJ zDwGtN5yS^PYwufN_-G-Rufs*!JVO6u@y+v#e~*J{O}`IMPO9x{A~WwTi#Y=ND=)N^ z?oqao9UN3!^`{F?R6F?>*424m1s$|y{oT&K9}SH8fG<%DmU9iT28)`qa>2{)2YNxX zjzkl5N_qg%!FAMAH*BH-O=m1HN&Cf4aZ*wuUZ2j6{LeNYJ7<(;3Yxb)n+MEs5^bJT zALLx)2i>-YhlR&4anIYeXMm z6i^ZHH)Jkg9pglo9pG#cSWD2(NCcGP1WX_$M6+h^Z*>7T1j9aIc!6g--}@h2?OSdh zb}~NK<&vVteq;(x_<06!V^ULo#0mI-eLUyO?DoKP>Tq2iY)n3Wy1Ke!K&+8oiC2ko z3J!7@uT*|--X5|D&$o}~GXS7>1dh1_nEJ%=Z?|R#m?ymgVsj!=@qV!mmt?m~D*fc^ z2Tuiv87@jd$tTsxwudAm*Dv zkKObdy4z`k_Yaw)!^7(*pBmhMavNF=PiP_wQl8gZ9{pKAgElZDl12Iy7|a+Df*Z24 zvVz=djW1`Ox46X`gAZx5zN)Nj%RI!qE*Y7{c*dV^mkgF+wF`Xu{P{*)Lc#|@AeqkB zWsGoxt@LaPVwa4^=!3mk{xU5oigsjgVf|$Q4yz2(j6F^;>vMOOY@xb{t%W($sSw*A zIUBtQlI!+kuuy&M5{Uu_v-oQ@kINo*zZ^zo>bJI^5l*jvU*vckwGgsC-FWnEs^0Tj zdnp;eVw`XN33XU3VaP*KQM6#0VVwxDtZQt z7U`A&SwaQ}&{XiXn#LCZxObg5=jMn~Vq-1n1uf+BC&u@cv6NL*Y|}w4@J0moTjomf zgWIB=nKolCs?mkCM$ilKl|q=6%f0!IbE%=ziAq^n`7@kd>44d^Qga|@d}=c@Q9l|Z zk>ZeFF)gS#1H5V>QH&Po3kP$&#N{Z$SyEHYz@M_1u&$S^XXn1_|S6mI-|_#FerKC?08w42;;EIp$qx;=Qu1l0TL!H;6TSf zl!*_VO?p6QUXzYwORJkE;Km}TKfQjD81E+d25W7>>P(ILsBSin%uV;a zHGnUOM`LOZmr-^2-xYuP(@vb3AqXln-PcEo_kEVvVW)bx(pHZNFil#qQ6$ zPM2dsS@Jhc1l6}{Mh$nrl3b?iTK^;XO2u**lFf9Q;C)3J2OIE3c|YWojy~Np0>IKI~<(JrnzYp>JN*}er zY*FP1h8G0w^NUv``1qoXDy;`sp<}GjAoIRsw*n`vh4np1*d1&MT*^bJAV@6+HF1jE~lKtHKw=0Lol9^*db5?!U3~ zSt~jBC=rJEgkP&Ei$z6OOsqczKiDhtBx`5Sx=3u##o9;|K8y$$qA9ePxEfl%f_)mG>#9l@qvblMBJ;n&<#7JSnr#_+Mt#aH?QfBd2Q&VeQM?QzU$0<=@ z(Fe7s2*hB$+Oo`j7-bl*;U?}}qBl#NjRWU=Efyk!rf>lZR&j>7yRD>xmSRd@2*_Da zkLI2&h;69c@~9zxe*O3AqTW|qcV^{ScVsI~FAujrDnqOWChWwb9+^y)1Y|hvL?-Ep z6*-u_xrO`8{J3+W?d}c4yA&!!>Zo{X7Y)?`qrmx%lIFSeh`~z@;=InzlyA>i$Juqj zd*QvaQjASeLi57P_q3Cy1mj{^LBa6iDgH8Jmk4%S1&^I*N?`7)W^^I%xcKwAvXLhr z(g?6!-VYBO=%3<0PZ<}{q{0PVa~?Rh3$u4aVS2==4@$_byy1Aes&S&*c{>fdg(7xU zhU1H_B6DKXL+6aXdL%f1X(QaHx-T!GN%hUCJ%q#)M#X=Ep*Z2W_l>m0+196*)!E}* zfiF3WS3-kO#%eE`BF`1C4a3zTHPkn^)2@YS=4^-TF3q`#x7t<_a)vP^Wn`Q&W)CJA z8XFfmfuwuRly|@&;qK_@X#cWNp3k2jnXpqLT`sivK{YL#=#|5>@Z;M->e>ab8fAIq zz1P%XtwLtsfc763x3h$a<$Z0eOV{kbzZ3^S(|{uM**LU14*o|IGpBz$8J&(7!F_gm zs2E|s&>5M1_NTh}g`K!{t|xeH4F`?0@L4?oG zaG|54LnV7KpBG$|K;cq?`i8a9a4d7*9@o>+$KUzPYdlOy9ti-STzQ8@Xt0?l#Sh4< zB>@w*Z@~2Sy4nykEhdYmFo6OCyIDMHTNTkSTGgt*%vd+#5W)Ln6pNK}cWKAn{TIeZ z_Zk|>rXfmqMwk)@%WZ=o*f>}kaes_iW$gj4$V zw{)M9kCT%yb*+IbD-_1q^S{~pV+>Y-lA|Dj+DBtow5s0qz2jfBjfvKH(yKDShmrFJ81z5eAbW zHSlfxe`DpXE~z)U;{Q%r)I9GD-&t_~YidUq64*W$0E2g&#O==-Qbq;`&tLRYlY=j2 zOWK;3e8e9~If$mfP`Pn|&WEeSPj@yuup_6)MyLD_+*=N2JYJ3N&F$7n{e3(FmLWy1 zcu{3E1-u!9Gqk!dz}E=FAZ)pu@0vR-TA{pfQiY9pG*Rvwa~~TUH7@^r&j*q!nl5B- z=hRQSi}LA&g?*b#DnUh8yA|8@l3S+Il#pA@}&r$Y026PP66QY2gM z2}J1EIM3YyyZf;|4^0MMHTB$Y=BJ}(?_t~^PrE>>_tPgYQ4WsfkvI+wLKxr_>1uMG z3(9==E=L-)#$Xp(JwDY9pr85_wU znmh^OTM#p4h6xPtUPw6BE++T`&A*ak*_$9);k9kCUSd-JRYXK&5aXOkH1)P&I7@5l zs%rq)^EF+(nfVYLDcS|!eiBOGFEp)lTYb5~0&M)Mc&`)2Iy?57UE8D!IiV7(uk z^#7bB$Zsc{ES=o<@bhxLB2>0$2*SSc)J6`UM z0GgeB$#JY=(IYt*3b;T@UmM6IO&_cWv#w}J9sY<&N=kYPlFA`Qy7~>7g;Z5d&A335 z^A9kzPvG{=K0`}G0|C8xY-elxHVk)edvxEz;=|*#{w^LG)wjzSO=DWpbJC@&B3kON_3o=HcM{-Le!vrz#>K{t@SD`_ z!dq7O?$v`a^*9+CV6(e-+2)$9o~g0>IKj3Nr0)+1lK>#1k4Z|ZF$S{*WUds2NnVL``9jA}JS6O%NUBHza}of&u}43#jurN_T ztb~Dw_7v221=m_%TIr_#i|}LO@DA2lF;ZhbTHoys+HF`C|HaY_C;06|hR7wGnYGJF z{*5ES3R+Z=alp0QGSZ-Vb5K40Fm@yk-M6U{d1jiu!Ox zU&^)q<93$Qt?d+OiRZ)loAhCJkPYe)*&V9AyU?MYLju4;l9iR!ty}1h7qvh@r9clb zoA0qHyemcOyld?Su!*2NRC7GEv@GrrD6;vIdff;K7=r>GA$>eYW;f%t5Q&RvxXE~W z75|^gt~{KowQny&Da1}fQrp2vWI7s9#-cfd5JIL5ndg~KB?+le$|i~;RFY&&h9gBn zGSki+TS;cVd!6@tukY{gkGd|?T6;h1d49wFyYG90_uZRs_aW)o(!vZw0k8>U0u2Tg zWqwo~vovJA5$S=hLgPwVMDPZm3p z-R4IH>n~Oj9wqoqi#Rd=CZ`haBD36EkeCEC(o_zB%<|b z%O68iDx7bv6kNJq9Tej!`tGyvllZE%H-TS`tY-o=iqlrq~?&s)f*riEib;-n)vdJ z{y9$c5KRd8@*(Uo7!R4mQ}y%3wm{q+dFYC+CwR2-62}Fc?cqY~S9o%aKRqlazk#*? zMf-UgW08k=huJHHDsH2|Cwm3=dfC^Zy;u>&G&5$a%3iX$Wxxi<0}bPfu4H@;uhx+# zhGQ?z6#J}$U@xy&649Ierl=?B{r(Qw;5GZyJ3M|DuvD4lD#w<69HDJgMP zFX{NUL$N;W6B-;gVnj>jG~YjQ5DaLXDcGe=QS4gk#yr}4%b~%Zjt+La{7u;DS0PilbskylZKBlaGz-9q_kdI= zVDm2L7-r8@)zmD5)wznWcQcaot#(}dtL;JCSeq0~L4H(6@%I)1#JG=?#ez$TAjte` z=?a#jpt@0IoI8K&SfWfcV{qDgGtq+BaWS#;*-xGbf&b;HK-@cBBic9* zD3RdqA&oS=ig4>ky?fYNV6|e*-`uLRmfMNN63aIi4&BopY8`u&n=8{-WK!fYph(Qx zj(mE^?H7FnaH_%~Ev=l@VRXF1(#C}XMLh@ zL#fG_$Us^10s@aU7;mzXJ}ni_yL;$L3Ds8NbvMOVVpe7rI`W0qAER@ zLn{xEqGe@C?!T|gD`j3XE1lxxEwqwM#{yyZK1P^};iRfA{*BXVKK!gtiZ9CY=eN30 z=CGf5tvz+2KD&q(G7aJ$g7i(jNGxf{yFI|HLqE5+z6obxv%0juKN4-RT6fdfP{vbr zzhehXpik?t-!%#@t3GJWHQ<}Dgj*{L5g#$odjjRfEgH=nd+!899gxX-R~_n*R^F@{ zzOSJPYNKv~7*d{k2DO&JWq()weYegE#J0-wzJ2-!a>9w`7Xn>|$Hcr;6XYuFcP-c9 z-};afYI{6|d}%sLW$KiRLn}GvBeiGNe)EN?je2?$D_u7isNEvY!cpHDPvW7TzbzV) zl;EZ5Hg2j~NYHn5QI621QBf}(A~6m=$@rs$+rlqu@UNzM>)M#$+c$6C%*Rx>_xRmC z}_lvhBkOQy8@* zsbw83?@oeyXZ0UR=z&Gnp950$?EP)(A;NNQnQ~mI4gvqp_WNYQvcrSeV(2lj3piFb zQX3>(o&;wV>OZa%R&o=ssRmwNyXYou*{+(BOfP$0#XN(h2t#tvbB8@4QCa-z&I^tDS+IDAa>vRbH z4W6_*-c^cuOPaPtYI;l$uBTFaC;R^9mgz+MV2V*~x2pTsszyu>3cYdqTFa)UQVp{u zFb+2`GYcw*-&{;=tgEuuux=L0jCY9q{p2f(!7Cc^kEZ6?cD!&{Spe1R7HaTo4;|)v z?%lhm(L&7kV`FP`z2A zNJ>LV)dk(sHeKG`0)z;}1@LRAm3y!MYD_6beCb|e64tZrO^OZ*=CR)LP&%nqIAiK} zLAZg5sFgb|MX>TxIN!d4(ii?a>Bw#8QR1;1)AdYEqk=&=w}!&;8v;jkrQGq#=jW@i zbgpL&bn-P|)1dH|^z!rbvw@VC z5;E_=TkF2`l}>-mMh$YCi`lYoS=D!<%NZzZ*Iob_jpEw(j5iHqx1No=)T$kQnU^^# z?wrmgDyXg}^V;}rVQ;WK?l7zXJ&aymIe2K&QLl}Y_y8j0wj)24iN(Z16IOxCYd2k9 zFUYxi(_6U%LR__dC+_Z1v4=|Iz)<6#T;&JDl0DaM^Hn&@w48!&BceseqQtS!E1Pg*RVwvv`W*=<}KQX58IQ^oEvTS z5=LLH-yl`ghVppKdvACD?5tl0IDsr-Axt%$EHHt%Bwqe$oTI(*%7iD@V zT5upQtMle`i(NOQM(WMG0AcI3jd4 zl5uiLg0Uo*RQ?o!Z%dJx3?vma!Dt)R?w6vw1+|50H`~a!yW_MXZAXucj9`L#ioPyu zv8>;3)z5Llvaz8dmn{tLr9!n$P}Fa7TPpIxfU+C-cc0hZ2uPJ58VQ$Ey@Z!;Bia3H zd89|=uKuYqQXB33fNGI&^x<#xW^~xw^!l6MNVFf2a@EsPh= z0N8z3oX0LIDyp%a*PJyh1B^hcA^0QhSy(Lt*4FT_J?Qr$jodx_$liDE+-b!LGfPfP zG@7jBkp1?(vyd?k^~j-v(SqLXz0B9e=BD1o@5m;{y66$xWz0(yHIWIhw=bg9$Y+!- zxD1d3L|LtqEeHS`;PRCP2PgrM9Ib6^9?&DjY5$l$x2dbyQ?pN3n9^qvJRRTRi&7!d z=Cq+i+~Id_LNliHrwE-tkSznfph|H?54Erv)0fdIcOkC*@fxNsoja@q1$LAE&t{CJwP#x$ zAIDy~@(3;89yiy$-;T*ShAR?RI&e)Eu!t6vB_u{1;~B^~j8cyQ_Cu5^9Z+&&;L7zD zoqHqtjia}fJnb$GWt@WCM$zZH@n9Geiy+)08wtX(VE!j$4dvbCp(`q&nehO`xZh;o zFqLy>|h zu|5a#Z;3Tlyq=wd!#14tBDJ|67((x<)2Aa*kxQy-uDlArG~0rQ09KLV}NQeY4yt0U5ql7h;fgYP99=Ys*Li2_=RP(fX^nWb6{ z^!F;kZ$D%ysvUX-5+-l~{6CtlWuoVGn9Y&kRDlv4L ze>GI#hcq=W&d6N6r!MRUs?2nL=Qw5fvBhJ9t;HS#N2}(i$Efh3q59V}=8bH@l(!Ij z5wt`&p46p&&BHW4g4-2@wlmtGFPgb-ygue~9)q8B3v~VCToIyNT?$Xs)7-TXa^Xhy z42quHNlEk00RaJUCL4A8@#)0=3US^@%}Q7z@WDv-2Gj}bi3Y;#W{6OACUr;fr`U++ zQu`p~%$gO+jCnwvVId^ypX)_cr!j~9<$O)am~V}~xp_#ZQ(oyF*XpYqP0eJC(A1gM zgaD_Mg?rd{8mgzpxVX5<_d6TU%ScHD4TG`c$3ZMZHfiEi*eQxSdD?;ek8JtglXM3r zx0TrmBp;T!xw(82?TSMvqG}#Gq!3u@BM1I}1Ex|3ZLty$4710{t(T;I?AXFA31!W7 zc{Y~b!b(OSOuz4tG*ONkq#sSzA3!|JQawp};v{@S4rJ)0m`elPxOUL`7rKiH{q4N1 zNF|9Z(qV0WL-)Xq_d^#Sf&JCLvqz2mS`%MyD=<01L|`KP7YPKfNCRP*_H0xs1R-in zH2UCyAM_I+N4%nOp>rg|*>lhC-F4=GL=u_$sN~g=X&#w_n$J^Y7P1Z4;azn)-I_-i zZGq44@9nD->#IrJIRT}|5?9xqh#sdmP(Q6~+p)uG8T5~pk$>VuO~DfisufQO`e_BT z2pR%d;LGf4qM|Ht#zh`4BN3zt0Vegy`LVon1_lN;faa$191C7Ijg>NmijsA12;gSZ zvgP@)Ic%Ef(3OQ=FlCwypuxb+=m3weqxtySg(|BiGb4jb=fsIpSgweiL4n5r(}UjP zI4x@)Q4HC&Ov0^OUGC_XjpL72a|$V5|NZ>Aa<6|7Zm^HM0Y9SZ=<@PRc_@${Gc7Hx z!l21FY_90osbn9uPhS3$srupvCKlqjFhv~_yxHNV^vK2O=JUG*|0H=^y4!j8pxED& z^K8QHtu!UUmJQy-;Y_M@=CHl6J#oXEv(Q09x-a^mK77SY1LY|#^&?(??q%>etqL=| zAts^fG|Wo9e|E6;7y87=wp>5GaS$?%7ghb7%!op z!79|NucPAq4X0?O=b81P&m>V*fY6nemY&7;%763jn7`K;i%1vIf;#IO=55DO!1Tcc zLln!{un!SAr*A7|8!vk{h+nGRg|5Ao=v7w{VHU5wjsP^fHVx_Na-|cEv%H5U>$ocH z*kb6}*~$Lz7^`@w&i1hcVBj&uwN-i651Cd}>!jqJ<912%w(np%^kO5qZ^mLn7wII4 zvD)42mVqQG+Pn*3hj~`O*~{z2R8JsdH<`(+G3HPOv6G((A znG96AFY>_0mKgr`@j%`%HFk(=HEa$FwRRA@5EF`^v-+2Z0N%z`;VW4vmTFw=Sf)>1 z_{>qiW9iiblNa_hbQ(!2fj&izPAzF#QM9R~7JkYjeLi0tzvKtNPU38HL)T41FWZ|gVdTr5LbV~nmY0AU60C_l5Z&yy$_ z^b*QQkpzKx-*Q(+$9zOfOA7}v(J}y_vvb?=+fPS9he?UQbxRCnsXqxh6isT64YCFS zQg0=prLB+$rz^#XVz+Dedbge7M@|c@Lk?R5oM2VO5+&~L-Mb2SEbPVIv~M0oPmr@7 z%5m;nLJVIB85$so@zc1)3WC6qN;xS#DZWJV;SQA!A&CZrQ(dDO9RY&}DVoh#w+1Nq z!^%UdK$JoDqRx&L4~2xQoU(lGG4QU5&}BIzdvVHT?BvGHn@!UUvkSXD>ZP;!q)mPe zVQ_oG6r9^HfJLj}FLD?ZD@uR&g>QCqrkKwPx%Ey4x8=D2Hnt8J4V+t6^Mk@?af6QX zU#8o6U0A|a+ZTIZ%e?(70${6_!qC!YVz#~b)w-qW9JY2@#mL-|{~vYHTneo( zUApx5tk>8PyZkv-NcL05-z$Z_n!P&dO|pmf{!j{i+V|UeriiayL4r2b9ygYDC)8EZ z>u%ZOk-wPwInp`FI&T0?raZXBJaaFa-k3Y2pQLmJw=bQRrU|ar36H6DEUMtIN(Oaf zsPsv~grRw_eSnP`C67wt_^ojmMs@Oe*E~{h|fH&%s~l}zQ~yuB;EosLS3Q~p~L4C`@VmY>2qVA?HsAcq_j%mDj* z^0w3GXPO37KwVb51Q|dILZ05ge^#n@f5y)Jjp3$`bYOo>YFX0-}8IJy6N z+WKiEnOf@OY_K`HW-UsyB!iPD-DB$q^fZQM%3L-^RkwoeZ)(1)3^e`S3Tb2b*n&0E zXBRjas|=$uEe!sn7p4=row>hnB({3I+3{I#JpPZ*pH5^yJivEFXLYMz9%t6skCB{` zjs5@O-&W%o2STqED)+xm${K0-TnFV}uPp*)pP6V9!e4U|PC`CZH2r}x#qTsS+#|%4 z{}k2aZUu$6@GrE1xi>vtV>k2b>l&Bnvwz+>Zb(}8j!e(90G23E{Vczx>O=jywP_K8 zA+hU8nfKy0?fXwnIz+Cw@@)U?(du~m<@xqSP(1R&$LJfq$sQkE(3=?7-aQhuI-Yg! z9gS54uLeae0|ZKV49{SVSD+Z%E+)8!^=k&@`pY#Nvj3zAy_))}vdPMhVT|TjLd~sD zJqvQYO}YFOzOGUa&5s3~Sr#yZV^Ym^S4Q;>wbbh(Sw4Ku$U246FxE8w)6xQ7JzEB1 z`BFHu(t$w>Y8NZPhiQ^|?P2~kp4ks~z5wQ(1lY(G1G3koTid}+26(un?UG1og(H*O zIo;E?@~59^XLgc)Y0yj;$U|FGoqw8(8Lq9YV!{enD5lafAq+n}hmczuFj{@h!E>F` z{I_A0_}`=Acrw(Jt2g3_@*P&MyiFL^Q_3Q4=e3G3`<~GOWhVFMyHv>o|K3zwo%s{T zTFU~?H*&{;p*jL`^8fdO0fPVifENY%1vc^{V1n2D_dEaJk9?_GVdLZW^)!3OXu${H zZ1U1F_R@E?^YT6GVN3Y>`pP)CIC)y1b+eUm^*DETLRk>ML>$r5*38{+dEx&)*GF1< H9sB 'text/plain'}, ["Hi #{env['REMOTE_USER']}"] ] } + end + + def protected_app + app = Rack::Auth::Basic.new(unprotected_app) { |username, password| 'Boss' == username } + app.realm = realm + app + end + + setup do + @request = Rack::MockRequest.new(protected_app) + end + + def request_with_basic_auth(username, password, &block) + request 'HTTP_AUTHORIZATION' => 'Basic ' + ["#{username}:#{password}"].pack("m*"), &block + end + + def request(headers = {}) + yield @request.get('/', headers) + end + + def assert_basic_auth_challenge(response) + response.should.be.a.client_error + response.status.should.equal 401 + response.should.include 'WWW-Authenticate' + response.headers['WWW-Authenticate'].should =~ /Basic realm="#{Regexp.escape(realm)}"/ + response.body.should.be.empty + end + + specify 'should challenge correctly when no credentials are specified' do + request do |response| + assert_basic_auth_challenge response + end + end + + specify 'should rechallenge if incorrect credentials are specified' do + request_with_basic_auth 'joe', 'password' do |response| + assert_basic_auth_challenge response + end + end + + specify 'should return application output if correct credentials are specified' do + request_with_basic_auth 'Boss', 'password' do |response| + response.status.should.equal 200 + response.body.to_s.should.equal 'Hi Boss' + end + end + + specify 'should return 400 Bad Request if different auth scheme used' do + request 'HTTP_AUTHORIZATION' => 'Digest params' do |response| + response.should.be.a.client_error + response.status.should.equal 400 + response.should.not.include 'WWW-Authenticate' + end + end + + specify 'realm as optional constructor arg' do + app = Rack::Auth::Basic.new(unprotected_app, realm) { true } + assert_equal realm, app.realm + end +end diff --git a/presidents/vendor/gems/rack-1.0.0/test/spec_rack_auth_digest.rb b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_auth_digest.rb new file mode 100644 index 0000000..a980acc --- /dev/null +++ b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_auth_digest.rb @@ -0,0 +1,226 @@ +require 'test/spec' + +require 'rack/auth/digest/md5' +require 'rack/mock' + +context 'Rack::Auth::Digest::MD5' do + + def realm + 'WallysWorld' + end + + def unprotected_app + lambda do |env| + [ 200, {'Content-Type' => 'text/plain'}, ["Hi #{env['REMOTE_USER']}"] ] + end + end + + def protected_app + app = Rack::Auth::Digest::MD5.new(unprotected_app) do |username| + { 'Alice' => 'correct-password' }[username] + end + app.realm = realm + app.opaque = 'this-should-be-secret' + app + end + + def protected_app_with_hashed_passwords + app = Rack::Auth::Digest::MD5.new(unprotected_app) do |username| + username == 'Alice' ? Digest::MD5.hexdigest("Alice:#{realm}:correct-password") : nil + end + app.realm = realm + app.opaque = 'this-should-be-secret' + app.passwords_hashed = true + app + end + + def partially_protected_app + Rack::URLMap.new({ + '/' => unprotected_app, + '/protected' => protected_app + }) + end + + def protected_app_with_method_override + Rack::MethodOverride.new(protected_app) + end + + setup do + @request = Rack::MockRequest.new(protected_app) + end + + def request(method, path, headers = {}, &block) + response = @request.request(method, path, headers) + block.call(response) if block + return response + end + + class MockDigestRequest + def initialize(params) + @params = params + end + def method_missing(sym) + if @params.has_key? k = sym.to_s + return @params[k] + end + super + end + def method + @params['method'] + end + def response(password) + Rack::Auth::Digest::MD5.new(nil).send :digest, self, password + end + end + + def request_with_digest_auth(method, path, username, password, options = {}, &block) + request_options = {} + request_options[:input] = options.delete(:input) if options.include? :input + + response = request(method, path, request_options) + + return response unless response.status == 401 + + if wait = options.delete(:wait) + sleep wait + end + + challenge = response['WWW-Authenticate'].split(' ', 2).last + + params = Rack::Auth::Digest::Params.parse(challenge) + + params['username'] = username + params['nc'] = '00000001' + params['cnonce'] = 'nonsensenonce' + params['uri'] = path + + params['method'] = method + + params.update options + + params['response'] = MockDigestRequest.new(params).response(password) + + request(method, path, request_options.merge('HTTP_AUTHORIZATION' => "Digest #{params}"), &block) + end + + def assert_digest_auth_challenge(response) + response.should.be.a.client_error + response.status.should.equal 401 + response.should.include 'WWW-Authenticate' + response.headers['WWW-Authenticate'].should =~ /^Digest / + response.body.should.be.empty + end + + def assert_bad_request(response) + response.should.be.a.client_error + response.status.should.equal 400 + response.should.not.include 'WWW-Authenticate' + end + + specify 'should challenge when no credentials are specified' do + request 'GET', '/' do |response| + assert_digest_auth_challenge response + end + end + + specify 'should return application output if correct credentials given' do + request_with_digest_auth 'GET', '/', 'Alice', 'correct-password' do |response| + response.status.should.equal 200 + response.body.to_s.should.equal 'Hi Alice' + end + end + + specify 'should return application output if correct credentials given (hashed passwords)' do + @request = Rack::MockRequest.new(protected_app_with_hashed_passwords) + + request_with_digest_auth 'GET', '/', 'Alice', 'correct-password' do |response| + response.status.should.equal 200 + response.body.to_s.should.equal 'Hi Alice' + end + end + + specify 'should rechallenge if incorrect username given' do + request_with_digest_auth 'GET', '/', 'Bob', 'correct-password' do |response| + assert_digest_auth_challenge response + end + end + + specify 'should rechallenge if incorrect password given' do + request_with_digest_auth 'GET', '/', 'Alice', 'wrong-password' do |response| + assert_digest_auth_challenge response + end + end + + specify 'should rechallenge with stale parameter if nonce is stale' do + begin + Rack::Auth::Digest::Nonce.time_limit = 1 + + request_with_digest_auth 'GET', '/', 'Alice', 'correct-password', :wait => 2 do |response| + assert_digest_auth_challenge response + response.headers['WWW-Authenticate'].should =~ /\bstale=true\b/ + end + ensure + Rack::Auth::Digest::Nonce.time_limit = nil + end + end + + specify 'should return 400 Bad Request if incorrect qop given' do + request_with_digest_auth 'GET', '/', 'Alice', 'correct-password', 'qop' => 'auth-int' do |response| + assert_bad_request response + end + end + + specify 'should return 400 Bad Request if incorrect uri given' do + request_with_digest_auth 'GET', '/', 'Alice', 'correct-password', 'uri' => '/foo' do |response| + assert_bad_request response + end + end + + specify 'should return 400 Bad Request if different auth scheme used' do + request 'GET', '/', 'HTTP_AUTHORIZATION' => 'Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==' do |response| + assert_bad_request response + end + end + + specify 'should not require credentials for unprotected path' do + @request = Rack::MockRequest.new(partially_protected_app) + request 'GET', '/' do |response| + response.should.be.ok + end + end + + specify 'should challenge when no credentials are specified for protected path' do + @request = Rack::MockRequest.new(partially_protected_app) + request 'GET', '/protected' do |response| + assert_digest_auth_challenge response + end + end + + specify 'should return application output if correct credentials given for protected path' do + @request = Rack::MockRequest.new(partially_protected_app) + request_with_digest_auth 'GET', '/protected', 'Alice', 'correct-password' do |response| + response.status.should.equal 200 + response.body.to_s.should.equal 'Hi Alice' + end + end + + specify 'should return application output if correct credentials given for POST' do + request_with_digest_auth 'POST', '/', 'Alice', 'correct-password' do |response| + response.status.should.equal 200 + response.body.to_s.should.equal 'Hi Alice' + end + end + + specify 'should return application output if correct credentials given for PUT (using method override of POST)' do + @request = Rack::MockRequest.new(protected_app_with_method_override) + request_with_digest_auth 'POST', '/', 'Alice', 'correct-password', :input => "_method=put" do |response| + response.status.should.equal 200 + response.body.to_s.should.equal 'Hi Alice' + end + end + + specify 'realm as optional constructor arg' do + app = Rack::Auth::Digest::MD5.new(unprotected_app, realm) { true } + assert_equal realm, app.realm + end +end diff --git a/presidents/vendor/gems/rack-1.0.0/test/spec_rack_auth_openid.rb b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_auth_openid.rb new file mode 100644 index 0000000..ba24844 --- /dev/null +++ b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_auth_openid.rb @@ -0,0 +1,84 @@ +require 'test/spec' + +begin +# requires the ruby-openid gem +require 'rack/auth/openid' + +context "Rack::Auth::OpenID" do + OID = Rack::Auth::OpenID + host = 'host' + subd = 'sub.host' + wild = '*.host' + path = 'path' + long = 'path/long' + scheme = 'http://' + realm = scheme+host+'/'+path + + specify 'realm uri should be valid' do + lambda{OID.new('/'+path)}.should.raise ArgumentError + lambda{OID.new('/'+long)}.should.raise ArgumentError + lambda{OID.new(scheme+host)}.should.not.raise + lambda{OID.new(scheme+host+'/')}.should.not.raise + lambda{OID.new(scheme+host+'/'+path)}.should.not.raise + lambda{OID.new(scheme+subd)}.should.not.raise + lambda{OID.new(scheme+subd+'/')}.should.not.raise + lambda{OID.new(scheme+subd+'/'+path)}.should.not.raise + end + + specify 'should be able to check if a uri is within the realm' do + end + + specify 'return_to should be valid' do + uri = '/'+path + lambda{OID.new(realm, :return_to=>uri)}.should.raise ArgumentError + uri = '/'+long + lambda{OID.new(realm, :return_to=>uri)}.should.raise ArgumentError + uri = scheme+host + lambda{OID.new(realm, :return_to=>uri)}.should.raise ArgumentError + uri = scheme+host+'/'+path + lambda{OID.new(realm, :return_to=>uri)}.should.not.raise + uri = scheme+subd+'/'+path + lambda{OID.new(realm, :return_to=>uri)}.should.raise ArgumentError + uri = scheme+host+'/'+long + lambda{OID.new(realm, :return_to=>uri)}.should.not.raise + uri = scheme+subd+'/'+long + lambda{OID.new(realm, :return_to=>uri)}.should.raise ArgumentError + end + + specify 'extensions should have required constants defined' do + badext = Rack::Auth::OpenID::BadExtension + ext = Object.new + lambda{OID.new(realm).add_extension(ext)}.should.raise(badext) + ext = Module.new + lambda{OID.new(realm).add_extension(ext)}.should.raise(badext) + ext::Request = nil + lambda{OID.new(realm).add_extension(ext)}.should.raise(badext) + ext::Response = nil + lambda{OID.new(realm).add_extension(ext)}.should.raise(badext) + ext::NS_URI = nil + lambda{OID.new(realm).add_extension(ext)}.should.raise(badext) + end + + specify 'extensions should have Request and Response defined and inherit from OpenID::Extension' do + $-w, w = nil, $-w # yuck + badext = Rack::Auth::OpenID::BadExtension + ext = Module.new + ext::Request = nil + ext::Response = nil + ext::NS_URI = nil + lambda{OID.new(realm).add_extension(ext)}.should.raise(badext) + ext::Request = Class.new() + lambda{OID.new(realm).add_extension(ext)}.should.raise(badext) + ext::Response = Class.new() + lambda{OID.new(realm).add_extension(ext)}.should.raise(badext) + ext::Request = Class.new(::OpenID::Extension) + lambda{OID.new(realm).add_extension(ext)}.should.raise(badext) + ext::Response = Class.new(::OpenID::Extension) + lambda{OID.new(realm).add_extension(ext)}.should.raise(badext) + $-w = w + end +end + +rescue LoadError + $stderr.puts "Skipping Rack::Auth::OpenID tests (ruby-openid 2 is required). `gem install ruby-openid` and try again." +end diff --git a/presidents/vendor/gems/rack-1.0.0/test/spec_rack_builder.rb b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_builder.rb new file mode 100644 index 0000000..3fad981 --- /dev/null +++ b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_builder.rb @@ -0,0 +1,84 @@ +require 'test/spec' + +require 'rack/builder' +require 'rack/mock' +require 'rack/showexceptions' +require 'rack/auth/basic' + +context "Rack::Builder" do + specify "chains apps by default" do + app = Rack::Builder.new do + use Rack::ShowExceptions + run lambda { |env| raise "bzzzt" } + end.to_app + + Rack::MockRequest.new(app).get("/").should.be.server_error + Rack::MockRequest.new(app).get("/").should.be.server_error + Rack::MockRequest.new(app).get("/").should.be.server_error + end + + specify "has implicit #to_app" do + app = Rack::Builder.new do + use Rack::ShowExceptions + run lambda { |env| raise "bzzzt" } + end + + Rack::MockRequest.new(app).get("/").should.be.server_error + Rack::MockRequest.new(app).get("/").should.be.server_error + Rack::MockRequest.new(app).get("/").should.be.server_error + end + + specify "supports blocks on use" do + app = Rack::Builder.new do + use Rack::ShowExceptions + use Rack::Auth::Basic do |username, password| + 'secret' == password + end + + run lambda { |env| [200, {}, ['Hi Boss']] } + end + + response = Rack::MockRequest.new(app).get("/") + response.should.be.client_error + response.status.should.equal 401 + + # with auth... + response = Rack::MockRequest.new(app).get("/", + 'HTTP_AUTHORIZATION' => 'Basic ' + ["joe:secret"].pack("m*")) + response.status.should.equal 200 + response.body.to_s.should.equal 'Hi Boss' + end + + specify "has explicit #to_app" do + app = Rack::Builder.app do + use Rack::ShowExceptions + run lambda { |env| raise "bzzzt" } + end + + Rack::MockRequest.new(app).get("/").should.be.server_error + Rack::MockRequest.new(app).get("/").should.be.server_error + Rack::MockRequest.new(app).get("/").should.be.server_error + end + + specify "apps are initialized once" do + app = Rack::Builder.new do + class AppClass + def initialize + @called = 0 + end + def call(env) + raise "bzzzt" if @called > 0 + @called += 1 + [200, {'Content-Type' => 'text/plain'}, ['OK']] + end + end + + use Rack::ShowExceptions + run AppClass.new + end + + Rack::MockRequest.new(app).get("/").status.should.equal 200 + Rack::MockRequest.new(app).get("/").should.be.server_error + end + +end diff --git a/presidents/vendor/gems/rack-1.0.0/test/spec_rack_camping.rb b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_camping.rb new file mode 100644 index 0000000..bed1171 --- /dev/null +++ b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_camping.rb @@ -0,0 +1,51 @@ +require 'test/spec' +require 'stringio' +require 'uri' + +begin + require 'rack/mock' + + $-w, w = nil, $-w # yuck + require 'camping' + require 'rack/adapter/camping' + + Camping.goes :CampApp + module CampApp + module Controllers + class HW < R('/') + def get + @headers["X-Served-By"] = URI("http://rack.rubyforge.org") + "Camping works!" + end + + def post + "Data: #{input.foo}" + end + end + end + end + $-w = w + + context "Rack::Adapter::Camping" do + specify "works with GET" do + res = Rack::MockRequest.new(Rack::Adapter::Camping.new(CampApp)). + get("/") + + res.should.be.ok + res["Content-Type"].should.equal "text/html" + res["X-Served-By"].should.equal "http://rack.rubyforge.org" + + res.body.should.equal "Camping works!" + end + + specify "works with POST" do + res = Rack::MockRequest.new(Rack::Adapter::Camping.new(CampApp)). + post("/", :input => "foo=bar") + + res.should.be.ok + res.body.should.equal "Data: bar" + end + end +rescue LoadError + $stderr.puts "Skipping Rack::Adapter::Camping tests (Camping is required). `gem install camping` and try again." +end diff --git a/presidents/vendor/gems/rack-1.0.0/test/spec_rack_cascade.rb b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_cascade.rb new file mode 100644 index 0000000..3c0f3be --- /dev/null +++ b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_cascade.rb @@ -0,0 +1,50 @@ +require 'test/spec' + +require 'rack/cascade' +require 'rack/mock' + +require 'rack/urlmap' +require 'rack/file' + +context "Rack::Cascade" do + docroot = File.expand_path(File.dirname(__FILE__)) + app1 = Rack::File.new(docroot) + + app2 = Rack::URLMap.new("/crash" => lambda { |env| raise "boom" }) + + app3 = Rack::URLMap.new("/foo" => lambda { |env| + [200, { "Content-Type" => "text/plain"}, [""]]}) + + specify "should dispatch onward on 404 by default" do + cascade = Rack::Cascade.new([app1, app2, app3]) + Rack::MockRequest.new(cascade).get("/cgi/test").should.be.ok + Rack::MockRequest.new(cascade).get("/foo").should.be.ok + Rack::MockRequest.new(cascade).get("/toobad").should.be.not_found + Rack::MockRequest.new(cascade).get("/cgi/../bla").should.be.forbidden + end + + specify "should dispatch onward on whatever is passed" do + cascade = Rack::Cascade.new([app1, app2, app3], [404, 403]) + Rack::MockRequest.new(cascade).get("/cgi/../bla").should.be.not_found + end + + specify "should fail if empty" do + lambda { Rack::MockRequest.new(Rack::Cascade.new([])).get("/") }. + should.raise(ArgumentError) + end + + specify "should append new app" do + cascade = Rack::Cascade.new([], [404, 403]) + lambda { Rack::MockRequest.new(cascade).get('/cgi/test') }. + should.raise(ArgumentError) + cascade << app2 + Rack::MockRequest.new(cascade).get('/cgi/test').should.be.not_found + Rack::MockRequest.new(cascade).get('/cgi/../bla').should.be.not_found + cascade << app1 + Rack::MockRequest.new(cascade).get('/cgi/test').should.be.ok + Rack::MockRequest.new(cascade).get('/cgi/../bla').should.be.forbidden + Rack::MockRequest.new(cascade).get('/foo').should.be.not_found + cascade << app3 + Rack::MockRequest.new(cascade).get('/foo').should.be.ok + end +end diff --git a/presidents/vendor/gems/rack-1.0.0/test/spec_rack_cgi.rb b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_cgi.rb new file mode 100644 index 0000000..331f988 --- /dev/null +++ b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_cgi.rb @@ -0,0 +1,89 @@ +require 'test/spec' +require 'testrequest' + +context "Rack::Handler::CGI" do + include TestRequest::Helpers + + setup do + @host = '0.0.0.0' + @port = 9203 + end + + # Keep this first. + specify "startup" do + $pid = fork { + Dir.chdir(File.join(File.dirname(__FILE__), "..", "test", "cgi")) + exec "lighttpd -D -f lighttpd.conf" + } + end + + specify "should respond" do + sleep 1 + lambda { + GET("/test") + }.should.not.raise + end + + specify "should be a lighttpd" do + GET("/test") + status.should.be 200 + response["SERVER_SOFTWARE"].should =~ /lighttpd/ + response["HTTP_VERSION"].should.equal "HTTP/1.1" + response["SERVER_PROTOCOL"].should.equal "HTTP/1.1" + response["SERVER_PORT"].should.equal @port.to_s + response["SERVER_NAME"].should =~ @host + end + + specify "should have rack headers" do + GET("/test") + response["rack.version"].should.equal [0,1] + response["rack.multithread"].should.be false + response["rack.multiprocess"].should.be true + response["rack.run_once"].should.be true + end + + specify "should have CGI headers on GET" do + GET("/test") + response["REQUEST_METHOD"].should.equal "GET" + response["SCRIPT_NAME"].should.equal "/test" + response["REQUEST_PATH"].should.equal "/" + response["PATH_INFO"].should.be.nil + response["QUERY_STRING"].should.equal "" + response["test.postdata"].should.equal "" + + GET("/test/foo?quux=1") + response["REQUEST_METHOD"].should.equal "GET" + response["SCRIPT_NAME"].should.equal "/test" + response["REQUEST_PATH"].should.equal "/" + response["PATH_INFO"].should.equal "/foo" + response["QUERY_STRING"].should.equal "quux=1" + end + + specify "should have CGI headers on POST" do + POST("/test", {"rack-form-data" => "23"}, {'X-test-header' => '42'}) + status.should.equal 200 + response["REQUEST_METHOD"].should.equal "POST" + response["SCRIPT_NAME"].should.equal "/test" + response["REQUEST_PATH"].should.equal "/" + response["QUERY_STRING"].should.equal "" + response["HTTP_X_TEST_HEADER"].should.equal "42" + response["test.postdata"].should.equal "rack-form-data=23" + end + + specify "should support HTTP auth" do + GET("/test", {:user => "ruth", :passwd => "secret"}) + response["HTTP_AUTHORIZATION"].should.equal "Basic cnV0aDpzZWNyZXQ=" + end + + specify "should set status" do + GET("/test?secret") + status.should.equal 403 + response["rack.url_scheme"].should.equal "http" + end + + # Keep this last. + specify "shutdown" do + Process.kill 15, $pid + Process.wait($pid).should.equal $pid + end +end diff --git a/presidents/vendor/gems/rack-1.0.0/test/spec_rack_chunked.rb b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_chunked.rb new file mode 100644 index 0000000..39eea48 --- /dev/null +++ b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_chunked.rb @@ -0,0 +1,62 @@ +require 'rack/mock' +require 'rack/chunked' +require 'rack/utils' + +context "Rack::Chunked" do + + before do + @env = Rack::MockRequest. + env_for('/', 'HTTP_VERSION' => '1.1', 'REQUEST_METHOD' => 'GET') + end + + specify 'chunks responses with no Content-Length' do + app = lambda { |env| [200, {}, ['Hello', ' ', 'World!']] } + response = Rack::MockResponse.new(*Rack::Chunked.new(app).call(@env)) + response.headers.should.not.include 'Content-Length' + response.headers['Transfer-Encoding'].should.equal 'chunked' + response.body.should.equal "5\r\nHello\r\n1\r\n \r\n6\r\nWorld!\r\n0\r\n\r\n" + end + + specify 'chunks empty bodies properly' do + app = lambda { |env| [200, {}, []] } + response = Rack::MockResponse.new(*Rack::Chunked.new(app).call(@env)) + response.headers.should.not.include 'Content-Length' + response.headers['Transfer-Encoding'].should.equal 'chunked' + response.body.should.equal "0\r\n\r\n" + end + + specify 'does not modify response when Content-Length header present' do + app = lambda { |env| [200, {'Content-Length'=>'12'}, ['Hello', ' ', 'World!']] } + status, headers, body = Rack::Chunked.new(app).call(@env) + status.should.equal 200 + headers.should.not.include 'Transfer-Encoding' + headers.should.include 'Content-Length' + body.join.should.equal 'Hello World!' + end + + specify 'does not modify response when client is HTTP/1.0' do + app = lambda { |env| [200, {}, ['Hello', ' ', 'World!']] } + @env['HTTP_VERSION'] = 'HTTP/1.0' + status, headers, body = Rack::Chunked.new(app).call(@env) + status.should.equal 200 + headers.should.not.include 'Transfer-Encoding' + body.join.should.equal 'Hello World!' + end + + specify 'does not modify response when Transfer-Encoding header already present' do + app = lambda { |env| [200, {'Transfer-Encoding' => 'identity'}, ['Hello', ' ', 'World!']] } + status, headers, body = Rack::Chunked.new(app).call(@env) + status.should.equal 200 + headers['Transfer-Encoding'].should.equal 'identity' + body.join.should.equal 'Hello World!' + end + + [100, 204, 304].each do |status_code| + specify "does not modify response when status code is #{status_code}" do + app = lambda { |env| [status_code, {}, []] } + status, headers, body = Rack::Chunked.new(app).call(@env) + status.should.equal status_code + headers.should.not.include 'Transfer-Encoding' + end + end +end diff --git a/presidents/vendor/gems/rack-1.0.0/test/spec_rack_commonlogger.rb b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_commonlogger.rb new file mode 100644 index 0000000..ba03b78 --- /dev/null +++ b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_commonlogger.rb @@ -0,0 +1,32 @@ +require 'test/spec' +require 'stringio' + +require 'rack/commonlogger' +require 'rack/lobster' +require 'rack/mock' + +context "Rack::CommonLogger" do + app = lambda { |env| + [200, + {"Content-Type" => "text/html"}, + ["foo"]]} + + specify "should log to rack.errors by default" do + log = StringIO.new + res = Rack::MockRequest.new(Rack::CommonLogger.new(app)).get("/") + + res.errors.should.not.be.empty + res.errors.should =~ /GET / + res.errors.should =~ / 200 / # status + res.errors.should =~ / 3 / # length + end + + specify "should log to anything with <<" do + log = "" + res = Rack::MockRequest.new(Rack::CommonLogger.new(app, log)).get("/") + + log.should =~ /GET / + log.should =~ / 200 / # status + log.should =~ / 3 / # length + end +end diff --git a/presidents/vendor/gems/rack-1.0.0/test/spec_rack_conditionalget.rb b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_conditionalget.rb new file mode 100644 index 0000000..ca34cc9 --- /dev/null +++ b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_conditionalget.rb @@ -0,0 +1,41 @@ +require 'test/spec' +require 'time' + +require 'rack/mock' +require 'rack/conditionalget' + +context "Rack::ConditionalGet" do + specify "should set a 304 status and truncate body when If-Modified-Since hits" do + timestamp = Time.now.httpdate + app = Rack::ConditionalGet.new(lambda { |env| + [200, {'Last-Modified'=>timestamp}, ['TEST']] }) + + response = Rack::MockRequest.new(app). + get("/", 'HTTP_IF_MODIFIED_SINCE' => timestamp) + + response.status.should.equal 304 + response.body.should.be.empty + end + + specify "should set a 304 status and truncate body when If-None-Match hits" do + app = Rack::ConditionalGet.new(lambda { |env| + [200, {'Etag'=>'1234'}, ['TEST']] }) + + response = Rack::MockRequest.new(app). + get("/", 'HTTP_IF_NONE_MATCH' => '1234') + + response.status.should.equal 304 + response.body.should.be.empty + end + + specify "should not affect non-GET/HEAD requests" do + app = Rack::ConditionalGet.new(lambda { |env| + [200, {'Etag'=>'1234'}, ['TEST']] }) + + response = Rack::MockRequest.new(app). + post("/", 'HTTP_IF_NONE_MATCH' => '1234') + + response.status.should.equal 200 + response.body.should.equal 'TEST' + end +end diff --git a/presidents/vendor/gems/rack-1.0.0/test/spec_rack_content_length.rb b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_content_length.rb new file mode 100644 index 0000000..7db9345 --- /dev/null +++ b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_content_length.rb @@ -0,0 +1,43 @@ +require 'rack/mock' +require 'rack/content_length' + +context "Rack::ContentLength" do + specify "sets Content-Length on String bodies if none is set" do + app = lambda { |env| [200, {'Content-Type' => 'text/plain'}, "Hello, World!"] } + response = Rack::ContentLength.new(app).call({}) + response[1]['Content-Length'].should.equal '13' + end + + specify "sets Content-Length on Array bodies if none is set" do + app = lambda { |env| [200, {'Content-Type' => 'text/plain'}, ["Hello, World!"]] } + response = Rack::ContentLength.new(app).call({}) + response[1]['Content-Length'].should.equal '13' + end + + specify "does not set Content-Length on variable length bodies" do + body = lambda { "Hello World!" } + def body.each ; yield call ; end + + app = lambda { |env| [200, {'Content-Type' => 'text/plain'}, body] } + response = Rack::ContentLength.new(app).call({}) + response[1]['Content-Length'].should.be.nil + end + + specify "does not change Content-Length if it is already set" do + app = lambda { |env| [200, {'Content-Type' => 'text/plain', 'Content-Length' => '1'}, "Hello, World!"] } + response = Rack::ContentLength.new(app).call({}) + response[1]['Content-Length'].should.equal '1' + end + + specify "does not set Content-Length on 304 responses" do + app = lambda { |env| [304, {'Content-Type' => 'text/plain'}, []] } + response = Rack::ContentLength.new(app).call({}) + response[1]['Content-Length'].should.equal nil + end + + specify "does not set Content-Length when Transfer-Encoding is chunked" do + app = lambda { |env| [200, {'Transfer-Encoding' => 'chunked'}, []] } + response = Rack::ContentLength.new(app).call({}) + response[1]['Content-Length'].should.equal nil + end +end diff --git a/presidents/vendor/gems/rack-1.0.0/test/spec_rack_content_type.rb b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_content_type.rb new file mode 100644 index 0000000..9975b94 --- /dev/null +++ b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_content_type.rb @@ -0,0 +1,30 @@ +require 'rack/mock' +require 'rack/content_type' + +context "Rack::ContentType" do + specify "sets Content-Type to default text/html if none is set" do + app = lambda { |env| [200, {}, "Hello, World!"] } + status, headers, body = Rack::ContentType.new(app).call({}) + headers['Content-Type'].should.equal 'text/html' + end + + specify "sets Content-Type to chosen default if none is set" do + app = lambda { |env| [200, {}, "Hello, World!"] } + status, headers, body = + Rack::ContentType.new(app, 'application/octet-stream').call({}) + headers['Content-Type'].should.equal 'application/octet-stream' + end + + specify "does not change Content-Type if it is already set" do + app = lambda { |env| [200, {'Content-Type' => 'foo/bar'}, "Hello, World!"] } + status, headers, body = Rack::ContentType.new(app).call({}) + headers['Content-Type'].should.equal 'foo/bar' + end + + specify "case insensitive detection of Content-Type" do + app = lambda { |env| [200, {'CONTENT-Type' => 'foo/bar'}, "Hello, World!"] } + status, headers, body = Rack::ContentType.new(app).call({}) + headers.to_a.select { |k,v| k.downcase == "content-type" }. + should.equal [["CONTENT-Type","foo/bar"]] + end +end diff --git a/presidents/vendor/gems/rack-1.0.0/test/spec_rack_deflater.rb b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_deflater.rb new file mode 100644 index 0000000..c9bb318 --- /dev/null +++ b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_deflater.rb @@ -0,0 +1,127 @@ +require 'test/spec' + +require 'rack/mock' +require 'rack/deflater' +require 'stringio' +require 'time' # for Time#httpdate + +context "Rack::Deflater" do + def build_response(status, body, accept_encoding, headers = {}) + body = [body] if body.respond_to? :to_str + app = lambda { |env| [status, {}, body] } + request = Rack::MockRequest.env_for("", headers.merge("HTTP_ACCEPT_ENCODING" => accept_encoding)) + response = Rack::Deflater.new(app).call(request) + + return response + end + + specify "should be able to deflate bodies that respond to each" do + body = Object.new + class << body; def each; yield("foo"); yield("bar"); end; end + + response = build_response(200, body, "deflate") + + response[0].should.equal(200) + response[1].should.equal({ + "Content-Encoding" => "deflate", + "Vary" => "Accept-Encoding" + }) + buf = '' + response[2].each { |part| buf << part } + buf.should.equal("K\313\317OJ,\002\000") + end + + # TODO: This is really just a special case of the above... + specify "should be able to deflate String bodies" do + response = build_response(200, "Hello world!", "deflate") + + response[0].should.equal(200) + response[1].should.equal({ + "Content-Encoding" => "deflate", + "Vary" => "Accept-Encoding" + }) + buf = '' + response[2].each { |part| buf << part } + buf.should.equal("\363H\315\311\311W(\317/\312IQ\004\000") + end + + specify "should be able to gzip bodies that respond to each" do + body = Object.new + class << body; def each; yield("foo"); yield("bar"); end; end + + response = build_response(200, body, "gzip") + + response[0].should.equal(200) + response[1].should.equal({ + "Content-Encoding" => "gzip", + "Vary" => "Accept-Encoding", + }) + + buf = '' + response[2].each { |part| buf << part } + io = StringIO.new(buf) + gz = Zlib::GzipReader.new(io) + gz.read.should.equal("foobar") + gz.close + end + + specify "should be able to fallback to no deflation" do + response = build_response(200, "Hello world!", "superzip") + + response[0].should.equal(200) + response[1].should.equal({ "Vary" => "Accept-Encoding" }) + response[2].should.equal(["Hello world!"]) + end + + specify "should be able to skip when there is no response entity body" do + response = build_response(304, [], "gzip") + + response[0].should.equal(304) + response[1].should.equal({}) + response[2].should.equal([]) + end + + specify "should handle the lack of an acceptable encoding" do + response1 = build_response(200, "Hello world!", "identity;q=0", "PATH_INFO" => "/") + response1[0].should.equal(406) + response1[1].should.equal({"Content-Type" => "text/plain", "Content-Length" => "71"}) + response1[2].should.equal(["An acceptable encoding for the requested resource / could not be found."]) + + response2 = build_response(200, "Hello world!", "identity;q=0", "SCRIPT_NAME" => "/foo", "PATH_INFO" => "/bar") + response2[0].should.equal(406) + response2[1].should.equal({"Content-Type" => "text/plain", "Content-Length" => "78"}) + response2[2].should.equal(["An acceptable encoding for the requested resource /foo/bar could not be found."]) + end + + specify "should handle gzip response with Last-Modified header" do + last_modified = Time.now.httpdate + + app = lambda { |env| [200, { "Last-Modified" => last_modified }, ["Hello World!"]] } + request = Rack::MockRequest.env_for("", "HTTP_ACCEPT_ENCODING" => "gzip") + response = Rack::Deflater.new(app).call(request) + + response[0].should.equal(200) + response[1].should.equal({ + "Content-Encoding" => "gzip", + "Vary" => "Accept-Encoding", + "Last-Modified" => last_modified + }) + + buf = '' + response[2].each { |part| buf << part } + io = StringIO.new(buf) + gz = Zlib::GzipReader.new(io) + gz.read.should.equal("Hello World!") + gz.close + end + + specify "should do nothing when no-transform Cache-Control directive present" do + app = lambda { |env| [200, {'Cache-Control' => 'no-transform'}, ['Hello World!']] } + request = Rack::MockRequest.env_for("", "HTTP_ACCEPT_ENCODING" => "gzip") + response = Rack::Deflater.new(app).call(request) + + response[0].should.equal(200) + response[1].should.not.include "Content-Encoding" + response[2].join.should.equal("Hello World!") + end +end diff --git a/presidents/vendor/gems/rack-1.0.0/test/spec_rack_directory.rb b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_directory.rb new file mode 100644 index 0000000..540c728 --- /dev/null +++ b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_directory.rb @@ -0,0 +1,61 @@ +require 'test/spec' + +require 'rack/directory' +require 'rack/lint' + +require 'rack/mock' + +context "Rack::Directory" do + DOCROOT = File.expand_path(File.dirname(__FILE__)) + FILE_CATCH = proc{|env| [200, {'Content-Type'=>'text/plain', "Content-Length" => "7"}, ['passed!']] } + app = Rack::Directory.new DOCROOT, FILE_CATCH + + specify "serves directory indices" do + res = Rack::MockRequest.new(Rack::Lint.new(app)). + get("/cgi/") + + res.should.be.ok + res.should =~ // + end + + specify "passes to app if file found" do + res = Rack::MockRequest.new(Rack::Lint.new(app)). + get("/cgi/test") + + res.should.be.ok + res.should =~ /passed!/ + end + + specify "serves uri with URL encoded filenames" do + res = Rack::MockRequest.new(Rack::Lint.new(app)). + get("/%63%67%69/") # "/cgi/test" + + res.should.be.ok + res.should =~ // + + res = Rack::MockRequest.new(Rack::Lint.new(app)). + get("/cgi/%74%65%73%74") # "/cgi/test" + + res.should.be.ok + res.should =~ /passed!/ + end + + specify "does not allow directory traversal" do + res = Rack::MockRequest.new(Rack::Lint.new(app)). + get("/cgi/../test") + + res.should.be.forbidden + + res = Rack::MockRequest.new(Rack::Lint.new(app)). + get("/cgi/%2E%2E/test") + + res.should.be.forbidden + end + + specify "404s if it can't find the file" do + res = Rack::MockRequest.new(Rack::Lint.new(app)). + get("/cgi/blubb") + + res.should.be.not_found + end +end diff --git a/presidents/vendor/gems/rack-1.0.0/test/spec_rack_fastcgi.rb b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_fastcgi.rb new file mode 100644 index 0000000..66ab4f7 --- /dev/null +++ b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_fastcgi.rb @@ -0,0 +1,89 @@ +require 'test/spec' +require 'testrequest' + +context "Rack::Handler::FastCGI" do + include TestRequest::Helpers + + setup do + @host = '0.0.0.0' + @port = 9203 + end + + # Keep this first. + specify "startup" do + $pid = fork { + Dir.chdir(File.join(File.dirname(__FILE__), "..", "test", "cgi")) + exec "lighttpd -D -f lighttpd.conf" + } + end + + specify "should respond" do + sleep 1 + lambda { + GET("/test.fcgi") + }.should.not.raise + end + + specify "should be a lighttpd" do + GET("/test.fcgi") + status.should.be 200 + response["SERVER_SOFTWARE"].should =~ /lighttpd/ + response["HTTP_VERSION"].should.equal "HTTP/1.1" + response["SERVER_PROTOCOL"].should.equal "HTTP/1.1" + response["SERVER_PORT"].should.equal @port.to_s + response["SERVER_NAME"].should =~ @host + end + + specify "should have rack headers" do + GET("/test.fcgi") + response["rack.version"].should.equal [0,1] + response["rack.multithread"].should.be false + response["rack.multiprocess"].should.be true + response["rack.run_once"].should.be false + end + + specify "should have CGI headers on GET" do + GET("/test.fcgi") + response["REQUEST_METHOD"].should.equal "GET" + response["SCRIPT_NAME"].should.equal "/test.fcgi" + response["REQUEST_PATH"].should.equal "/" + response["PATH_INFO"].should.be.nil + response["QUERY_STRING"].should.equal "" + response["test.postdata"].should.equal "" + + GET("/test.fcgi/foo?quux=1") + response["REQUEST_METHOD"].should.equal "GET" + response["SCRIPT_NAME"].should.equal "/test.fcgi" + response["REQUEST_PATH"].should.equal "/" + response["PATH_INFO"].should.equal "/foo" + response["QUERY_STRING"].should.equal "quux=1" + end + + specify "should have CGI headers on POST" do + POST("/test.fcgi", {"rack-form-data" => "23"}, {'X-test-header' => '42'}) + status.should.equal 200 + response["REQUEST_METHOD"].should.equal "POST" + response["SCRIPT_NAME"].should.equal "/test.fcgi" + response["REQUEST_PATH"].should.equal "/" + response["QUERY_STRING"].should.equal "" + response["HTTP_X_TEST_HEADER"].should.equal "42" + response["test.postdata"].should.equal "rack-form-data=23" + end + + specify "should support HTTP auth" do + GET("/test.fcgi", {:user => "ruth", :passwd => "secret"}) + response["HTTP_AUTHORIZATION"].should.equal "Basic cnV0aDpzZWNyZXQ=" + end + + specify "should set status" do + GET("/test.fcgi?secret") + status.should.equal 403 + response["rack.url_scheme"].should.equal "http" + end + + # Keep this last. + specify "shutdown" do + Process.kill 15, $pid + Process.wait($pid).should.equal $pid + end +end diff --git a/presidents/vendor/gems/rack-1.0.0/test/spec_rack_file.rb b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_file.rb new file mode 100644 index 0000000..1e6771a --- /dev/null +++ b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_file.rb @@ -0,0 +1,75 @@ +require 'test/spec' + +require 'rack/file' +require 'rack/lint' + +require 'rack/mock' + +context "Rack::File" do + DOCROOT = File.expand_path(File.dirname(__FILE__)) + + specify "serves files" do + res = Rack::MockRequest.new(Rack::Lint.new(Rack::File.new(DOCROOT))). + get("/cgi/test") + + res.should.be.ok + res.should =~ /ruby/ + end + + specify "sets Last-Modified header" do + res = Rack::MockRequest.new(Rack::Lint.new(Rack::File.new(DOCROOT))). + get("/cgi/test") + + path = File.join(DOCROOT, "/cgi/test") + + res.should.be.ok + res["Last-Modified"].should.equal File.mtime(path).httpdate + end + + specify "serves files with URL encoded filenames" do + res = Rack::MockRequest.new(Rack::Lint.new(Rack::File.new(DOCROOT))). + get("/cgi/%74%65%73%74") # "/cgi/test" + + res.should.be.ok + res.should =~ /ruby/ + end + + specify "does not allow directory traversal" do + res = Rack::MockRequest.new(Rack::Lint.new(Rack::File.new(DOCROOT))). + get("/cgi/../test") + + res.should.be.forbidden + end + + specify "does not allow directory traversal with encoded periods" do + res = Rack::MockRequest.new(Rack::Lint.new(Rack::File.new(DOCROOT))). + get("/%2E%2E/README") + + res.should.be.forbidden + end + + specify "404s if it can't find the file" do + res = Rack::MockRequest.new(Rack::Lint.new(Rack::File.new(DOCROOT))). + get("/cgi/blubb") + + res.should.be.not_found + end + + specify "detects SystemCallErrors" do + res = Rack::MockRequest.new(Rack::Lint.new(Rack::File.new(DOCROOT))). + get("/cgi") + + res.should.be.not_found + end + + specify "returns bodies that respond to #to_path" do + env = Rack::MockRequest.env_for("/cgi/test") + status, headers, body = Rack::File.new(DOCROOT).call(env) + + path = File.join(DOCROOT, "/cgi/test") + + status.should.equal 200 + body.should.respond_to :to_path + body.to_path.should.equal path + end +end diff --git a/presidents/vendor/gems/rack-1.0.0/test/spec_rack_handler.rb b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_handler.rb new file mode 100644 index 0000000..fcf19b7 --- /dev/null +++ b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_handler.rb @@ -0,0 +1,43 @@ +require 'test/spec' + +require 'rack/handler' + +class Rack::Handler::Lobster; end +class RockLobster; end + +context "Rack::Handler" do + specify "has registered default handlers" do + Rack::Handler.get('cgi').should.equal Rack::Handler::CGI + Rack::Handler.get('fastcgi').should.equal Rack::Handler::FastCGI + Rack::Handler.get('mongrel').should.equal Rack::Handler::Mongrel + Rack::Handler.get('webrick').should.equal Rack::Handler::WEBrick + end + + specify "handler that doesn't exist should raise a NameError" do + lambda { + Rack::Handler.get('boom') + }.should.raise(NameError) + end + + specify "should get unregistered, but already required, handler by name" do + Rack::Handler.get('Lobster').should.equal Rack::Handler::Lobster + end + + specify "should register custom handler" do + Rack::Handler.register('rock_lobster', 'RockLobster') + Rack::Handler.get('rock_lobster').should.equal RockLobster + end + + specify "should not need registration for properly coded handlers even if not already required" do + begin + $:.push "test/unregistered_handler" + Rack::Handler.get('Unregistered').should.equal Rack::Handler::Unregistered + lambda { + Rack::Handler.get('UnRegistered') + }.should.raise(NameError) + Rack::Handler.get('UnregisteredLongOne').should.equal Rack::Handler::UnregisteredLongOne + ensure + $:.delete "test/unregistered_handler" + end + end +end diff --git a/presidents/vendor/gems/rack-1.0.0/test/spec_rack_head.rb b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_head.rb new file mode 100644 index 0000000..48d3f81 --- /dev/null +++ b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_head.rb @@ -0,0 +1,30 @@ +require 'rack/head' +require 'rack/mock' + +context "Rack::Head" do + def test_response(headers = {}) + app = lambda { |env| [200, {"Content-type" => "test/plain", "Content-length" => "3"}, ["foo"]] } + request = Rack::MockRequest.env_for("/", headers) + response = Rack::Head.new(app).call(request) + + return response + end + + specify "passes GET, POST, PUT, DELETE, OPTIONS, TRACE requests" do + %w[GET POST PUT DELETE OPTIONS TRACE].each do |type| + resp = test_response("REQUEST_METHOD" => type) + + resp[0].should.equal(200) + resp[1].should.equal({"Content-type" => "test/plain", "Content-length" => "3"}) + resp[2].should.equal(["foo"]) + end + end + + specify "removes body from HEAD requests" do + resp = test_response("REQUEST_METHOD" => "HEAD") + + resp[0].should.equal(200) + resp[1].should.equal({"Content-type" => "test/plain", "Content-length" => "3"}) + resp[2].should.equal([]) + end +end diff --git a/presidents/vendor/gems/rack-1.0.0/test/spec_rack_lint.rb b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_lint.rb new file mode 100644 index 0000000..8c6419d --- /dev/null +++ b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_lint.rb @@ -0,0 +1,499 @@ +require 'test/spec' +require 'stringio' + +require 'rack/lint' +require 'rack/mock' + +context "Rack::Lint" do + def env(*args) + Rack::MockRequest.env_for("/", *args) + end + + specify "passes valid request" do + lambda { + Rack::Lint.new(lambda { |env| + [200, {"Content-type" => "test/plain", "Content-length" => "3"}, ["foo"]] + }).call(env({})) + }.should.not.raise + end + + specify "notices fatal errors" do + lambda { Rack::Lint.new(nil).call }.should.raise(Rack::Lint::LintError). + message.should.match(/No env given/) + end + + specify "notices environment errors" do + lambda { Rack::Lint.new(nil).call 5 }.should.raise(Rack::Lint::LintError). + message.should.match(/not a Hash/) + + lambda { + e = env + e.delete("REQUEST_METHOD") + Rack::Lint.new(nil).call(e) + }.should.raise(Rack::Lint::LintError). + message.should.match(/missing required key REQUEST_METHOD/) + + lambda { + e = env + e.delete("SERVER_NAME") + Rack::Lint.new(nil).call(e) + }.should.raise(Rack::Lint::LintError). + message.should.match(/missing required key SERVER_NAME/) + + + lambda { + Rack::Lint.new(nil).call(env("HTTP_CONTENT_TYPE" => "text/plain")) + }.should.raise(Rack::Lint::LintError). + message.should.match(/contains HTTP_CONTENT_TYPE/) + + lambda { + Rack::Lint.new(nil).call(env("HTTP_CONTENT_LENGTH" => "42")) + }.should.raise(Rack::Lint::LintError). + message.should.match(/contains HTTP_CONTENT_LENGTH/) + + lambda { + Rack::Lint.new(nil).call(env("FOO" => Object.new)) + }.should.raise(Rack::Lint::LintError). + message.should.match(/non-string value/) + + lambda { + Rack::Lint.new(nil).call(env("rack.version" => "0.2")) + }.should.raise(Rack::Lint::LintError). + message.should.match(/must be an Array/) + + lambda { + Rack::Lint.new(nil).call(env("rack.url_scheme" => "gopher")) + }.should.raise(Rack::Lint::LintError). + message.should.match(/url_scheme unknown/) + + lambda { + Rack::Lint.new(nil).call(env("rack.session" => [])) + }.should.raise(Rack::Lint::LintError). + message.should.equal("session [] must respond to store and []=") + + lambda { + Rack::Lint.new(nil).call(env("REQUEST_METHOD" => "FUCKUP?")) + }.should.raise(Rack::Lint::LintError). + message.should.match(/REQUEST_METHOD/) + + lambda { + Rack::Lint.new(nil).call(env("SCRIPT_NAME" => "howdy")) + }.should.raise(Rack::Lint::LintError). + message.should.match(/must start with/) + + lambda { + Rack::Lint.new(nil).call(env("PATH_INFO" => "../foo")) + }.should.raise(Rack::Lint::LintError). + message.should.match(/must start with/) + + lambda { + Rack::Lint.new(nil).call(env("CONTENT_LENGTH" => "xcii")) + }.should.raise(Rack::Lint::LintError). + message.should.match(/Invalid CONTENT_LENGTH/) + + lambda { + e = env + e.delete("PATH_INFO") + e.delete("SCRIPT_NAME") + Rack::Lint.new(nil).call(e) + }.should.raise(Rack::Lint::LintError). + message.should.match(/One of .* must be set/) + + lambda { + Rack::Lint.new(nil).call(env("SCRIPT_NAME" => "/")) + }.should.raise(Rack::Lint::LintError). + message.should.match(/cannot be .* make it ''/) + end + + specify "notices input errors" do + lambda { + Rack::Lint.new(nil).call(env("rack.input" => "")) + }.should.raise(Rack::Lint::LintError). + message.should.match(/does not respond to #gets/) + end + + specify "notices error errors" do + lambda { + Rack::Lint.new(nil).call(env("rack.errors" => "")) + }.should.raise(Rack::Lint::LintError). + message.should.match(/does not respond to #puts/) + end + + specify "notices status errors" do + lambda { + Rack::Lint.new(lambda { |env| + ["cc", {}, ""] + }).call(env({})) + }.should.raise(Rack::Lint::LintError). + message.should.match(/must be >=100 seen as integer/) + + lambda { + Rack::Lint.new(lambda { |env| + [42, {}, ""] + }).call(env({})) + }.should.raise(Rack::Lint::LintError). + message.should.match(/must be >=100 seen as integer/) + end + + specify "notices header errors" do + lambda { + Rack::Lint.new(lambda { |env| + [200, Object.new, []] + }).call(env({})) + }.should.raise(Rack::Lint::LintError). + message.should.equal("headers object should respond to #each, but doesn't (got Object as headers)") + + lambda { + Rack::Lint.new(lambda { |env| + [200, {true=>false}, []] + }).call(env({})) + }.should.raise(Rack::Lint::LintError). + message.should.equal("header key must be a string, was TrueClass") + + lambda { + Rack::Lint.new(lambda { |env| + [200, {"Status" => "404"}, []] + }).call(env({})) + }.should.raise(Rack::Lint::LintError). + message.should.match(/must not contain Status/) + + lambda { + Rack::Lint.new(lambda { |env| + [200, {"Content-Type:" => "text/plain"}, []] + }).call(env({})) + }.should.raise(Rack::Lint::LintError). + message.should.match(/must not contain :/) + + lambda { + Rack::Lint.new(lambda { |env| + [200, {"Content-" => "text/plain"}, []] + }).call(env({})) + }.should.raise(Rack::Lint::LintError). + message.should.match(/must not end/) + + lambda { + Rack::Lint.new(lambda { |env| + [200, {"..%%quark%%.." => "text/plain"}, []] + }).call(env({})) + }.should.raise(Rack::Lint::LintError). + message.should.equal("invalid header name: ..%%quark%%..") + + lambda { + Rack::Lint.new(lambda { |env| + [200, {"Foo" => Object.new}, []] + }).call(env({})) + }.should.raise(Rack::Lint::LintError). + message.should.equal("a header value must be a String, but the value of 'Foo' is a Object") + + lambda { + Rack::Lint.new(lambda { |env| + [200, {"Foo" => [1, 2, 3]}, []] + }).call(env({})) + }.should.raise(Rack::Lint::LintError). + message.should.equal("a header value must be a String, but the value of 'Foo' is a Array") + + + lambda { + Rack::Lint.new(lambda { |env| + [200, {"Foo-Bar" => "text\000plain"}, []] + }).call(env({})) + }.should.raise(Rack::Lint::LintError). + message.should.match(/invalid header/) + + # line ends (010) should be allowed in header values. + lambda { + Rack::Lint.new(lambda { |env| + [200, {"Foo-Bar" => "one\ntwo\nthree", "Content-Length" => "0", "Content-Type" => "text/plain" }, []] + }).call(env({})) + }.should.not.raise(Rack::Lint::LintError) + end + + specify "notices content-type errors" do + lambda { + Rack::Lint.new(lambda { |env| + [200, {"Content-length" => "0"}, []] + }).call(env({})) + }.should.raise(Rack::Lint::LintError). + message.should.match(/No Content-Type/) + + [100, 101, 204, 304].each do |status| + lambda { + Rack::Lint.new(lambda { |env| + [status, {"Content-type" => "text/plain", "Content-length" => "0"}, []] + }).call(env({})) + }.should.raise(Rack::Lint::LintError). + message.should.match(/Content-Type header found/) + end + end + + specify "notices content-length errors" do + [100, 101, 204, 304].each do |status| + lambda { + Rack::Lint.new(lambda { |env| + [status, {"Content-length" => "0"}, []] + }).call(env({})) + }.should.raise(Rack::Lint::LintError). + message.should.match(/Content-Length header found/) + end + + lambda { + Rack::Lint.new(lambda { |env| + [200, {"Content-type" => "text/plain", "Content-Length" => "1"}, []] + }).call(env({})) + }.should.raise(Rack::Lint::LintError). + message.should.match(/Content-Length header was 1, but should be 0/) + end + + specify "notices body errors" do + lambda { + status, header, body = Rack::Lint.new(lambda { |env| + [200, {"Content-type" => "text/plain","Content-length" => "3"}, [1,2,3]] + }).call(env({})) + body.each { |part| } + }.should.raise(Rack::Lint::LintError). + message.should.match(/yielded non-string/) + end + + specify "notices input handling errors" do + lambda { + Rack::Lint.new(lambda { |env| + env["rack.input"].gets("\r\n") + [201, {"Content-type" => "text/plain", "Content-length" => "0"}, []] + }).call(env({})) + }.should.raise(Rack::Lint::LintError). + message.should.match(/gets called with arguments/) + + lambda { + Rack::Lint.new(lambda { |env| + env["rack.input"].read(1, 2, 3) + [201, {"Content-type" => "text/plain", "Content-length" => "0"}, []] + }).call(env({})) + }.should.raise(Rack::Lint::LintError). + message.should.match(/read called with too many arguments/) + + lambda { + Rack::Lint.new(lambda { |env| + env["rack.input"].read("foo") + [201, {"Content-type" => "text/plain", "Content-length" => "0"}, []] + }).call(env({})) + }.should.raise(Rack::Lint::LintError). + message.should.match(/read called with non-integer and non-nil length/) + + lambda { + Rack::Lint.new(lambda { |env| + env["rack.input"].read(-1) + [201, {"Content-type" => "text/plain", "Content-length" => "0"}, []] + }).call(env({})) + }.should.raise(Rack::Lint::LintError). + message.should.match(/read called with a negative length/) + + lambda { + Rack::Lint.new(lambda { |env| + env["rack.input"].read(nil, nil) + [201, {"Content-type" => "text/plain", "Content-length" => "0"}, []] + }).call(env({})) + }.should.raise(Rack::Lint::LintError). + message.should.match(/read called with non-String buffer/) + + lambda { + Rack::Lint.new(lambda { |env| + env["rack.input"].read(nil, 1) + [201, {"Content-type" => "text/plain", "Content-length" => "0"}, []] + }).call(env({})) + }.should.raise(Rack::Lint::LintError). + message.should.match(/read called with non-String buffer/) + + lambda { + Rack::Lint.new(lambda { |env| + env["rack.input"].rewind(0) + [201, {"Content-type" => "text/plain", "Content-length" => "0"}, []] + }).call(env({})) + }.should.raise(Rack::Lint::LintError). + message.should.match(/rewind called with arguments/) + + weirdio = Object.new + class << weirdio + def gets + 42 + end + + def read + 23 + end + + def each + yield 23 + yield 42 + end + + def rewind + raise Errno::ESPIPE, "Errno::ESPIPE" + end + end + + eof_weirdio = Object.new + class << eof_weirdio + def gets + nil + end + + def read(*args) + nil + end + + def each + end + + def rewind + end + end + + lambda { + Rack::Lint.new(lambda { |env| + env["rack.input"].gets + [201, {"Content-type" => "text/plain", "Content-length" => "0"}, []] + }).call(env("rack.input" => weirdio)) + }.should.raise(Rack::Lint::LintError). + message.should.match(/gets didn't return a String/) + + lambda { + Rack::Lint.new(lambda { |env| + env["rack.input"].each { |x| } + [201, {"Content-type" => "text/plain", "Content-length" => "0"}, []] + }).call(env("rack.input" => weirdio)) + }.should.raise(Rack::Lint::LintError). + message.should.match(/each didn't yield a String/) + + lambda { + Rack::Lint.new(lambda { |env| + env["rack.input"].read + [201, {"Content-type" => "text/plain", "Content-length" => "0"}, []] + }).call(env("rack.input" => weirdio)) + }.should.raise(Rack::Lint::LintError). + message.should.match(/read didn't return nil or a String/) + + lambda { + Rack::Lint.new(lambda { |env| + env["rack.input"].read + [201, {"Content-type" => "text/plain", "Content-length" => "0"}, []] + }).call(env("rack.input" => eof_weirdio)) + }.should.raise(Rack::Lint::LintError). + message.should.match(/read\(nil\) returned nil on EOF/) + + lambda { + Rack::Lint.new(lambda { |env| + env["rack.input"].rewind + [201, {"Content-type" => "text/plain", "Content-length" => "0"}, []] + }).call(env("rack.input" => weirdio)) + }.should.raise(Rack::Lint::LintError). + message.should.match(/rewind raised Errno::ESPIPE/) + + + lambda { + Rack::Lint.new(lambda { |env| + env["rack.input"].close + [201, {"Content-type" => "text/plain", "Content-length" => "0"}, []] + }).call(env({})) + }.should.raise(Rack::Lint::LintError). + message.should.match(/close must not be called/) + end + + specify "notices error handling errors" do + lambda { + Rack::Lint.new(lambda { |env| + env["rack.errors"].write(42) + [201, {"Content-type" => "text/plain", "Content-length" => "0"}, []] + }).call(env({})) + }.should.raise(Rack::Lint::LintError). + message.should.match(/write not called with a String/) + + lambda { + Rack::Lint.new(lambda { |env| + env["rack.errors"].close + [201, {"Content-type" => "text/plain", "Content-length" => "0"}, []] + }).call(env({})) + }.should.raise(Rack::Lint::LintError). + message.should.match(/close must not be called/) + end + + specify "notices HEAD errors" do + lambda { + Rack::Lint.new(lambda { |env| + [200, {"Content-type" => "test/plain", "Content-length" => "3"}, []] + }).call(env({"REQUEST_METHOD" => "HEAD"})) + }.should.not.raise + + lambda { + Rack::Lint.new(lambda { |env| + [200, {"Content-type" => "test/plain", "Content-length" => "3"}, ["foo"]] + }).call(env({"REQUEST_METHOD" => "HEAD"})) + }.should.raise(Rack::Lint::LintError). + message.should.match(/body was given for HEAD/) + end + + specify "passes valid read calls" do + lambda { + Rack::Lint.new(lambda { |env| + env["rack.input"].read + [201, {"Content-type" => "text/plain", "Content-length" => "0"}, []] + }).call(env({"rack.input" => StringIO.new("hello world")})) + }.should.not.raise(Rack::Lint::LintError) + + lambda { + Rack::Lint.new(lambda { |env| + env["rack.input"].read(0) + [201, {"Content-type" => "text/plain", "Content-length" => "0"}, []] + }).call(env({"rack.input" => StringIO.new("hello world")})) + }.should.not.raise(Rack::Lint::LintError) + + lambda { + Rack::Lint.new(lambda { |env| + env["rack.input"].read(1) + [201, {"Content-type" => "text/plain", "Content-length" => "0"}, []] + }).call(env({"rack.input" => StringIO.new("hello world")})) + }.should.not.raise(Rack::Lint::LintError) + + lambda { + Rack::Lint.new(lambda { |env| + env["rack.input"].read(nil) + [201, {"Content-type" => "text/plain", "Content-length" => "0"}, []] + }).call(env({"rack.input" => StringIO.new("hello world")})) + }.should.not.raise(Rack::Lint::LintError) + + lambda { + Rack::Lint.new(lambda { |env| + env["rack.input"].read(nil, '') + [201, {"Content-type" => "text/plain", "Content-length" => "0"}, []] + }).call(env({"rack.input" => StringIO.new("hello world")})) + }.should.not.raise(Rack::Lint::LintError) + + lambda { + Rack::Lint.new(lambda { |env| + env["rack.input"].read(1, '') + [201, {"Content-type" => "text/plain", "Content-length" => "0"}, []] + }).call(env({"rack.input" => StringIO.new("hello world")})) + }.should.not.raise(Rack::Lint::LintError) + end +end + +context "Rack::Lint::InputWrapper" do + specify "delegates :size to underlying IO object" do + class IOMock + def size + 101 + end + end + + wrapper = Rack::Lint::InputWrapper.new(IOMock.new) + wrapper.size.should == 101 + end + + specify "delegates :rewind to underlying IO object" do + io = StringIO.new("123") + wrapper = Rack::Lint::InputWrapper.new(io) + wrapper.read.should.equal "123" + wrapper.read.should.equal "" + wrapper.rewind + wrapper.read.should.equal "123" + end +end diff --git a/presidents/vendor/gems/rack-1.0.0/test/spec_rack_lobster.rb b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_lobster.rb new file mode 100644 index 0000000..7be267a --- /dev/null +++ b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_lobster.rb @@ -0,0 +1,45 @@ +require 'test/spec' + +require 'rack/lobster' +require 'rack/mock' + +context "Rack::Lobster::LambdaLobster" do + specify "should be a single lambda" do + Rack::Lobster::LambdaLobster.should.be.kind_of Proc + end + + specify "should look like a lobster" do + res = Rack::MockRequest.new(Rack::Lobster::LambdaLobster).get("/") + res.should.be.ok + res.body.should.include "(,(,,(,,,(" + res.body.should.include "?flip" + end + + specify "should be flippable" do + res = Rack::MockRequest.new(Rack::Lobster::LambdaLobster).get("/?flip") + res.should.be.ok + res.body.should.include "(,,,(,,(,(" + end +end + +context "Rack::Lobster" do + specify "should look like a lobster" do + res = Rack::MockRequest.new(Rack::Lobster.new).get("/") + res.should.be.ok + res.body.should.include "(,(,,(,,,(" + res.body.should.include "?flip" + res.body.should.include "crash" + end + + specify "should be flippable" do + res = Rack::MockRequest.new(Rack::Lobster.new).get("/?flip=left") + res.should.be.ok + res.body.should.include "(,,,(,,(,(" + end + + specify "should provide crashing for testing purposes" do + lambda { + Rack::MockRequest.new(Rack::Lobster.new).get("/?flip=crash") + }.should.raise + end +end diff --git a/presidents/vendor/gems/rack-1.0.0/test/spec_rack_lock.rb b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_lock.rb new file mode 100644 index 0000000..18af2b2 --- /dev/null +++ b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_lock.rb @@ -0,0 +1,38 @@ +require 'test/spec' + +require 'rack/mock' +require 'rack/lock' + +context "Rack::Lock" do + class Lock + attr_reader :synchronized + + def initialize + @synchronized = false + end + + def synchronize + @synchronized = true + yield + end + end + + specify "should call synchronize on lock" do + lock = Lock.new + env = Rack::MockRequest.env_for("/") + app = Rack::Lock.new(lambda { |env| }, lock) + lock.synchronized.should.equal false + app.call(env) + lock.synchronized.should.equal true + end + + specify "should set multithread flag to false" do + app = Rack::Lock.new(lambda { |env| env['rack.multithread'] }) + app.call(Rack::MockRequest.env_for("/")).should.equal false + end + + specify "should reset original multithread flag when exiting lock" do + app = Rack::Lock.new(lambda { |env| env }) + app.call(Rack::MockRequest.env_for("/"))['rack.multithread'].should.equal true + end +end diff --git a/presidents/vendor/gems/rack-1.0.0/test/spec_rack_methodoverride.rb b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_methodoverride.rb new file mode 100644 index 0000000..5745239 --- /dev/null +++ b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_methodoverride.rb @@ -0,0 +1,60 @@ +require 'test/spec' + +require 'rack/mock' +require 'rack/methodoverride' +require 'stringio' + +context "Rack::MethodOverride" do + specify "should not affect GET requests" do + env = Rack::MockRequest.env_for("/?_method=delete", :method => "GET") + app = Rack::MethodOverride.new(lambda { |env| Rack::Request.new(env) }) + req = app.call(env) + + req.env["REQUEST_METHOD"].should.equal "GET" + end + + specify "_method parameter should modify REQUEST_METHOD for POST requests" do + env = Rack::MockRequest.env_for("/", :method => "POST", :input => "_method=put") + app = Rack::MethodOverride.new(lambda { |env| Rack::Request.new(env) }) + req = app.call(env) + + req.env["REQUEST_METHOD"].should.equal "PUT" + end + + specify "X-HTTP-Method-Override header should modify REQUEST_METHOD for POST requests" do + env = Rack::MockRequest.env_for("/", + :method => "POST", + "HTTP_X_HTTP_METHOD_OVERRIDE" => "PUT" + ) + app = Rack::MethodOverride.new(lambda { |env| Rack::Request.new(env) }) + req = app.call(env) + + req.env["REQUEST_METHOD"].should.equal "PUT" + end + + specify "should not modify REQUEST_METHOD if the method is unknown" do + env = Rack::MockRequest.env_for("/", :method => "POST", :input => "_method=foo") + app = Rack::MethodOverride.new(lambda { |env| Rack::Request.new(env) }) + req = app.call(env) + + req.env["REQUEST_METHOD"].should.equal "POST" + end + + specify "should not modify REQUEST_METHOD when _method is nil" do + env = Rack::MockRequest.env_for("/", :method => "POST", :input => "foo=bar") + app = Rack::MethodOverride.new(lambda { |env| Rack::Request.new(env) }) + req = app.call(env) + + req.env["REQUEST_METHOD"].should.equal "POST" + end + + specify "should store the original REQUEST_METHOD prior to overriding" do + env = Rack::MockRequest.env_for("/", + :method => "POST", + :input => "_method=options") + app = Rack::MethodOverride.new(lambda { |env| Rack::Request.new(env) }) + req = app.call(env) + + req.env["rack.methodoverride.original_method"].should.equal "POST" + end +end diff --git a/presidents/vendor/gems/rack-1.0.0/test/spec_rack_mock.rb b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_mock.rb new file mode 100644 index 0000000..b16306b --- /dev/null +++ b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_mock.rb @@ -0,0 +1,157 @@ +require 'yaml' +require 'rack/mock' +require 'rack/request' +require 'rack/response' + +app = lambda { |env| + req = Rack::Request.new(env) + + env["mock.postdata"] = env["rack.input"].read + if req.GET["error"] + env["rack.errors"].puts req.GET["error"] + env["rack.errors"].flush + end + + Rack::Response.new(env.to_yaml, + req.GET["status"] || 200, + "Content-Type" => "text/yaml").finish +} + +context "Rack::MockRequest" do + specify "should return a MockResponse" do + res = Rack::MockRequest.new(app).get("") + res.should.be.kind_of Rack::MockResponse + end + + specify "should be able to only return the environment" do + env = Rack::MockRequest.env_for("") + env.should.be.kind_of Hash + env.should.include "rack.version" + end + + specify "should provide sensible defaults" do + res = Rack::MockRequest.new(app).request + + env = YAML.load(res.body) + env["REQUEST_METHOD"].should.equal "GET" + env["SERVER_NAME"].should.equal "example.org" + env["SERVER_PORT"].should.equal "80" + env["QUERY_STRING"].should.equal "" + env["PATH_INFO"].should.equal "/" + env["SCRIPT_NAME"].should.equal "" + env["rack.url_scheme"].should.equal "http" + env["mock.postdata"].should.be.empty + end + + specify "should allow GET/POST/PUT/DELETE" do + res = Rack::MockRequest.new(app).get("", :input => "foo") + env = YAML.load(res.body) + env["REQUEST_METHOD"].should.equal "GET" + + res = Rack::MockRequest.new(app).post("", :input => "foo") + env = YAML.load(res.body) + env["REQUEST_METHOD"].should.equal "POST" + + res = Rack::MockRequest.new(app).put("", :input => "foo") + env = YAML.load(res.body) + env["REQUEST_METHOD"].should.equal "PUT" + + res = Rack::MockRequest.new(app).delete("", :input => "foo") + env = YAML.load(res.body) + env["REQUEST_METHOD"].should.equal "DELETE" + + Rack::MockRequest.env_for("/", :method => "OPTIONS")["REQUEST_METHOD"]. + should.equal "OPTIONS" + end + + specify "should set content length" do + env = Rack::MockRequest.env_for("/", :input => "foo") + env["CONTENT_LENGTH"].should.equal "3" + end + + specify "should allow posting" do + res = Rack::MockRequest.new(app).get("", :input => "foo") + env = YAML.load(res.body) + env["mock.postdata"].should.equal "foo" + + res = Rack::MockRequest.new(app).post("", :input => StringIO.new("foo")) + env = YAML.load(res.body) + env["mock.postdata"].should.equal "foo" + end + + specify "should use all parts of an URL" do + res = Rack::MockRequest.new(app). + get("https://bla.example.org:9292/meh/foo?bar") + res.should.be.kind_of Rack::MockResponse + + env = YAML.load(res.body) + env["REQUEST_METHOD"].should.equal "GET" + env["SERVER_NAME"].should.equal "bla.example.org" + env["SERVER_PORT"].should.equal "9292" + env["QUERY_STRING"].should.equal "bar" + env["PATH_INFO"].should.equal "/meh/foo" + env["rack.url_scheme"].should.equal "https" + end + + specify "should behave valid according to the Rack spec" do + lambda { + res = Rack::MockRequest.new(app). + get("https://bla.example.org:9292/meh/foo?bar", :lint => true) + }.should.not.raise(Rack::Lint::LintError) + end +end + +context "Rack::MockResponse" do + specify "should provide access to the HTTP status" do + res = Rack::MockRequest.new(app).get("") + res.should.be.successful + res.should.be.ok + + res = Rack::MockRequest.new(app).get("/?status=404") + res.should.not.be.successful + res.should.be.client_error + res.should.be.not_found + + res = Rack::MockRequest.new(app).get("/?status=501") + res.should.not.be.successful + res.should.be.server_error + + res = Rack::MockRequest.new(app).get("/?status=307") + res.should.be.redirect + + res = Rack::MockRequest.new(app).get("/?status=201", :lint => true) + res.should.be.empty + end + + specify "should provide access to the HTTP headers" do + res = Rack::MockRequest.new(app).get("") + res.should.include "Content-Type" + res.headers["Content-Type"].should.equal "text/yaml" + res.original_headers["Content-Type"].should.equal "text/yaml" + res["Content-Type"].should.equal "text/yaml" + res.content_type.should.equal "text/yaml" + res.content_length.should.be 464 # needs change often. + res.location.should.be.nil + end + + specify "should provide access to the HTTP body" do + res = Rack::MockRequest.new(app).get("") + res.body.should =~ /rack/ + res.should =~ /rack/ + res.should.match(/rack/) + res.should.satisfy { |r| r.match(/rack/) } + end + + specify "should provide access to the Rack errors" do + res = Rack::MockRequest.new(app).get("/?error=foo", :lint => true) + res.should.be.ok + res.errors.should.not.be.empty + res.errors.should.include "foo" + end + + specify "should optionally make Rack errors fatal" do + lambda { + Rack::MockRequest.new(app).get("/?error=foo", :fatal => true) + }.should.raise(Rack::MockRequest::FatalWarning) + end +end diff --git a/presidents/vendor/gems/rack-1.0.0/test/spec_rack_mongrel.rb b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_mongrel.rb new file mode 100644 index 0000000..1da0af4 --- /dev/null +++ b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_mongrel.rb @@ -0,0 +1,189 @@ +require 'test/spec' + +begin +require 'rack/handler/mongrel' +require 'rack/urlmap' +require 'rack/lint' +require 'testrequest' +require 'timeout' + +Thread.abort_on_exception = true +$tcp_defer_accept_opts = nil +$tcp_cork_opts = nil + +context "Rack::Handler::Mongrel" do + include TestRequest::Helpers + + setup do + server = Mongrel::HttpServer.new(@host='0.0.0.0', @port=9201) + server.register('/test', + Rack::Handler::Mongrel.new(Rack::Lint.new(TestRequest.new))) + server.register('/stream', + Rack::Handler::Mongrel.new(Rack::Lint.new(StreamingRequest))) + @acc = server.run + end + + specify "should respond" do + lambda { + GET("/test") + }.should.not.raise + end + + specify "should be a Mongrel" do + GET("/test") + status.should.be 200 + response["SERVER_SOFTWARE"].should =~ /Mongrel/ + response["HTTP_VERSION"].should.equal "HTTP/1.1" + response["SERVER_PROTOCOL"].should.equal "HTTP/1.1" + response["SERVER_PORT"].should.equal "9201" + response["SERVER_NAME"].should.equal "0.0.0.0" + end + + specify "should have rack headers" do + GET("/test") + response["rack.version"].should.equal [0,1] + response["rack.multithread"].should.be true + response["rack.multiprocess"].should.be false + response["rack.run_once"].should.be false + end + + specify "should have CGI headers on GET" do + GET("/test") + response["REQUEST_METHOD"].should.equal "GET" + response["SCRIPT_NAME"].should.equal "/test" + response["REQUEST_PATH"].should.equal "/test" + response["PATH_INFO"].should.be.nil + response["QUERY_STRING"].should.equal "" + response["test.postdata"].should.equal "" + + GET("/test/foo?quux=1") + response["REQUEST_METHOD"].should.equal "GET" + response["SCRIPT_NAME"].should.equal "/test" + response["REQUEST_PATH"].should.equal "/test/foo" + response["PATH_INFO"].should.equal "/foo" + response["QUERY_STRING"].should.equal "quux=1" + end + + specify "should have CGI headers on POST" do + POST("/test", {"rack-form-data" => "23"}, {'X-test-header' => '42'}) + status.should.equal 200 + response["REQUEST_METHOD"].should.equal "POST" + response["SCRIPT_NAME"].should.equal "/test" + response["REQUEST_PATH"].should.equal "/test" + response["QUERY_STRING"].should.equal "" + response["HTTP_X_TEST_HEADER"].should.equal "42" + response["test.postdata"].should.equal "rack-form-data=23" + end + + specify "should support HTTP auth" do + GET("/test", {:user => "ruth", :passwd => "secret"}) + response["HTTP_AUTHORIZATION"].should.equal "Basic cnV0aDpzZWNyZXQ=" + end + + specify "should set status" do + GET("/test?secret") + status.should.equal 403 + response["rack.url_scheme"].should.equal "http" + end + + specify "should provide a .run" do + block_ran = false + Thread.new { + Rack::Handler::Mongrel.run(lambda {}, {:Port => 9211}) { |server| + server.should.be.kind_of Mongrel::HttpServer + block_ran = true + } + } + sleep 1 + block_ran.should.be true + end + + specify "should provide a .run that maps a hash" do + block_ran = false + Thread.new { + map = {'/'=>lambda{},'/foo'=>lambda{}} + Rack::Handler::Mongrel.run(map, :map => true, :Port => 9221) { |server| + server.should.be.kind_of Mongrel::HttpServer + server.classifier.uris.size.should.be 2 + server.classifier.uris.should.not.include '/arf' + server.classifier.uris.should.include '/' + server.classifier.uris.should.include '/foo' + block_ran = true + } + } + sleep 1 + block_ran.should.be true + end + + specify "should provide a .run that maps a urlmap" do + block_ran = false + Thread.new { + map = Rack::URLMap.new({'/'=>lambda{},'/bar'=>lambda{}}) + Rack::Handler::Mongrel.run(map, {:map => true, :Port => 9231}) { |server| + server.should.be.kind_of Mongrel::HttpServer + server.classifier.uris.size.should.be 2 + server.classifier.uris.should.not.include '/arf' + server.classifier.uris.should.include '/' + server.classifier.uris.should.include '/bar' + block_ran = true + } + } + sleep 1 + block_ran.should.be true + end + + specify "should provide a .run that maps a urlmap restricting by host" do + block_ran = false + Thread.new { + map = Rack::URLMap.new({ + '/' => lambda{}, + '/foo' => lambda{}, + '/bar' => lambda{}, + 'http://localhost/' => lambda{}, + 'http://localhost/bar' => lambda{}, + 'http://falsehost/arf' => lambda{}, + 'http://falsehost/qux' => lambda{} + }) + opt = {:map => true, :Port => 9241, :Host => 'localhost'} + Rack::Handler::Mongrel.run(map, opt) { |server| + server.should.be.kind_of Mongrel::HttpServer + server.classifier.uris.should.include '/' + server.classifier.handler_map['/'].size.should.be 2 + server.classifier.uris.should.include '/foo' + server.classifier.handler_map['/foo'].size.should.be 1 + server.classifier.uris.should.include '/bar' + server.classifier.handler_map['/bar'].size.should.be 2 + server.classifier.uris.should.not.include '/qux' + server.classifier.uris.should.not.include '/arf' + server.classifier.uris.size.should.be 3 + block_ran = true + } + } + sleep 1 + block_ran.should.be true + end + + specify "should stream #each part of the response" do + body = '' + begin + Timeout.timeout(1) do + Net::HTTP.start(@host, @port) do |http| + get = Net::HTTP::Get.new('/stream') + http.request(get) do |response| + response.read_body { |part| body << part } + end + end + end + rescue Timeout::Error + end + body.should.not.be.empty + end + + teardown do + @acc.raise Mongrel::StopServer + end +end + +rescue LoadError + $stderr.puts "Skipping Rack::Handler::Mongrel tests (Mongrel is required). `gem install mongrel` and try again." +end diff --git a/presidents/vendor/gems/rack-1.0.0/test/spec_rack_recursive.rb b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_recursive.rb new file mode 100644 index 0000000..afc1a0d --- /dev/null +++ b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_recursive.rb @@ -0,0 +1,77 @@ +require 'test/spec' + +require 'rack/recursive' +require 'rack/urlmap' +require 'rack/response' +require 'rack/mock' + +context "Rack::Recursive" do + setup do + + @app1 = lambda { |env| + res = Rack::Response.new + res["X-Path-Info"] = env["PATH_INFO"] + res["X-Query-String"] = env["QUERY_STRING"] + res.finish do |res| + res.write "App1" + end + } + + @app2 = lambda { |env| + Rack::Response.new.finish do |res| + res.write "App2" + _, _, body = env['rack.recursive.include'].call(env, "/app1") + body.each { |b| + res.write b + } + end + } + + @app3 = lambda { |env| + raise Rack::ForwardRequest.new("/app1") + } + + @app4 = lambda { |env| + raise Rack::ForwardRequest.new("http://example.org/app1/quux?meh") + } + + end + + specify "should allow for subrequests" do + res = Rack::MockRequest.new(Rack::Recursive.new( + Rack::URLMap.new("/app1" => @app1, + "/app2" => @app2))). + get("/app2") + + res.should.be.ok + res.body.should.equal "App2App1" + end + + specify "should raise error on requests not below the app" do + app = Rack::URLMap.new("/app1" => @app1, + "/app" => Rack::Recursive.new( + Rack::URLMap.new("/1" => @app1, + "/2" => @app2))) + + lambda { + Rack::MockRequest.new(app).get("/app/2") + }.should.raise(ArgumentError). + message.should =~ /can only include below/ + end + + specify "should support forwarding" do + app = Rack::Recursive.new(Rack::URLMap.new("/app1" => @app1, + "/app3" => @app3, + "/app4" => @app4)) + + res = Rack::MockRequest.new(app).get("/app3") + res.should.be.ok + res.body.should.equal "App1" + + res = Rack::MockRequest.new(app).get("/app4") + res.should.be.ok + res.body.should.equal "App1" + res["X-Path-Info"].should.equal "/quux" + res["X-Query-String"].should.equal "meh" + end +end diff --git a/presidents/vendor/gems/rack-1.0.0/test/spec_rack_request.rb b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_request.rb new file mode 100644 index 0000000..dbfd5b1 --- /dev/null +++ b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_request.rb @@ -0,0 +1,515 @@ +require 'test/spec' +require 'stringio' + +require 'rack/request' +require 'rack/mock' + +context "Rack::Request" do + specify "wraps the rack variables" do + req = Rack::Request.new(Rack::MockRequest.env_for("http://example.com:8080/")) + + req.body.should.respond_to? :gets + req.scheme.should.equal "http" + req.request_method.should.equal "GET" + + req.should.be.get + req.should.not.be.post + req.should.not.be.put + req.should.not.be.delete + req.should.not.be.head + + req.script_name.should.equal "" + req.path_info.should.equal "/" + req.query_string.should.equal "" + + req.host.should.equal "example.com" + req.port.should.equal 8080 + + req.content_length.should.equal "0" + req.content_type.should.be.nil + end + + specify "can figure out the correct host" do + req = Rack::Request.new \ + Rack::MockRequest.env_for("/", "HTTP_HOST" => "www2.example.org") + req.host.should.equal "www2.example.org" + + req = Rack::Request.new \ + Rack::MockRequest.env_for("/", "SERVER_NAME" => "example.org:9292") + req.host.should.equal "example.org" + end + + specify "can parse the query string" do + req = Rack::Request.new(Rack::MockRequest.env_for("/?foo=bar&quux=bla")) + req.query_string.should.equal "foo=bar&quux=bla" + req.GET.should.equal "foo" => "bar", "quux" => "bla" + req.POST.should.be.empty + req.params.should.equal "foo" => "bar", "quux" => "bla" + end + + specify "can parse POST data" do + req = Rack::Request.new \ + Rack::MockRequest.env_for("/?foo=quux", :input => "foo=bar&quux=bla") + req.content_type.should.be.nil + req.media_type.should.be.nil + req.query_string.should.equal "foo=quux" + req.GET.should.equal "foo" => "quux" + req.POST.should.equal "foo" => "bar", "quux" => "bla" + req.params.should.equal "foo" => "bar", "quux" => "bla" + end + + specify "can parse POST data with explicit content type" do + req = Rack::Request.new \ + Rack::MockRequest.env_for("/", + "CONTENT_TYPE" => 'application/x-www-form-urlencoded;foo=bar', + :input => "foo=bar&quux=bla") + req.content_type.should.equal 'application/x-www-form-urlencoded;foo=bar' + req.media_type.should.equal 'application/x-www-form-urlencoded' + req.media_type_params['foo'].should.equal 'bar' + req.POST.should.equal "foo" => "bar", "quux" => "bla" + req.params.should.equal "foo" => "bar", "quux" => "bla" + end + + specify "does not parse POST data when media type is not form-data" do + req = Rack::Request.new \ + Rack::MockRequest.env_for("/?foo=quux", + "CONTENT_TYPE" => 'text/plain;charset=utf-8', + :input => "foo=bar&quux=bla") + req.content_type.should.equal 'text/plain;charset=utf-8' + req.media_type.should.equal 'text/plain' + req.media_type_params['charset'].should.equal 'utf-8' + req.POST.should.be.empty + req.params.should.equal "foo" => "quux" + req.body.read.should.equal "foo=bar&quux=bla" + end + + specify "rewinds input after parsing POST data" do + input = StringIO.new("foo=bar&quux=bla") + req = Rack::Request.new \ + Rack::MockRequest.env_for("/", + "CONTENT_TYPE" => 'application/x-www-form-urlencoded;foo=bar', + :input => input) + req.params.should.equal "foo" => "bar", "quux" => "bla" + input.read.should.equal "foo=bar&quux=bla" + end + + specify "cleans up Safari's ajax POST body" do + req = Rack::Request.new \ + Rack::MockRequest.env_for("/", :input => "foo=bar&quux=bla\0") + req.POST.should.equal "foo" => "bar", "quux" => "bla" + end + + specify "can get value by key from params with #[]" do + req = Rack::Request.new \ + Rack::MockRequest.env_for("?foo=quux") + req['foo'].should.equal 'quux' + req[:foo].should.equal 'quux' + end + + specify "can set value to key on params with #[]=" do + req = Rack::Request.new \ + Rack::MockRequest.env_for("?foo=duh") + req['foo'].should.equal 'duh' + req[:foo].should.equal 'duh' + req.params.should.equal 'foo' => 'duh' + + req['foo'] = 'bar' + req.params.should.equal 'foo' => 'bar' + req['foo'].should.equal 'bar' + req[:foo].should.equal 'bar' + + req[:foo] = 'jaz' + req.params.should.equal 'foo' => 'jaz' + req['foo'].should.equal 'jaz' + req[:foo].should.equal 'jaz' + end + + specify "values_at answers values by keys in order given" do + req = Rack::Request.new \ + Rack::MockRequest.env_for("?foo=baz&wun=der&bar=ful") + req.values_at('foo').should.equal ['baz'] + req.values_at('foo', 'wun').should.equal ['baz', 'der'] + req.values_at('bar', 'foo', 'wun').should.equal ['ful', 'baz', 'der'] + end + + specify "referrer should be extracted correct" do + req = Rack::Request.new \ + Rack::MockRequest.env_for("/", "HTTP_REFERER" => "/some/path") + req.referer.should.equal "/some/path" + + req = Rack::Request.new \ + Rack::MockRequest.env_for("/") + req.referer.should.equal "/" + end + + specify "can cache, but invalidates the cache" do + req = Rack::Request.new \ + Rack::MockRequest.env_for("/?foo=quux", :input => "foo=bar&quux=bla") + req.GET.should.equal "foo" => "quux" + req.GET.should.equal "foo" => "quux" + req.env["QUERY_STRING"] = "bla=foo" + req.GET.should.equal "bla" => "foo" + req.GET.should.equal "bla" => "foo" + + req.POST.should.equal "foo" => "bar", "quux" => "bla" + req.POST.should.equal "foo" => "bar", "quux" => "bla" + req.env["rack.input"] = StringIO.new("foo=bla&quux=bar") + req.POST.should.equal "foo" => "bla", "quux" => "bar" + req.POST.should.equal "foo" => "bla", "quux" => "bar" + end + + specify "can figure out if called via XHR" do + req = Rack::Request.new(Rack::MockRequest.env_for("")) + req.should.not.be.xhr + + req = Rack::Request.new \ + Rack::MockRequest.env_for("", "HTTP_X_REQUESTED_WITH" => "XMLHttpRequest") + req.should.be.xhr + end + + specify "can parse cookies" do + req = Rack::Request.new \ + Rack::MockRequest.env_for("", "HTTP_COOKIE" => "foo=bar;quux=h&m") + req.cookies.should.equal "foo" => "bar", "quux" => "h&m" + req.cookies.should.equal "foo" => "bar", "quux" => "h&m" + req.env.delete("HTTP_COOKIE") + req.cookies.should.equal({}) + end + + specify "parses cookies according to RFC 2109" do + req = Rack::Request.new \ + Rack::MockRequest.env_for('', 'HTTP_COOKIE' => 'foo=bar;foo=car') + req.cookies.should.equal 'foo' => 'bar' + end + + specify "provides setters" do + req = Rack::Request.new(e=Rack::MockRequest.env_for("")) + req.script_name.should.equal "" + req.script_name = "/foo" + req.script_name.should.equal "/foo" + e["SCRIPT_NAME"].should.equal "/foo" + + req.path_info.should.equal "/" + req.path_info = "/foo" + req.path_info.should.equal "/foo" + e["PATH_INFO"].should.equal "/foo" + end + + specify "provides the original env" do + req = Rack::Request.new(e=Rack::MockRequest.env_for("")) + req.env.should.be e + end + + specify "can restore the URL" do + Rack::Request.new(Rack::MockRequest.env_for("")).url. + should.equal "http://example.org/" + Rack::Request.new(Rack::MockRequest.env_for("", "SCRIPT_NAME" => "/foo")).url. + should.equal "http://example.org/foo/" + Rack::Request.new(Rack::MockRequest.env_for("/foo")).url. + should.equal "http://example.org/foo" + Rack::Request.new(Rack::MockRequest.env_for("?foo")).url. + should.equal "http://example.org/?foo" + Rack::Request.new(Rack::MockRequest.env_for("http://example.org:8080/")).url. + should.equal "http://example.org:8080/" + Rack::Request.new(Rack::MockRequest.env_for("https://example.org/")).url. + should.equal "https://example.org/" + + Rack::Request.new(Rack::MockRequest.env_for("https://example.com:8080/foo?foo")).url. + should.equal "https://example.com:8080/foo?foo" + end + + specify "can restore the full path" do + Rack::Request.new(Rack::MockRequest.env_for("")).fullpath. + should.equal "/" + Rack::Request.new(Rack::MockRequest.env_for("", "SCRIPT_NAME" => "/foo")).fullpath. + should.equal "/foo/" + Rack::Request.new(Rack::MockRequest.env_for("/foo")).fullpath. + should.equal "/foo" + Rack::Request.new(Rack::MockRequest.env_for("?foo")).fullpath. + should.equal "/?foo" + Rack::Request.new(Rack::MockRequest.env_for("http://example.org:8080/")).fullpath. + should.equal "/" + Rack::Request.new(Rack::MockRequest.env_for("https://example.org/")).fullpath. + should.equal "/" + + Rack::Request.new(Rack::MockRequest.env_for("https://example.com:8080/foo?foo")).fullpath. + should.equal "/foo?foo" + end + + specify "can handle multiple media type parameters" do + req = Rack::Request.new \ + Rack::MockRequest.env_for("/", + "CONTENT_TYPE" => 'text/plain; foo=BAR,baz=bizzle dizzle;BLING=bam') + req.should.not.be.form_data + req.media_type_params.should.include 'foo' + req.media_type_params['foo'].should.equal 'BAR' + req.media_type_params.should.include 'baz' + req.media_type_params['baz'].should.equal 'bizzle dizzle' + req.media_type_params.should.not.include 'BLING' + req.media_type_params.should.include 'bling' + req.media_type_params['bling'].should.equal 'bam' + end + + specify "can parse multipart form data" do + # Adapted from RFC 1867. + input = < "multipart/form-data, boundary=AaB03x", + "CONTENT_LENGTH" => input.size, + :input => input) + + req.POST.should.include "fileupload" + req.POST.should.include "reply" + + req.should.be.form_data + req.content_length.should.equal input.size + req.media_type.should.equal 'multipart/form-data' + req.media_type_params.should.include 'boundary' + req.media_type_params['boundary'].should.equal 'AaB03x' + + req.POST["reply"].should.equal "yes" + + f = req.POST["fileupload"] + f.should.be.kind_of Hash + f[:type].should.equal "image/jpeg" + f[:filename].should.equal "dj.jpg" + f.should.include :tempfile + f[:tempfile].size.should.equal 76 + end + + specify "can parse big multipart form data" do + input = < "multipart/form-data, boundary=AaB03x", + "CONTENT_LENGTH" => input.size, + :input => input) + + req.POST["huge"][:tempfile].size.should.equal 32768 + req.POST["mean"][:tempfile].size.should.equal 10 + req.POST["mean"][:tempfile].read.should.equal "--AaB03xha" + end + + specify "can detect invalid multipart form data" do + input = < "multipart/form-data, boundary=AaB03x", + "CONTENT_LENGTH" => input.size, + :input => input) + + lambda { req.POST }.should.raise(EOFError) + + input = < "multipart/form-data, boundary=AaB03x", + "CONTENT_LENGTH" => input.size, + :input => input) + + lambda { req.POST }.should.raise(EOFError) + + input = < "multipart/form-data, boundary=AaB03x", + "CONTENT_LENGTH" => input.size, + :input => input) + + lambda { req.POST }.should.raise(EOFError) + end + + specify "shouldn't try to interpret binary as utf8" do + begin + original_kcode = $KCODE + $KCODE='UTF8' + + input = < "multipart/form-data, boundary=AaB03x", + "CONTENT_LENGTH" => input.size, + :input => input) + + lambda{req.POST}.should.not.raise(EOFError) + req.POST["fileupload"][:tempfile].size.should.equal 4 + ensure + $KCODE = original_kcode + end + end + + + specify "should work around buggy 1.8.* Tempfile equality" do + input = < "multipart/form-data, boundary=AaB03x", + "CONTENT_LENGTH" => input.size, + :input => rack_input) + + lambda {req.POST}.should.not.raise + lambda {req.POST}.should.blaming("input re-processed!").not.raise + end + + specify "does conform to the Rack spec" do + app = lambda { |env| + content = Rack::Request.new(env).POST["file"].inspect + size = content.respond_to?(:bytesize) ? content.bytesize : content.size + [200, {"Content-Type" => "text/html", "Content-Length" => size.to_s}, [content]] + } + + input = < "multipart/form-data, boundary=AaB03x", + "CONTENT_LENGTH" => input.size.to_s, "rack.input" => StringIO.new(input) + + res.should.be.ok + end + + specify "should parse Accept-Encoding correctly" do + parser = lambda do |x| + Rack::Request.new(Rack::MockRequest.env_for("", "HTTP_ACCEPT_ENCODING" => x)).accept_encoding + end + + parser.call(nil).should.equal([]) + + parser.call("compress, gzip").should.equal([["compress", 1.0], ["gzip", 1.0]]) + parser.call("").should.equal([]) + parser.call("*").should.equal([["*", 1.0]]) + parser.call("compress;q=0.5, gzip;q=1.0").should.equal([["compress", 0.5], ["gzip", 1.0]]) + parser.call("gzip;q=1.0, identity; q=0.5, *;q=0").should.equal([["gzip", 1.0], ["identity", 0.5], ["*", 0] ]) + + lambda { parser.call("gzip ; q=1.0") }.should.raise(RuntimeError) + end + + specify 'should provide ip information' do + app = lambda { |env| + request = Rack::Request.new(env) + response = Rack::Response.new + response.write request.ip + response.finish + } + + mock = Rack::MockRequest.new(Rack::Lint.new(app)) + res = mock.get '/', 'REMOTE_ADDR' => '123.123.123.123' + res.body.should.equal '123.123.123.123' + + res = mock.get '/', + 'REMOTE_ADDR' => '123.123.123.123', + 'HTTP_X_FORWARDED_FOR' => '234.234.234.234' + + res.body.should.equal '234.234.234.234' + + res = mock.get '/', + 'REMOTE_ADDR' => '123.123.123.123', + 'HTTP_X_FORWARDED_FOR' => '234.234.234.234,212.212.212.212' + + res.body.should.equal '212.212.212.212' + end + + specify "memoizes itself to reduce the cost of repetitive initialization" do + env = Rack::MockRequest.env_for("http://example.com:8080/") + env['rack.request'].should.be.nil + + req1 = Rack::Request.new(env) + env['rack.request'].should.not.be.nil + req1.should.equal env['rack.request'] + + rack_request_object_id = env['rack.request'].object_id + + req2 = Rack::Request.new(env) + env['rack.request'].should.not.be.nil + rack_request_object_id.should.be.equal env['rack.request'].object_id + req2.should.equal env['rack.request'] + end + + class MyRequest < Rack::Request + def params + {:foo => "bar"} + end + end + + specify "should allow subclass request to be instantiated after parent request" do + env = Rack::MockRequest.env_for("/?foo=bar") + + req1 = Rack::Request.new(env) + req1.GET.should.equal "foo" => "bar" + req1.params.should.equal "foo" => "bar" + + req2 = MyRequest.new(env) + req2.GET.should.equal "foo" => "bar" + req2.params.should.equal :foo => "bar" + end + + specify "should allow parent request to be instantiated after subclass request" do + env = Rack::MockRequest.env_for("/?foo=bar") + + req1 = MyRequest.new(env) + req1.GET.should.equal "foo" => "bar" + req1.params.should.equal :foo => "bar" + + req2 = Rack::Request.new(env) + req2.GET.should.equal "foo" => "bar" + req2.params.should.equal "foo" => "bar" + end +end diff --git a/presidents/vendor/gems/rack-1.0.0/test/spec_rack_response.rb b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_response.rb new file mode 100644 index 0000000..eb59b5c --- /dev/null +++ b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_response.rb @@ -0,0 +1,218 @@ +require 'test/spec' +require 'set' + +require 'rack/response' + +context "Rack::Response" do + specify "has sensible default values" do + response = Rack::Response.new + status, header, body = response.finish + status.should.equal 200 + header.should.equal "Content-Type" => "text/html" + body.each { |part| + part.should.equal "" + } + + response = Rack::Response.new + status, header, body = *response + status.should.equal 200 + header.should.equal "Content-Type" => "text/html" + body.each { |part| + part.should.equal "" + } + end + + specify "can be written to" do + response = Rack::Response.new + + status, header, body = response.finish do + response.write "foo" + response.write "bar" + response.write "baz" + end + + parts = [] + body.each { |part| parts << part } + + parts.should.equal ["foo", "bar", "baz"] + end + + specify "can set and read headers" do + response = Rack::Response.new + response["Content-Type"].should.equal "text/html" + response["Content-Type"] = "text/plain" + response["Content-Type"].should.equal "text/plain" + end + + specify "can set cookies" do + response = Rack::Response.new + + response.set_cookie "foo", "bar" + response["Set-Cookie"].should.equal "foo=bar" + response.set_cookie "foo2", "bar2" + response["Set-Cookie"].should.equal ["foo=bar", "foo2=bar2"] + response.set_cookie "foo3", "bar3" + response["Set-Cookie"].should.equal ["foo=bar", "foo2=bar2", "foo3=bar3"] + end + + specify "formats the Cookie expiration date accordingly to RFC 2109" do + response = Rack::Response.new + + response.set_cookie "foo", {:value => "bar", :expires => Time.now+10} + response["Set-Cookie"].should.match( + /expires=..., \d\d-...-\d\d\d\d \d\d:\d\d:\d\d .../) + end + + specify "can set secure cookies" do + response = Rack::Response.new + response.set_cookie "foo", {:value => "bar", :secure => true} + response["Set-Cookie"].should.equal "foo=bar; secure" + end + + specify "can set http only cookies" do + response = Rack::Response.new + response.set_cookie "foo", {:value => "bar", :httponly => true} + response["Set-Cookie"].should.equal "foo=bar; HttpOnly" + end + + specify "can delete cookies" do + response = Rack::Response.new + response.set_cookie "foo", "bar" + response.set_cookie "foo2", "bar2" + response.delete_cookie "foo" + response["Set-Cookie"].should.equal ["foo2=bar2", + "foo=; expires=Thu, 01-Jan-1970 00:00:00 GMT"] + end + + specify "can do redirects" do + response = Rack::Response.new + response.redirect "/foo" + status, header, body = response.finish + + status.should.equal 302 + header["Location"].should.equal "/foo" + + response = Rack::Response.new + response.redirect "/foo", 307 + status, header, body = response.finish + + status.should.equal 307 + end + + specify "has a useful constructor" do + r = Rack::Response.new("foo") + status, header, body = r.finish + str = ""; body.each { |part| str << part } + str.should.equal "foo" + + r = Rack::Response.new(["foo", "bar"]) + status, header, body = r.finish + str = ""; body.each { |part| str << part } + str.should.equal "foobar" + + r = Rack::Response.new(["foo", "bar"].to_set) + r.write "foo" + status, header, body = r.finish + str = ""; body.each { |part| str << part } + str.should.equal "foobarfoo" + + r = Rack::Response.new([], 500) + r.status.should.equal 500 + end + + specify "has a constructor that can take a block" do + r = Rack::Response.new { |res| + res.status = 404 + res.write "foo" + } + status, header, body = r.finish + str = ""; body.each { |part| str << part } + str.should.equal "foo" + status.should.equal 404 + end + + specify "doesn't return invalid responses" do + r = Rack::Response.new(["foo", "bar"], 204) + status, header, body = r.finish + str = ""; body.each { |part| str << part } + str.should.be.empty + header["Content-Type"].should.equal nil + + lambda { + Rack::Response.new(Object.new) + }.should.raise(TypeError). + message.should =~ /stringable or iterable required/ + end + + specify "knows if it's empty" do + r = Rack::Response.new + r.should.be.empty + r.write "foo" + r.should.not.be.empty + + r = Rack::Response.new + r.should.be.empty + r.finish + r.should.be.empty + + r = Rack::Response.new + r.should.be.empty + r.finish { } + r.should.not.be.empty + end + + specify "should provide access to the HTTP status" do + res = Rack::Response.new + res.status = 200 + res.should.be.successful + res.should.be.ok + + res.status = 404 + res.should.not.be.successful + res.should.be.client_error + res.should.be.not_found + + res.status = 501 + res.should.not.be.successful + res.should.be.server_error + + res.status = 307 + res.should.be.redirect + end + + specify "should provide access to the HTTP headers" do + res = Rack::Response.new + res["Content-Type"] = "text/yaml" + + res.should.include "Content-Type" + res.headers["Content-Type"].should.equal "text/yaml" + res["Content-Type"].should.equal "text/yaml" + res.content_type.should.equal "text/yaml" + res.content_length.should.be.nil + res.location.should.be.nil + end + + specify "does not add or change Content-Length when #finish()ing" do + res = Rack::Response.new + res.status = 200 + res.finish + res.headers["Content-Length"].should.be.nil + + res = Rack::Response.new + res.status = 200 + res.headers["Content-Length"] = "10" + res.finish + res.headers["Content-Length"].should.equal "10" + end + + specify "updates Content-Length when body appended to using #write" do + res = Rack::Response.new + res.status = 200 + res.headers["Content-Length"].should.be.nil + res.write "Hi" + res.headers["Content-Length"].should.equal "2" + res.write " there" + res.headers["Content-Length"].should.equal "8" + end + +end diff --git a/presidents/vendor/gems/rack-1.0.0/test/spec_rack_rewindable_input.rb b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_rewindable_input.rb new file mode 100644 index 0000000..78bebfc --- /dev/null +++ b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_rewindable_input.rb @@ -0,0 +1,118 @@ +require 'test/spec' +require 'stringio' +require 'rack/rewindable_input' + +shared_context "a rewindable IO object" do + setup do + @rio = Rack::RewindableInput.new(@io) + end + + teardown do + @rio.close + end + + specify "should be able to handle to read()" do + @rio.read.should.equal "hello world" + end + + specify "should be able to handle to read(nil)" do + @rio.read(nil).should.equal "hello world" + end + + specify "should be able to handle to read(length)" do + @rio.read(1).should.equal "h" + end + + specify "should be able to handle to read(length, buffer)" do + buffer = "" + result = @rio.read(1, buffer) + result.should.equal "h" + result.object_id.should.equal buffer.object_id + end + + specify "should be able to handle to read(nil, buffer)" do + buffer = "" + result = @rio.read(nil, buffer) + result.should.equal "hello world" + result.object_id.should.equal buffer.object_id + end + + specify "should rewind to the beginning when #rewind is called" do + @rio.read(1) + @rio.rewind + @rio.read.should.equal "hello world" + end + + specify "should be able to handle gets" do + @rio.gets.should == "hello world" + end + + specify "should be able to handle each" do + array = [] + @rio.each do |data| + array << data + end + array.should.equal(["hello world"]) + end + + specify "should not buffer into a Tempfile if no data has been read yet" do + @rio.instance_variable_get(:@rewindable_io).should.be.nil + end + + specify "should buffer into a Tempfile when data has been consumed for the first time" do + @rio.read(1) + tempfile = @rio.instance_variable_get(:@rewindable_io) + tempfile.should.not.be.nil + @rio.read(1) + tempfile2 = @rio.instance_variable_get(:@rewindable_io) + tempfile2.should.equal tempfile + end + + specify "should close the underlying tempfile upon calling #close" do + @rio.read(1) + tempfile = @rio.instance_variable_get(:@rewindable_io) + @rio.close + tempfile.should.be.closed + end + + specify "should be possibel to call #close when no data has been buffered yet" do + @rio.close + end + + specify "should be possible to call #close multiple times" do + @rio.close + @rio.close + end +end + +context "Rack::RewindableInput" do + context "given an IO object that is already rewindable" do + setup do + @io = StringIO.new("hello world") + end + + it_should_behave_like "a rewindable IO object" + end + + context "given an IO object that is not rewindable" do + setup do + @io = StringIO.new("hello world") + @io.instance_eval do + undef :rewind + end + end + + it_should_behave_like "a rewindable IO object" + end + + context "given an IO object whose rewind method raises Errno::ESPIPE" do + setup do + @io = StringIO.new("hello world") + def @io.rewind + raise Errno::ESPIPE, "You can't rewind this!" + end + end + + it_should_behave_like "a rewindable IO object" + end +end diff --git a/presidents/vendor/gems/rack-1.0.0/test/spec_rack_session_cookie.rb b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_session_cookie.rb new file mode 100644 index 0000000..3be88b4 --- /dev/null +++ b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_session_cookie.rb @@ -0,0 +1,82 @@ +require 'test/spec' + +require 'rack/session/cookie' +require 'rack/mock' +require 'rack/response' + +context "Rack::Session::Cookie" do + incrementor = lambda { |env| + env["rack.session"]["counter"] ||= 0 + env["rack.session"]["counter"] += 1 + Rack::Response.new(env["rack.session"].inspect).to_a + } + + specify "creates a new cookie" do + res = Rack::MockRequest.new(Rack::Session::Cookie.new(incrementor)).get("/") + res["Set-Cookie"].should.match("rack.session=") + res.body.should.equal '{"counter"=>1}' + end + + specify "loads from a cookie" do + res = Rack::MockRequest.new(Rack::Session::Cookie.new(incrementor)).get("/") + cookie = res["Set-Cookie"] + res = Rack::MockRequest.new(Rack::Session::Cookie.new(incrementor)). + get("/", "HTTP_COOKIE" => cookie) + res.body.should.equal '{"counter"=>2}' + cookie = res["Set-Cookie"] + res = Rack::MockRequest.new(Rack::Session::Cookie.new(incrementor)). + get("/", "HTTP_COOKIE" => cookie) + res.body.should.equal '{"counter"=>3}' + end + + specify "survives broken cookies" do + res = Rack::MockRequest.new(Rack::Session::Cookie.new(incrementor)). + get("/", "HTTP_COOKIE" => "rack.session=blarghfasel") + res.body.should.equal '{"counter"=>1}' + end + + bigcookie = lambda { |env| + env["rack.session"]["cookie"] = "big" * 3000 + Rack::Response.new(env["rack.session"].inspect).to_a + } + + specify "barks on too big cookies" do + lambda { + Rack::MockRequest.new(Rack::Session::Cookie.new(bigcookie)). + get("/", :fatal => true) + }.should.raise(Rack::MockRequest::FatalWarning) + end + + specify "creates a new cookie with integrity hash" do + res = Rack::MockRequest.new(Rack::Session::Cookie.new(incrementor, :secret => 'test')).get("/") + if RUBY_VERSION < "1.9" + res["Set-Cookie"].should.match("rack.session=BAh7BiIMY291bnRlcmkG%0A--1439b4d37b9d4b04c603848382f712d6fcd31088") + else + res["Set-Cookie"].should.match("rack.session=BAh7BkkiDGNvdW50ZXIGOg1lbmNvZGluZyINVVMtQVNDSUlpBg%3D%3D%0A--d7a6637b94d2728194a96c18484e1f7ed9074a83") + end + end + + specify "loads from a cookie wih integrity hash" do + res = Rack::MockRequest.new(Rack::Session::Cookie.new(incrementor, :secret => 'test')).get("/") + cookie = res["Set-Cookie"] + res = Rack::MockRequest.new(Rack::Session::Cookie.new(incrementor, :secret => 'test')). + get("/", "HTTP_COOKIE" => cookie) + res.body.should.equal '{"counter"=>2}' + cookie = res["Set-Cookie"] + res = Rack::MockRequest.new(Rack::Session::Cookie.new(incrementor, :secret => 'test')). + get("/", "HTTP_COOKIE" => cookie) + res.body.should.equal '{"counter"=>3}' + end + + specify "ignores tampered with session cookies" do + app = Rack::Session::Cookie.new(incrementor, :secret => 'test') + response1 = Rack::MockRequest.new(app).get("/") + _, digest = response1["Set-Cookie"].split("--") + tampered_with_cookie = "hackerman-was-here" + "--" + digest + response2 = Rack::MockRequest.new(app).get("/", "HTTP_COOKIE" => + tampered_with_cookie) + + # The tampered-with cookie is ignored, so we get back an identical Set-Cookie + response2["Set-Cookie"].should.equal(response1["Set-Cookie"]) + end +end diff --git a/presidents/vendor/gems/rack-1.0.0/test/spec_rack_session_memcache.rb b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_session_memcache.rb new file mode 100644 index 0000000..37c3d89 --- /dev/null +++ b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_session_memcache.rb @@ -0,0 +1,240 @@ +require 'test/spec' + +begin + require 'rack/session/memcache' + require 'rack/mock' + require 'rack/response' + require 'thread' + + context "Rack::Session::Memcache" do + session_key = Rack::Session::Memcache::DEFAULT_OPTIONS[:key] + session_match = /#{session_key}=[0-9a-fA-F]+;/ + incrementor = lambda do |env| + env["rack.session"]["counter"] ||= 0 + env["rack.session"]["counter"] += 1 + Rack::Response.new(env["rack.session"].inspect).to_a + end + drop_session = proc do |env| + env['rack.session.options'][:drop] = true + incrementor.call(env) + end + renew_session = proc do |env| + env['rack.session.options'][:renew] = true + incrementor.call(env) + end + defer_session = proc do |env| + env['rack.session.options'][:defer] = true + incrementor.call(env) + end + + specify "MemCache can connect to existing server" do + test_pool = MemCache.new :namespace => 'test:rack:session' + end + + specify "faults on no connection" do + lambda do + Rack::Session::Memcache.new(incrementor, :memcache_server => '') + end.should.raise + end + + specify "creates a new cookie" do + pool = Rack::Session::Memcache.new(incrementor) + res = Rack::MockRequest.new(pool).get("/") + res["Set-Cookie"].should.match("#{session_key}=") + res.body.should.equal '{"counter"=>1}' + end + + specify "determines session from a cookie" do + pool = Rack::Session::Memcache.new(incrementor) + req = Rack::MockRequest.new(pool) + res = req.get("/") + cookie = res["Set-Cookie"] + req.get("/", "HTTP_COOKIE" => cookie). + body.should.equal '{"counter"=>2}' + req.get("/", "HTTP_COOKIE" => cookie). + body.should.equal '{"counter"=>3}' + end + + specify "survives nonexistant cookies" do + bad_cookie = "rack.session=blarghfasel" + pool = Rack::Session::Memcache.new(incrementor) + res = Rack::MockRequest.new(pool). + get("/", "HTTP_COOKIE" => bad_cookie) + res.body.should.equal '{"counter"=>1}' + cookie = res["Set-Cookie"][session_match] + cookie.should.not.match(/#{bad_cookie}/) + end + + specify "maintains freshness" do + pool = Rack::Session::Memcache.new(incrementor, :expire_after => 3) + res = Rack::MockRequest.new(pool).get('/') + res.body.should.include '"counter"=>1' + cookie = res["Set-Cookie"] + res = Rack::MockRequest.new(pool).get('/', "HTTP_COOKIE" => cookie) + res["Set-Cookie"].should.equal cookie + res.body.should.include '"counter"=>2' + puts 'Sleeping to expire session' if $DEBUG + sleep 4 + res = Rack::MockRequest.new(pool).get('/', "HTTP_COOKIE" => cookie) + res["Set-Cookie"].should.not.equal cookie + res.body.should.include '"counter"=>1' + end + + specify "deletes cookies with :drop option" do + pool = Rack::Session::Memcache.new(incrementor) + req = Rack::MockRequest.new(pool) + drop = Rack::Utils::Context.new(pool, drop_session) + dreq = Rack::MockRequest.new(drop) + + res0 = req.get("/") + session = (cookie = res0["Set-Cookie"])[session_match] + res0.body.should.equal '{"counter"=>1}' + + res1 = req.get("/", "HTTP_COOKIE" => cookie) + res1["Set-Cookie"][session_match].should.equal session + res1.body.should.equal '{"counter"=>2}' + + res2 = dreq.get("/", "HTTP_COOKIE" => cookie) + res2["Set-Cookie"].should.equal nil + res2.body.should.equal '{"counter"=>3}' + + res3 = req.get("/", "HTTP_COOKIE" => cookie) + res3["Set-Cookie"][session_match].should.not.equal session + res3.body.should.equal '{"counter"=>1}' + end + + specify "provides new session id with :renew option" do + pool = Rack::Session::Memcache.new(incrementor) + req = Rack::MockRequest.new(pool) + renew = Rack::Utils::Context.new(pool, renew_session) + rreq = Rack::MockRequest.new(renew) + + res0 = req.get("/") + session = (cookie = res0["Set-Cookie"])[session_match] + res0.body.should.equal '{"counter"=>1}' + + res1 = req.get("/", "HTTP_COOKIE" => cookie) + res1["Set-Cookie"][session_match].should.equal session + res1.body.should.equal '{"counter"=>2}' + + res2 = rreq.get("/", "HTTP_COOKIE" => cookie) + new_cookie = res2["Set-Cookie"] + new_session = new_cookie[session_match] + new_session.should.not.equal session + res2.body.should.equal '{"counter"=>3}' + + res3 = req.get("/", "HTTP_COOKIE" => new_cookie) + res3["Set-Cookie"][session_match].should.equal new_session + res3.body.should.equal '{"counter"=>4}' + end + + specify "omits cookie with :defer option" do + pool = Rack::Session::Memcache.new(incrementor) + req = Rack::MockRequest.new(pool) + defer = Rack::Utils::Context.new(pool, defer_session) + dreq = Rack::MockRequest.new(defer) + + res0 = req.get("/") + session = (cookie = res0["Set-Cookie"])[session_match] + res0.body.should.equal '{"counter"=>1}' + + res1 = req.get("/", "HTTP_COOKIE" => cookie) + res1["Set-Cookie"][session_match].should.equal session + res1.body.should.equal '{"counter"=>2}' + + res2 = dreq.get("/", "HTTP_COOKIE" => cookie) + res2["Set-Cookie"].should.equal nil + res2.body.should.equal '{"counter"=>3}' + + res3 = req.get("/", "HTTP_COOKIE" => cookie) + res3["Set-Cookie"][session_match].should.equal session + res3.body.should.equal '{"counter"=>4}' + end + + # anyone know how to do this better? + specify "multithread: should cleanly merge sessions" do + next unless $DEBUG + warn 'Running multithread test for Session::Memcache' + pool = Rack::Session::Memcache.new(incrementor) + req = Rack::MockRequest.new(pool) + + res = req.get('/') + res.body.should.equal '{"counter"=>1}' + cookie = res["Set-Cookie"] + sess_id = cookie[/#{pool.key}=([^,;]+)/,1] + + delta_incrementor = lambda do |env| + # emulate disconjoinment of threading + env['rack.session'] = env['rack.session'].dup + Thread.stop + env['rack.session'][(Time.now.usec*rand).to_i] = true + incrementor.call(env) + end + tses = Rack::Utils::Context.new pool, delta_incrementor + treq = Rack::MockRequest.new(tses) + tnum = rand(7).to_i+5 + r = Array.new(tnum) do + Thread.new(treq) do |run| + run.get('/', "HTTP_COOKIE" => cookie, 'rack.multithread' => true) + end + end.reverse.map{|t| t.run.join.value } + r.each do |res| + res['Set-Cookie'].should.equal cookie + res.body.should.include '"counter"=>2' + end + + session = pool.pool.get(sess_id) + session.size.should.be tnum+1 # counter + session['counter'].should.be 2 # meeeh + + tnum = rand(7).to_i+5 + r = Array.new(tnum) do |i| + delta_time = proc do |env| + env['rack.session'][i] = Time.now + Thread.stop + env['rack.session'] = env['rack.session'].dup + env['rack.session'][i] -= Time.now + incrementor.call(env) + end + app = Rack::Utils::Context.new pool, time_delta + req = Rack::MockRequest.new app + Thread.new(req) do |run| + run.get('/', "HTTP_COOKIE" => cookie, 'rack.multithread' => true) + end + end.reverse.map{|t| t.run.join.value } + r.each do |res| + res['Set-Cookie'].should.equal cookie + res.body.should.include '"counter"=>3' + end + + session = pool.pool.get(sess_id) + session.size.should.be tnum+1 + session['counter'].should.be 3 + + drop_counter = proc do |env| + env['rack.session'].delete 'counter' + env['rack.session']['foo'] = 'bar' + [200, {'Content-Type'=>'text/plain'}, env['rack.session'].inspect] + end + tses = Rack::Utils::Context.new pool, drop_counter + treq = Rack::MockRequest.new(tses) + tnum = rand(7).to_i+5 + r = Array.new(tnum) do + Thread.new(treq) do |run| + run.get('/', "HTTP_COOKIE" => cookie, 'rack.multithread' => true) + end + end.reverse.map{|t| t.run.join.value } + r.each do |res| + res['Set-Cookie'].should.equal cookie + res.body.should.include '"foo"=>"bar"' + end + + session = pool.pool.get(sess_id) + session.size.should.be r.size+1 + session['counter'].should.be.nil? + session['foo'].should.equal 'bar' + end + end +rescue LoadError + $stderr.puts "Skipping Rack::Session::Memcache tests (Memcache is required). `gem install memcache-client` and try again." +end diff --git a/presidents/vendor/gems/rack-1.0.0/test/spec_rack_session_pool.rb b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_session_pool.rb new file mode 100644 index 0000000..6be382e --- /dev/null +++ b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_session_pool.rb @@ -0,0 +1,172 @@ +require 'test/spec' + +require 'rack/session/pool' +require 'rack/mock' +require 'rack/response' +require 'thread' + +context "Rack::Session::Pool" do + session_key = Rack::Session::Pool::DEFAULT_OPTIONS[:key] + session_match = /#{session_key}=[0-9a-fA-F]+;/ + incrementor = lambda do |env| + env["rack.session"]["counter"] ||= 0 + env["rack.session"]["counter"] += 1 + Rack::Response.new(env["rack.session"].inspect).to_a + end + drop_session = proc do |env| + env['rack.session.options'][:drop] = true + incrementor.call(env) + end + renew_session = proc do |env| + env['rack.session.options'][:renew] = true + incrementor.call(env) + end + defer_session = proc do |env| + env['rack.session.options'][:defer] = true + incrementor.call(env) + end + + specify "creates a new cookie" do + pool = Rack::Session::Pool.new(incrementor) + res = Rack::MockRequest.new(pool).get("/") + res["Set-Cookie"].should.match session_match + res.body.should.equal '{"counter"=>1}' + end + + specify "determines session from a cookie" do + pool = Rack::Session::Pool.new(incrementor) + req = Rack::MockRequest.new(pool) + cookie = req.get("/")["Set-Cookie"] + req.get("/", "HTTP_COOKIE" => cookie). + body.should.equal '{"counter"=>2}' + req.get("/", "HTTP_COOKIE" => cookie). + body.should.equal '{"counter"=>3}' + end + + specify "survives nonexistant cookies" do + pool = Rack::Session::Pool.new(incrementor) + res = Rack::MockRequest.new(pool). + get("/", "HTTP_COOKIE" => "#{session_key}=blarghfasel") + res.body.should.equal '{"counter"=>1}' + end + + specify "deletes cookies with :drop option" do + pool = Rack::Session::Pool.new(incrementor) + req = Rack::MockRequest.new(pool) + drop = Rack::Utils::Context.new(pool, drop_session) + dreq = Rack::MockRequest.new(drop) + + res0 = req.get("/") + session = (cookie = res0["Set-Cookie"])[session_match] + res0.body.should.equal '{"counter"=>1}' + pool.pool.size.should.be 1 + + res1 = req.get("/", "HTTP_COOKIE" => cookie) + res1["Set-Cookie"][session_match].should.equal session + res1.body.should.equal '{"counter"=>2}' + pool.pool.size.should.be 1 + + res2 = dreq.get("/", "HTTP_COOKIE" => cookie) + res2["Set-Cookie"].should.equal nil + res2.body.should.equal '{"counter"=>3}' + pool.pool.size.should.be 0 + + res3 = req.get("/", "HTTP_COOKIE" => cookie) + res3["Set-Cookie"][session_match].should.not.equal session + res3.body.should.equal '{"counter"=>1}' + pool.pool.size.should.be 1 + end + + specify "provides new session id with :renew option" do + pool = Rack::Session::Pool.new(incrementor) + req = Rack::MockRequest.new(pool) + renew = Rack::Utils::Context.new(pool, renew_session) + rreq = Rack::MockRequest.new(renew) + + res0 = req.get("/") + session = (cookie = res0["Set-Cookie"])[session_match] + res0.body.should.equal '{"counter"=>1}' + pool.pool.size.should.be 1 + + res1 = req.get("/", "HTTP_COOKIE" => cookie) + res1["Set-Cookie"][session_match].should.equal session + res1.body.should.equal '{"counter"=>2}' + pool.pool.size.should.be 1 + + res2 = rreq.get("/", "HTTP_COOKIE" => cookie) + new_cookie = res2["Set-Cookie"] + new_session = new_cookie[session_match] + new_session.should.not.equal session + res2.body.should.equal '{"counter"=>3}' + pool.pool.size.should.be 1 + + res3 = req.get("/", "HTTP_COOKIE" => new_cookie) + res3["Set-Cookie"][session_match].should.equal new_session + res3.body.should.equal '{"counter"=>4}' + pool.pool.size.should.be 1 + end + + specify "omits cookie with :defer option" do + pool = Rack::Session::Pool.new(incrementor) + req = Rack::MockRequest.new(pool) + defer = Rack::Utils::Context.new(pool, defer_session) + dreq = Rack::MockRequest.new(defer) + + res0 = req.get("/") + session = (cookie = res0["Set-Cookie"])[session_match] + res0.body.should.equal '{"counter"=>1}' + pool.pool.size.should.be 1 + + res1 = req.get("/", "HTTP_COOKIE" => cookie) + res1["Set-Cookie"][session_match].should.equal session + res1.body.should.equal '{"counter"=>2}' + pool.pool.size.should.be 1 + + res2 = dreq.get("/", "HTTP_COOKIE" => cookie) + res2["Set-Cookie"].should.equal nil + res2.body.should.equal '{"counter"=>3}' + pool.pool.size.should.be 1 + + res3 = req.get("/", "HTTP_COOKIE" => cookie) + res3["Set-Cookie"][session_match].should.equal session + res3.body.should.equal '{"counter"=>4}' + pool.pool.size.should.be 1 + end + + # anyone know how to do this better? + specify "multithread: should merge sessions" do + next unless $DEBUG + warn 'Running multithread tests for Session::Pool' + pool = Rack::Session::Pool.new(incrementor) + req = Rack::MockRequest.new(pool) + + res = req.get('/') + res.body.should.equal '{"counter"=>1}' + cookie = res["Set-Cookie"] + sess_id = cookie[/#{pool.key}=([^,;]+)/,1] + + delta_incrementor = lambda do |env| + # emulate disconjoinment of threading + env['rack.session'] = env['rack.session'].dup + Thread.stop + env['rack.session'][(Time.now.usec*rand).to_i] = true + incrementor.call(env) + end + tses = Rack::Utils::Context.new pool, delta_incrementor + treq = Rack::MockRequest.new(tses) + tnum = rand(7).to_i+5 + r = Array.new(tnum) do + Thread.new(treq) do |run| + run.get('/', "HTTP_COOKIE" => cookie, 'rack.multithread' => true) + end + end.reverse.map{|t| t.run.join.value } + r.each do |res| + res['Set-Cookie'].should.equal cookie + res.body.should.include '"counter"=>2' + end + + session = pool.pool[sess_id] + session.size.should.be tnum+1 # counter + session['counter'].should.be 2 # meeeh + end +end diff --git a/presidents/vendor/gems/rack-1.0.0/test/spec_rack_showexceptions.rb b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_showexceptions.rb new file mode 100644 index 0000000..bdbc120 --- /dev/null +++ b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_showexceptions.rb @@ -0,0 +1,21 @@ +require 'test/spec' + +require 'rack/showexceptions' +require 'rack/mock' + +context "Rack::ShowExceptions" do + specify "catches exceptions" do + res = nil + req = Rack::MockRequest.new(Rack::ShowExceptions.new(lambda { |env| + raise RuntimeError + })) + lambda { + res = req.get("/") + }.should.not.raise + res.should.be.a.server_error + res.status.should.equal 500 + + res.should =~ /RuntimeError/ + res.should =~ /ShowExceptions/ + end +end diff --git a/presidents/vendor/gems/rack-1.0.0/test/spec_rack_showstatus.rb b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_showstatus.rb new file mode 100644 index 0000000..7870013 --- /dev/null +++ b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_showstatus.rb @@ -0,0 +1,72 @@ +require 'test/spec' + +require 'rack/showstatus' +require 'rack/mock' + +context "Rack::ShowStatus" do + specify "should provide a default status message" do + req = Rack::MockRequest.new(Rack::ShowStatus.new(lambda { |env| + [404, {"Content-Type" => "text/plain", "Content-Length" => "0"}, []] + })) + + res = req.get("/", :lint => true) + res.should.be.not_found + res.should.be.not.empty + + res["Content-Type"].should.equal("text/html") + res.should =~ /404/ + res.should =~ /Not Found/ + end + + specify "should let the app provide additional information" do + req = Rack::MockRequest.new(Rack::ShowStatus.new(lambda { |env| + env["rack.showstatus.detail"] = "gone too meta." + [404, {"Content-Type" => "text/plain", "Content-Length" => "0"}, []] + })) + + res = req.get("/", :lint => true) + res.should.be.not_found + res.should.be.not.empty + + res["Content-Type"].should.equal("text/html") + res.should =~ /404/ + res.should =~ /Not Found/ + res.should =~ /too meta/ + end + + specify "should not replace existing messages" do + req = Rack::MockRequest.new(Rack::ShowStatus.new(lambda { |env| + [404, {"Content-Type" => "text/plain", "Content-Length" => "4"}, ["foo!"]] + })) + res = req.get("/", :lint => true) + res.should.be.not_found + + res.body.should == "foo!" + end + + specify "should pass on original headers" do + headers = {"WWW-Authenticate" => "Basic blah"} + + req = Rack::MockRequest.new(Rack::ShowStatus.new(lambda { |env| [401, headers, []] })) + res = req.get("/", :lint => true) + + res["WWW-Authenticate"].should.equal("Basic blah") + end + + specify "should replace existing messages if there is detail" do + req = Rack::MockRequest.new(Rack::ShowStatus.new(lambda { |env| + env["rack.showstatus.detail"] = "gone too meta." + [404, {"Content-Type" => "text/plain", "Content-Length" => "4"}, ["foo!"]] + })) + + res = req.get("/", :lint => true) + res.should.be.not_found + res.should.be.not.empty + + res["Content-Type"].should.equal("text/html") + res["Content-Length"].should.not.equal("4") + res.should =~ /404/ + res.should =~ /too meta/ + res.body.should.not =~ /foo/ + end +end diff --git a/presidents/vendor/gems/rack-1.0.0/test/spec_rack_static.rb b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_static.rb new file mode 100644 index 0000000..19d2ecb --- /dev/null +++ b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_static.rb @@ -0,0 +1,37 @@ +require 'test/spec' + +require 'rack/static' +require 'rack/mock' + +class DummyApp + def call(env) + [200, {}, ["Hello World"]] + end +end + +context "Rack::Static" do + root = File.expand_path(File.dirname(__FILE__)) + OPTIONS = {:urls => ["/cgi"], :root => root} + + setup do + @request = Rack::MockRequest.new(Rack::Static.new(DummyApp.new, OPTIONS)) + end + + specify "serves files" do + res = @request.get("/cgi/test") + res.should.be.ok + res.body.should =~ /ruby/ + end + + specify "404s if url root is known but it can't find the file" do + res = @request.get("/cgi/foo") + res.should.be.not_found + end + + specify "calls down the chain if url root is not known" do + res = @request.get("/something/else") + res.should.be.ok + res.body.should == "Hello World" + end + +end diff --git a/presidents/vendor/gems/rack-1.0.0/test/spec_rack_thin.rb b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_thin.rb new file mode 100644 index 0000000..324f649 --- /dev/null +++ b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_thin.rb @@ -0,0 +1,91 @@ +require 'test/spec' + +begin +require 'rack/handler/thin' +require 'testrequest' +require 'timeout' + +context "Rack::Handler::Thin" do + include TestRequest::Helpers + + setup do + @app = Rack::Lint.new(TestRequest.new) + @server = nil + Thin::Logging.silent = true + @thread = Thread.new do + Rack::Handler::Thin.run(@app, :Host => @host='0.0.0.0', :Port => @port=9204) do |server| + @server = server + end + end + Thread.pass until @server && @server.running? + end + + specify "should respond" do + lambda { + GET("/") + }.should.not.raise + end + + specify "should be a Thin" do + GET("/") + status.should.be 200 + response["SERVER_SOFTWARE"].should =~ /thin/ + response["HTTP_VERSION"].should.equal "HTTP/1.1" + response["SERVER_PROTOCOL"].should.equal "HTTP/1.1" + response["SERVER_PORT"].should.equal "9204" + response["SERVER_NAME"].should.equal "0.0.0.0" + end + + specify "should have rack headers" do + GET("/") + response["rack.version"].should.equal [0,3] + response["rack.multithread"].should.be false + response["rack.multiprocess"].should.be false + response["rack.run_once"].should.be false + end + + specify "should have CGI headers on GET" do + GET("/") + response["REQUEST_METHOD"].should.equal "GET" + response["REQUEST_PATH"].should.equal "/" + response["PATH_INFO"].should.be.equal "/" + response["QUERY_STRING"].should.equal "" + response["test.postdata"].should.equal "" + + GET("/test/foo?quux=1") + response["REQUEST_METHOD"].should.equal "GET" + response["REQUEST_PATH"].should.equal "/test/foo" + response["PATH_INFO"].should.equal "/test/foo" + response["QUERY_STRING"].should.equal "quux=1" + end + + specify "should have CGI headers on POST" do + POST("/", {"rack-form-data" => "23"}, {'X-test-header' => '42'}) + status.should.equal 200 + response["REQUEST_METHOD"].should.equal "POST" + response["REQUEST_PATH"].should.equal "/" + response["QUERY_STRING"].should.equal "" + response["HTTP_X_TEST_HEADER"].should.equal "42" + response["test.postdata"].should.equal "rack-form-data=23" + end + + specify "should support HTTP auth" do + GET("/test", {:user => "ruth", :passwd => "secret"}) + response["HTTP_AUTHORIZATION"].should.equal "Basic cnV0aDpzZWNyZXQ=" + end + + specify "should set status" do + GET("/test?secret") + status.should.equal 403 + response["rack.url_scheme"].should.equal "http" + end + + teardown do + @server.stop! + @thread.kill + end +end + +rescue LoadError + $stderr.puts "Skipping Rack::Handler::Thin tests (Thin is required). `gem install thin` and try again." +end diff --git a/presidents/vendor/gems/rack-1.0.0/test/spec_rack_urlmap.rb b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_urlmap.rb new file mode 100644 index 0000000..6c4d72a --- /dev/null +++ b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_urlmap.rb @@ -0,0 +1,185 @@ +require 'test/spec' + +require 'rack/urlmap' +require 'rack/mock' + +context "Rack::URLMap" do + specify "dispatches paths correctly" do + app = lambda { |env| + [200, { + 'X-ScriptName' => env['SCRIPT_NAME'], + 'X-PathInfo' => env['PATH_INFO'], + 'Content-Type' => 'text/plain' + }, [""]] + } + map = Rack::URLMap.new({ + 'http://foo.org/bar' => app, + '/foo' => app, + '/foo/bar' => app + }) + + res = Rack::MockRequest.new(map).get("/") + res.should.be.not_found + + res = Rack::MockRequest.new(map).get("/qux") + res.should.be.not_found + + res = Rack::MockRequest.new(map).get("/foo") + res.should.be.ok + res["X-ScriptName"].should.equal "/foo" + res["X-PathInfo"].should.equal "" + + res = Rack::MockRequest.new(map).get("/foo/") + res.should.be.ok + res["X-ScriptName"].should.equal "/foo" + res["X-PathInfo"].should.equal "/" + + res = Rack::MockRequest.new(map).get("/foo/bar") + res.should.be.ok + res["X-ScriptName"].should.equal "/foo/bar" + res["X-PathInfo"].should.equal "" + + res = Rack::MockRequest.new(map).get("/foo/bar/") + res.should.be.ok + res["X-ScriptName"].should.equal "/foo/bar" + res["X-PathInfo"].should.equal "/" + + res = Rack::MockRequest.new(map).get("/foo/quux", "SCRIPT_NAME" => "/bleh") + res.should.be.ok + res["X-ScriptName"].should.equal "/bleh/foo" + res["X-PathInfo"].should.equal "/quux" + + res = Rack::MockRequest.new(map).get("/bar", 'HTTP_HOST' => 'foo.org') + res.should.be.ok + res["X-ScriptName"].should.equal "/bar" + res["X-PathInfo"].should.be.empty + + res = Rack::MockRequest.new(map).get("/bar/", 'HTTP_HOST' => 'foo.org') + res.should.be.ok + res["X-ScriptName"].should.equal "/bar" + res["X-PathInfo"].should.equal '/' + end + + + specify "dispatches hosts correctly" do + map = Rack::URLMap.new("http://foo.org/" => lambda { |env| + [200, + { "Content-Type" => "text/plain", + "X-Position" => "foo.org", + "X-Host" => env["HTTP_HOST"] || env["SERVER_NAME"], + }, [""]]}, + "http://subdomain.foo.org/" => lambda { |env| + [200, + { "Content-Type" => "text/plain", + "X-Position" => "subdomain.foo.org", + "X-Host" => env["HTTP_HOST"] || env["SERVER_NAME"], + }, [""]]}, + "http://bar.org/" => lambda { |env| + [200, + { "Content-Type" => "text/plain", + "X-Position" => "bar.org", + "X-Host" => env["HTTP_HOST"] || env["SERVER_NAME"], + }, [""]]}, + "/" => lambda { |env| + [200, + { "Content-Type" => "text/plain", + "X-Position" => "default.org", + "X-Host" => env["HTTP_HOST"] || env["SERVER_NAME"], + }, [""]]} + ) + + res = Rack::MockRequest.new(map).get("/") + res.should.be.ok + res["X-Position"].should.equal "default.org" + + res = Rack::MockRequest.new(map).get("/", "HTTP_HOST" => "bar.org") + res.should.be.ok + res["X-Position"].should.equal "bar.org" + + res = Rack::MockRequest.new(map).get("/", "HTTP_HOST" => "foo.org") + res.should.be.ok + res["X-Position"].should.equal "foo.org" + + res = Rack::MockRequest.new(map).get("/", "HTTP_HOST" => "subdomain.foo.org", "SERVER_NAME" => "foo.org") + res.should.be.ok + res["X-Position"].should.equal "subdomain.foo.org" + + res = Rack::MockRequest.new(map).get("http://foo.org/") + res.should.be.ok + res["X-Position"].should.equal "default.org" + + res = Rack::MockRequest.new(map).get("/", "HTTP_HOST" => "example.org") + res.should.be.ok + res["X-Position"].should.equal "default.org" + + res = Rack::MockRequest.new(map).get("/", + "HTTP_HOST" => "example.org:9292", + "SERVER_PORT" => "9292") + res.should.be.ok + res["X-Position"].should.equal "default.org" + end + + specify "should be nestable" do + map = Rack::URLMap.new("/foo" => + Rack::URLMap.new("/bar" => + Rack::URLMap.new("/quux" => lambda { |env| + [200, + { "Content-Type" => "text/plain", + "X-Position" => "/foo/bar/quux", + "X-PathInfo" => env["PATH_INFO"], + "X-ScriptName" => env["SCRIPT_NAME"], + }, [""]]} + ))) + + res = Rack::MockRequest.new(map).get("/foo/bar") + res.should.be.not_found + + res = Rack::MockRequest.new(map).get("/foo/bar/quux") + res.should.be.ok + res["X-Position"].should.equal "/foo/bar/quux" + res["X-PathInfo"].should.equal "" + res["X-ScriptName"].should.equal "/foo/bar/quux" + end + + specify "should route root apps correctly" do + map = Rack::URLMap.new("/" => lambda { |env| + [200, + { "Content-Type" => "text/plain", + "X-Position" => "root", + "X-PathInfo" => env["PATH_INFO"], + "X-ScriptName" => env["SCRIPT_NAME"] + }, [""]]}, + "/foo" => lambda { |env| + [200, + { "Content-Type" => "text/plain", + "X-Position" => "foo", + "X-PathInfo" => env["PATH_INFO"], + "X-ScriptName" => env["SCRIPT_NAME"] + }, [""]]} + ) + + res = Rack::MockRequest.new(map).get("/foo/bar") + res.should.be.ok + res["X-Position"].should.equal "foo" + res["X-PathInfo"].should.equal "/bar" + res["X-ScriptName"].should.equal "/foo" + + res = Rack::MockRequest.new(map).get("/foo") + res.should.be.ok + res["X-Position"].should.equal "foo" + res["X-PathInfo"].should.equal "" + res["X-ScriptName"].should.equal "/foo" + + res = Rack::MockRequest.new(map).get("/bar") + res.should.be.ok + res["X-Position"].should.equal "root" + res["X-PathInfo"].should.equal "/bar" + res["X-ScriptName"].should.equal "" + + res = Rack::MockRequest.new(map).get("") + res.should.be.ok + res["X-Position"].should.equal "root" + res["X-PathInfo"].should.equal "/" + res["X-ScriptName"].should.equal "" + end +end diff --git a/presidents/vendor/gems/rack-1.0.0/test/spec_rack_utils.rb b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_utils.rb new file mode 100644 index 0000000..8f4fd75 --- /dev/null +++ b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_utils.rb @@ -0,0 +1,341 @@ +require 'test/spec' + +require 'rack/utils' +require 'rack/lint' +require 'rack/mock' + +context "Rack::Utils" do + specify "should escape correctly" do + Rack::Utils.escape("fobar").should.equal "fo%3Co%3Ebar" + Rack::Utils.escape("a space").should.equal "a+space" + Rack::Utils.escape("q1!2\"'w$5&7/z8)?\\"). + should.equal "q1%212%22%27w%245%267%2Fz8%29%3F%5C" + end + + specify "should unescape correctly" do + Rack::Utils.unescape("fo%3Co%3Ebar").should.equal "fobar" + Rack::Utils.unescape("a+space").should.equal "a space" + Rack::Utils.unescape("a%20space").should.equal "a space" + Rack::Utils.unescape("q1%212%22%27w%245%267%2Fz8%29%3F%5C"). + should.equal "q1!2\"'w$5&7/z8)?\\" + end + + specify "should parse query strings correctly" do + Rack::Utils.parse_query("foo=bar").should.equal "foo" => "bar" + Rack::Utils.parse_query("foo=bar&foo=quux"). + should.equal "foo" => ["bar", "quux"] + Rack::Utils.parse_query("foo=1&bar=2"). + should.equal "foo" => "1", "bar" => "2" + Rack::Utils.parse_query("my+weird+field=q1%212%22%27w%245%267%2Fz8%29%3F"). + should.equal "my weird field" => "q1!2\"'w$5&7/z8)?" + end + + specify "should parse nested query strings correctly" do + Rack::Utils.parse_nested_query("foo"). + should.equal "foo" => nil + Rack::Utils.parse_nested_query("foo="). + should.equal "foo" => "" + Rack::Utils.parse_nested_query("foo=bar"). + should.equal "foo" => "bar" + + Rack::Utils.parse_nested_query("foo=bar&foo=quux"). + should.equal "foo" => "quux" + Rack::Utils.parse_nested_query("foo&foo="). + should.equal "foo" => "" + Rack::Utils.parse_nested_query("foo=1&bar=2"). + should.equal "foo" => "1", "bar" => "2" + Rack::Utils.parse_nested_query("&foo=1&&bar=2"). + should.equal "foo" => "1", "bar" => "2" + Rack::Utils.parse_nested_query("foo&bar="). + should.equal "foo" => nil, "bar" => "" + Rack::Utils.parse_nested_query("foo=bar&baz="). + should.equal "foo" => "bar", "baz" => "" + Rack::Utils.parse_nested_query("my+weird+field=q1%212%22%27w%245%267%2Fz8%29%3F"). + should.equal "my weird field" => "q1!2\"'w$5&7/z8)?" + + Rack::Utils.parse_nested_query("foo[]"). + should.equal "foo" => [nil] + Rack::Utils.parse_nested_query("foo[]="). + should.equal "foo" => [""] + Rack::Utils.parse_nested_query("foo[]=bar"). + should.equal "foo" => ["bar"] + + Rack::Utils.parse_nested_query("foo[]=1&foo[]=2"). + should.equal "foo" => ["1", "2"] + Rack::Utils.parse_nested_query("foo=bar&baz[]=1&baz[]=2&baz[]=3"). + should.equal "foo" => "bar", "baz" => ["1", "2", "3"] + Rack::Utils.parse_nested_query("foo[]=bar&baz[]=1&baz[]=2&baz[]=3"). + should.equal "foo" => ["bar"], "baz" => ["1", "2", "3"] + + Rack::Utils.parse_nested_query("x[y][z]=1"). + should.equal "x" => {"y" => {"z" => "1"}} + Rack::Utils.parse_nested_query("x[y][z][]=1"). + should.equal "x" => {"y" => {"z" => ["1"]}} + Rack::Utils.parse_nested_query("x[y][z]=1&x[y][z]=2"). + should.equal "x" => {"y" => {"z" => "2"}} + Rack::Utils.parse_nested_query("x[y][z][]=1&x[y][z][]=2"). + should.equal "x" => {"y" => {"z" => ["1", "2"]}} + + Rack::Utils.parse_nested_query("x[y][][z]=1"). + should.equal "x" => {"y" => [{"z" => "1"}]} + Rack::Utils.parse_nested_query("x[y][][z][]=1"). + should.equal "x" => {"y" => [{"z" => ["1"]}]} + Rack::Utils.parse_nested_query("x[y][][z]=1&x[y][][w]=2"). + should.equal "x" => {"y" => [{"z" => "1", "w" => "2"}]} + + Rack::Utils.parse_nested_query("x[y][][v][w]=1"). + should.equal "x" => {"y" => [{"v" => {"w" => "1"}}]} + Rack::Utils.parse_nested_query("x[y][][z]=1&x[y][][v][w]=2"). + should.equal "x" => {"y" => [{"z" => "1", "v" => {"w" => "2"}}]} + + Rack::Utils.parse_nested_query("x[y][][z]=1&x[y][][z]=2"). + should.equal "x" => {"y" => [{"z" => "1"}, {"z" => "2"}]} + Rack::Utils.parse_nested_query("x[y][][z]=1&x[y][][w]=a&x[y][][z]=2&x[y][][w]=3"). + should.equal "x" => {"y" => [{"z" => "1", "w" => "a"}, {"z" => "2", "w" => "3"}]} + + lambda { Rack::Utils.parse_nested_query("x[y]=1&x[y]z=2") }. + should.raise(TypeError). + message.should.equal "expected Hash (got String) for param `y'" + + lambda { Rack::Utils.parse_nested_query("x[y]=1&x[]=1") }. + should.raise(TypeError). + message.should.equal "expected Array (got Hash) for param `x'" + + lambda { Rack::Utils.parse_nested_query("x[y]=1&x[y][][w]=2") }. + should.raise(TypeError). + message.should.equal "expected Array (got String) for param `y'" + end + + specify "should build query strings correctly" do + Rack::Utils.build_query("foo" => "bar").should.equal "foo=bar" + Rack::Utils.build_query("foo" => ["bar", "quux"]). + should.equal "foo=bar&foo=quux" + Rack::Utils.build_query("foo" => "1", "bar" => "2"). + should.equal "foo=1&bar=2" + Rack::Utils.build_query("my weird field" => "q1!2\"'w$5&7/z8)?"). + should.equal "my+weird+field=q1%212%22%27w%245%267%2Fz8%29%3F" + end + + specify "should figure out which encodings are acceptable" do + helper = lambda do |a, b| + request = Rack::Request.new(Rack::MockRequest.env_for("", "HTTP_ACCEPT_ENCODING" => a)) + Rack::Utils.select_best_encoding(a, b) + end + + helper.call(%w(), [["x", 1]]).should.equal(nil) + helper.call(%w(identity), [["identity", 0.0]]).should.equal(nil) + helper.call(%w(identity), [["*", 0.0]]).should.equal(nil) + + helper.call(%w(identity), [["compress", 1.0], ["gzip", 1.0]]).should.equal("identity") + + helper.call(%w(compress gzip identity), [["compress", 1.0], ["gzip", 1.0]]).should.equal("compress") + helper.call(%w(compress gzip identity), [["compress", 0.5], ["gzip", 1.0]]).should.equal("gzip") + + helper.call(%w(foo bar identity), []).should.equal("identity") + helper.call(%w(foo bar identity), [["*", 1.0]]).should.equal("foo") + helper.call(%w(foo bar identity), [["*", 1.0], ["foo", 0.9]]).should.equal("bar") + + helper.call(%w(foo bar identity), [["foo", 0], ["bar", 0]]).should.equal("identity") + helper.call(%w(foo bar baz identity), [["*", 0], ["identity", 0.1]]).should.equal("identity") + end + + specify "should return the bytesize of String" do + Rack::Utils.bytesize("FOO\xE2\x82\xAC").should.equal 6 + end +end + +context "Rack::Utils::HeaderHash" do + specify "should retain header case" do + h = Rack::Utils::HeaderHash.new("Content-MD5" => "d5ff4e2a0 ...") + h['ETag'] = 'Boo!' + h.to_hash.should.equal "Content-MD5" => "d5ff4e2a0 ...", "ETag" => 'Boo!' + end + + specify "should check existence of keys case insensitively" do + h = Rack::Utils::HeaderHash.new("Content-MD5" => "d5ff4e2a0 ...") + h.should.include 'content-md5' + h.should.not.include 'ETag' + end + + specify "should merge case-insensitively" do + h = Rack::Utils::HeaderHash.new("ETag" => 'HELLO', "content-length" => '123') + merged = h.merge("Etag" => 'WORLD', 'Content-Length' => '321', "Foo" => 'BAR') + merged.should.equal "Etag"=>'WORLD', "Content-Length"=>'321', "Foo"=>'BAR' + end + + specify "should overwrite case insensitively and assume the new key's case" do + h = Rack::Utils::HeaderHash.new("Foo-Bar" => "baz") + h["foo-bar"] = "bizzle" + h["FOO-BAR"].should.equal "bizzle" + h.length.should.equal 1 + h.to_hash.should.equal "foo-bar" => "bizzle" + end + + specify "should be converted to real Hash" do + h = Rack::Utils::HeaderHash.new("foo" => "bar") + h.to_hash.should.be.instance_of Hash + end + + specify "should convert Array values to Strings when converting to Hash" do + h = Rack::Utils::HeaderHash.new("foo" => ["bar", "baz"]) + h.to_hash.should.equal({ "foo" => "bar\nbaz" }) + end +end + +context "Rack::Utils::Context" do + class ContextTest + attr_reader :app + def initialize app; @app=app; end + def call env; context env; end + def context env, app=@app; app.call(env); end + end + test_target1 = proc{|e| e.to_s+' world' } + test_target2 = proc{|e| e.to_i+2 } + test_target3 = proc{|e| nil } + test_target4 = proc{|e| [200,{'Content-Type'=>'text/plain', 'Content-Length'=>'0'},['']] } + test_app = ContextTest.new test_target4 + + specify "should set context correctly" do + test_app.app.should.equal test_target4 + c1 = Rack::Utils::Context.new(test_app, test_target1) + c1.for.should.equal test_app + c1.app.should.equal test_target1 + c2 = Rack::Utils::Context.new(test_app, test_target2) + c2.for.should.equal test_app + c2.app.should.equal test_target2 + end + + specify "should alter app on recontexting" do + c1 = Rack::Utils::Context.new(test_app, test_target1) + c2 = c1.recontext(test_target2) + c2.for.should.equal test_app + c2.app.should.equal test_target2 + c3 = c2.recontext(test_target3) + c3.for.should.equal test_app + c3.app.should.equal test_target3 + end + + specify "should run different apps" do + c1 = Rack::Utils::Context.new test_app, test_target1 + c2 = c1.recontext test_target2 + c3 = c2.recontext test_target3 + c4 = c3.recontext test_target4 + a4 = Rack::Lint.new c4 + a5 = Rack::Lint.new test_app + r1 = c1.call('hello') + r1.should.equal 'hello world' + r2 = c2.call(2) + r2.should.equal 4 + r3 = c3.call(:misc_symbol) + r3.should.be.nil + r4 = Rack::MockRequest.new(a4).get('/') + r4.status.should.be 200 + r5 = Rack::MockRequest.new(a5).get('/') + r5.status.should.be 200 + r4.body.should.equal r5.body + end +end + +context "Rack::Utils::Multipart" do + specify "should return nil if content type is not multipart" do + env = Rack::MockRequest.env_for("/", + "CONTENT_TYPE" => 'application/x-www-form-urlencoded') + Rack::Utils::Multipart.parse_multipart(env).should.equal nil + end + + specify "should parse multipart upload with text file" do + env = Rack::MockRequest.env_for("/", multipart_fixture(:text)) + params = Rack::Utils::Multipart.parse_multipart(env) + params["submit-name"].should.equal "Larry" + params["files"][:type].should.equal "text/plain" + params["files"][:filename].should.equal "file1.txt" + params["files"][:head].should.equal "Content-Disposition: form-data; " + + "name=\"files\"; filename=\"file1.txt\"\r\n" + + "Content-Type: text/plain\r\n" + params["files"][:name].should.equal "files" + params["files"][:tempfile].read.should.equal "contents" + end + + specify "should parse multipart upload with nested parameters" do + env = Rack::MockRequest.env_for("/", multipart_fixture(:nested)) + params = Rack::Utils::Multipart.parse_multipart(env) + params["foo"]["submit-name"].should.equal "Larry" + params["foo"]["files"][:type].should.equal "text/plain" + params["foo"]["files"][:filename].should.equal "file1.txt" + params["foo"]["files"][:head].should.equal "Content-Disposition: form-data; " + + "name=\"foo[files]\"; filename=\"file1.txt\"\r\n" + + "Content-Type: text/plain\r\n" + params["foo"]["files"][:name].should.equal "foo[files]" + params["foo"]["files"][:tempfile].read.should.equal "contents" + end + + specify "should parse multipart upload with binary file" do + env = Rack::MockRequest.env_for("/", multipart_fixture(:binary)) + params = Rack::Utils::Multipart.parse_multipart(env) + params["submit-name"].should.equal "Larry" + params["files"][:type].should.equal "image/png" + params["files"][:filename].should.equal "rack-logo.png" + params["files"][:head].should.equal "Content-Disposition: form-data; " + + "name=\"files\"; filename=\"rack-logo.png\"\r\n" + + "Content-Type: image/png\r\n" + params["files"][:name].should.equal "files" + params["files"][:tempfile].read.length.should.equal 26473 + end + + specify "should parse multipart upload with empty file" do + env = Rack::MockRequest.env_for("/", multipart_fixture(:empty)) + params = Rack::Utils::Multipart.parse_multipart(env) + params["submit-name"].should.equal "Larry" + params["files"][:type].should.equal "text/plain" + params["files"][:filename].should.equal "file1.txt" + params["files"][:head].should.equal "Content-Disposition: form-data; " + + "name=\"files\"; filename=\"file1.txt\"\r\n" + + "Content-Type: text/plain\r\n" + params["files"][:name].should.equal "files" + params["files"][:tempfile].read.should.equal "" + end + + specify "should not include file params if no file was selected" do + env = Rack::MockRequest.env_for("/", multipart_fixture(:none)) + params = Rack::Utils::Multipart.parse_multipart(env) + params["submit-name"].should.equal "Larry" + params["files"].should.equal nil + params.keys.should.not.include "files" + end + + specify "should parse IE multipart upload and clean up filename" do + env = Rack::MockRequest.env_for("/", multipart_fixture(:ie)) + params = Rack::Utils::Multipart.parse_multipart(env) + params["files"][:type].should.equal "text/plain" + params["files"][:filename].should.equal "file1.txt" + params["files"][:head].should.equal "Content-Disposition: form-data; " + + "name=\"files\"; " + + 'filename="C:\Documents and Settings\Administrator\Desktop\file1.txt"' + + "\r\nContent-Type: text/plain\r\n" + params["files"][:name].should.equal "files" + params["files"][:tempfile].read.should.equal "contents" + end + + specify "rewinds input after parsing upload" do + options = multipart_fixture(:text) + input = options[:input] + env = Rack::MockRequest.env_for("/", options) + params = Rack::Utils::Multipart.parse_multipart(env) + params["submit-name"].should.equal "Larry" + params["files"][:filename].should.equal "file1.txt" + input.read.length.should.equal 197 + end + + private + def multipart_fixture(name) + file = File.join(File.dirname(__FILE__), "multipart", name.to_s) + data = File.open(file, 'rb') { |io| io.read } + + type = "multipart/form-data; boundary=AaB03x" + length = data.respond_to?(:bytesize) ? data.bytesize : data.size + + { "CONTENT_TYPE" => type, + "CONTENT_LENGTH" => length.to_s, + :input => StringIO.new(data) } + end +end diff --git a/presidents/vendor/gems/rack-1.0.0/test/spec_rack_webrick.rb b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_webrick.rb new file mode 100644 index 0000000..a7393e9 --- /dev/null +++ b/presidents/vendor/gems/rack-1.0.0/test/spec_rack_webrick.rb @@ -0,0 +1,130 @@ +require 'test/spec' + +require 'rack/handler/webrick' +require 'rack/lint' +require 'rack/response' +require 'testrequest' + +Thread.abort_on_exception = true + +context "Rack::Handler::WEBrick" do + include TestRequest::Helpers + + setup do + @server = WEBrick::HTTPServer.new(:Host => @host='0.0.0.0', + :Port => @port=9202, + :Logger => WEBrick::Log.new(nil, WEBrick::BasicLog::WARN), + :AccessLog => []) + @server.mount "/test", Rack::Handler::WEBrick, + Rack::Lint.new(TestRequest.new) + Thread.new { @server.start } + trap(:INT) { @server.shutdown } + end + + specify "should respond" do + lambda { + GET("/test") + }.should.not.raise + end + + specify "should be a WEBrick" do + GET("/test") + status.should.be 200 + response["SERVER_SOFTWARE"].should =~ /WEBrick/ + response["HTTP_VERSION"].should.equal "HTTP/1.1" + response["SERVER_PROTOCOL"].should.equal "HTTP/1.1" + response["SERVER_PORT"].should.equal "9202" + response["SERVER_NAME"].should.equal "0.0.0.0" + end + + specify "should have rack headers" do + GET("/test") + response["rack.version"].should.equal [0,1] + response["rack.multithread"].should.be true + response["rack.multiprocess"].should.be false + response["rack.run_once"].should.be false + end + + specify "should have CGI headers on GET" do + GET("/test") + response["REQUEST_METHOD"].should.equal "GET" + response["SCRIPT_NAME"].should.equal "/test" + response["REQUEST_PATH"].should.equal "/" + response["PATH_INFO"].should.be.nil + response["QUERY_STRING"].should.equal "" + response["test.postdata"].should.equal "" + + GET("/test/foo?quux=1") + response["REQUEST_METHOD"].should.equal "GET" + response["SCRIPT_NAME"].should.equal "/test" + response["REQUEST_PATH"].should.equal "/" + response["PATH_INFO"].should.equal "/foo" + response["QUERY_STRING"].should.equal "quux=1" + + GET("/test/foo%25encoding?quux=1") + response["REQUEST_METHOD"].should.equal "GET" + response["SCRIPT_NAME"].should.equal "/test" + response["REQUEST_PATH"].should.equal "/" + response["PATH_INFO"].should.equal "/foo%25encoding" + response["QUERY_STRING"].should.equal "quux=1" + end + + specify "should have CGI headers on POST" do + POST("/test", {"rack-form-data" => "23"}, {'X-test-header' => '42'}) + status.should.equal 200 + response["REQUEST_METHOD"].should.equal "POST" + response["SCRIPT_NAME"].should.equal "/test" + response["REQUEST_PATH"].should.equal "/" + response["QUERY_STRING"].should.equal "" + response["HTTP_X_TEST_HEADER"].should.equal "42" + response["test.postdata"].should.equal "rack-form-data=23" + end + + specify "should support HTTP auth" do + GET("/test", {:user => "ruth", :passwd => "secret"}) + response["HTTP_AUTHORIZATION"].should.equal "Basic cnV0aDpzZWNyZXQ=" + end + + specify "should set status" do + GET("/test?secret") + status.should.equal 403 + response["rack.url_scheme"].should.equal "http" + end + + specify "should correctly set cookies" do + @server.mount "/cookie-test", Rack::Handler::WEBrick, + Rack::Lint.new(lambda { |req| + res = Rack::Response.new + res.set_cookie "one", "1" + res.set_cookie "two", "2" + res.finish + }) + + Net::HTTP.start(@host, @port) { |http| + res = http.get("/cookie-test") + res.code.to_i.should.equal 200 + res.get_fields("set-cookie").should.equal ["one=1", "two=2"] + } + end + + specify "should provide a .run" do + block_ran = false + catch(:done) { + Rack::Handler::WEBrick.run(lambda {}, + {:Port => 9210, + :Logger => WEBrick::Log.new(nil, WEBrick::BasicLog::WARN), + :AccessLog => []}) { |server| + block_ran = true + server.should.be.kind_of WEBrick::HTTPServer + @s = server + throw :done + } + } + block_ran.should.be true + @s.shutdown + end + + teardown do + @server.shutdown + end +end diff --git a/presidents/vendor/gems/rack-1.0.0/test/testrequest.rb b/presidents/vendor/gems/rack-1.0.0/test/testrequest.rb new file mode 100644 index 0000000..7b7190c --- /dev/null +++ b/presidents/vendor/gems/rack-1.0.0/test/testrequest.rb @@ -0,0 +1,57 @@ +require 'yaml' +require 'net/http' + +class TestRequest + def call(env) + status = env["QUERY_STRING"] =~ /secret/ ? 403 : 200 + env["test.postdata"] = env["rack.input"].read + body = env.to_yaml + size = body.respond_to?(:bytesize) ? body.bytesize : body.size + [status, {"Content-Type" => "text/yaml", "Content-Length" => size.to_s}, [body]] + end + + module Helpers + attr_reader :status, :response + + def GET(path, header={}) + Net::HTTP.start(@host, @port) { |http| + user = header.delete(:user) + passwd = header.delete(:passwd) + + get = Net::HTTP::Get.new(path, header) + get.basic_auth user, passwd if user && passwd + http.request(get) { |response| + @status = response.code.to_i + @response = YAML.load(response.body) + } + } + end + + def POST(path, formdata={}, header={}) + Net::HTTP.start(@host, @port) { |http| + user = header.delete(:user) + passwd = header.delete(:passwd) + + post = Net::HTTP::Post.new(path, header) + post.form_data = formdata + post.basic_auth user, passwd if user && passwd + http.request(post) { |response| + @status = response.code.to_i + @response = YAML.load(response.body) + } + } + end + end +end + +class StreamingRequest + def self.call(env) + [200, {"Content-Type" => "text/plain"}, new] + end + + def each + yield "hello there!\n" + sleep 5 + yield "that is all.\n" + end +end diff --git a/presidents/vendor/gems/rack-1.0.0/test/unregistered_handler/rack/handler/unregistered.rb b/presidents/vendor/gems/rack-1.0.0/test/unregistered_handler/rack/handler/unregistered.rb new file mode 100644 index 0000000..6dd9436 --- /dev/null +++ b/presidents/vendor/gems/rack-1.0.0/test/unregistered_handler/rack/handler/unregistered.rb @@ -0,0 +1,7 @@ +module Rack + module Handler + # this class doesn't do anything, we're just seeing if we get it. + class Unregistered + end + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rack-1.0.0/test/unregistered_handler/rack/handler/unregistered_long_one.rb b/presidents/vendor/gems/rack-1.0.0/test/unregistered_handler/rack/handler/unregistered_long_one.rb new file mode 100644 index 0000000..1920685 --- /dev/null +++ b/presidents/vendor/gems/rack-1.0.0/test/unregistered_handler/rack/handler/unregistered_long_one.rb @@ -0,0 +1,7 @@ +module Rack + module Handler + # this class doesn't do anything, we're just seeing if we get it. + class UnregisteredLongOne + end + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/ratom-0.6.2/.specification b/presidents/vendor/gems/ratom-0.6.2/.specification new file mode 100644 index 0000000..d191cf3 --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/.specification @@ -0,0 +1,133 @@ +--- !ruby/object:Gem::Specification +name: ratom +version: !ruby/object:Gem::Version + version: 0.6.2 +platform: ruby +authors: +- Peerworks +- Sean Geoghegan +autorequire: +bindir: bin +cert_chain: [] + +date: 2009-06-18 00:00:00 +06:00 +default_executable: +dependencies: +- !ruby/object:Gem::Dependency + name: libxml-ruby + type: :runtime + version_requirement: + version_requirements: !ruby/object:Gem::Requirement + requirements: + - - ">=" + - !ruby/object:Gem::Version + version: 1.1.2 + version: +- !ruby/object:Gem::Dependency + name: hoe + type: :development + version_requirement: + version_requirements: !ruby/object:Gem::Requirement + requirements: + - - ">=" + - !ruby/object:Gem::Version + version: 1.12.2 + version: +description: Atom Syndication and Publication API +email: sean@peerworks.org +executables: [] + +extensions: [] + +extra_rdoc_files: +- History.txt +- License.txt +- Manifest.txt +- README.txt +- website/index.txt +files: +- History.txt +- License.txt +- Manifest.txt +- README.txt +- Rakefile +- config/hoe.rb +- config/requirements.rb +- lib/atom.rb +- lib/atom/pub.rb +- lib/atom/version.rb +- lib/atom/xml/parser.rb +- lib/atom/configuration.rb +- setup.rb +- spec/app/member_entry.atom +- spec/app/service.xml +- spec/atom/pub_spec.rb +- spec/atom_spec.rb +- spec/conformance/baseuri.atom +- spec/conformance/divtest.atom +- spec/conformance/linktests.xml +- spec/conformance/nondefaultnamespace-baseline.atom +- spec/conformance/nondefaultnamespace-xhtml.atom +- spec/conformance/nondefaultnamespace.atom +- spec/conformance/ordertest.xml +- spec/conformance/title/html-cdata.atom +- spec/conformance/title/html-entity.atom +- spec/conformance/title/html-ncr.atom +- spec/conformance/title/text-cdata.atom +- spec/conformance/title/text-entity.atom +- spec/conformance/title/text-ncr.atom +- spec/conformance/title/xhtml-entity.atom +- spec/conformance/title/xhtml-ncr.atom +- spec/conformance/unknown-namespace.atom +- spec/conformance/xmlbase.atom +- spec/fixtures/complex_single_entry.atom +- spec/fixtures/created_entry.atom +- spec/fixtures/entry.atom +- spec/fixtures/multiple_entry.atom +- spec/fixtures/simple_single_entry.atom +- spec/fixtures/with_stylesheet.atom +- spec/paging/first_paged_feed.atom +- spec/paging/last_paged_feed.atom +- spec/paging/middle_paged_feed.atom +- spec/spec.opts +- spec/spec_helper.rb +- tasks/deployment.rake +- tasks/environment.rake +- tasks/rspec.rake +- tasks/website.rake +- website/index.html +- website/index.txt +- website/javascripts/rounded_corners_lite.inc.js +- website/stylesheets/screen.css +- website/template.rhtml +has_rdoc: true +homepage: http://ratom.rubyforge.org +licenses: [] + +post_install_message: +rdoc_options: +- --main +- README.txt +require_paths: +- lib +required_ruby_version: !ruby/object:Gem::Requirement + requirements: + - - ">=" + - !ruby/object:Gem::Version + version: "0" + version: +required_rubygems_version: !ruby/object:Gem::Requirement + requirements: + - - ">=" + - !ruby/object:Gem::Version + version: "0" + version: +requirements: [] + +rubyforge_project: ratom +rubygems_version: 1.3.5 +signing_key: +specification_version: 2 +summary: Atom Syndication and Publication API +test_files: [] + diff --git a/presidents/vendor/gems/ratom-0.6.2/History.txt b/presidents/vendor/gems/ratom-0.6.2/History.txt new file mode 100644 index 0000000..1ea5043 --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/History.txt @@ -0,0 +1,103 @@ +== 0.6.2 2009-06-19 + +* Handle href and fixed on service doc categories. +* Use request_uri instead of path so that we get any query parameters too. [Wybo Wiersma] +* Doc Patches. + +== 0.6.1 2009-03-27 + +Some minor exception fixes. + +* Removed Atom::ParseError. Parse errors now will only throw ArgumentError. +* ProtocolError has a to string method. + +== 0.6.0 2009-03-19 + +* Now depends on libxml-ruby 1.1.2. +* Added support for hreflang on links. (David Arango) +* Update to work with latest version of libxml-ruby. (oortle & me) +* Content::Text and Content::Xhtml can now be created with String's like Content::Html. +* Make sure Atom::Generator outputs the generator name as the text of the element. + +== 0.5.2 2008-12-06 + +* Remove whitespace modification in content. (dlisboa) + +== 0.5.1 2008-08-05 + +* Added optional AuthHMAC support + +== 0.5.0 2008-07-28 + +* Fix bug where processing instructions break parsing. +* Added Custom extension element classes. (Ignacio Carrera) + +== 0.4.2 2008-07-09 + +* Update to libxml-ruby version 0.8.x + +== 0.4.1 2008-07-09 + +* Update to libxml-ruby version 0.6.0. + +== 0.4.0 2008-06-26 + +* Support for HTTP Basic Authentication. + +== 0.3.7 2008-06-05 + +* Support XML in extension elements. (Min Kim) + +== 0.3.6 2008-05-15 + +* Added categories to feeds. +* Make sure atom:content appears at the end of a atom:entry. +* Don't use namespace prefixes on content unless we really have to. + +== 0.3.5 2008-05-03 + +* Make sure atom:entries appears last. +* Better examples in the documentation. Docs for Feed and Entry list attributes. +* Gave Feeds authors and contributors. +* Fixed a couple warnings. + +== 0.3.4 2008-04-21 + +* Remove useless variable warning. (Sam Roberts) +* Support initialization of Atom::Source from Hash and block. +* Support initialization of Atom::Generator from Hash and block. + +== 0.3.3 2008-04-09 + +* Better serialization of namespaced elements. ratom will now generate prefixes for namespaces and write them as + attributes on the root element. +* Extensions read as attributes are now written as attributes. +* When programmatically setting an extension value you can tell ratom to write it as an attribute using: + + entry['http://example.org', 'extattr'].as_attribute = true + +* Add support for atom:category. +* Support extension attributes using the same mechanism as extension elements. + +== 0.3.1 2008-04-02 + +* Bunch of fixes to the Atom::Pub classes to make them work like the Atom classes + with respect to initializers and to_xml. + +== 0.3.0 2008-04-02 + +* Raise Atom::Serialization error when you try and serialize non-utf8 content. +* Support reading simple extension elements, see README.txt. +* Support writing simple extension elements, see README.txt. + +== 0.2.2 2008-02-10 + +* Removed dependency on ActiveSupport. + +== 0.2.1 2008-03-03 + +* Initial release to the public. + +== < 0.2.1 + +* Internal releases. diff --git a/presidents/vendor/gems/ratom-0.6.2/License.txt b/presidents/vendor/gems/ratom-0.6.2/License.txt new file mode 100644 index 0000000..4d2d4c8 --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/License.txt @@ -0,0 +1,20 @@ +Copyright (c) 2008 Peerworks + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/presidents/vendor/gems/ratom-0.6.2/Manifest.txt b/presidents/vendor/gems/ratom-0.6.2/Manifest.txt new file mode 100644 index 0000000..bb11ec0 --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/Manifest.txt @@ -0,0 +1,54 @@ +History.txt +License.txt +Manifest.txt +README.txt +Rakefile +config/hoe.rb +config/requirements.rb +lib/atom.rb +lib/atom/pub.rb +lib/atom/version.rb +lib/atom/xml/parser.rb +lib/atom/configuration.rb +setup.rb +spec/app/member_entry.atom +spec/app/service.xml +spec/atom/pub_spec.rb +spec/atom_spec.rb +spec/conformance/baseuri.atom +spec/conformance/divtest.atom +spec/conformance/linktests.xml +spec/conformance/nondefaultnamespace-baseline.atom +spec/conformance/nondefaultnamespace-xhtml.atom +spec/conformance/nondefaultnamespace.atom +spec/conformance/ordertest.xml +spec/conformance/title/html-cdata.atom +spec/conformance/title/html-entity.atom +spec/conformance/title/html-ncr.atom +spec/conformance/title/text-cdata.atom +spec/conformance/title/text-entity.atom +spec/conformance/title/text-ncr.atom +spec/conformance/title/xhtml-entity.atom +spec/conformance/title/xhtml-ncr.atom +spec/conformance/unknown-namespace.atom +spec/conformance/xmlbase.atom +spec/fixtures/complex_single_entry.atom +spec/fixtures/created_entry.atom +spec/fixtures/entry.atom +spec/fixtures/multiple_entry.atom +spec/fixtures/simple_single_entry.atom +spec/fixtures/with_stylesheet.atom +spec/paging/first_paged_feed.atom +spec/paging/last_paged_feed.atom +spec/paging/middle_paged_feed.atom +spec/spec.opts +spec/spec_helper.rb +tasks/deployment.rake +tasks/environment.rake +tasks/rspec.rake +tasks/website.rake +website/index.html +website/index.txt +website/javascripts/rounded_corners_lite.inc.js +website/stylesheets/screen.css +website/template.rhtml diff --git a/presidents/vendor/gems/ratom-0.6.2/README.txt b/presidents/vendor/gems/ratom-0.6.2/README.txt new file mode 100644 index 0000000..4aa74d0 --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/README.txt @@ -0,0 +1,289 @@ += rAtom + +rAtom is a library for working with the Atom Syndication Format and +the Atom Publishing Protocol (APP). + +* Built using libxml so it is _much_ faster than a REXML based library. +* Uses the libxml pull parser so it has much lighter memory usage. +* Supports {RFC 5005}[http://www.ietf.org/rfc/rfc5005.txt] for feed pagination. + +rAtom was originally built to support the communication between a number of applications +built by Peerworks[http://peerworks.org], via the Atom Publishing protocol. However, it +supports, or aims to support, all the Atom Syndication Format and Publication Protocol +and can be used to access Atom feeds or to script publishing entries to a blog supporting APP. + +== Prerequisites + +* libxml-ruby, >= 1.1.2 +* rspec (Only required for tests) + +libxml-ruby in turn requires the libxml2 library to be installed. libxml2 can be downloaded +from http://xmlsoft.org/downloads.html or installed using whatever tools are provided by your +platform. At least version 2.6.31 is required. + +=== Mac OSX + +Mac OSX by default comes with an old version of libxml2 that will not work with rAtom. You +will need to install a more recent version. If you are using Macports: + + port install libxml2 + +== Installation + +You can install via gem using: + + gem install ratom + +== Usage + +To fetch a parse an Atom Feed you can simply: + + feed = Atom::Feed.load_feed(URI.parse("http://example.com/feed.atom")) + +And then iterate over the entries in the feed using: + + feed.each_entry do |entry| + # do cool stuff + end + +To construct the following example Feed is from the Atom spec: + + + + + Example Feed + + 2003-12-13T18:30:02Z + + John Doe + + urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6 + + + Atom-Powered Robots Run Amok + + urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a + 2003-12-13T18:30:02Z + Some text. + + + + +To build this in rAtom we would do: + + feed = Atom::Feed.new do |f| + f.title = "Example Feed" + f.links << Atom::Link.new(:href => "http://example.org/") + f.updated = Time.parse('2003-12-13T18:30:02Z') + f.authors << Atom::Person.new(:name => 'John Doe') + f.id = "urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6" + f.entries << Atom::Entry.new do |e| + e.title = "Atom-Powered Robots Run Amok" + e.links << Atom::Link.new(:href => "http://example.org/2003/12/13/atom03") + e.id = "urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a" + e.updated = Time.parse('2003-12-13T18:30:02Z') + e.summary = "Some text." + end + end + +To output the Feed as XML use to_xml + + > puts feed.to_xml + + + urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6 + Example Feed + 2003-12-13T18:30:02Z + + + John Doe + + + Atom-Powered Robots Run Amok + urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a + Some text. + 2003-12-13T18:30:02Z + + + + + +See Feed and Entry for details on the methods and attributes of those classes. + +=== Publishing + +To publish to a remote feed using the Atom Publishing Protocol, first you need to create a collection to publish to: + + require 'atom/pub' + + collection = Atom::Pub::Collection.new(:href => 'http://example.org/myblog') + +Then create a new entry + + entry = Atom::Entry.new do |entry| + entry.title = "I have discovered rAtom" + entry.authors << Atom::Person.new(:name => 'A happy developer') + entry.updated = Time.now + entry.id = "http://example.org/myblog/newpost" + entry.content = Atom::Content::Html.new("

    rAtom lets me post to my blog using Ruby, how cool!

    ") + end + +And publish it to the Collection: + + published_entry = collection.publish(entry) + +Publish returns an updated entry filled out with any attributes to server may have set, including information +required to let us update to the entry. For example, lets change the content and republished: + + published_entry.content = Atom::Content::Html.new("

    rAtom lets me post to and edit my blog using Ruby, how cool!

    ") + published_entry.updated = Time.now + published_entry.save! + +To update an existing Entry: + + existing_entry = Entry.load_entry(URI.parse("http://example.org/afeedentry.atom")) + + existing_entry.title = "I have discovered rAtom" + existing_entry.updated = Time.now + existing_entry.save! + +You can also delete an entry using the destroy! method, but we won't do that will we?. + +=== Extension elements + +As of version 0.3.0, rAtom support simple extension elements on feeds and entries. As defined in the Atom Syndication Format, +simple extension elements consist of XML elements from a non-Atom namespace that have no attributes or child elements, i.e. +they are empty or only contain text content. These elements are treated as a name value pair where the element namespace +and local name make up the key and the content of the element is the value, empty elements will be treated as an empty string. + +To access extension elements use the [] method on the Feed or Entry. For example, if we are parsing the follow Atom document +with extensions: + + + + Feed with extensions + Something important + + +We could then access the extension element on the feed using: + + > feed["http://example.org", "myelement"] + => ["Something important"] + +Note that the return value is an array. This is because XML allows multiple instances of the element. + +To set an extension element you append to the array: + + > feed['http://example.org', 'myelement'] << 'Something less important' + => ["Something important", "Something less important"] + +You can then call to_xml and rAtom will serialize the extension elements into xml. + + > puts feed.to_xml + + + Something important + Something less important + + +Notice that the output repeats the xmlns attribute for each of the extensions, this is semantically the same the input XML, just a bit +ugly. It seems to be a limitation of the libxml-Ruby API. But if anyone knows a work around I'd gladly accept a patch (or even advice). + +==== Custom Extension Classes + +As of version 0.5.0 you can also define your own classes for a extension elements. This is done by first creating an alias +for the namespace for the class and then using the +element+ method on the Atom::Feed or Atom::Entry class to tell rAtom +to use your custom class when it encounters the extension element. + +For example, say we have the following piece Atom XML with a structured extension element: + + + + https://custom.namespace/id/1 + + + + + +And we want the +custom:property+ elements to be parsed as our own custom class called Custom::Property that is +defined like this: + + class Custom::Property + attr_accessor :name, :value + def initialize(xml) + # Custom XML handling + end + end + +We can tell rAtom about our custom namespace and custom class using the following method calls: + + Atom::Feed..add_extension_namespace :custom, "http://custom.namespace" + Atom::Entry.elements "custom:property", :class => Custom::Property + +The first method call registers an alias for the "http://custom.namespace" namespace and the second method call +tell rAtom that when it encounters a custom:property element within a Feed it should create an instance of Custom::Property +and pass the XML Reader to the constructor of the instance. It is then up to the constructor to populate the objects attributes +from the XML. Note that the alias you create using +add_extension_namespace+ can be anything you want, it doesn't need +to match the alias in the actual XML itself. + +The custom property will then be available as a method on the rAtom class. In the above example: + + @feed.custom_property.size == 2 + @feed.custom_property.first.name == 'foo' + @feed.custom_property.first.value == 'bar' + +There is one caveat to this. By using this type of extension support you are permanently modifying the rAtom classes. +So if your application process one type of atom extension and you are happy with permanently modified rAtom classes, +the extra extensibility might work for you. If on the other hand you process lots of different types of extension you might +want to stick with simpler extension mechanism using the [namespace, element] method described above. + +(Thanks to nachokb for this feature!!) + +=== Basic Authentication + +All methods that involve HTTP requests now support HTTP Basic Authentication. Authentication credentials are passed +as :user and :pass parameters to the methods that invoke the request. For example you can load a feed with HTTP Basic Authentication using: + + Atom::Feed.load_entry(URI.parse("http://example.org/feed.atom"), :user => 'username', :pass => 'password') + +Likewise all the Atom Pub methods support similar parameters, for example you can publish an Entry to a Feed with authentication +using: + + feed.publish(entry, :user => 'username', :pass => 'password') + +Or destroy an entry with: + + entry.destroy!(:user => 'username', :pass => 'password') + +rAtom doesn't store these credentials anywhere within the object model so you will need to pass them as arguments to every +method call that requires them. This might be a bit of a pain but it does make things simpler and it means that I'm not responsible +for protecting your credentials, although if you are using HTTP Basic Authentication there is a good chance your credentials aren't +very well protected anyway. + +=== AuthHMAC authentication + +As of version 0.5.1 rAtom also support authentication via HMAC request signing using the AuthHMAC[http://auth-hmac.rubyforge.org] gem. This is made available using the :hmac_access_id and :hmac_secret_key parameters which can be passed to the same methods as the HTTP Basic credentials support. + +== TODO + +* Support partial content responses from the server. +* Support batching of protocol operations. +* All my tests have been against internal systems, I'd really like feedback from those who have tried rAtom using existing blog software that supports APP. +* Handle all base uri tests. +* Add slug support. + +== Source Code + +The source repository is accessible via GitHub: + + git clone git://github.com/seangeo/ratom.git + +== Contact Information + +The project page is at http://rubyforge.org/projects/ratom. Please file any bugs or feedback +using the trackers and forums there. + +== Authors and Contributors + +rAtom was developed by Peerworks[http://peerworks.org] and written by Sean Geoghegan. + diff --git a/presidents/vendor/gems/ratom-0.6.2/Rakefile b/presidents/vendor/gems/ratom-0.6.2/Rakefile new file mode 100644 index 0000000..e469154 --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/Rakefile @@ -0,0 +1,4 @@ +require 'config/requirements' +require 'config/hoe' # setup Hoe + all gem configuration + +Dir['tasks/**/*.rake'].each { |rake| load rake } \ No newline at end of file diff --git a/presidents/vendor/gems/ratom-0.6.2/config/hoe.rb b/presidents/vendor/gems/ratom-0.6.2/config/hoe.rb new file mode 100644 index 0000000..5e974a7 --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/config/hoe.rb @@ -0,0 +1,72 @@ +require 'atom/version' + +AUTHOR = ['Peerworks', 'Sean Geoghegan'] # can also be an array of Authors +EMAIL = "sean@peerworks.org" +DESCRIPTION = "Atom Syndication and Publication API" +GEM_NAME = 'ratom' # what ppl will type to install your gem +RUBYFORGE_PROJECT = 'ratom' # The unix name for your project +HOMEPATH = "http://#{RUBYFORGE_PROJECT}.rubyforge.org" +DOWNLOAD_PATH = "http://rubyforge.org/projects/#{RUBYFORGE_PROJECT}" + +@config_file = "~/.rubyforge/user-config.yml" +@config = nil +RUBYFORGE_USERNAME = "sgeo" +def rubyforge_username + unless @config + begin + @config = YAML.load(File.read(File.expand_path(@config_file))) + rescue + puts <<-EOS +ERROR: No rubyforge config file found: #{@config_file} +Run 'rubyforge setup' to prepare your env for access to Rubyforge + - See http://newgem.rubyforge.org/rubyforge.html for more details + EOS + exit + end + end + RUBYFORGE_USERNAME.replace @config["username"] +end + + +REV = nil +# UNCOMMENT IF REQUIRED: +# REV = `svn info`.each {|line| if line =~ /^Revision:/ then k,v = line.split(': '); break v.chomp; else next; end} rescue nil +VERS = Atom::VERSION::STRING + (REV ? ".#{REV}" : "") +RDOC_OPTS = ['--quiet', '--title', 'atom documentation', + "--opname", "index.html", + "--line-numbers", + "--main", "README", + "--inline-source"] + +class Hoe + def extra_deps + @extra_deps.reject! { |x| Array(x).first == 'hoe' } + @extra_deps + end +end + +# Generate all the Rake tasks +# Run 'rake -T' to see list of generated tasks (from gem root directory) +hoe = Hoe.new(GEM_NAME, VERS) do |p| + p.author = AUTHOR + p.description = DESCRIPTION + p.email = EMAIL + p.summary = DESCRIPTION + p.url = HOMEPATH + p.rubyforge_name = RUBYFORGE_PROJECT if RUBYFORGE_PROJECT + p.test_globs = ["test/**/test_*.rb"] + p.clean_globs |= ['**/.*.sw?', '*.gem', '.config', '**/.DS_Store'] #An array of file patterns to delete on clean. + + # == Optional + p.changes = p.paragraphs_of("History.txt", 0..1).join("\n\n") + # An array of rubygem dependencies [name, version], e.g. [ ['active_support', '>= 1.3.1'] ] + p.extra_deps = [['libxml-ruby', '>= 1.1.2']] + + #p.spec_extras = {} # A hash of extra values to set in the gemspec. + +end + +CHANGES = hoe.paragraphs_of('History.txt', 0..1).join("\\n\\n") +PATH = RUBYFORGE_PROJECT +hoe.remote_rdoc_dir = PATH.gsub(/^#{RUBYFORGE_PROJECT}\/?/,'') +hoe.rsync_args = '-av --delete --ignore-errors' diff --git a/presidents/vendor/gems/ratom-0.6.2/config/requirements.rb b/presidents/vendor/gems/ratom-0.6.2/config/requirements.rb new file mode 100644 index 0000000..e9ff8e1 --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/config/requirements.rb @@ -0,0 +1,17 @@ +require 'fileutils' +include FileUtils + +require 'rubygems' +%w[rake hoe newgem rubigen].each do |req_gem| + begin + require req_gem + rescue LoadError + puts "This Rakefile requires the '#{req_gem}' RubyGem." + puts "Installation: gem install #{req_gem} -y" + exit + end +end + +$:.unshift(File.join(File.dirname(__FILE__), %w[.. lib])) + +require 'atom' \ No newline at end of file diff --git a/presidents/vendor/gems/ratom-0.6.2/lib/atom.rb b/presidents/vendor/gems/ratom-0.6.2/lib/atom.rb new file mode 100644 index 0000000..54ddba0 --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/lib/atom.rb @@ -0,0 +1,736 @@ +# Copyright (c) 2008 The Kaphan Foundation +# +# For licensing information see LICENSE.txt. +# +# Please visit http://www.peerworks.org/contact for further information. +# + +require 'forwardable' +require 'delegate' +require 'rubygems' +gem 'libxml-ruby', '>= 1.1.2' +require 'xml/libxml' +require 'atom/xml/parser.rb' + +module Atom # :nodoc: + NAMESPACE = 'http://www.w3.org/2005/Atom' unless defined?(NAMESPACE) + module Pub + NAMESPACE = 'http://www.w3.org/2007/app' + end + + # Raised when a Serialization Error occurs. + class SerializationError < StandardError; end + + # Provides support for reading and writing simple extensions as defined by the Atom Syndication Format. + # + # A Simple extension is an element from a non-atom namespace that has no attributes and only contains + # text content. It is interpreted as a key-value pair when the namespace and the localname of the + # extension make up the key. Since in XML you can have many instances of an element, the values are + # represented as an array of strings, so to manipulate the values manipulate the array returned by + # +[ns, localname]+. + # + module SimpleExtensions + attr_reader :simple_extensions + + # Gets a simple extension value for a given namespace and local name. + # + # +ns+:: The namespace. + # +localname+:: The local name of the extension element. + # + def [](ns, localname) + if !defined?(@simple_extensions) || @simple_extensions.nil? + @simple_extensions = {} + end + + key = "{#{ns},#{localname}}" + (@simple_extensions[key] or @simple_extensions[key] = ValueProxy.new) + end + + class ValueProxy < DelegateClass(Array) + attr_accessor :as_attribute + def initialize + super([]) + @as_attribute = false + end + end + end + + # Represents a Generator as defined by the Atom Syndication Format specification. + # + # The generator identifies an agent or engine used to a produce a feed. + # + # See also http://www.atomenabled.org/developers/syndication/atom-format-spec.php#element.generator + class Generator + include Xml::Parseable + + attr_accessor :name + attribute :uri, :version + + # Initialize a new Generator. + # + # +xml+:: An XML::Reader object. + # + def initialize(o = nil) + case o + when XML::Reader + @name = o.read_string.strip + parse(o, :once => true) + when Hash + o.each do |k, v| + self.send("#{k.to_s}=", v) + end + end + + yield(self) if block_given? + end + + def to_xml(nodeonly = true, name = 'generator', namespace = nil, namespace_map = Atom::Xml::NamespaceMap.new) + node = XML::Node.new("#{namespace_map.prefix(Atom::NAMESPACE, name)}") + node << @name if @name + node['uri'] = @uri if @uri + node['version'] = @version if @version + node + end + end + + # Represents a Category as defined by the Atom Syndication Format specification. + # + # + class Category + include Atom::Xml::Parseable + include SimpleExtensions + attribute :label, :scheme, :term + + def initialize(o = nil) + case o + when XML::Reader + parse(o, :once => true) + when Hash + o.each do |k, v| + self.send("#{k.to_s}=", v) + end + end + + yield(self) if block_given? + end + end + + # Represents a Person as defined by the Atom Syndication Format specification. + # + # A Person is used for all author and contributor attributes. + # + # See also http://www.atomenabled.org/developers/syndication/atom-format-spec.php#atomPersonConstruct + # + class Person + include Xml::Parseable + element :name, :uri, :email + + # Initialize a new person. + # + # +o+:: An XML::Reader object or a hash. Valid hash keys are +:name+, +:uri+ and +:email+. + def initialize(o = {}) + case o + when XML::Reader + o.read + parse(o) + when Hash + o.each do |k, v| + self.send("#{k.to_s}=", v) + end + end + end + + def inspect + " true) + end + end + + def to_xml(nodeonly = true, name = 'content', namespace = nil, namespace_map = Atom::Xml::NamespaceMap.new) + node = XML::Node.new("#{namespace_map.prefix(Atom::NAMESPACE, name)}") + node << self.to_s + node + end + end + + # Html content within an Atom document. + class Html < Base + attribute :type, :'xml:lang' + # Creates a new Content::Html. + # + # +o+:: An XML::Reader or a HTML string. + # + def initialize(o) + case o + when XML::Reader + super(o.read_string) + parse(o, :once => true) + when String + super(o) + @type = 'html' + end + end + + def to_xml(nodeonly = true, name = 'content', namespace = nil, namespace_map = Atom::Xml::NamespaceMap.new) # :nodoc: + require 'iconv' + # Convert from utf-8 to utf-8 as a way of making sure the content is UTF-8. + # + # This is a pretty crappy way to do it but if we don't check libxml just + # fails silently and outputs the content element without any content. At + # least checking here and raising an exception gives the caller a chance + # to try and recitfy the situation. + # + begin + node = XML::Node.new("#{namespace_map.prefix(Atom::NAMESPACE, name)}") + node << Iconv.iconv('utf-8', 'utf-8', self.to_s) + node['type'] = 'html' + node['xml:lang'] = self.xml_lang if self.xml_lang + node + rescue Iconv::IllegalSequence => e + raise SerializationError, "Content must be converted to UTF-8 before attempting to serialize to XML: #{e.message}." + end + end + end + + # XHTML content within an Atom document. + class Xhtml < Base + XHTML = 'http://www.w3.org/1999/xhtml' + attribute :type, :'xml:lang' + + def initialize(o) + case o + when String + super(o) + @type = "xhtml" + when XML::Reader + super("") + xml = o + parse(xml, :once => true) + starting_depth = xml.depth + + # Get the next element - should be a div according to the atom spec + while xml.read && xml.node_type != XML::Reader::TYPE_ELEMENT; end + + if xml.local_name == 'div' && xml.namespace_uri == XHTML + set_content(xml.read_inner_xml.strip.gsub(/\s+/, ' ')) + else + set_content(xml.read_outer_xml) + end + + # get back to the end of the element we were created with + while xml.read == 1 && xml.depth > starting_depth; end + end + end + + def to_xml(nodeonly = true, name = 'content', namespace = nil, namespace_map = Atom::Xml::NamespaceMap.new) + node = XML::Node.new("#{namespace_map.prefix(Atom::NAMESPACE, name)}") + node['type'] = 'xhtml' + node['xml:lang'] = self.xml_lang + + div = XML::Node.new('div') + div['xmlns'] = XHTML + + p = XML::Parser.string(to_s) + content = p.parse.root.copy(true) + div << content + + node << div + node + end + end + end + + # Represents a Source as defined by the Atom Syndication Format specification. + # + # See also http://www.atomenabled.org/developers/syndication/atom-format-spec.php#element.source + class Source + extend Forwardable + def_delegators :@links, :alternate, :self, :alternates, :enclosures + include Xml::Parseable + + element :id + element :updated, :class => Time, :content_only => true + element :title, :subtitle, :class => Content + elements :authors, :contributors, :class => Person + elements :links + + def initialize(o = nil) + @authors, @contributors, @links = [], [], Links.new + + case o + when XML::Reader + unless current_node_is?(o, 'source', NAMESPACE) + raise ArgumentError, "Invalid node for atom:source - #{o.name}(#{o.namespace})" + end + + o.read + parse(o) + when Hash + o.each do |k, v| + self.send("#{k.to_s}=", v) + end + end + + yield(self) if block_given? + end + end + + # Represents a Feed as defined by the Atom Syndication Format specification. + # + # A feed is the top level element in an atom document. It is a container for feed level + # metadata and for each entry in the feed. + # + # This supports pagination as defined in RFC 5005, see http://www.ietf.org/rfc/rfc5005.txt + # + # == Parsing + # + # A feed can be parsed using the Feed.load_feed method. This method accepts a String containing + # a valid atom document, an IO object, or an URI to a valid atom document. For example: + # + # # Using a File + # feed = Feed.load_feed(File.open("/path/to/myfeed.atom")) + # + # # Using a URL + # feed = Feed.load_feed(URI.parse("http://example.org/afeed.atom")) + # + # == Encoding + # + # A feed can be converted to XML using, the to_xml method that returns a valid atom document in a String. + # + # == Attributes + # + # A feed has the following attributes: + # + # +id+:: A unique id for the feed. + # +updated+:: The Time the feed was updated. + # +title+:: The title of the feed. + # +subtitle+:: The subtitle of the feed. + # +authors+:: An array of Atom::Person objects that are authors of this feed. + # +contributors+:: An array of Atom::Person objects that are contributors to this feed. + # +generator+:: A Atom::Generator. + # +categories+:: A list of Atom:Category objects for the feed. + # +rights+:: A string describing the rights associated with this feed. + # +entries+:: An array of Atom::Entry objects. + # +links+:: An array of Atom:Link objects. (This is actually an Atom::Links array which is an Array with some sugar). + # + # == References + # See also http://www.atomenabled.org/developers/syndication/atom-format-spec.php#element.feed + # + class Feed + include Xml::Parseable + include SimpleExtensions + extend Forwardable + def_delegators :@links, :alternate, :self, :via, :first_page, :last_page, :next_page, :prev_page + + loadable! + + namespace Atom::NAMESPACE + element :id, :rights + element :generator, :class => Generator + element :title, :subtitle, :class => Content + element :updated, :class => Time, :content_only => true + elements :links + elements :authors, :contributors, :class => Person + elements :categories + elements :entries + + # Initialize a Feed. + # + # This will also yield itself, so a feed can be constructed like this: + # + # feed = Feed.new do |feed| + # feed.title = "My Cool feed" + # end + # + # +o+:: An XML Reader or a Hash of attributes. + # + def initialize(o = {}) + @links, @entries, @authors, @contributors, @categories = Links.new, [], [], [], [] + + case o + when XML::Reader + if next_node_is?(o, 'feed', Atom::NAMESPACE) + o.read + parse(o) + else + raise ArgumentError, "XML document was missing atom:feed: #{o.read_outer_xml}" + end + when Hash + o.each do |k, v| + self.send("#{k.to_s}=", v) + end + end + + yield(self) if block_given? + end + + # Return true if this is the first feed in a paginated set. + def first? + links.self == links.first_page + end + + # Returns true if this is the last feed in a paginated set. + def last? + links.self == links.last_page + end + + # Reloads the feed by fetching the self uri. + def reload!(opts = {}) + if links.self + Feed.load_feed(URI.parse(links.self.href), opts) + end + end + + # Iterates over each entry in the feed. + # + # ==== Options + # + # +paginate+:: If true and the feed supports pagination this will fetch each page of the feed. + # +since+:: If a Time object is provided each_entry will iterate over all entries that were updated since that time. + # +user+:: User name for HTTP Basic Authentication. + # +pass+:: Password for HTTP Basic Authentication. + # + def each_entry(options = {}, &block) + if options[:paginate] + since_reached = false + feed = self + loop do + feed.entries.each do |entry| + if options[:since] && entry.updated && options[:since] > entry.updated + since_reached = true + break + else + block.call(entry) + end + end + + if since_reached || feed.next_page.nil? + break + else feed.next_page + feed = feed.next_page.fetch(options) + end + end + else + self.entries.each(&block) + end + end + end + + # Represents an Entry as defined by the Atom Syndication Format specification. + # + # An Entry represents an individual entry within a Feed. + # + # == Parsing + # + # An Entry can be parsed using the Entry.load_entry method. This method accepts a String containing + # a valid atom entry document, an IO object, or an URI to a valid atom entry document. For example: + # + # # Using a File + # entry = Entry.load_entry(File.open("/path/to/myfeedentry.atom")) + # + # # Using a URL + # Entry = Entry.load_entry(URI.parse("http://example.org/afeedentry.atom")) + # + # The document must contain a stand alone entry element as described in the Atom Syndication Format. + # + # == Encoding + # + # A Entry can be converted to XML using, the to_xml method that returns a valid atom entry document in a String. + # + # == Attributes + # + # An entry has the following attributes: + # + # +id+:: A unique id for the entry. + # +updated+:: The Time the entry was updated. + # +published+:: The Time the entry was published. + # +title+:: The title of the entry. + # +summary+:: A short textual summary of the item. + # +authors+:: An array of Atom::Person objects that are authors of this entry. + # +contributors+:: An array of Atom::Person objects that are contributors to this entry. + # +rights+:: A string describing the rights associated with this entry. + # +links+:: An array of Atom:Link objects. (This is actually an Atom::Links array which is an Array with some sugar). + # +source+:: Metadata of a feed that was the source of this item, for feed aggregators, etc. + # +categories+:: Array of Atom::Categories. + # +content+:: The content of the entry. This will be one of Atom::Content::Text, Atom::Content:Html or Atom::Content::Xhtml. + # + # == References + # See also http://www.atomenabled.org/developers/syndication/atom-format-spec.php#element.entry for more detailed + # definitions of the attributes. + # + class Entry + include Xml::Parseable + include SimpleExtensions + extend Forwardable + def_delegators :@links, :alternate, :self, :alternates, :enclosures, :edit_link, :via + + loadable! + namespace Atom::NAMESPACE + element :title, :id, :summary + element :updated, :published, :class => Time, :content_only => true + element :source, :class => Source + elements :links + elements :authors, :contributors, :class => Person + elements :categories, :class => Category + element :content, :class => Content + + # Initialize an Entry. + # + # This will also yield itself, so an Entry can be constructed like this: + # + # entry = Entry.new do |entry| + # entry.title = "My Cool entry" + # end + # + # +o+:: An XML Reader or a Hash of attributes. + # + def initialize(o = {}) + @links = Links.new + @authors = [] + @contributors = [] + @categories = [] + + case o + when XML::Reader + if current_node_is?(o, 'entry', Atom::NAMESPACE) || next_node_is?(o, 'entry', Atom::NAMESPACE) + o.read + parse(o) + else + raise ArgumentError, "Entry created with node other than atom:entry: #{o.name}" + end + when Hash + o.each do |k,v| + send("#{k.to_s}=", v) + end + end + + yield(self) if block_given? + end + + # Reload the Entry by fetching the self link. + def reload!(opts = {}) + if links.self + Entry.load_entry(URI.parse(links.self.href), opts) + end + end + end + + # Links provides an Array of Link objects belonging to either a Feed or an Entry. + # + # Some additional methods to get specific types of links are provided. + # + # == References + # + # See also http://www.atomenabled.org/developers/syndication/atom-format-spec.php#element.link + # for details on link selection and link attributes. + # + class Links < DelegateClass(Array) + include Enumerable + + # Initialize an empty Links array. + def initialize + super([]) + end + + # Get the alternate. + # + # Returns the first link with rel == 'alternate' that matches the given type. + def alternate(type = nil) + detect { |link| + (link.rel.nil? || link.rel == Link::Rel::ALTERNATE) && (type.nil? || type == link.type) && (link.hreflang.nil?) + } || detect { |link| + (link.rel.nil? || link.rel == Link::Rel::ALTERNATE) && (type.nil? || type == link.type) + } + end + + # Get all alternates. + def alternates + select { |link| link.rel.nil? || link.rel == Link::Rel::ALTERNATE } + end + + # Gets the self link. + def self + detect { |link| link.rel == Link::Rel::SELF } + end + + # Gets the via link. + def via + detect { |link| link.rel == Link::Rel::VIA } + end + + # Gets all links with rel == 'enclosure' + def enclosures + select { |link| link.rel == Link::Rel::ENCLOSURE } + end + + # Gets the link with rel == 'first'. + # + # This is defined as the first page in a pagination set. + def first_page + detect { |link| link.rel == Link::Rel::FIRST } + end + + # Gets the link with rel == 'last'. + # + # This is defined as the last page in a pagination set. + def last_page + detect { |link| link.rel == Link::Rel::LAST } + end + + # Gets the link with rel == 'next'. + # + # This is defined as the next page in a pagination set. + def next_page + detect { |link| link.rel == Link::Rel::NEXT } + end + + # Gets the link with rel == 'prev'. + # + # This is defined as the previous page in a pagination set. + def prev_page + detect { |link| link.rel == Link::Rel::PREVIOUS } + end + + # Gets the edit link. + # + # This is the link which can be used for posting updates to an item using the Atom Publishing Protocol. + # + def edit_link + detect { |link| link.rel == 'edit' } + end + end + + # Represents a link in an Atom document. + # + # A link defines a reference from an Atom document to a web resource. + # + # == References + # See http://www.atomenabled.org/developers/syndication/atom-format-spec.php#element.link for + # a description of the different types of links. + # + class Link + module Rel # :nodoc: + ALTERNATE = 'alternate' + SELF = 'self' + VIA = 'via' + ENCLOSURE = 'enclosure' + FIRST = 'first' + LAST = 'last' + PREVIOUS = 'prev' + NEXT = 'next' + end + + include Xml::Parseable + attribute :href, :rel, :type, :length, :hreflang + + # Create a link. + # + # +o+:: An XML::Reader containing a link element or a Hash of attributes. + # + def initialize(o) + case o + when XML::Reader + if current_node_is?(o, 'link') + parse(o, :once => true) + else + raise ArgumentError, "Link created with node other than atom:link: #{o.name}" + end + when Hash + [:href, :rel, :type, :length, :hreflang].each do |attr| + self.send("#{attr}=", o[attr]) + end + else + raise ArgumentError, "Don't know how to handle #{o}" + end + end + + remove_method :length= + def length=(v) + @length = v.to_i + end + + def to_s + self.href + end + + def ==(o) + o.respond_to?(:href) && o.href == self.href + end + + # This will fetch the URL referenced by the link. + # + # If the URL contains a valid feed, a Feed will be returned, otherwise, + # the body of the response will be returned. + # + # TODO: Handle redirects. + # + def fetch(options = {}) + begin + Atom::Feed.load_feed(URI.parse(self.href), options) + rescue ArgumentError + Net::HTTP.get_response(URI.parse(self.href)).body + end + end + + def inspect + "" + end + end +end diff --git a/presidents/vendor/gems/ratom-0.6.2/lib/atom/configuration.rb b/presidents/vendor/gems/ratom-0.6.2/lib/atom/configuration.rb new file mode 100644 index 0000000..3cf44f9 --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/lib/atom/configuration.rb @@ -0,0 +1,24 @@ +# Copyright (c) 2008 The Kaphan Foundation +# +# For licensing information see LICENSE.txt. +# +# Please visit http://www.peerworks.org/contact for further information. +# + +module Atom + class Configuration + def self.auth_hmac_enabled? + unless defined?(@auth_hmac_enabled) + begin + gem 'auth-hmac' + require 'auth-hmac' + @auth_hmac_enabled = true + rescue + @auth_hmac_enabled = false + end + else + @auth_hmac_enabled + end + end + end +end diff --git a/presidents/vendor/gems/ratom-0.6.2/lib/atom/pub.rb b/presidents/vendor/gems/ratom-0.6.2/lib/atom/pub.rb new file mode 100644 index 0000000..e0068de --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/lib/atom/pub.rb @@ -0,0 +1,250 @@ +# Copyright (c) 2008 The Kaphan Foundation +# +# For licensing information see LICENSE.txt. +# +# Please visit http://www.peerworks.org/contact for further information. +# + +require 'atom' +require 'atom/configuration' +require 'atom/xml/parser' +require 'atom/version' +require 'xml/libxml' +require 'uri' +require 'net/http' + +module Atom + module Pub + class NotSupported < StandardError; end + class ProtocolError < StandardError + attr_reader :response + def initialize(response) + @response = response + end + + def to_s + "Invalid response: #{@response}" + end + end + + class Service + include Atom::Xml::Parseable + namespace Atom::Pub::NAMESPACE + elements :workspaces + loadable! do |reader, message, severity, base, line| + if severity == XML::Reader::SEVERITY_ERROR + raise ArgumentError, "#{message} at #{line}" + end + end + + def initialize(xml = nil) + @workspaces = [] + + if xml + begin + if next_node_is?(xml, 'service', Atom::Pub::NAMESPACE) + xml.read + parse(xml) + else + raise ArgumentError, "XML document was missing atom:service" + end + ensure + xml.close + end + end + + yield(self) if block_given? + end + end + + class Categories < DelegateClass(Array) + include Atom::Xml::Parseable + elements :categories, :class => Atom::Category + attribute :href, :fixed + + def initialize(o) + super([]) + parse(o, :once => true) + o.read + parse(o) + end + + remove_method :categories + def categories; self; end + + # True true if fixed was 'yes' or 'true' + def fixed? + !self.fixed.nil? && %w(yes true).include?(self.fixed.downcase) + end + end + + class Workspace + include Atom::Xml::Parseable + element :title, :class => Content, :namespace => Atom::NAMESPACE + elements :collections + + def initialize(o = nil) + @collections = [] + + case o + when XML::Reader + o.read + parse(o) + when Hash + o.each do |k, v| + self.send("#{k}=".to_sym, v) + end + end + + yield(self) if block_given? + end + end + + class Collection + include Atom::Xml::Parseable + attribute :href + element :title, :class => Content, :namespace => Atom::NAMESPACE + element :categories, :class => Categories + elements :accepts, :content_only => true + + def initialize(o = nil) + @accepts = [] + case o + when XML::Reader + # do it once to get the attributes + parse(o, :once => true) + # now step into the element and the sub tree + o.read + parse(o) + when Hash + o.each do |k, v| + self.send("#{k}=", v) + end + end + + yield(self) if block_given? + end + + def feed(opts = {}) + if href + Atom::Feed.load_feed(URI.parse(href), opts) + end + end + + def publish(entry, opts = {}) + uri = URI.parse(href) + response = nil + Net::HTTP.start(uri.host, uri.port) do |http| + request = Net::HTTP::Post.new(uri.request_uri, headers) + if opts[:user] && opts[:pass] + request.basic_auth(opts[:user], opts[:pass]) + elsif opts[:hmac_access_id] && opts[:hmac_secret_key] + if Atom::Configuration.auth_hmac_enabled? + AuthHMAC.sign!(request, opts[:hmac_access_id], opts[:hmac_secret_key]) + else + raise ArgumentError, "AuthHMAC credentials provides by auth-hmac gem is not installed" + end + end + response = http.request(request, entry.to_xml.to_s) + end + + case response + when Net::HTTPCreated + published = begin + Atom::Entry.load_entry(response.body) + rescue ArgumentError + entry + end + + if response['Location'] + if published.edit_link + published.edit_link.href = response['Location'] + else + published.links << Atom::Link.new(:rel => 'edit', :href => response['Location']) + end + end + + published + else + raise Atom::Pub::ProtocolError, response + end + end + + private + def headers + {'Accept' => 'application/atom+xml', + 'Content-Type' => 'application/atom+xml;type=entry', + 'User-Agent' => "rAtom #{Atom::VERSION::STRING}" + } + end + end + end + + class Entry + def save!(opts = {}) + if edit = edit_link + uri = URI.parse(edit.href) + response = nil + Net::HTTP.start(uri.host, uri.port) do |http| + request = Net::HTTP::Put.new(uri.request_uri, headers) + if opts[:user] && opts[:pass] + request.basic_auth(opts[:user], opts[:pass]) + elsif opts[:hmac_access_id] && opts[:hmac_secret_key] + if Atom::Configuration.auth_hmac_enabled? + AuthHMAC.sign!(request, opts[:hmac_access_id], opts[:hmac_secret_key]) + else + raise ArgumentError, "AuthHMAC credentials provides by auth-hmac gem is not installed" + end + end + + response = http.request(request, self.to_xml) + end + + case response + when Net::HTTPSuccess + else + raise Atom::Pub::ProtocolError, response + end + else + raise Atom::Pub::NotSupported, "Entry does not have an edit link" + end + end + + def destroy!(opts = {}) + if edit = edit_link + uri = URI.parse(edit.href) + response = nil + Net::HTTP.start(uri.host, uri.port) do |http| + request = Net::HTTP::Delete.new(uri.request_uri, {'Accept' => 'application/atom+xml', 'User-Agent' => "rAtom #{Atom::VERSION::STRING}"}) + if opts[:user] && opts[:pass] + request.basic_auth(opts[:user], opts[:pass]) + elsif opts[:hmac_access_id] && opts[:hmac_secret_key] + if Atom::Configuration.auth_hmac_enabled? + AuthHMAC.sign!(request, opts[:hmac_access_id], opts[:hmac_secret_key]) + else + raise ArgumentError, "AuthHMAC credentials provides by auth-hmac gem is not installed" + end + end + + response = http.request(request) + end + + case response + when Net::HTTPSuccess + else + raise Atom::Pub::ProtocolError, response + end + else + raise Atom::Pub::NotSupported, "Entry does not have an edit link" + end + end + + private + def headers + {'Accept' => 'application/atom+xml', + 'Content-Type' => 'application/atom+xml;type=entry', + 'User-Agent' => "rAtom #{Atom::VERSION::STRING}" + } + end + end +end diff --git a/presidents/vendor/gems/ratom-0.6.2/lib/atom/version.rb b/presidents/vendor/gems/ratom-0.6.2/lib/atom/version.rb new file mode 100644 index 0000000..5a37fcb --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/lib/atom/version.rb @@ -0,0 +1,15 @@ +# Copyright (c) 2008 The Kaphan Foundation +# +# For licensing information see LICENSE.txt. +# +# Please visit http://www.peerworks.org/contact for further information. +# +module Atom #:nodoc: + module VERSION #:nodoc: + MAJOR = 0 + MINOR = 6 + TINY = 2 + + STRING = [MAJOR, MINOR, TINY].join('.') + end +end diff --git a/presidents/vendor/gems/ratom-0.6.2/lib/atom/xml/parser.rb b/presidents/vendor/gems/ratom-0.6.2/lib/atom/xml/parser.rb new file mode 100644 index 0000000..a94dbb8 --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/lib/atom/xml/parser.rb @@ -0,0 +1,374 @@ +# Copyright (c) 2008 The Kaphan Foundation +# +# For licensing information see LICENSE.txt. +# +# Please visit http://www.peerworks.org/contact for further information. +# +require 'net/http' +require 'time' + +# Just a couple methods form transforming strings +unless defined?(ActiveSupport) + class String # :nodoc: + def singularize + if self =~ /ies$/ + self.sub(/ies$/, 'y') + else + self.sub(/s$/, '') + end + end + + def demodulize + self.sub(/.*::/, '') + end + + def constantize + Object.module_eval("::#{self}", __FILE__, __LINE__) + end + end +end + +module Atom + class LoadError < StandardError + attr_reader :response + def initialize(response) + @response = response + end + + def to_s + "Atom::LoadError: #{response.code} #{response.message}" + end + end + + module Xml # :nodoc: + class NamespaceMap + def initialize(default = Atom::NAMESPACE) + @default = default + @i = 0 + @map = {} + end + + def prefix(ns, element) + if ns == @default + element + else + "#{get(ns)}:#{element}" + end + end + + def get(ns) + if ns == Atom::NAMESPACE + @map[ns] = "atom" + elsif ns == Atom::Pub::NAMESPACE + @map[ns] = "app" + else + @map[ns] or @map[ns] = "ns#{@i += 1}" + end + end + + def each(&block) + @map.each(&block) + end + end + + module Parseable # :nodoc: + def parse(xml, options = {}) + starting_depth = xml.depth + loop do + case xml.node_type + when XML::Reader::TYPE_ELEMENT + if element_specs.include?(xml.local_name) && (self.class.known_namespaces + [Atom::NAMESPACE, Atom::Pub::NAMESPACE]).include?(xml.namespace_uri) + element_specs[xml.local_name].parse(self, xml) + elsif attributes.any? + while (xml.move_to_next_attribute == 1) + if attributes.include?(xml.name) + # Support attribute names with namespace prefixes + self.send("#{xml.name.sub(/:/, '_')}=", xml.value) + elsif self.respond_to?(:simple_extensions) + self[xml.namespace_uri, xml.local_name].as_attribute = true + self[xml.namespace_uri, xml.local_name] << xml.value + end + end + elsif self.respond_to?(:simple_extensions) + self[xml.namespace_uri, xml.local_name] << xml.read_inner_xml + end + end + break unless !options[:once] && xml.next == 1 && xml.depth >= starting_depth + end + end + + def next_node_is?(xml, element, ns = nil) + # Get to the next element + while xml.next == 1 && xml.node_type != XML::Reader::TYPE_ELEMENT; end + current_node_is?(xml, element, ns) + end + + def current_node_is?(xml, element, ns = nil) + xml.node_type == XML::Reader::TYPE_ELEMENT && xml.local_name == element && (ns.nil? || ns == xml.namespace_uri) + end + + def Parseable.included(o) + o.class_eval do + def o.ordered_element_specs; @ordered_element_specs ||= []; end + def o.element_specs; @element_specs ||= {}; end + def o.attributes; @attributes ||= []; end + def element_specs; self.class.element_specs; end + def ordered_element_specs; self.class.ordered_element_specs; end + def attributes; self.class.attributes; end + def o.namespace(ns = @namespace); @namespace = ns; end + def o.add_extension_namespace(ns, url); self.extensions_namespaces[ns.to_s] = url; end + def o.extensions_namespaces; @extensions_namespaces ||= {} end + def o.known_namespaces; @known_namespaces ||= [] end + end + o.send(:extend, DeclarationMethods) + end + + def ==(o) + if self.object_id == o.object_id + true + elsif o.instance_of?(self.class) + self.class.element_specs.values.all? do |spec| + self.send(spec.attribute) == o.send(spec.attribute) + end + else + false + end + end + + # There doesn't seem to be a way to set namespaces using libxml-ruby, + # so ratom has to manage namespace to URI prefixing itself, which + # makes this method more complicated that it needs to be. + # + def to_xml(nodeonly = false, root_name = self.class.name.demodulize.downcase, namespace = nil, namespace_map = nil) + namespace_map = NamespaceMap.new(self.class.namespace) if namespace_map.nil? + node = XML::Node.new(root_name) + node['xmlns'] = self.class.namespace unless nodeonly || !self.class.respond_to?(:namespace) + self.class.extensions_namespaces.each do |ns_alias,uri| + node["xmlns:#{ns_alias}"] = uri + end + + self.class.ordered_element_specs.each do |spec| + if spec.single? + if attribute = self.send(spec.attribute) + if attribute.respond_to?(:to_xml) + node << attribute.to_xml(true, spec.name, spec.options[:namespace], namespace_map) + else + n = XML::Node.new(spec.name) + n['xmlns'] = spec.options[:namespace] if spec.options[:namespace] + n << (attribute.is_a?(Time)? attribute.xmlschema : attribute.to_s) + node << n + end + end + else + self.send(spec.attribute).each do |attribute| + if attribute.respond_to?(:to_xml) + node << attribute.to_xml(true, spec.name.singularize, nil, namespace_map) + else + n = XML::Node.new(spec.name.singularize) + n['xmlns'] = spec.options[:namespace] if spec.options[:namespace] + n << attribute.to_s + node << n + end + end + end + end + + self.class.attributes.each do |attribute| + if value = self.send("#{attribute.sub(/:/, '_')}") + if value != 0 + node[attribute] = value.to_s + end + end + end + + if self.respond_to?(:simple_extensions) && self.simple_extensions + self.simple_extensions.each do |name, value_array| + if name =~ /\{(.*),(.*)\}/ + value_array.each do |value| + if value_array.as_attribute + node["#{namespace_map.get($1)}:#{$2}"] = value + else + ext = XML::Node.new("#{namespace_map.get($1)}:#{$2}") + ext << value + node << ext + end + end + else + STDERR.print "Couldn't split #{name}" + end + end + end + + unless nodeonly + namespace_map.each do |ns, prefix| + node["xmlns:#{prefix}"] = ns + end + + doc = XML::Document.new + doc.root = node + doc.to_s + else + node + end + end + + module DeclarationMethods # :nodoc: + def element(*names) + options = {:type => :single} + options.merge!(names.pop) if names.last.is_a?(Hash) + + names.each do |name| + attr_accessor name.to_s.sub(/:/, '_').to_sym + ns, local_name = name.to_s[/(.*):(.*)/,1], $2 || name + self.known_namespaces << self.extensions_namespaces[ns] if ns + self.ordered_element_specs << self.element_specs[local_name.to_s] = ParseSpec.new(name, options) + end + end + + def elements(*names) + options = {:type => :collection} + options.merge!(names.pop) if names.last.is_a?(Hash) + + names.each do |name| + name_sym = name.to_s.sub(/:/, '_').to_sym + attr_writer name_sym + define_method name_sym do + ivar = :"@#{name_sym}" + self.instance_variable_set ivar, [] unless self.instance_variable_defined? ivar + self.instance_variable_get ivar + end + ns, local_name = name.to_s[/(.*):(.*)/,1], $2 || name + self.known_namespaces << self.extensions_namespaces[ns] if ns + self.ordered_element_specs << self.element_specs[local_name.to_s.singularize] = ParseSpec.new(name, options) + end + end + + def attribute(*names) + names.each do |name| + attr_accessor name.to_s.sub(/:/, '_').to_sym + self.attributes << name.to_s + end + end + + def loadable!(&error_handler) + class_name = self.name + (class << self; self; end).instance_eval do + + define_method "load_#{class_name.demodulize.downcase}" do |*args| + o = args.first + opts = args.size > 1 ? args.last : {} + + xml = + case o + when String + XML::Reader.string(o) + when IO + XML::Reader.io(o) + when URI + raise ArgumentError, "#{class_name}.load only handles http URIs" if o.scheme != 'http' + response = nil + Net::HTTP.start(o.host, o.port) do |http| + request = Net::HTTP::Get.new(o.request_uri) + if opts[:user] && opts[:pass] + request.basic_auth(opts[:user], opts[:pass]) + elsif opts[:hmac_access_id] && opts[:hmac_secret_key] + if Atom::Configuration.auth_hmac_enabled? + puts "Signing with HMAC" + AuthHMAC.sign!(request, opts[:hmac_access_id], opts[:hmac_secret_key]) + else + raise ArgumentError, "AuthHMAC credentials provides by auth-hmac gem is not installed" + end + end + response = http.request(request) + end + case response + when Net::HTTPSuccess + XML::Reader.string(response.body) + when nil + raise ArgumentError.new("nil response to #{o}") + else + raise Atom::LoadError.new(response) + end + else + raise ArgumentError, "#{class_name}.load needs String, URI or IO, got #{o.class.name}" + end + + if error_handler + XML::Error.set_handler(&error_handler) + else + XML::Error.set_handler do |reader, message, severity, base, line| + if severity == XML::Reader::SEVERITY_ERROR + raise ArgumentError, "#{message} at #{line} in #{o}" + end + end + end + + o = self.new(xml) + xml.close + o + end + end + end + + def parse(xml) + new(xml) + end + end + + # Contains the specification for how an element should be parsed. + # + # This should not need to be constructed directly, instead use the + # element and elements macros in the declaration of the class. + # + # See Parseable. + # + class ParseSpec # :nodoc: + attr_reader :name, :options, :attribute + + def initialize(name, options = {}) + @name = name.to_s + @attribute = name.to_s.sub(/:/, '_') + @options = options + end + + # Parses a chunk of XML according the specification. + # The data extracted will be assigned to the target object. + # + def parse(target, xml) + case options[:type] + when :single + target.send("#{@attribute}=".to_sym, build(target, xml)) + when :collection + collection = target.send(@attribute.to_s) + element = build(target, xml) + collection << element + end + end + + def single? + options[:type] == :single + end + + private + # Create a member + def build(target, xml) + if options[:class].is_a?(Class) + if options[:content_only] + options[:class].parse(xml.read_string) + else + options[:class].parse(xml) + end + elsif options[:type] == :single + xml.read_string + elsif options[:content_only] + xml.read_string + else + target_class = target.class.name + target_class = target_class.sub(/#{target_class.demodulize}$/, name.singularize.capitalize) + target_class.constantize.parse(xml) + end + end + end + end + end +end diff --git a/presidents/vendor/gems/ratom-0.6.2/setup.rb b/presidents/vendor/gems/ratom-0.6.2/setup.rb new file mode 100644 index 0000000..424a5f3 --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/setup.rb @@ -0,0 +1,1585 @@ +# +# setup.rb +# +# Copyright (c) 2000-2005 Minero Aoki +# +# This program is free software. +# You can distribute/modify this program under the terms of +# the GNU LGPL, Lesser General Public License version 2.1. +# + +unless Enumerable.method_defined?(:map) # Ruby 1.4.6 + module Enumerable + alias map collect + end +end + +unless File.respond_to?(:read) # Ruby 1.6 + def File.read(fname) + open(fname) {|f| + return f.read + } + end +end + +unless Errno.const_defined?(:ENOTEMPTY) # Windows? + module Errno + class ENOTEMPTY + # We do not raise this exception, implementation is not needed. + end + end +end + +def File.binread(fname) + open(fname, 'rb') {|f| + return f.read + } +end + +# for corrupted Windows' stat(2) +def File.dir?(path) + File.directory?((path[-1,1] == '/') ? path : path + '/') +end + + +class ConfigTable + + include Enumerable + + def initialize(rbconfig) + @rbconfig = rbconfig + @items = [] + @table = {} + # options + @install_prefix = nil + @config_opt = nil + @verbose = true + @no_harm = false + end + + attr_accessor :install_prefix + attr_accessor :config_opt + + attr_writer :verbose + + def verbose? + @verbose + end + + attr_writer :no_harm + + def no_harm? + @no_harm + end + + def [](key) + lookup(key).resolve(self) + end + + def []=(key, val) + lookup(key).set val + end + + def names + @items.map {|i| i.name } + end + + def each(&block) + @items.each(&block) + end + + def key?(name) + @table.key?(name) + end + + def lookup(name) + @table[name] or setup_rb_error "no such config item: #{name}" + end + + def add(item) + @items.push item + @table[item.name] = item + end + + def remove(name) + item = lookup(name) + @items.delete_if {|i| i.name == name } + @table.delete_if {|name, i| i.name == name } + item + end + + def load_script(path, inst = nil) + if File.file?(path) + MetaConfigEnvironment.new(self, inst).instance_eval File.read(path), path + end + end + + def savefile + '.config' + end + + def load_savefile + begin + File.foreach(savefile()) do |line| + k, v = *line.split(/=/, 2) + self[k] = v.strip + end + rescue Errno::ENOENT + setup_rb_error $!.message + "\n#{File.basename($0)} config first" + end + end + + def save + @items.each {|i| i.value } + File.open(savefile(), 'w') {|f| + @items.each do |i| + f.printf "%s=%s\n", i.name, i.value if i.value? and i.value + end + } + end + + def load_standard_entries + standard_entries(@rbconfig).each do |ent| + add ent + end + end + + def standard_entries(rbconfig) + c = rbconfig + + rubypath = File.join(c['bindir'], c['ruby_install_name'] + c['EXEEXT']) + + major = c['MAJOR'].to_i + minor = c['MINOR'].to_i + teeny = c['TEENY'].to_i + version = "#{major}.#{minor}" + + # ruby ver. >= 1.4.4? + newpath_p = ((major >= 2) or + ((major == 1) and + ((minor >= 5) or + ((minor == 4) and (teeny >= 4))))) + + if c['rubylibdir'] + # V > 1.6.3 + libruby = "#{c['prefix']}/lib/ruby" + librubyver = c['rubylibdir'] + librubyverarch = c['archdir'] + siteruby = c['sitedir'] + siterubyver = c['sitelibdir'] + siterubyverarch = c['sitearchdir'] + elsif newpath_p + # 1.4.4 <= V <= 1.6.3 + libruby = "#{c['prefix']}/lib/ruby" + librubyver = "#{c['prefix']}/lib/ruby/#{version}" + librubyverarch = "#{c['prefix']}/lib/ruby/#{version}/#{c['arch']}" + siteruby = c['sitedir'] + siterubyver = "$siteruby/#{version}" + siterubyverarch = "$siterubyver/#{c['arch']}" + else + # V < 1.4.4 + libruby = "#{c['prefix']}/lib/ruby" + librubyver = "#{c['prefix']}/lib/ruby/#{version}" + librubyverarch = "#{c['prefix']}/lib/ruby/#{version}/#{c['arch']}" + siteruby = "#{c['prefix']}/lib/ruby/#{version}/site_ruby" + siterubyver = siteruby + siterubyverarch = "$siterubyver/#{c['arch']}" + end + parameterize = lambda {|path| + path.sub(/\A#{Regexp.quote(c['prefix'])}/, '$prefix') + } + + if arg = c['configure_args'].split.detect {|arg| /--with-make-prog=/ =~ arg } + makeprog = arg.sub(/'/, '').split(/=/, 2)[1] + else + makeprog = 'make' + end + + [ + ExecItem.new('installdirs', 'std/site/home', + 'std: install under libruby; site: install under site_ruby; home: install under $HOME')\ + {|val, table| + case val + when 'std' + table['rbdir'] = '$librubyver' + table['sodir'] = '$librubyverarch' + when 'site' + table['rbdir'] = '$siterubyver' + table['sodir'] = '$siterubyverarch' + when 'home' + setup_rb_error '$HOME was not set' unless ENV['HOME'] + table['prefix'] = ENV['HOME'] + table['rbdir'] = '$libdir/ruby' + table['sodir'] = '$libdir/ruby' + end + }, + PathItem.new('prefix', 'path', c['prefix'], + 'path prefix of target environment'), + PathItem.new('bindir', 'path', parameterize.call(c['bindir']), + 'the directory for commands'), + PathItem.new('libdir', 'path', parameterize.call(c['libdir']), + 'the directory for libraries'), + PathItem.new('datadir', 'path', parameterize.call(c['datadir']), + 'the directory for shared data'), + PathItem.new('mandir', 'path', parameterize.call(c['mandir']), + 'the directory for man pages'), + PathItem.new('sysconfdir', 'path', parameterize.call(c['sysconfdir']), + 'the directory for system configuration files'), + PathItem.new('localstatedir', 'path', parameterize.call(c['localstatedir']), + 'the directory for local state data'), + PathItem.new('libruby', 'path', libruby, + 'the directory for ruby libraries'), + PathItem.new('librubyver', 'path', librubyver, + 'the directory for standard ruby libraries'), + PathItem.new('librubyverarch', 'path', librubyverarch, + 'the directory for standard ruby extensions'), + PathItem.new('siteruby', 'path', siteruby, + 'the directory for version-independent aux ruby libraries'), + PathItem.new('siterubyver', 'path', siterubyver, + 'the directory for aux ruby libraries'), + PathItem.new('siterubyverarch', 'path', siterubyverarch, + 'the directory for aux ruby binaries'), + PathItem.new('rbdir', 'path', '$siterubyver', + 'the directory for ruby scripts'), + PathItem.new('sodir', 'path', '$siterubyverarch', + 'the directory for ruby extentions'), + PathItem.new('rubypath', 'path', rubypath, + 'the path to set to #! line'), + ProgramItem.new('rubyprog', 'name', rubypath, + 'the ruby program using for installation'), + ProgramItem.new('makeprog', 'name', makeprog, + 'the make program to compile ruby extentions'), + SelectItem.new('shebang', 'all/ruby/never', 'ruby', + 'shebang line (#!) editing mode'), + BoolItem.new('without-ext', 'yes/no', 'no', + 'does not compile/install ruby extentions') + ] + end + private :standard_entries + + def load_multipackage_entries + multipackage_entries().each do |ent| + add ent + end + end + + def multipackage_entries + [ + PackageSelectionItem.new('with', 'name,name...', '', 'ALL', + 'package names that you want to install'), + PackageSelectionItem.new('without', 'name,name...', '', 'NONE', + 'package names that you do not want to install') + ] + end + private :multipackage_entries + + ALIASES = { + 'std-ruby' => 'librubyver', + 'stdruby' => 'librubyver', + 'rubylibdir' => 'librubyver', + 'archdir' => 'librubyverarch', + 'site-ruby-common' => 'siteruby', # For backward compatibility + 'site-ruby' => 'siterubyver', # For backward compatibility + 'bin-dir' => 'bindir', + 'bin-dir' => 'bindir', + 'rb-dir' => 'rbdir', + 'so-dir' => 'sodir', + 'data-dir' => 'datadir', + 'ruby-path' => 'rubypath', + 'ruby-prog' => 'rubyprog', + 'ruby' => 'rubyprog', + 'make-prog' => 'makeprog', + 'make' => 'makeprog' + } + + def fixup + ALIASES.each do |ali, name| + @table[ali] = @table[name] + end + @items.freeze + @table.freeze + @options_re = /\A--(#{@table.keys.join('|')})(?:=(.*))?\z/ + end + + def parse_opt(opt) + m = @options_re.match(opt) or setup_rb_error "config: unknown option #{opt}" + m.to_a[1,2] + end + + def dllext + @rbconfig['DLEXT'] + end + + def value_config?(name) + lookup(name).value? + end + + class Item + def initialize(name, template, default, desc) + @name = name.freeze + @template = template + @value = default + @default = default + @description = desc + end + + attr_reader :name + attr_reader :description + + attr_accessor :default + alias help_default default + + def help_opt + "--#{@name}=#{@template}" + end + + def value? + true + end + + def value + @value + end + + def resolve(table) + @value.gsub(%r<\$([^/]+)>) { table[$1] } + end + + def set(val) + @value = check(val) + end + + private + + def check(val) + setup_rb_error "config: --#{name} requires argument" unless val + val + end + end + + class BoolItem < Item + def config_type + 'bool' + end + + def help_opt + "--#{@name}" + end + + private + + def check(val) + return 'yes' unless val + case val + when /\Ay(es)?\z/i, /\At(rue)?\z/i then 'yes' + when /\An(o)?\z/i, /\Af(alse)\z/i then 'no' + else + setup_rb_error "config: --#{@name} accepts only yes/no for argument" + end + end + end + + class PathItem < Item + def config_type + 'path' + end + + private + + def check(path) + setup_rb_error "config: --#{@name} requires argument" unless path + path[0,1] == '$' ? path : File.expand_path(path) + end + end + + class ProgramItem < Item + def config_type + 'program' + end + end + + class SelectItem < Item + def initialize(name, selection, default, desc) + super + @ok = selection.split('/') + end + + def config_type + 'select' + end + + private + + def check(val) + unless @ok.include?(val.strip) + setup_rb_error "config: use --#{@name}=#{@template} (#{val})" + end + val.strip + end + end + + class ExecItem < Item + def initialize(name, selection, desc, &block) + super name, selection, nil, desc + @ok = selection.split('/') + @action = block + end + + def config_type + 'exec' + end + + def value? + false + end + + def resolve(table) + setup_rb_error "$#{name()} wrongly used as option value" + end + + undef set + + def evaluate(val, table) + v = val.strip.downcase + unless @ok.include?(v) + setup_rb_error "invalid option --#{@name}=#{val} (use #{@template})" + end + @action.call v, table + end + end + + class PackageSelectionItem < Item + def initialize(name, template, default, help_default, desc) + super name, template, default, desc + @help_default = help_default + end + + attr_reader :help_default + + def config_type + 'package' + end + + private + + def check(val) + unless File.dir?("packages/#{val}") + setup_rb_error "config: no such package: #{val}" + end + val + end + end + + class MetaConfigEnvironment + def initialize(config, installer) + @config = config + @installer = installer + end + + def config_names + @config.names + end + + def config?(name) + @config.key?(name) + end + + def bool_config?(name) + @config.lookup(name).config_type == 'bool' + end + + def path_config?(name) + @config.lookup(name).config_type == 'path' + end + + def value_config?(name) + @config.lookup(name).config_type != 'exec' + end + + def add_config(item) + @config.add item + end + + def add_bool_config(name, default, desc) + @config.add BoolItem.new(name, 'yes/no', default ? 'yes' : 'no', desc) + end + + def add_path_config(name, default, desc) + @config.add PathItem.new(name, 'path', default, desc) + end + + def set_config_default(name, default) + @config.lookup(name).default = default + end + + def remove_config(name) + @config.remove(name) + end + + # For only multipackage + def packages + raise '[setup.rb fatal] multi-package metaconfig API packages() called for single-package; contact application package vendor' unless @installer + @installer.packages + end + + # For only multipackage + def declare_packages(list) + raise '[setup.rb fatal] multi-package metaconfig API declare_packages() called for single-package; contact application package vendor' unless @installer + @installer.packages = list + end + end + +end # class ConfigTable + + +# This module requires: #verbose?, #no_harm? +module FileOperations + + def mkdir_p(dirname, prefix = nil) + dirname = prefix + File.expand_path(dirname) if prefix + $stderr.puts "mkdir -p #{dirname}" if verbose? + return if no_harm? + + # Does not check '/', it's too abnormal. + dirs = File.expand_path(dirname).split(%r<(?=/)>) + if /\A[a-z]:\z/i =~ dirs[0] + disk = dirs.shift + dirs[0] = disk + dirs[0] + end + dirs.each_index do |idx| + path = dirs[0..idx].join('') + Dir.mkdir path unless File.dir?(path) + end + end + + def rm_f(path) + $stderr.puts "rm -f #{path}" if verbose? + return if no_harm? + force_remove_file path + end + + def rm_rf(path) + $stderr.puts "rm -rf #{path}" if verbose? + return if no_harm? + remove_tree path + end + + def remove_tree(path) + if File.symlink?(path) + remove_file path + elsif File.dir?(path) + remove_tree0 path + else + force_remove_file path + end + end + + def remove_tree0(path) + Dir.foreach(path) do |ent| + next if ent == '.' + next if ent == '..' + entpath = "#{path}/#{ent}" + if File.symlink?(entpath) + remove_file entpath + elsif File.dir?(entpath) + remove_tree0 entpath + else + force_remove_file entpath + end + end + begin + Dir.rmdir path + rescue Errno::ENOTEMPTY + # directory may not be empty + end + end + + def move_file(src, dest) + force_remove_file dest + begin + File.rename src, dest + rescue + File.open(dest, 'wb') {|f| + f.write File.binread(src) + } + File.chmod File.stat(src).mode, dest + File.unlink src + end + end + + def force_remove_file(path) + begin + remove_file path + rescue + end + end + + def remove_file(path) + File.chmod 0777, path + File.unlink path + end + + def install(from, dest, mode, prefix = nil) + $stderr.puts "install #{from} #{dest}" if verbose? + return if no_harm? + + realdest = prefix ? prefix + File.expand_path(dest) : dest + realdest = File.join(realdest, File.basename(from)) if File.dir?(realdest) + str = File.binread(from) + if diff?(str, realdest) + verbose_off { + rm_f realdest if File.exist?(realdest) + } + File.open(realdest, 'wb') {|f| + f.write str + } + File.chmod mode, realdest + + File.open("#{objdir_root()}/InstalledFiles", 'a') {|f| + if prefix + f.puts realdest.sub(prefix, '') + else + f.puts realdest + end + } + end + end + + def diff?(new_content, path) + return true unless File.exist?(path) + new_content != File.binread(path) + end + + def command(*args) + $stderr.puts args.join(' ') if verbose? + system(*args) or raise RuntimeError, + "system(#{args.map{|a| a.inspect }.join(' ')}) failed" + end + + def ruby(*args) + command config('rubyprog'), *args + end + + def make(task = nil) + command(*[config('makeprog'), task].compact) + end + + def extdir?(dir) + File.exist?("#{dir}/MANIFEST") or File.exist?("#{dir}/extconf.rb") + end + + def files_of(dir) + Dir.open(dir) {|d| + return d.select {|ent| File.file?("#{dir}/#{ent}") } + } + end + + DIR_REJECT = %w( . .. CVS SCCS RCS CVS.adm .svn ) + + def directories_of(dir) + Dir.open(dir) {|d| + return d.select {|ent| File.dir?("#{dir}/#{ent}") } - DIR_REJECT + } + end + +end + + +# This module requires: #srcdir_root, #objdir_root, #relpath +module HookScriptAPI + + def get_config(key) + @config[key] + end + + alias config get_config + + # obsolete: use metaconfig to change configuration + def set_config(key, val) + @config[key] = val + end + + # + # srcdir/objdir (works only in the package directory) + # + + def curr_srcdir + "#{srcdir_root()}/#{relpath()}" + end + + def curr_objdir + "#{objdir_root()}/#{relpath()}" + end + + def srcfile(path) + "#{curr_srcdir()}/#{path}" + end + + def srcexist?(path) + File.exist?(srcfile(path)) + end + + def srcdirectory?(path) + File.dir?(srcfile(path)) + end + + def srcfile?(path) + File.file?(srcfile(path)) + end + + def srcentries(path = '.') + Dir.open("#{curr_srcdir()}/#{path}") {|d| + return d.to_a - %w(. ..) + } + end + + def srcfiles(path = '.') + srcentries(path).select {|fname| + File.file?(File.join(curr_srcdir(), path, fname)) + } + end + + def srcdirectories(path = '.') + srcentries(path).select {|fname| + File.dir?(File.join(curr_srcdir(), path, fname)) + } + end + +end + + +class ToplevelInstaller + + Version = '3.4.1' + Copyright = 'Copyright (c) 2000-2005 Minero Aoki' + + TASKS = [ + [ 'all', 'do config, setup, then install' ], + [ 'config', 'saves your configurations' ], + [ 'show', 'shows current configuration' ], + [ 'setup', 'compiles ruby extentions and others' ], + [ 'install', 'installs files' ], + [ 'test', 'run all tests in test/' ], + [ 'clean', "does `make clean' for each extention" ], + [ 'distclean',"does `make distclean' for each extention" ] + ] + + def ToplevelInstaller.invoke + config = ConfigTable.new(load_rbconfig()) + config.load_standard_entries + config.load_multipackage_entries if multipackage? + config.fixup + klass = (multipackage?() ? ToplevelInstallerMulti : ToplevelInstaller) + klass.new(File.dirname($0), config).invoke + end + + def ToplevelInstaller.multipackage? + File.dir?(File.dirname($0) + '/packages') + end + + def ToplevelInstaller.load_rbconfig + if arg = ARGV.detect {|arg| /\A--rbconfig=/ =~ arg } + ARGV.delete(arg) + load File.expand_path(arg.split(/=/, 2)[1]) + $".push 'rbconfig.rb' + else + require 'rbconfig' + end + ::Config::CONFIG + end + + def initialize(ardir_root, config) + @ardir = File.expand_path(ardir_root) + @config = config + # cache + @valid_task_re = nil + end + + def config(key) + @config[key] + end + + def inspect + "#<#{self.class} #{__id__()}>" + end + + def invoke + run_metaconfigs + case task = parsearg_global() + when nil, 'all' + parsearg_config + init_installers + exec_config + exec_setup + exec_install + else + case task + when 'config', 'test' + ; + when 'clean', 'distclean' + @config.load_savefile if File.exist?(@config.savefile) + else + @config.load_savefile + end + __send__ "parsearg_#{task}" + init_installers + __send__ "exec_#{task}" + end + end + + def run_metaconfigs + @config.load_script "#{@ardir}/metaconfig" + end + + def init_installers + @installer = Installer.new(@config, @ardir, File.expand_path('.')) + end + + # + # Hook Script API bases + # + + def srcdir_root + @ardir + end + + def objdir_root + '.' + end + + def relpath + '.' + end + + # + # Option Parsing + # + + def parsearg_global + while arg = ARGV.shift + case arg + when /\A\w+\z/ + setup_rb_error "invalid task: #{arg}" unless valid_task?(arg) + return arg + when '-q', '--quiet' + @config.verbose = false + when '--verbose' + @config.verbose = true + when '--help' + print_usage $stdout + exit 0 + when '--version' + puts "#{File.basename($0)} version #{Version}" + exit 0 + when '--copyright' + puts Copyright + exit 0 + else + setup_rb_error "unknown global option '#{arg}'" + end + end + nil + end + + def valid_task?(t) + valid_task_re() =~ t + end + + def valid_task_re + @valid_task_re ||= /\A(?:#{TASKS.map {|task,desc| task }.join('|')})\z/ + end + + def parsearg_no_options + unless ARGV.empty? + task = caller(0).first.slice(%r<`parsearg_(\w+)'>, 1) + setup_rb_error "#{task}: unknown options: #{ARGV.join(' ')}" + end + end + + alias parsearg_show parsearg_no_options + alias parsearg_setup parsearg_no_options + alias parsearg_test parsearg_no_options + alias parsearg_clean parsearg_no_options + alias parsearg_distclean parsearg_no_options + + def parsearg_config + evalopt = [] + set = [] + @config.config_opt = [] + while i = ARGV.shift + if /\A--?\z/ =~ i + @config.config_opt = ARGV.dup + break + end + name, value = *@config.parse_opt(i) + if @config.value_config?(name) + @config[name] = value + else + evalopt.push [name, value] + end + set.push name + end + evalopt.each do |name, value| + @config.lookup(name).evaluate value, @config + end + # Check if configuration is valid + set.each do |n| + @config[n] if @config.value_config?(n) + end + end + + def parsearg_install + @config.no_harm = false + @config.install_prefix = '' + while a = ARGV.shift + case a + when '--no-harm' + @config.no_harm = true + when /\A--prefix=/ + path = a.split(/=/, 2)[1] + path = File.expand_path(path) unless path[0,1] == '/' + @config.install_prefix = path + else + setup_rb_error "install: unknown option #{a}" + end + end + end + + def print_usage(out) + out.puts 'Typical Installation Procedure:' + out.puts " $ ruby #{File.basename $0} config" + out.puts " $ ruby #{File.basename $0} setup" + out.puts " # ruby #{File.basename $0} install (may require root privilege)" + out.puts + out.puts 'Detailed Usage:' + out.puts " ruby #{File.basename $0} " + out.puts " ruby #{File.basename $0} [] []" + + fmt = " %-24s %s\n" + out.puts + out.puts 'Global options:' + out.printf fmt, '-q,--quiet', 'suppress message outputs' + out.printf fmt, ' --verbose', 'output messages verbosely' + out.printf fmt, ' --help', 'print this message' + out.printf fmt, ' --version', 'print version and quit' + out.printf fmt, ' --copyright', 'print copyright and quit' + out.puts + out.puts 'Tasks:' + TASKS.each do |name, desc| + out.printf fmt, name, desc + end + + fmt = " %-24s %s [%s]\n" + out.puts + out.puts 'Options for CONFIG or ALL:' + @config.each do |item| + out.printf fmt, item.help_opt, item.description, item.help_default + end + out.printf fmt, '--rbconfig=path', 'rbconfig.rb to load',"running ruby's" + out.puts + out.puts 'Options for INSTALL:' + out.printf fmt, '--no-harm', 'only display what to do if given', 'off' + out.printf fmt, '--prefix=path', 'install path prefix', '' + out.puts + end + + # + # Task Handlers + # + + def exec_config + @installer.exec_config + @config.save # must be final + end + + def exec_setup + @installer.exec_setup + end + + def exec_install + @installer.exec_install + end + + def exec_test + @installer.exec_test + end + + def exec_show + @config.each do |i| + printf "%-20s %s\n", i.name, i.value if i.value? + end + end + + def exec_clean + @installer.exec_clean + end + + def exec_distclean + @installer.exec_distclean + end + +end # class ToplevelInstaller + + +class ToplevelInstallerMulti < ToplevelInstaller + + include FileOperations + + def initialize(ardir_root, config) + super + @packages = directories_of("#{@ardir}/packages") + raise 'no package exists' if @packages.empty? + @root_installer = Installer.new(@config, @ardir, File.expand_path('.')) + end + + def run_metaconfigs + @config.load_script "#{@ardir}/metaconfig", self + @packages.each do |name| + @config.load_script "#{@ardir}/packages/#{name}/metaconfig" + end + end + + attr_reader :packages + + def packages=(list) + raise 'package list is empty' if list.empty? + list.each do |name| + raise "directory packages/#{name} does not exist"\ + unless File.dir?("#{@ardir}/packages/#{name}") + end + @packages = list + end + + def init_installers + @installers = {} + @packages.each do |pack| + @installers[pack] = Installer.new(@config, + "#{@ardir}/packages/#{pack}", + "packages/#{pack}") + end + with = extract_selection(config('with')) + without = extract_selection(config('without')) + @selected = @installers.keys.select {|name| + (with.empty? or with.include?(name)) \ + and not without.include?(name) + } + end + + def extract_selection(list) + a = list.split(/,/) + a.each do |name| + setup_rb_error "no such package: #{name}" unless @installers.key?(name) + end + a + end + + def print_usage(f) + super + f.puts 'Inluded packages:' + f.puts ' ' + @packages.sort.join(' ') + f.puts + end + + # + # Task Handlers + # + + def exec_config + run_hook 'pre-config' + each_selected_installers {|inst| inst.exec_config } + run_hook 'post-config' + @config.save # must be final + end + + def exec_setup + run_hook 'pre-setup' + each_selected_installers {|inst| inst.exec_setup } + run_hook 'post-setup' + end + + def exec_install + run_hook 'pre-install' + each_selected_installers {|inst| inst.exec_install } + run_hook 'post-install' + end + + def exec_test + run_hook 'pre-test' + each_selected_installers {|inst| inst.exec_test } + run_hook 'post-test' + end + + def exec_clean + rm_f @config.savefile + run_hook 'pre-clean' + each_selected_installers {|inst| inst.exec_clean } + run_hook 'post-clean' + end + + def exec_distclean + rm_f @config.savefile + run_hook 'pre-distclean' + each_selected_installers {|inst| inst.exec_distclean } + run_hook 'post-distclean' + end + + # + # lib + # + + def each_selected_installers + Dir.mkdir 'packages' unless File.dir?('packages') + @selected.each do |pack| + $stderr.puts "Processing the package `#{pack}' ..." if verbose? + Dir.mkdir "packages/#{pack}" unless File.dir?("packages/#{pack}") + Dir.chdir "packages/#{pack}" + yield @installers[pack] + Dir.chdir '../..' + end + end + + def run_hook(id) + @root_installer.run_hook id + end + + # module FileOperations requires this + def verbose? + @config.verbose? + end + + # module FileOperations requires this + def no_harm? + @config.no_harm? + end + +end # class ToplevelInstallerMulti + + +class Installer + + FILETYPES = %w( bin lib ext data conf man ) + + include FileOperations + include HookScriptAPI + + def initialize(config, srcroot, objroot) + @config = config + @srcdir = File.expand_path(srcroot) + @objdir = File.expand_path(objroot) + @currdir = '.' + end + + def inspect + "#<#{self.class} #{File.basename(@srcdir)}>" + end + + def noop(rel) + end + + # + # Hook Script API base methods + # + + def srcdir_root + @srcdir + end + + def objdir_root + @objdir + end + + def relpath + @currdir + end + + # + # Config Access + # + + # module FileOperations requires this + def verbose? + @config.verbose? + end + + # module FileOperations requires this + def no_harm? + @config.no_harm? + end + + def verbose_off + begin + save, @config.verbose = @config.verbose?, false + yield + ensure + @config.verbose = save + end + end + + # + # TASK config + # + + def exec_config + exec_task_traverse 'config' + end + + alias config_dir_bin noop + alias config_dir_lib noop + + def config_dir_ext(rel) + extconf if extdir?(curr_srcdir()) + end + + alias config_dir_data noop + alias config_dir_conf noop + alias config_dir_man noop + + def extconf + ruby "#{curr_srcdir()}/extconf.rb", *@config.config_opt + end + + # + # TASK setup + # + + def exec_setup + exec_task_traverse 'setup' + end + + def setup_dir_bin(rel) + files_of(curr_srcdir()).each do |fname| + update_shebang_line "#{curr_srcdir()}/#{fname}" + end + end + + alias setup_dir_lib noop + + def setup_dir_ext(rel) + make if extdir?(curr_srcdir()) + end + + alias setup_dir_data noop + alias setup_dir_conf noop + alias setup_dir_man noop + + def update_shebang_line(path) + return if no_harm? + return if config('shebang') == 'never' + old = Shebang.load(path) + if old + $stderr.puts "warning: #{path}: Shebang line includes too many args. It is not portable and your program may not work." if old.args.size > 1 + new = new_shebang(old) + return if new.to_s == old.to_s + else + return unless config('shebang') == 'all' + new = Shebang.new(config('rubypath')) + end + $stderr.puts "updating shebang: #{File.basename(path)}" if verbose? + open_atomic_writer(path) {|output| + File.open(path, 'rb') {|f| + f.gets if old # discard + output.puts new.to_s + output.print f.read + } + } + end + + def new_shebang(old) + if /\Aruby/ =~ File.basename(old.cmd) + Shebang.new(config('rubypath'), old.args) + elsif File.basename(old.cmd) == 'env' and old.args.first == 'ruby' + Shebang.new(config('rubypath'), old.args[1..-1]) + else + return old unless config('shebang') == 'all' + Shebang.new(config('rubypath')) + end + end + + def open_atomic_writer(path, &block) + tmpfile = File.basename(path) + '.tmp' + begin + File.open(tmpfile, 'wb', &block) + File.rename tmpfile, File.basename(path) + ensure + File.unlink tmpfile if File.exist?(tmpfile) + end + end + + class Shebang + def Shebang.load(path) + line = nil + File.open(path) {|f| + line = f.gets + } + return nil unless /\A#!/ =~ line + parse(line) + end + + def Shebang.parse(line) + cmd, *args = *line.strip.sub(/\A\#!/, '').split(' ') + new(cmd, args) + end + + def initialize(cmd, args = []) + @cmd = cmd + @args = args + end + + attr_reader :cmd + attr_reader :args + + def to_s + "#! #{@cmd}" + (@args.empty? ? '' : " #{@args.join(' ')}") + end + end + + # + # TASK install + # + + def exec_install + rm_f 'InstalledFiles' + exec_task_traverse 'install' + end + + def install_dir_bin(rel) + install_files targetfiles(), "#{config('bindir')}/#{rel}", 0755 + end + + def install_dir_lib(rel) + install_files libfiles(), "#{config('rbdir')}/#{rel}", 0644 + end + + def install_dir_ext(rel) + return unless extdir?(curr_srcdir()) + install_files rubyextentions('.'), + "#{config('sodir')}/#{File.dirname(rel)}", + 0555 + end + + def install_dir_data(rel) + install_files targetfiles(), "#{config('datadir')}/#{rel}", 0644 + end + + def install_dir_conf(rel) + # FIXME: should not remove current config files + # (rename previous file to .old/.org) + install_files targetfiles(), "#{config('sysconfdir')}/#{rel}", 0644 + end + + def install_dir_man(rel) + install_files targetfiles(), "#{config('mandir')}/#{rel}", 0644 + end + + def install_files(list, dest, mode) + mkdir_p dest, @config.install_prefix + list.each do |fname| + install fname, dest, mode, @config.install_prefix + end + end + + def libfiles + glob_reject(%w(*.y *.output), targetfiles()) + end + + def rubyextentions(dir) + ents = glob_select("*.#{@config.dllext}", targetfiles()) + if ents.empty? + setup_rb_error "no ruby extention exists: 'ruby #{$0} setup' first" + end + ents + end + + def targetfiles + mapdir(existfiles() - hookfiles()) + end + + def mapdir(ents) + ents.map {|ent| + if File.exist?(ent) + then ent # objdir + else "#{curr_srcdir()}/#{ent}" # srcdir + end + } + end + + # picked up many entries from cvs-1.11.1/src/ignore.c + JUNK_FILES = %w( + core RCSLOG tags TAGS .make.state + .nse_depinfo #* .#* cvslog.* ,* .del-* *.olb + *~ *.old *.bak *.BAK *.orig *.rej _$* *$ + + *.org *.in .* + ) + + def existfiles + glob_reject(JUNK_FILES, (files_of(curr_srcdir()) | files_of('.'))) + end + + def hookfiles + %w( pre-%s post-%s pre-%s.rb post-%s.rb ).map {|fmt| + %w( config setup install clean ).map {|t| sprintf(fmt, t) } + }.flatten + end + + def glob_select(pat, ents) + re = globs2re([pat]) + ents.select {|ent| re =~ ent } + end + + def glob_reject(pats, ents) + re = globs2re(pats) + ents.reject {|ent| re =~ ent } + end + + GLOB2REGEX = { + '.' => '\.', + '$' => '\$', + '#' => '\#', + '*' => '.*' + } + + def globs2re(pats) + /\A(?:#{ + pats.map {|pat| pat.gsub(/[\.\$\#\*]/) {|ch| GLOB2REGEX[ch] } }.join('|') + })\z/ + end + + # + # TASK test + # + + TESTDIR = 'test' + + def exec_test + unless File.directory?('test') + $stderr.puts 'no test in this package' if verbose? + return + end + $stderr.puts 'Running tests...' if verbose? + begin + require 'test/unit' + rescue LoadError + setup_rb_error 'test/unit cannot loaded. You need Ruby 1.8 or later to invoke this task.' + end + runner = Test::Unit::AutoRunner.new(true) + runner.to_run << TESTDIR + runner.run + end + + # + # TASK clean + # + + def exec_clean + exec_task_traverse 'clean' + rm_f @config.savefile + rm_f 'InstalledFiles' + end + + alias clean_dir_bin noop + alias clean_dir_lib noop + alias clean_dir_data noop + alias clean_dir_conf noop + alias clean_dir_man noop + + def clean_dir_ext(rel) + return unless extdir?(curr_srcdir()) + make 'clean' if File.file?('Makefile') + end + + # + # TASK distclean + # + + def exec_distclean + exec_task_traverse 'distclean' + rm_f @config.savefile + rm_f 'InstalledFiles' + end + + alias distclean_dir_bin noop + alias distclean_dir_lib noop + + def distclean_dir_ext(rel) + return unless extdir?(curr_srcdir()) + make 'distclean' if File.file?('Makefile') + end + + alias distclean_dir_data noop + alias distclean_dir_conf noop + alias distclean_dir_man noop + + # + # Traversing + # + + def exec_task_traverse(task) + run_hook "pre-#{task}" + FILETYPES.each do |type| + if type == 'ext' and config('without-ext') == 'yes' + $stderr.puts 'skipping ext/* by user option' if verbose? + next + end + traverse task, type, "#{task}_dir_#{type}" + end + run_hook "post-#{task}" + end + + def traverse(task, rel, mid) + dive_into(rel) { + run_hook "pre-#{task}" + __send__ mid, rel.sub(%r[\A.*?(?:/|\z)], '') + directories_of(curr_srcdir()).each do |d| + traverse task, "#{rel}/#{d}", mid + end + run_hook "post-#{task}" + } + end + + def dive_into(rel) + return unless File.dir?("#{@srcdir}/#{rel}") + + dir = File.basename(rel) + Dir.mkdir dir unless File.dir?(dir) + prevdir = Dir.pwd + Dir.chdir dir + $stderr.puts '---> ' + rel if verbose? + @currdir = rel + yield + Dir.chdir prevdir + $stderr.puts '<--- ' + rel if verbose? + @currdir = File.dirname(rel) + end + + def run_hook(id) + path = [ "#{curr_srcdir()}/#{id}", + "#{curr_srcdir()}/#{id}.rb" ].detect {|cand| File.file?(cand) } + return unless path + begin + instance_eval File.read(path), path, 1 + rescue + raise if $DEBUG + setup_rb_error "hook #{path} failed:\n" + $!.message + end + end + +end # class Installer + + +class SetupError < StandardError; end + +def setup_rb_error(msg) + raise SetupError, msg +end + +if $0 == __FILE__ + begin + ToplevelInstaller.invoke + rescue SetupError + raise if $DEBUG + $stderr.puts $!.message + $stderr.puts "Try 'ruby #{$0} --help' for detailed usage." + exit 1 + end +end diff --git a/presidents/vendor/gems/ratom-0.6.2/spec/app/member_entry.atom b/presidents/vendor/gems/ratom-0.6.2/spec/app/member_entry.atom new file mode 100644 index 0000000..e165a1f --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/spec/app/member_entry.atom @@ -0,0 +1,31 @@ + + + Atom draft-07 snapshot + + + + tag:example.org,2003:3.2397 + 2005-07-31T12:29:29Z + 2003-12-13T08:29:29-04:00 + + Mark Pilgrim + http://example.org/ + f8dy@example.com + + + Sam Ruby + + + Joe Gregorio + + +
    +

    + [Update: The Atom draft is finished.] +

    +
    +
    +
    \ No newline at end of file diff --git a/presidents/vendor/gems/ratom-0.6.2/spec/app/service.xml b/presidents/vendor/gems/ratom-0.6.2/spec/app/service.xml new file mode 100644 index 0000000..c59a527 --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/spec/app/service.xml @@ -0,0 +1,36 @@ + + + + Main Site + + My Blog Entries + + + + Pictures + image/png + image/jpeg + image/gif + + + + Sidebar Blog + + Remaindered Links + application/atom+xml;type=entry + + + + + + + diff --git a/presidents/vendor/gems/ratom-0.6.2/spec/atom/pub_spec.rb b/presidents/vendor/gems/ratom-0.6.2/spec/atom/pub_spec.rb new file mode 100644 index 0000000..166b816 --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/spec/atom/pub_spec.rb @@ -0,0 +1,504 @@ +# Copyright (c) 2008 The Kaphan Foundation +# +# For licensing information see LICENSE.txt. +# +# Please visit http://www.peerworks.org/contact for further information. +# + +require File.dirname(__FILE__) + '/../spec_helper' +require 'atom' +require 'atom/pub' +require 'atom/version' +require 'uri' +require 'net/http' + +shared_examples_for 'parser of spec/app/service.xml' do + it "should have 2 workspaces" do + @service.should have(2).workspaces + end + + it "should have a title" do + @workspace.title.should == "Main Site" + end + + it "should have 2 collections" do + @workspace.should have(2).collections + end + + it "should have the right href" do + @collection1.href.should == 'http://example.org/blog/main' + end + + it "should have categories" do + @collection1.categories.should_not be_nil + end + + it "should have a href on categories" do + @collection1.categories.href.should == "http://example.com/cats/forMain.cats" + @collection1.categories.fixed?.should be_false + end + + it "should have a title" do + @collection1.title.should == 'My Blog Entries' + end + + it "should have a title" do + @collection2.title.should == 'Pictures' + end + + it "should have the right href" do + @collection2.href.should == 'http://example.org/blog/pic' + end + + it "should not have categories" do + @collection2.categories.should be_nil + end + + it "should have 3 accepts" do + @collection2.should have(3).accepts + end + + it "should accept 'image/png'" do + @collection2.accepts.should include('image/png') + end + + it "should accept 'image/jpeg'" do + @collection2.accepts.should include('image/jpeg') + end + + it "should accept 'image/gif'" do + @collection2.accepts.should include('image/gif') + end + + it "should have a title on workspace 2" do + @workspace2.title.should == 'Sidebar Blog' + end + + it "should have 1 collection on workspace 2" do + @workspace2.should have(1).collections + end + + it "should have a title on collection 3" do + @collection3.title.should == 'Remaindered Links' + end + + it "should have 1 accept on collection 3" do + @collection3.should have(1).accepts + end + + it "should accept 'application/atom+xml;type=entry'" do + @collection3.accepts.should include('application/atom+xml;type=entry') + end + + it "should have categories" do + @collection3.categories.should_not be_nil + end + + it "should have fixed == 'yes' on categories" do + @collection3.categories.fixed.should == "yes" + end + + it "should have fixed? == true on categories" do + @collection3.categories.fixed?.should be_true + end +end + +describe Atom::Pub do + describe Atom::Pub::Service do + it "should load from a URL" do + uri = URI.parse('http://example.com/service.xml') + response = Net::HTTPSuccess.new(nil, nil, nil) + response.stub!(:body).and_return(File.read('spec/app/service.xml')) + mock_http_get(uri, response) + + Atom::Pub::Service.load_service(uri).should be_an_instance_of(Atom::Pub::Service) + end + + it "should raise ArgumentError with a non-http URL" do + lambda { Atom::Pub::Service.load_service(URI.parse('file:/tmp')) }.should raise_error(ArgumentError) + end + + it "should be able to be created without xml" do + lambda { Atom::Pub::Service.new }.should_not raise_error + end + + it "should yield in the initializer" do + yielded = false + Atom::Pub::Service.new do + yielded = true + end + + yielded.should be_true + end + + it "should parse it's output" do + orig = File.read('spec/app/service.xml') + svc = Atom::Pub::Service.load_service(orig) + xml = svc.to_xml + lambda do + Atom::Pub::Service.load_service(xml) + end.should_not raise_error + end + + describe "load_service" do + before(:all) do + @service = Atom::Pub::Service.load_service(File.open('spec/app/service.xml')) + @workspace = @service.workspaces.first + @workspace2 = @service.workspaces[1] + @collection1 = @workspace.collections.first + @collection2 = @workspace.collections[1] + @collection3 = @workspace2.collections.first + end + + it_should_behave_like 'parser of spec/app/service.xml' + end + + describe "load_service with authentication" do + it "should pass credentials to the server" do + uri = URI.parse('http://example.com/service.xml') + response = Net::HTTPSuccess.new(nil, nil, nil) + response.stub!(:body).and_return(File.read('spec/app/service.xml')) + mock_http_get(uri, response, 'user', 'pass') + Atom::Pub::Service.load_service(uri, :user => 'user', :pass => 'pass') + end + + it "should pass credentials on to the collections" do + uri = URI.parse('http://example.com/service.xml') + response = Net::HTTPSuccess.new(nil, nil, nil) + response.stub!(:body).and_return(File.read('spec/app/service.xml')) + mock_http_get(uri, response, 'user', 'pass') + pub = Atom::Pub::Service.load_service(uri, :user => 'user', :pass => 'pass') + + uri2 = URI.parse('http://example.org/blog/main') + response2 = Net::HTTPSuccess.new(nil, nil, nil) + response2.stub!(:body).and_return(File.read('spec/fixtures/simple_single_entry.atom')) + mock_http_get(uri2, response2, 'user', 'pass') + pub.workspaces.first.collections.first.feed(:user => 'user', :pass => 'pass') + end + end + + describe "#to_xml" do + before(:each) do + @svc = Atom::Pub::Service.load_service(File.read('spec/app/service.xml')) + @xml = @svc.to_xml + @service = Atom::Pub::Service.load_service(@xml) + @workspace = @service.workspaces.first + @workspace2 = @service.workspaces[1] + @collection1 = @workspace.collections.first + @collection2 = @workspace.collections[1] + @collection3 = @workspace2.collections.first + end + + it "should put title in Atom namespace" do + @xml.should match(%r{atom:title}) + end + + it_should_behave_like 'parser of spec/app/service.xml' + end + end + + describe Atom::Pub::Collection do + describe '.new' do + it "should set the href from the hash" do + collection = Atom::Pub::Collection.new(:href => 'http://example.org/blog') + collection.href.should == 'http://example.org/blog' + end + + it "should set the href from a block" do + collection = Atom::Pub::Collection.new do |c| + c.href = "http://example.org/blog" + end + collection.href.should == 'http://example.org/blog' + end + end + + it "should return the feed" do + collection = Atom::Pub::Collection.new(:href => 'http://example.org/blog') + response = Net::HTTPSuccess.new(nil, nil, nil) + response.stub!(:body).and_return(File.read('spec/fixtures/simple_single_entry.atom')) + mock_http_get(URI.parse(collection.href), response) + collection.feed.should be_an_instance_of(Atom::Feed) + end + + describe '#publish' do + before(:each) do + @collection = Atom::Pub::Collection.new(:href => 'http://example.org/blog') + @request_headers = {'Accept' => 'application/atom+xml', + 'Content-Type' => 'application/atom+xml;type=entry', + 'User-Agent' => "rAtom #{Atom::VERSION::STRING}" + } + end + + it "should send a POST request when an entry is published" do + entry = Atom::Entry.load_entry(File.open('spec/fixtures/entry.atom')) + + response = mock_response(Net::HTTPCreated, entry.to_xml.to_s) + + request = mock('request') + Net::HTTP::Post.should_receive(:new).with('/blog', @request_headers).and_return(request) + + http = mock('http') + http.should_receive(:request).with(request, entry.to_xml.to_s).and_return(response) + Net::HTTP.should_receive(:start).with('example.org', 80).and_yield(http) + + created = @collection.publish(entry) + created.should == entry + end + + it "should send a POST with basic auth request when an entry is published" do + entry = Atom::Entry.load_entry(File.open('spec/fixtures/entry.atom')) + + response = mock_response(Net::HTTPCreated, entry.to_xml.to_s) + + request = mock('request') + request.should_receive(:basic_auth).with('user', 'pass') + Net::HTTP::Post.should_receive(:new).with('/blog', @request_headers).and_return(request) + + http = mock('http') + http.should_receive(:request).with(request, entry.to_xml.to_s).and_return(response) + Net::HTTP.should_receive(:start).with('example.org', 80).and_yield(http) + + created = @collection.publish(entry, :user => 'user', :pass => 'pass') + created.should == entry + end + + if Atom::Configuration.auth_hmac_enabled? + it "should send a POST with hmac authentication when an entry is published" do + entry = Atom::Entry.load_entry(File.open('spec/fixtures/entry.atom')) + + response = mock_response(Net::HTTPCreated, entry.to_xml.to_s) + + http = mock('http') + http.should_receive(:request) do |request, entry_xml| + request['Authorization'].should match(/^AuthHMAC access_id:[a-zA-Z0-9\/+]+=*/) + response + end + + Net::HTTP.should_receive(:start).with('example.org', 80).and_yield(http) + + created = @collection.publish(entry, :hmac_access_id => 'access_id', :hmac_secret_key => 'secret') + created.should == entry + end + else + xit "should send a POST with hmac authentication when an entry is published" + end + + it "should behave well when no content is returned" do + entry = Atom::Entry.load_entry(File.open('spec/fixtures/entry.atom')) + + response = mock_response(Net::HTTPCreated, " ") + + request = mock('request') + Net::HTTP::Post.should_receive(:new).with('/blog', @request_headers).and_return(request) + + http = mock('http') + http.should_receive(:request).with(request, entry.to_xml.to_s).and_return(response) + Net::HTTP.should_receive(:start).with('example.org', 80).and_yield(http) + + created = @collection.publish(entry) + created.should == entry + end + + it "should raise error when response is not HTTPCreated" do + entry = Atom::Entry.load_entry(File.open('spec/fixtures/entry.atom')) + response = mock_response(Net::HTTPPreconditionFailed, "") + + request = mock('request') + Net::HTTP::Post.should_receive(:new).with('/blog', @request_headers).and_return(request) + + http = mock('http') + http.should_receive(:request).with(request, entry.to_xml.to_s).and_return(response) + Net::HTTP.should_receive(:start).with('example.org', 80).and_yield(http) + + lambda { @collection.publish(entry) }.should raise_error(Atom::Pub::ProtocolError) + end + + it "should copy Location into edit link of entry" do + entry = Atom::Entry.load_entry(File.open('spec/fixtures/entry.atom')) + + response = mock_response(Net::HTTPCreated, entry.to_xml.to_s, 'Location' => 'http://example.org/edit/entry1.atom') + + request = mock('request') + Net::HTTP::Post.should_receive(:new).with('/blog', @request_headers).and_return(request) + + http = mock('http') + http.should_receive(:request).with(request, entry.to_xml.to_s).and_return(response) + Net::HTTP.should_receive(:start).with('example.org', 80).and_yield(http) + + created = @collection.publish(entry) + created.edit_link.should_not be_nil + created.edit_link.href.should == 'http://example.org/edit/entry1.atom' + end + + it "should update the entry when response is different" do + entry = Atom::Entry.load_entry(File.open('spec/fixtures/entry.atom')) + response = mock_response(Net::HTTPCreated, File.read('spec/fixtures/created_entry.atom'), + 'Location' => 'http://example.org/edit/atom') + + request = mock('request') + Net::HTTP::Post.should_receive(:new).with('/blog', @request_headers).and_return(request) + + http = mock('http') + http.should_receive(:request).with(request, entry.to_xml.to_s).and_return(response) + Net::HTTP.should_receive(:start).with('example.org', 80).and_yield(http) + + created = @collection.publish(entry) + created.should == Atom::Entry.load_entry(File.open('spec/fixtures/created_entry.atom')) + end + end + end + + describe Atom::Pub::Workspace do + it "should do the block initialization thing" do + workspace = Atom::Pub::Workspace.new do |w| + w.title = "Title" + end + + workspace.title.should == "Title" + end + + it "should do the hash initialization thing" do + workspace = Atom::Pub::Workspace.new(:title => 'Title') + workspace.title.should == "Title" + end + end + + describe Atom::Entry do + before(:each) do + @request_headers = {'Accept' => 'application/atom+xml', + 'Content-Type' => 'application/atom+xml;type=entry', + 'User-Agent' => "rAtom #{Atom::VERSION::STRING}" + } + end + + it "should send a PUT to the edit link on save!" do + entry = Atom::Entry.load_entry(File.open('spec/app/member_entry.atom')) + response = mock_response(Net::HTTPSuccess, nil) + + request = mock('request') + Net::HTTP::Put.should_receive(:new).with('/member_entry.atom', @request_headers).and_return(request) + + http = mock('http') + http.should_receive(:request).with(request, entry.to_xml.to_s).and_return(response) + Net::HTTP.should_receive(:start).with('example.org', 80).and_yield(http) + + entry.save! + end + + it "should send a PUT with auth to the edit link on save!" do + entry = Atom::Entry.load_entry(File.open('spec/app/member_entry.atom')) + response = mock_response(Net::HTTPSuccess, nil) + + request = mock('request') + request.should_receive(:basic_auth).with('user', 'pass') + Net::HTTP::Put.should_receive(:new).with('/member_entry.atom', @request_headers).and_return(request) + + http = mock('http') + http.should_receive(:request).with(request, entry.to_xml.to_s).and_return(response) + Net::HTTP.should_receive(:start).with('example.org', 80).and_yield(http) + + entry.save!(:user => 'user', :pass => 'pass') + end + + if Atom::Configuration.auth_hmac_enabled? + it "should send a PUT with hmac auth to the edit link on save!" do + entry = Atom::Entry.load_entry(File.open('spec/app/member_entry.atom')) + response = mock_response(Net::HTTPSuccess, nil) + + http = mock('http') + http.should_receive(:request) do |request, entry_xml| + request['Authorization'].should match(/^AuthHMAC access_id:[a-zA-Z0-9\/+]+=*$/) + response + end + + Net::HTTP.should_receive(:start).with('example.org', 80).and_yield(http) + + entry.save!(:hmac_access_id => 'access_id', :hmac_secret_key => 'secret') + end + end + + it "should send a DELETE to the edit link on delete!" do + entry = Atom::Entry.load_entry(File.open('spec/app/member_entry.atom')) + response = mock_response(Net::HTTPSuccess, nil) + + request = mock('request') + Net::HTTP::Delete.should_receive(:new).with('/member_entry.atom', an_instance_of(Hash)).and_return(request) + + http = mock('http') + http.should_receive(:request).with(request).and_return(response) + Net::HTTP.should_receive(:start).with('example.org', 80).and_yield(http) + + entry.destroy! + end + + it "should send a DELETE with basic auth to the edit link on delete!" do + entry = Atom::Entry.load_entry(File.open('spec/app/member_entry.atom')) + response = mock_response(Net::HTTPSuccess, nil) + + request = mock('request') + request.should_receive(:basic_auth).with('user', 'pass') + Net::HTTP::Delete.should_receive(:new).with('/member_entry.atom', an_instance_of(Hash)).and_return(request) + + http = mock('http') + http.should_receive(:request).with(request).and_return(response) + Net::HTTP.should_receive(:start).with('example.org', 80).and_yield(http) + + entry.destroy!(:user => 'user', :pass => 'pass') + end + + if Atom::Configuration.auth_hmac_enabled? + it "should send a DELETE with hmac auth to the edit link on delete!" do + entry = Atom::Entry.load_entry(File.open('spec/app/member_entry.atom')) + response = mock_response(Net::HTTPSuccess, nil) + + http = mock('http') + http.should_receive(:request) do |request| + request['Authorization'].should match(/^AuthHMAC access_id:[a-zA-Z0-9\/+]+=*$/) + response + end + + Net::HTTP.should_receive(:start).with('example.org', 80).and_yield(http) + + entry.destroy!(:hmac_access_id => 'access_id', :hmac_secret_key => 'secret') + end + end + + it "should raise exception on save! without an edit link" do + entry = Atom::Entry.load_entry(File.open('spec/fixtures/entry.atom')) + lambda { entry.save! }.should raise_error(Atom::Pub::NotSupported) + end + + it "should raise exception on save failure" do + entry = Atom::Entry.load_entry(File.open('spec/app/member_entry.atom')) + response = mock_response(Net::HTTPClientError, nil) + + request = mock('request') + Net::HTTP::Put.should_receive(:new).with('/member_entry.atom', @request_headers).and_return(request) + + http = mock('http') + http.should_receive(:request).with(request, entry.to_xml.to_s).and_return(response) + Net::HTTP.should_receive(:start).with('example.org', 80).and_yield(http) + + lambda { entry.save! }.should raise_error(Atom::Pub::ProtocolError) + end + + it "should raise exception on destroy! without an edit link" do + entry = Atom::Entry.load_entry(File.open('spec/fixtures/entry.atom')) + lambda { entry.destroy! }.should raise_error(Atom::Pub::NotSupported) + end + + it "should raise exception on destroy failure" do + entry = Atom::Entry.load_entry(File.open('spec/app/member_entry.atom')) + response = mock_response(Net::HTTPClientError, nil) + + request = mock('request') + Net::HTTP::Delete.should_receive(:new).with('/member_entry.atom', an_instance_of(Hash)).and_return(request) + + http = mock('http') + http.should_receive(:request).with(request).and_return(response) + Net::HTTP.should_receive(:start).with('example.org', 80).and_yield(http) + + lambda { entry.destroy! }.should raise_error(Atom::Pub::ProtocolError) + end + end +end diff --git a/presidents/vendor/gems/ratom-0.6.2/spec/atom_spec.rb b/presidents/vendor/gems/ratom-0.6.2/spec/atom_spec.rb new file mode 100644 index 0000000..e7f5326 --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/spec/atom_spec.rb @@ -0,0 +1,1304 @@ +# Copyright (c) 2008 The Kaphan Foundation +# +# For licensing information see LICENSE.txt. +# +# Please visit http://www.peerworks.org/contact for further information. +# + +require File.dirname(__FILE__) + '/spec_helper.rb' +require 'net/http' +require 'time' +require 'spec/property' + +shared_examples_for 'simple_single_entry.atom attributes' do + it "should parse title" do + @feed.title.should == 'Example Feed' + end + + it "should parse updated" do + @feed.updated.should == Time.parse('2003-12-13T18:30:02Z') + end + + it "should parse id" do + @feed.id.should == 'urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6' + end + + it "should have an entries array" do + @feed.entries.should be_an_instance_of(Array) + end + + it "should have one element in the entries array" do + @feed.entries.size.should == 1 + end + + it "should have an alternate" do + @feed.alternate.should_not be_nil + end + + it "should have an Atom::Link as the alternate" do + @feed.alternate.should be_an_instance_of(Atom::Link) + end + + it "should have the correct href in the alternate" do + @feed.alternate.href.should == 'http://example.org/' + end + + it "should have 1 author" do + @feed.should have(1).authors + end + + it "should have 'John Doe' as the author's name" do + @feed.authors.first.name.should == "John Doe" + end + + it "should parse title" do + @entry.title.should == 'Atom-Powered Robots Run Amok' + end + + it "should have an alternate" do + @entry.alternate.should_not be_nil + end + + it "should have an Atom::Link as the alternate" do + @entry.alternate.should be_an_instance_of(Atom::Link) + end + + it "should have the correct href on the alternate" do + @entry.alternate.href.should == 'http://example.org/2003/12/13/atom03' + end + + it "should parse id" do + @entry.id.should == 'urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a' + end + + it "should parse updated" do + @entry.updated.should == Time.parse('2003-12-13T18:30:02Z') + end + + it "should parse summary" do + @entry.summary.should == 'Some text.' + end + + it "should parse content" do + @entry.content.should == 'This is html.' + end + + it "should parse content type" do + @entry.content.type.should == 'html' + end +end + +describe Atom do + describe "Atom::Feed.load_feed" do + it "should accept an IO" do + lambda { Atom::Feed.load_feed(File.open('spec/fixtures/simple_single_entry.atom')) }.should_not raise_error + end + + it "should raise ArgumentError with something other than IO or URI" do + lambda { Atom::Feed.load_feed(nil) }.should raise_error(ArgumentError) + end + + it "should accept a String" do + Atom::Feed.load_feed(File.read('spec/fixtures/simple_single_entry.atom')).should be_an_instance_of(Atom::Feed) + end + + it "should accept a URI" do + uri = URI.parse('http://example.com/feed.atom') + response = Net::HTTPSuccess.new(nil, nil, nil) + response.stub!(:body).and_return(File.read('spec/fixtures/simple_single_entry.atom')) + mock_http_get(uri, response) + + Atom::Feed.load_feed(uri).should be_an_instance_of(Atom::Feed) + end + + it "should accept a URI with query parameters" do + uri = URI.parse('http://example.com/feed.atom?page=2') + response = Net::HTTPSuccess.new(nil, nil, nil) + response.stub!(:body).and_return(File.read('spec/fixtures/simple_single_entry.atom')) + mock_http_get(uri, response) + + Atom::Feed.load_feed(uri).should be_an_instance_of(Atom::Feed) + end + + it "should raise ArgumentError with non-http uri" do + uri = URI.parse('file:/tmp') + lambda { Atom::Feed.load_feed(uri) }.should raise_error(ArgumentError) + end + + it "should return an Atom::Feed" do + feed = Atom::Feed.load_feed(File.open('spec/fixtures/simple_single_entry.atom')) + feed.should be_an_instance_of(Atom::Feed) + end + + it "should not raise an error with a String and basic-auth credentials" do + lambda { Atom::Feed.load_feed(File.read('spec/fixtures/simple_single_entry.atom'), :user => 'user', :pass => 'pass') }.should_not raise_error + end + + it "should not raise an error with a URI with basic-auth credentials" do + uri = URI.parse('http://example.com/feed.atom') + + response = Net::HTTPSuccess.new(nil, nil, nil) + response.stub!(:body).and_return(File.read('spec/fixtures/simple_single_entry.atom')) + mock_http_get(uri, response, 'user', 'pass') + + lambda { Atom::Feed.load_feed(uri, :user => 'user', :pass => 'pass') }.should_not raise_error + end + end + + describe 'Atom::Entry.load_entry' do + it "should accept an IO" do + Atom::Entry.load_entry(File.open('spec/fixtures/entry.atom')).should be_an_instance_of(Atom::Entry) + end + + it "should accept a URI" do + uri = URI.parse('http://example.org/entry.atom') + response = Net::HTTPSuccess.new(nil, nil, nil) + response.stub!(:body).and_return(File.read('spec/fixtures/entry.atom')) + mock_http_get(uri, response) + + Atom::Entry.load_entry(uri).should be_an_instance_of(Atom::Entry) + end + + it "should accept a String" do + Atom::Entry.load_entry(File.read('spec/fixtures/entry.atom')).should be_an_instance_of(Atom::Entry) + end + + it "should raise ArgumentError with something other than IO, String or URI" do + lambda { Atom::Entry.load_entry(nil) }.should raise_error(ArgumentError) + end + + it "should raise ArgumentError with non-http uri" do + lambda { Atom::Entry.load_entry(URI.parse('file:/tmp')) }.should raise_error(ArgumentError) + end + end + + describe 'SimpleSingleFeed' do + before(:all) do + @feed = Atom::Feed.load_feed(File.open('spec/fixtures/simple_single_entry.atom')) + @entry = @feed.entries.first + end + + it_should_behave_like "simple_single_entry.atom attributes" + end + + describe 'FeedWithStyleSheet' do + it "should load without failure" do + lambda { feed = Atom::Feed.load_feed(File.open('spec/fixtures/with_stylesheet.atom')) }.should_not raise_error + end + end + + describe 'ComplexFeed' do + before(:all) do + @feed = Atom::Feed.load_feed(File.open('spec/fixtures/complex_single_entry.atom')) + end + + describe Atom::Feed do + it "should have a title" do + @feed.title.should == 'dive into mark' + end + + it "should have type on the title" do + @feed.title.type.should == 'text' + end + + it "should have a subtitle" do + @feed.subtitle.should == 'A lot of effort went into making this effortless' + end + + it "should have a type for the subtitle" do + @feed.subtitle.type.should == 'html' + end + + it "should have an updated date" do + @feed.updated.should == Time.parse('2005-07-31T12:29:29Z') + end + + it "should have an id" do + @feed.id.should == 'tag:example.org,2003:3' + end + + it "should have 2 links" do + @feed.should have(2).links + end + + it "should have an alternate link" do + @feed.alternate.should_not be_nil + end + + it "should have the right url for the alternate" do + @feed.alternate.to_s.should == 'http://example.org/' + end + + it "should have a self link" do + @feed.self.should_not be_nil + end + + it "should have the right url for self" do + @feed.self.to_s.should == 'http://example.org/feed.atom' + end + + it "should have rights" do + @feed.rights.should == 'Copyright (c) 2003, Mark Pilgrim' + end + + it "should have a generator" do + @feed.generator.should_not be_nil + end + + it "should have a generator uri" do + @feed.generator.uri.should == 'http://www.example.com/' + end + + it "should have a generator version" do + @feed.generator.version.should == '1.0' + end + + it "should have a generator name" do + @feed.generator.name.should == 'Example Toolkit' + end + + it "should have an entry" do + @feed.should have(1).entries + end + + it "should have a category" do + @feed.should have(1).categories + end + end + + describe Atom::Entry do + before(:each) do + @entry = @feed.entries.first + end + + it "should have a title" do + @entry.title.should == 'Atom draft-07 snapshot' + end + + it "should have an id" do + @entry.id.should == 'tag:example.org,2003:3.2397' + end + + it "should have an updated date" do + @entry.updated.should == Time.parse('2005-07-31T12:29:29Z') + end + + it "should have a published date" do + @entry.published.should == Time.parse('2003-12-13T08:29:29-04:00') + end + + it "should have an author" do + @entry.should have(1).authors + end + + it "should have two links" do + @entry.should have(2).links + end + + it "should have one alternate link" do + @entry.should have(1).alternates + end + + it "should have one enclosure link" do + @entry.should have(1).enclosures + end + + it "should have 2 contributors" do + @entry.should have(2).contributors + end + + it "should have names for the contributors" do + @entry.contributors[0].name.should == 'Sam Ruby' + @entry.contributors[1].name.should == 'Joe Gregorio' + end + + it "should have content" do + @entry.content.should_not be_nil + end + + it "should have 2 categories" do + @entry.should have(2).categories + end + end + + describe Atom::Category do + describe 'atom category' do + before(:each) do + @category = @feed.entries.first.categories.first + end + + it "should have a term" do + @category.term.should == "atom" + end + + it "should have a scheme" do + @category.scheme.should == "http://example.org" + end + + it "should have a label" do + @category.label.should == "Atom" + end + end + + describe 'draft category' do + before(:each) do + @category = @feed.entries.first.categories.last + end + + it "should have a term" do + @category.term.should == "drafts" + end + + it "should have a scheme" do + @category.scheme.should == "http://example2.org" + end + + it "should have a label" do + @category.label.should == "Drafts" + end + end + end + + describe Atom::Link do + describe 'alternate link' do + before(:each) do + @entry = @feed.entries.first + @link = @entry.alternate + end + + it "should have text/html type" do + @link.type.should == 'text/html' + end + + it "should have alternate rel" do + @link.rel.should == 'alternate' + end + + it "should have href 'http://example.org/2005/04/02/atom'" do + @link.href.should == 'http://example.org/2005/04/02/atom' + end + + it "should have 'http://example.org/2005/04/02/atom' string representation" do + @link.to_s.should == 'http://example.org/2005/04/02/atom' + end + end + + describe 'enclosure link' do + before(:each) do + @entry = @feed.entries.first + @link = @entry.enclosures.first + end + + it "should have audio/mpeg type" do + @link.type.should == 'audio/mpeg' + end + + it "should have enclosure rel" do + @link.rel.should == 'enclosure' + end + + it "should have length 1337" do + @link.length.should == 1337 + end + + it "should have href 'http://example.org/audio/ph34r_my_podcast.mp3'" do + @link.href.should == 'http://example.org/audio/ph34r_my_podcast.mp3' + end + + it "should have 'http://example.org/audio/ph34r_my_podcast.mp3' string representation" do + @link.to_s.should == 'http://example.org/audio/ph34r_my_podcast.mp3' + end + end + end + + describe Atom::Person do + before(:each) do + @entry = @feed.entries.first + @person = @entry.authors.first + end + + it "should have a name" do + @person.name.should == 'Mark Pilgrim' + end + + it "should have a uri" do + @person.uri.should == 'http://example.org/' + end + + it "should have an email address" do + @person.email.should == 'f8dy@example.com' + end + end + + describe Atom::Content do + before(:each) do + @entry = @feed.entries.first + @content = @entry.content + end + + it "should have 'xhtml' type" do + @content.type.should == 'xhtml' + end + + it "should have 'en' language" do + @content.xml_lang.should == 'en' + end + + it "should have the content as the string representation" do + @content.should == '

    [Update: The Atom draft is finished.]

    ' + end + end + end + + describe 'ConformanceTests' do + describe 'nondefaultnamespace.atom' do + before(:all) do + @feed = Atom::Feed.load_feed(File.open('spec/conformance/nondefaultnamespace.atom')) + end + + it "should have a title" do + @feed.title.should == 'Non-default namespace test' + end + + it "should have 1 entry" do + @feed.should have(1).entries + end + + describe Atom::Entry do + before(:all) do + @entry = @feed.entries.first + end + + it "should have a title" do + @entry.title.should == 'If you can read the content of this entry, your aggregator works fine.' + end + + it "should have content" do + @entry.content.should_not be_nil + end + + it "should have 'xhtml' for the type of the content" do + @entry.content.type.should == 'xhtml' + end + + it "should strip the outer div of the content" do + @entry.content.should_not match(/div/) + end + + it "should keep inner xhtml of content" do + @entry.content.should == '

    For information, see:

    ' + + '
    ' + end + end + end + + describe 'unknown-namespace.atom' do + before(:all) do + @feed = Atom::Feed.load_feed(File.open('spec/conformance/unknown-namespace.atom')) + @entry = @feed.entries.first + @content = @entry.content + end + + it "should have content" do + @content.should_not be_nil + end + + it "should strip surrounding div" do + @content.should_not match(/div/) + end + + it "should keep inner lists" do + @content.should match(/ true) do |entry| + entry_count += 1 + end + + entry_count.should == 3 + end + + it "should not paginate through each entry when paginate not true" do + entry_count = 0 + @feed.each_entry do |entry| + entry_count += 1 + end + + entry_count.should == 1 + end + + it "should only paginate up to since" do + response1 = Net::HTTPSuccess.new(nil, nil, nil) + response1.stub!(:body).and_return(File.read('spec/paging/middle_paged_feed.atom')) + mock_http_get(URI.parse('http://example.org/index.atom?page=2'), response1) + + entry_count = 0 + @feed.each_entry(:paginate => true, :since => Time.parse('2003-11-19T18:30:02Z')) do |entry| + entry_count += 1 + end + + entry_count.should == 1 + end + end + + describe "entry_with_simple_extensions.atom" do + before(:each) do + @feed = Atom::Feed.load_feed(File.open('spec/fixtures/entry_with_simple_extensions.atom')) + @entry = @feed.entries.first + end + + it "should load simple extension for feed" do + @feed["http://example.org/example", 'simple1'].should == ['Simple1 Value'] + end + + it "should load empty simple extension for feed" do + @feed["http://example.org/example", 'simple-empty'].should == [''] + end + + it "should load simple extension 1 for entry" do + @entry["http://example.org/example", 'simple1'].should == ['Simple1 Entry Value'] + end + + it "should load simple extension 2 for entry" do + @entry["http://example.org/example", 'simple2'].should == ['Simple2', 'Simple2a'] + end + + it "should find a simple extension in another namespace" do + @entry["http://example2.org/example2", 'simple1'].should == ['Simple Entry Value (NS2)'] + end + + it "should load simple extension attribute on a category" do + @entry.categories.first["http://example.org/example", "attribute"].first.should == "extension" + end + + it "should write a simple extension attribute as an attribute" do + @entry.categories.first.to_xml(true)['ns1:attribute'].should == 'extension' + end + + it "should read an extension with the same local name as an Atom element" do + @feed['http://example.org/example', 'title'].should == ['Extension Title'] + end + + it_should_behave_like 'simple_single_entry.atom attributes' + + it "should load simple extension 3 xml for entry" do + @entry["http://example.org/example3", 'simple3'].should == ['Simple Entry Value (NS2)'] + end + end + + describe 'writing simple extensions' do + it "should recode and re-read a simple extension element" do + entry = Atom::Entry.new do |entry| + entry.id = 'urn:test' + entry.title = 'Simple Ext. Test' + entry.updated = Time.now + entry['http://example.org', 'title'] << 'Example title' + end + + entry2 = Atom::Entry.load_entry(entry.to_xml) + entry2['http://example.org', 'title'].should == ['Example title'] + end + end + end + + describe 'custom_extensions' do + before(:all) do + Atom::Entry.add_extension_namespace :ns_alias, "http://custom.namespace" + Atom::Entry.elements "ns_alias:property", :class => Atom::Extensions::Property + @entry = Atom::Entry.load_entry(File.open('spec/fixtures/entry_with_custom_extensions.atom')) + end + + it "should_load_custom_extensions_for_entry" do + @entry.ns_alias_property.should_not == [] + end + + it "should_load_2_custom_extensions_for_entry" do + @entry.ns_alias_property.size.should == 2 + end + + it "should load correct_data_for_custom_extensions_for_entry" do + @entry.ns_alias_property.map { |x| [x.name, x.value] }.should == [['foo', 'bar'], ['baz', 'bat']] + end + end + + describe 'single custom_extensions' do + before(:all) do + Atom::Entry.add_extension_namespace :custom, "http://single.custom.namespace" + Atom::Entry.element "custom:singleproperty", :class => Atom::Extensions::Property + @entry = Atom::Entry.load_entry(File.open('spec/fixtures/entry_with_single_custom_extension.atom')) + end + + it "should load single custom extensions for entry" do + @entry.custom_singleproperty.should_not be_nil + end + + it "should load correct data for custom extensions for entry" do + @entry.custom_singleproperty.name.should == 'foo' + @entry.custom_singleproperty.value.should == 'bar' + end + end + + describe 'write_support' do + # FIXME this example depends on "custom_extensions" for configuring Atom::Entry + before(:all) do + @entry = Atom::Entry.new + @entry.ns_alias_property << Atom::Extensions::Property.new('ratom', 'rocks') + @entry.ns_alias_property << Atom::Extensions::Property.new('custom extensions', 'also rock') + @node = @entry.to_xml(true) + end + + it "should_write_custom_extensions_on_to_xml" do + @node.children.size.should == 2 + ratom, custom_extensions = @node.children + ratom.attributes["name"].should == "ratom" + ratom.attributes["value"].should == "rocks" + custom_extensions.attributes["name"].should == "custom extensions" + custom_extensions.attributes["value"].should == "also rock" + end + end + + describe Atom::Link do + before(:each) do + @href = 'http://example.org/next' + @link = Atom::Link.new(:rel => 'next', :href => @href) + end + + it "should fetch feed for fetch_next" do + Atom::Feed.should_receive(:load_feed).with(URI.parse(@href), an_instance_of(Hash)) + @link.fetch + end + + it "should fetch content when response is not xml" do + Atom::Feed.should_receive(:load_feed).and_raise(Atom::LoadError) + response = Net::HTTPSuccess.new(nil, nil, nil) + response.stub!(:body).and_return('some text.') + Net::HTTP.should_receive(:get_response).with(URI.parse(@href)).and_return(response) + @link.fetch.should == 'some text.' + end + end + + describe Atom::Entry do + before(:all) do + @entry = Atom::Entry.load_entry(File.read('spec/fixtures/entry.atom')) + end + + it "should be == to itself" do + @entry.should == Atom::Entry.load_entry(File.read('spec/fixtures/entry.atom')) + end + + it "should be != if something changes" do + @other = Atom::Entry.load_entry(File.read('spec/fixtures/entry.atom')) + @other.title = 'foo' + @entry.should_not == @other + end + + it "should be != if content changes" do + @other = Atom::Entry.load_entry(File.read('spec/fixtures/entry.atom')) + @other.content.type = 'html' + @entry.should_not == @other + end + + it "should output itself" do + other = Atom::Entry.load_entry(@entry.to_xml) + @entry.should == other + end + + it "should properly escape titles" do + @entry.title = "Breaking Space" + other = Atom::Entry.load_entry(@entry.to_xml) + @entry.should == other + end + + it "should raise error when to_xml'ing non-utf8 content" do + lambda { + puts(Atom::Entry.new do |entry| + entry.title = "My entry" + entry.id = "urn:entry:1" + entry.content = Atom::Content::Html.new("this is not \227 utf8") + end.to_xml) + }.should raise_error(Atom::SerializationError) + end + end + + describe 'Atom::Feed initializer' do + it "should create an empty Feed" do + lambda { Atom::Feed.new }.should_not raise_error + end + + it "should yield to a block" do + lambda do + Atom::Feed.new do |f| + f.should be_an_instance_of(Atom::Feed) + throw :yielded + end + end.should throw_symbol(:yielded) + end + end + + describe 'Atom::Entry initializer' do + it "should create an empty feed" do + lambda { Atom::Entry.new }.should_not raise_error + end + + it "should yield to a block" do + lambda do + Atom::Entry.new do |f| + f.should be_an_instance_of(Atom::Entry) + throw :yielded + end + end.should throw_symbol(:yielded) + end + end + + describe Atom::Content::Html do + it "should escape ampersands in entities" do + Atom::Content::Html.new(" ").to_xml.to_s.should == "&nbsp;" + end + end + + describe Atom::Content::Text do + it "should be createable from a string" do + txt = Atom::Content::Text.new("This is some text") + txt.should == "This is some text" + txt.type.should == "text" + end + end + + describe Atom::Content::Xhtml do + it "should be createable from a string" do + txt = Atom::Content::Xhtml.new("

    This is some text

    ") + txt.should == "

    This is some text

    " + txt.type.should == "xhtml" + end + end + + describe 'Atom::Category initializer' do + it "should create a empty category" do + lambda { Atom::Category.new }.should_not raise_error + end + + it "should create from a hash" do + category = Atom::Category.new(:term => 'term', :scheme => 'scheme', :label => 'label') + category.term.should == 'term' + category.scheme.should == 'scheme' + category.label.should == 'label' + end + + it "should create from a block" do + category = Atom::Category.new do |cat| + cat.term = 'term' + end + + category.term.should == 'term' + end + end + + describe Atom::Source do + it "should create an empty source" do + lambda { Atom::Source.new }.should_not raise_error + end + + it "should create from a hash" do + source = Atom::Source.new(:title => 'title', :id => 'sourceid') + source.title.should == 'title' + source.id.should == 'sourceid' + end + + it "should create from a block" do + source = Atom::Source.new do |source| + source.title = 'title' + source.id = 'sourceid' + end + source.title.should == 'title' + source.id.should == 'sourceid' + end + end + + describe Atom::Generator do + it "should create an empty generator" do + lambda { Atom::Generator.new }.should_not raise_error + end + + it "should create from a hash" do + generator = Atom::Generator.new(:name => 'generator', :uri => 'http://generator') + generator.name.should == 'generator' + generator.uri.should == 'http://generator' + end + + it "should create from a block" do + generator = Atom::Generator.new do |generator| + generator.name = 'generator' + generator.uri = 'http://generator' + end + generator.name.should == 'generator' + generator.uri.should == 'http://generator' + end + + it "should output the name as the text of the generator element" do + generator = Atom::Generator.new({:name => "My Generator"}) + generator.to_xml(true).to_s.should == "My Generator" + end + end +end diff --git a/presidents/vendor/gems/ratom-0.6.2/spec/conformance/baseuri.atom b/presidents/vendor/gems/ratom-0.6.2/spec/conformance/baseuri.atom new file mode 100644 index 0000000..797a76a --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/spec/conformance/baseuri.atom @@ -0,0 +1,19 @@ + + title + + + 2007-09-18T12:12:12-07:00 + James Snell + tag:example.org,2007:/foo + + + + Title + tag:example.org,2007:/foo/1 + 2007-09-18T12:12:12-07:00 + A feed reader will pass this test if it can properly resolve the + Base URI for all of the relative references. Because Content-Location is + not used, the Request URI should be used as the Base URI. + + + diff --git a/presidents/vendor/gems/ratom-0.6.2/spec/conformance/divtest.atom b/presidents/vendor/gems/ratom-0.6.2/spec/conformance/divtest.atom new file mode 100644 index 0000000..ee774bd --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/spec/conformance/divtest.atom @@ -0,0 +1,32 @@ + + + + hmm + http://franklinmint.fm/2006/06/27/divtest + + + 2006-06-27T12:26:54+01:00 + + hmm@example.com + foo + + Hmm + + bar@example.com + foo + + +
    test rights
    +
    + + + test + 2006-06-27T12:26:54+01:00 + http://franklinmint.fm/2006/06/27/divtest.entry + + +
    test content
    +
    +
    + +
    \ No newline at end of file diff --git a/presidents/vendor/gems/ratom-0.6.2/spec/conformance/linktests.xml b/presidents/vendor/gems/ratom-0.6.2/spec/conformance/linktests.xml new file mode 100644 index 0000000..41c479a --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/spec/conformance/linktests.xml @@ -0,0 +1,103 @@ + + tag:snellspace.com,2006:/atom/conformance/linktest/ + Atom Link Tests + 2005-01-18T15:10:00Z + James Snell + + + + + tag:snellspace.com,2006:/atom/conformance/linktest/1 + Just a single Alternate Link + 2005-01-18T15:00:01Z + The aggregator should pick the second link as the alternate + + + + + + + tag:snellspace.com,2006:/atom/conformance/linktest/2 + Two alternate links + 2005-01-18T15:00:02Z + The aggregator should pick either the second or third link below as the alternate + + + + + + + + tag:snellspace.com,2006:/atom/conformance/linktest/3 + One of each core link rel type + 2005-01-18T15:00:03Z + The aggregator should pick the first link as the alternate + + + + + + + + + tag:snellspace.com,2006:/atom/conformance/linktest/4 + One of each core link rel type + An additional alternate link + 2005-01-18T15:00:04Z + The aggregator should pick either the first or last links as the alternate. First link is likely better. + + + + + + + + + + tag:snellspace.com,2006:/atom/conformance/linktest/5 + Entry with a link relation registered by an extension + 2005-01-18T15:00:05Z + The aggregator should ignore the license link without throwing any errors. The first link should be picked as the alternate. + + + + + + tag:snellspace.com,2006:/atom/conformance/linktest/6 + Entry with a link relation identified by URI + 2005-01-18T15:00:06Z + The aggregator should ignore the second link without throwing any errors. The first link should be picked as the alternate. + + + + + + tag:snellspace.com,2006:/atom/conformance/linktest/7 + Entry with a link relation registered by an extension + 2005-01-18T15:00:05Z + The aggregator should ignore the license link without throwing any errors. The second link should be picked as the alternate. + + + + + + tag:snellspace.com,2006:/atom/conformance/linktest/8 + Entry with a link relation identified by URI + 2005-01-18T15:00:06Z + The aggregator should ignore the first link without throwing any errors. The second link should be picked as the alternate. + + + + + + tag:snellspace.com,2006:/atom/conformance/linktest/8 + Entry with links in different languages + 2005-01-18T15:00:06Z + The aggregator should pick the second link as alternate. + + + + + + diff --git a/presidents/vendor/gems/ratom-0.6.2/spec/conformance/nondefaultnamespace-baseline.atom b/presidents/vendor/gems/ratom-0.6.2/spec/conformance/nondefaultnamespace-baseline.atom new file mode 100644 index 0000000..e0316b5 --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/spec/conformance/nondefaultnamespace-baseline.atom @@ -0,0 +1,25 @@ + + + Non-default namespace test baseline + 2006-01-18T12:26:54+01:00 + + + Aristotle Pagaltzis + pagaltzis@gmx.de + + urn:uuid:f8195e66-863f-11da-9fcb-dd680b0526e0 + + urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a + If you can read the content of this entry, checking the test case will be meaningful. + + 2006-01-18T12:26:54+01:00 + + + diff --git a/presidents/vendor/gems/ratom-0.6.2/spec/conformance/nondefaultnamespace-xhtml.atom b/presidents/vendor/gems/ratom-0.6.2/spec/conformance/nondefaultnamespace-xhtml.atom new file mode 100644 index 0000000..19c52f0 --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/spec/conformance/nondefaultnamespace-xhtml.atom @@ -0,0 +1,25 @@ + + + Non-default XHTML namespace test + 2006-01-18T12:26:54+01:00 + + + Aristotle Pagaltzis + pagaltzis@gmx.de + + urn:uuid:f8195e66-863f-11da-9fcb-dd680b0526e0 + + urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a + If you can read the content of this entry, and it has a list and links, your aggregator works fine. + + 2006-01-18T12:26:54+01:00 + + For information, see: + + Who knows an XML document from a hole in the ground? + More on Atom aggregator XML namespace conformance tests + XML Namespace Conformance Tests + + + + diff --git a/presidents/vendor/gems/ratom-0.6.2/spec/conformance/nondefaultnamespace.atom b/presidents/vendor/gems/ratom-0.6.2/spec/conformance/nondefaultnamespace.atom new file mode 100644 index 0000000..257c92a --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/spec/conformance/nondefaultnamespace.atom @@ -0,0 +1,25 @@ + + + Non-default namespace test + 2006-01-18T12:26:54+01:00 + + + Aristotle Pagaltzis + pagaltzis@gmx.de + + urn:uuid:f8195e66-863f-11da-9fcb-dd680b0526e0 + + urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a + If you can read the content of this entry, your aggregator works fine. + + 2006-01-18T12:26:54+01:00 + + + diff --git a/presidents/vendor/gems/ratom-0.6.2/spec/conformance/ordertest.xml b/presidents/vendor/gems/ratom-0.6.2/spec/conformance/ordertest.xml new file mode 100644 index 0000000..b5c1cda --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/spec/conformance/ordertest.xml @@ -0,0 +1,112 @@ + + tag:example.org,2006:atom/conformance/element_order + Order Matters + Testing how feed readers handle the order of entry elements + 2006-01-26T09:16:00Z + James Snell + + + + tag:example.org,2006:atom/conformance/element_order/1 + Simple order, nothing fancy + Simple ordering, nothing fancy + 2006-01-26T09:20:01Z + + + + 2006-01-26T09:20:02Z + Same as the first, only mixed up a bit + tag:example.org,2006:atom/conformance/element_order/2 + + Same as the first, only mixed up a bit + + + tag:example.org,2006:atom/conformance/element_order/3 + Multiple alt link elements, which one does your reader show? + Multiple alt link elements, which does your reader show? + 2006-01-26T09:20:03Z + + + + + tag:example.org,2006:atom/conformance/element_order/4 + Multiple link elements, does your feed reader show the "alternate" correctly? + Multiple link elements, does your feed reader show the "alternate" correctly? (also checks to see if the reader is paying attention to link rel values) + 2006-01-26T09:20:04Z + + + + + + + tag:example.org,2006:atom/conformance/element_order + Order Matters + Testing how feed readers handle the order of entry elements + 2006-01-26T09:16:00Z + James Snell + + + + tag:example.org,2006:atom/conformance/element_order/5 + Entry with a source first + Entry with a source first.. does your feed reader show the right title, updated, and alt link? + 2006-01-26T09:20:05Z + + + + tag:example.org,2006:atom/conformance/element_order/6 + Entry with a source last + Entry with a source first.. does your feed reader show the right title, updated, and alt link? + 2006-01-26T09:20:06Z + + + tag:example.org,2006:atom/conformance/element_order + Order Matters + Testing how feed readers handle the order of entry elements + 2006-01-26T09:16:00Z + James Snell + + + + + + tag:example.org,2006:atom/conformance/element_order/7 + Entry with a source in the middle + + tag:example.org,2006:atom/conformance/element_order + Order Matters + Testing how feed readers handle the order of entry elements + 2006-01-26T09:16:00Z + James Snell + + + + Entry with a source in the middle.. does your feed reader show the right id, title, updated, and alt link? + 2006-01-26T09:20:07Z + + + + + tag:example.org,2006:atom/conformance/element_order/9 + Something is wrong if you're seeing this + 2006-01-26T09:20:00Z + + tag:example.org,2006:atom/conformance/element_order/8 + Atom elements in an extension element + Atom elements in an extension element + 2006-01-26T09:20:08Z + + + + tag:example.org,2006:atom/conformance/element_order/9 + Atom elements in an extension element + Atom elements in an extension element + 2006-01-26T09:20:09Z + + + tag:example.org,2006:atom/conformance/element_order/8 + Something is wrong if you're seeing this + 2006-01-26T09:20:00Z + + + diff --git a/presidents/vendor/gems/ratom-0.6.2/spec/conformance/title/html-cdata.atom b/presidents/vendor/gems/ratom-0.6.2/spec/conformance/title/html-cdata.atom new file mode 100644 index 0000000..60e0655 --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/spec/conformance/title/html-cdata.atom @@ -0,0 +1,22 @@ + + +http://atomtests.philringnalda.com/tests/item/title/html-cdata.atom +Atom item title html cdata +2005-12-18T00:13:00Z + + Phil Ringnalda + http://weblog.philringnalda.com/ + + + + http://atomtests.philringnalda.com/tests/item/title/html-cdata.atom/1 + <![CDATA[<title>]]> + 2005-12-18T00:13:00Z + An item with a type="html" title consisting of a less-than +character, the word 'title' and a greater-than character, where +the character entity reference for the less-than is escaped by being +in a CDATA section. + + + + diff --git a/presidents/vendor/gems/ratom-0.6.2/spec/conformance/title/html-entity.atom b/presidents/vendor/gems/ratom-0.6.2/spec/conformance/title/html-entity.atom new file mode 100644 index 0000000..d4a1e4a --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/spec/conformance/title/html-entity.atom @@ -0,0 +1,22 @@ + + +http://atomtests.philringnalda.com/tests/item/title/html-entity.atom +Atom item title html entity +2005-12-18T00:13:00Z + + Phil Ringnalda + http://weblog.philringnalda.com/ + + + + http://atomtests.philringnalda.com/tests/item/title/html-entity.atom/1 + &lt;title> + 2005-12-18T00:13:00Z + An item with a type="html" title consisting of a less-than +character, the word 'title' and a greater-than character, where the +character entity reference for the less-than character is escaped by +replacing the ampersand with a character entity reference. + + + + diff --git a/presidents/vendor/gems/ratom-0.6.2/spec/conformance/title/html-ncr.atom b/presidents/vendor/gems/ratom-0.6.2/spec/conformance/title/html-ncr.atom new file mode 100644 index 0000000..e153f1a --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/spec/conformance/title/html-ncr.atom @@ -0,0 +1,22 @@ + + +http://atomtests.philringnalda.com/tests/item/title/html-ncr.atom +Atom item title html NCR +2005-12-18T00:13:00Z + + Phil Ringnalda + http://weblog.philringnalda.com/ + + + + http://atomtests.philringnalda.com/tests/item/title/html-ncr.atom/1 + &lt;title> + 2005-12-18T00:13:00Z + An item with a type="html" title consisting of a less-than +character, the word 'title' and a greater-than character, where +the HTML's character entity reference is escaped by replacing the +ampersand with a numeric character reference. + + + + diff --git a/presidents/vendor/gems/ratom-0.6.2/spec/conformance/title/text-cdata.atom b/presidents/vendor/gems/ratom-0.6.2/spec/conformance/title/text-cdata.atom new file mode 100644 index 0000000..2d33f9c --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/spec/conformance/title/text-cdata.atom @@ -0,0 +1,22 @@ + + +http://atomtests.philringnalda.com/tests/item/title/text-cdata.atom +Atom item title text in CDATA +2005-12-18T00:13:00Z + + Phil Ringnalda + http://weblog.philringnalda.com/ + + + + +http://atomtests.philringnalda.com/tests/item/title/text-cdata.atom/1 + <![CDATA[<title>]]> + 2005-12-18T00:13:00Z + An item with a type="text" title consisting of a less-than +character, the word 'title' and a greater-than character, where +the less-than is escaped by being in a CDATA section. + + + + diff --git a/presidents/vendor/gems/ratom-0.6.2/spec/conformance/title/text-entity.atom b/presidents/vendor/gems/ratom-0.6.2/spec/conformance/title/text-entity.atom new file mode 100644 index 0000000..8413c5f --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/spec/conformance/title/text-entity.atom @@ -0,0 +1,21 @@ + + +http://atomtests.philringnalda.com/tests/item/title/text-entity.atom +Atom item title text entity +2005-12-18T00:13:00Z + + Phil Ringnalda + http://weblog.philringnalda.com/ + + + + http://atomtests.philringnalda.com/tests/item/title/text-entity.atom/1 + <title> + 2005-12-18T00:13:00Z + An item with a type="text" title consisting of a less-than +character, the word 'title' and a greater-than character, where the +less-than is escaped with its character entity reference. + + + + diff --git a/presidents/vendor/gems/ratom-0.6.2/spec/conformance/title/text-ncr.atom b/presidents/vendor/gems/ratom-0.6.2/spec/conformance/title/text-ncr.atom new file mode 100644 index 0000000..d17e458 --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/spec/conformance/title/text-ncr.atom @@ -0,0 +1,21 @@ + + +http://atomtests.philringnalda.com/tests/item/title/text-ncr.atom +Atom item title text NCR +2005-12-18T00:13:00Z + + Phil Ringnalda + http://weblog.philringnalda.com/ + + + + http://atomtests.philringnalda.com/tests/item/title/text-ncr.atom/1 + <title> + 2005-12-18T00:13:00Z + An item with a type="text" title consisting of a less-than +character, the word 'title' and a greater-than character, where the +less-than character is escaped with a numeric character reference. + + + + diff --git a/presidents/vendor/gems/ratom-0.6.2/spec/conformance/title/xhtml-entity.atom b/presidents/vendor/gems/ratom-0.6.2/spec/conformance/title/xhtml-entity.atom new file mode 100644 index 0000000..00657c9 --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/spec/conformance/title/xhtml-entity.atom @@ -0,0 +1,21 @@ + + +http://atomtests.philringnalda.com/tests/item/title/xhtml-entity.atom +Atom item title xhtml entity +2005-12-18T00:13:00Z + + Phil Ringnalda + http://weblog.philringnalda.com/ + + + + http://atomtests.philringnalda.com/tests/item/title/xhtml-entity.atom/1 + <div xmlns="http://www.w3.org/1999/xhtml"><title></div> + 2005-12-18T00:13:00Z + An item with a type="xhtml" title consisting of a less-than +character, the word 'title' and a greater-than character, where the +less-than character is escaped with its character entity reference. + + + + diff --git a/presidents/vendor/gems/ratom-0.6.2/spec/conformance/title/xhtml-ncr.atom b/presidents/vendor/gems/ratom-0.6.2/spec/conformance/title/xhtml-ncr.atom new file mode 100644 index 0000000..449c4d7 --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/spec/conformance/title/xhtml-ncr.atom @@ -0,0 +1,21 @@ + + +http://atomtests.philringnalda.com/tests/item/title/xhtml-ncr.atom +Atom item title xhtml ncr +2005-12-18T00:13:00Z + + Phil Ringnalda + http://weblog.philringnalda.com/ + + + + http://atomtests.philringnalda.com/tests/item/title/xhtml-ncr.atom/1 + <div xmlns="http://www.w3.org/1999/xhtml"><title></div> + 2005-12-18T00:13:00Z + An item with a type="xhtml" title consisting of a less-than +character, the word 'title' and a greater-than character, where +the less-than character is escaped with its numeric character reference. + + + + diff --git a/presidents/vendor/gems/ratom-0.6.2/spec/conformance/unknown-namespace.atom b/presidents/vendor/gems/ratom-0.6.2/spec/conformance/unknown-namespace.atom new file mode 100644 index 0000000..92ab45e --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/spec/conformance/unknown-namespace.atom @@ -0,0 +1,25 @@ + + + Prefixed XHTML with unprefixed bogo-namespace + 2006-01-22T19:47:34Z + + + Henri Sivonen + hsivonen@iki.fi + + http://hsivonen.iki.fi/test/unknown-namespace.atom + + http://hsivonen.iki.fi/test/unknown-namespace.atom/entry + This entry contains XHTML-looking markup that is not XHTML + + 2006-01-22T19:47:34Z + + + This is an XHTML list item. If it is not rendered as a list item, the namespace support of the client app is broken. + +
      +
    • This is not an XHTML list item. If it is rendered as a list item, the namespace support of the client app is broken.
    • +
    +
    +
    +
    diff --git a/presidents/vendor/gems/ratom-0.6.2/spec/conformance/xmlbase.atom b/presidents/vendor/gems/ratom-0.6.2/spec/conformance/xmlbase.atom new file mode 100644 index 0000000..9d77ddf --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/spec/conformance/xmlbase.atom @@ -0,0 +1,133 @@ + + + xml:base support tests + All alternate links should point to <code>http://example.org/tests/base/result.html</code>; all links in content should point where their label says. + + tag:plasmasturm.org,2005:Atom-Tests:xml-base + 2006-01-17T12:35:16+01:00 + + + 1: Alternate link: Absolute URL + + tag:plasmasturm.org,2005:Atom-Tests:xml-base:Test1 + 2006-01-17T12:35:16+01:00 + + + + 2: Alternate link: Host-relative absolute URL + + tag:plasmasturm.org,2005:Atom-Tests:xml-base:Test2 + 2006-01-17T12:35:15+01:00 + + + + 3: Alternate link: Relative URL + + tag:plasmasturm.org,2005:Atom-Tests:xml-base:Test3 + 2006-01-17T12:35:14+01:00 + + + + 4: Alternate link: Relative URL with parent directory component + + tag:plasmasturm.org,2005:Atom-Tests:xml-base:Test4 + 2006-01-17T12:35:13+01:00 + + + + 5: Content: Absolute URL + + tag:plasmasturm.org,2005:Atom-Tests:xml-base:Test5 + <a href="http://example.org/tests/base/result.html">http://example.org/tests/base/result.html</a> + 2006-01-17T12:35:12+01:00 + + + + 6: Content: Host-relative URL + + tag:plasmasturm.org,2005:Atom-Tests:xml-base:Test6 + <a href="/tests/base/result.html">http://example.org/tests/base/result.html</a> + 2006-01-17T12:35:11+01:00 + + + + 7: Content: Relative URL + + tag:plasmasturm.org,2005:Atom-Tests:xml-base:Test7 + <a href="base/result.html">http://example.org/tests/base/result.html</a> + 2006-01-17T12:35:10+01:00 + + + + 8: Content: Relative URL with parent directory component + + tag:plasmasturm.org,2005:Atom-Tests:xml-base:Test8 + <a href="../tests/base/result.html">http://example.org/tests/base/result.html</a> + 2006-01-17T12:35:9+01:00 + + + + 9: Content, <code>&lt;entry></code> has base: Absolute URL + + tag:plasmasturm.org,2005:Atom-Tests:xml-base:Test9 + <a href="http://example.org/tests/entrybase/result.html">http://example.org/tests/entrybase/result.html</a> + 2006-01-17T12:35:8+01:00 + + + + 10: Content, <code>&lt;entry></code> has base: Host-relative URL + + tag:plasmasturm.org,2005:Atom-Tests:xml-base:Test10 + <a href="/tests/entrybase/result.html">http://example.org/tests/entrybase/result.html</a> + 2006-01-17T12:35:7+01:00 + + + + 11: Content, <code>&lt;entry></code> has base: Relative URL + + tag:plasmasturm.org,2005:Atom-Tests:xml-base:Test11 + <a href="result.html">http://example.org/tests/entrybase/result.html</a> + 2006-01-17T12:35:6+01:00 + + + + 12: Content, <code>&lt;entry></code> has base: Relative URL with parent directory component + + tag:plasmasturm.org,2005:Atom-Tests:xml-base:Test12 + <a href="../entrybase/result.html">http://example.org/tests/entrybase/result.html</a> + 2006-01-17T12:35:5+01:00 + + + + 13: Content, <code>&lt;content></code> has base: Absolute URL + + tag:plasmasturm.org,2005:Atom-Tests:xml-base:Test13 + <a href="http://example.org/tests/contentbase/result.html">http://example.org/tests/contentbase/result.html</a> + 2006-01-17T12:35:4+01:00 + + + + 14: Content, <code>&lt;content></code> has base: Host-relative URL + + tag:plasmasturm.org,2005:Atom-Tests:xml-base:Test14 + <a href="/tests/contentbase/result.html">http://example.org/tests/contentbase/result.html</a> + 2006-01-17T12:35:3+01:00 + + + + 15: Content, <code>&lt;content></code> has base: Relative URL + + tag:plasmasturm.org,2005:Atom-Tests:xml-base:Test15 + <a href="result.html">http://example.org/tests/contentbase/result.html</a> + 2006-01-17T12:35:2+01:00 + + + + 16: Content, <code>&lt;content></code> has base: Relative URL with parent directory component + + tag:plasmasturm.org,2005:Atom-Tests:xml-base:Test16 + <a href="../contentbase/result.html">http://example.org/tests/contentbase/result.html</a> + 2006-01-17T12:35:1+01:00 + + + diff --git a/presidents/vendor/gems/ratom-0.6.2/spec/fixtures/complex_single_entry.atom b/presidents/vendor/gems/ratom-0.6.2/spec/fixtures/complex_single_entry.atom new file mode 100644 index 0000000..3a627f5 --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/spec/fixtures/complex_single_entry.atom @@ -0,0 +1,45 @@ + + + dive into mark + A <em>lot</em> of effort went into making this effortless + 2005-07-31T12:29:29Z + tag:example.org,2003:3 + + + Copyright (c) 2003, Mark Pilgrim + + Example Toolkit + + + + Atom draft-07 snapshot + + + tag:example.org,2003:3.2397 + 2005-07-31T12:29:29Z + 2003-12-13T08:29:29-04:00 + + Mark Pilgrim + http://example.org/ + f8dy@example.com + + + Sam Ruby + + + Joe Gregorio + + + + +
    +

    [Update: The Atom draft is finished.]

    +
    +
    +
    +
    \ No newline at end of file diff --git a/presidents/vendor/gems/ratom-0.6.2/spec/fixtures/created_entry.atom b/presidents/vendor/gems/ratom-0.6.2/spec/fixtures/created_entry.atom new file mode 100644 index 0000000..289bff2 --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/spec/fixtures/created_entry.atom @@ -0,0 +1,31 @@ + + + Atom draft-07 snapshot + + + + tag:example.org,2003:3.2397 + 2005-07-31T12:29:31Z + 2003-12-13T08:29:31-04:00 + + Mark Pilgrim + http://example.org/ + f8dy@example.com + + + Sam Ruby + + + Joe Gregorio + + +
    +

    + [Update: The Atom draft is finished.] +

    +
    +
    +
    \ No newline at end of file diff --git a/presidents/vendor/gems/ratom-0.6.2/spec/fixtures/entry.atom b/presidents/vendor/gems/ratom-0.6.2/spec/fixtures/entry.atom new file mode 100644 index 0000000..8cc951a --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/spec/fixtures/entry.atom @@ -0,0 +1,30 @@ + + + Atom draft-07 snapshot + + + tag:example.org,2003:3.2397 + 2005-07-31T12:29:29Z + 2003-12-13T08:29:29-04:00 + + Mark Pilgrim + http://example.org/ + f8dy@example.com + + + Sam Ruby + + + Joe Gregorio + + +
    +

    + [Update: The Atom draft is finished.] +

    +
    +
    +
    \ No newline at end of file diff --git a/presidents/vendor/gems/ratom-0.6.2/spec/fixtures/multiple_entry.atom b/presidents/vendor/gems/ratom-0.6.2/spec/fixtures/multiple_entry.atom new file mode 100644 index 0000000..e69de29 diff --git a/presidents/vendor/gems/ratom-0.6.2/spec/fixtures/simple_single_entry.atom b/presidents/vendor/gems/ratom-0.6.2/spec/fixtures/simple_single_entry.atom new file mode 100644 index 0000000..2a4b5f4 --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/spec/fixtures/simple_single_entry.atom @@ -0,0 +1,21 @@ + + + + Example Feed + + 2003-12-13T18:30:02Z + + John Doe + + urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6 + + + Atom-Powered Robots Run Amok + + urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a + This <em>is</em> html. + 2003-12-13T18:30:02Z + Some text. + + + diff --git a/presidents/vendor/gems/ratom-0.6.2/spec/fixtures/with_stylesheet.atom b/presidents/vendor/gems/ratom-0.6.2/spec/fixtures/with_stylesheet.atom new file mode 100644 index 0000000..5b3cf8a --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/spec/fixtures/with_stylesheet.atom @@ -0,0 +1,8 @@ + + + + tag:blogger.com,1999:blog-3343849602113720282 + 2008-07-26T09:01:19.322+01:00 + Blockstack.tv + + diff --git a/presidents/vendor/gems/ratom-0.6.2/spec/paging/first_paged_feed.atom b/presidents/vendor/gems/ratom-0.6.2/spec/paging/first_paged_feed.atom new file mode 100644 index 0000000..7bd33a5 --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/spec/paging/first_paged_feed.atom @@ -0,0 +1,21 @@ + + + Example Feed + + + + + + 2003-12-13T18:30:02Z + + John Doe + + urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6 + + Atom-Powered Robots Run Amok + + urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a + 2003-12-13T18:30:02Z + Some text. + + diff --git a/presidents/vendor/gems/ratom-0.6.2/spec/paging/last_paged_feed.atom b/presidents/vendor/gems/ratom-0.6.2/spec/paging/last_paged_feed.atom new file mode 100644 index 0000000..b6946b9 --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/spec/paging/last_paged_feed.atom @@ -0,0 +1,21 @@ + + + Example Feed + + + + + + 2003-12-13T18:30:02Z + + John Doe + + urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6 + + Atom-Powered Robots Run Amok + + urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a + 2003-11-10T18:30:02Z + Some text. + + diff --git a/presidents/vendor/gems/ratom-0.6.2/spec/paging/middle_paged_feed.atom b/presidents/vendor/gems/ratom-0.6.2/spec/paging/middle_paged_feed.atom new file mode 100644 index 0000000..259620a --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/spec/paging/middle_paged_feed.atom @@ -0,0 +1,22 @@ + + + Example Feed + + + + + + + 2003-12-13T18:30:02Z + + John Doe + + urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6 + + Atom-Powered Robots Run Amok + + urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a + 2003-11-15T18:30:02Z + Some text. + + diff --git a/presidents/vendor/gems/ratom-0.6.2/spec/spec.opts b/presidents/vendor/gems/ratom-0.6.2/spec/spec.opts new file mode 100644 index 0000000..53607ea --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/spec/spec.opts @@ -0,0 +1 @@ +--colour diff --git a/presidents/vendor/gems/ratom-0.6.2/spec/spec_helper.rb b/presidents/vendor/gems/ratom-0.6.2/spec/spec_helper.rb new file mode 100644 index 0000000..640a5b8 --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/spec/spec_helper.rb @@ -0,0 +1,43 @@ +# Copyright (c) 2008 The Kaphan Foundation +# +# For licensing information see LICENSE.txt. +# +# Please visit http://www.peerworks.org/contact for further information. +# +begin + require 'spec' +rescue LoadError + require 'rubygems' + gem 'rspec' + require 'spec' +end + +$:.unshift(File.join(File.dirname(__FILE__), '..', 'lib')) +require 'atom' + +Spec::Runner.configure do |config| + + def mock_response(klass, body, headers = {}) + response = klass.new(nil, nil, nil) + response.stub!(:body).and_return(body) + + headers.each do |k, v| + response.stub!(:[]).with(k).and_return(v) + end + + response + end + + def mock_http_get(url, response, user = nil, pass = nil) + req = mock('request') + Net::HTTP::Get.should_receive(:new).with(url.request_uri).and_return(req) + + if user && pass + req.should_receive(:basic_auth).with(user, pass) + end + + http = mock('http') + http.should_receive(:request).with(req).and_return(response) + Net::HTTP.should_receive(:start).with(url.host, url.port).and_yield(http) + end +end diff --git a/presidents/vendor/gems/ratom-0.6.2/tasks/deployment.rake b/presidents/vendor/gems/ratom-0.6.2/tasks/deployment.rake new file mode 100644 index 0000000..2f43742 --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/tasks/deployment.rake @@ -0,0 +1,34 @@ +desc 'Release the website and new gem version' +task :deploy => [:check_version, :website, :release] do + puts "Remember to create SVN tag:" + puts "svn copy svn+ssh://#{rubyforge_username}@rubyforge.org/var/svn/#{PATH}/trunk " + + "svn+ssh://#{rubyforge_username}@rubyforge.org/var/svn/#{PATH}/tags/REL-#{VERS} " + puts "Suggested comment:" + puts "Tagging release #{CHANGES}" +end + +desc 'Runs tasks website_generate and install_gem as a local deployment of the gem' +task :local_deploy => [:website_generate, :install_gem] + +task :check_version do + unless ENV['VERSION'] + puts 'Must pass a VERSION=x.y.z release version' + exit + end + unless ENV['VERSION'] == VERS + puts "Please update your version.rb to match the release version, currently #{VERS}" + exit + end +end + +desc 'Install the package as a gem, without generating documentation(ri/rdoc)' +task :install_gem_no_doc => [:clean, :package] do + sh "#{'sudo ' unless Hoe::WINDOZE }gem install pkg/*.gem --no-rdoc --no-ri" +end + +namespace :manifest do + desc 'Recreate Manifest.txt to include ALL files' + task :refresh do + `rake check_manifest | patch -p0 > Manifest.txt` + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/ratom-0.6.2/tasks/environment.rake b/presidents/vendor/gems/ratom-0.6.2/tasks/environment.rake new file mode 100644 index 0000000..691ed3b --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/tasks/environment.rake @@ -0,0 +1,7 @@ +task :ruby_env do + RUBY_APP = if RUBY_PLATFORM =~ /java/ + "jruby" + else + "ruby" + end unless defined? RUBY_APP +end diff --git a/presidents/vendor/gems/ratom-0.6.2/tasks/rspec.rake b/presidents/vendor/gems/ratom-0.6.2/tasks/rspec.rake new file mode 100644 index 0000000..95f43bf --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/tasks/rspec.rake @@ -0,0 +1,17 @@ +begin + require 'spec/rake/spectask' +rescue LoadError + puts <<-EOS +To use rspec for testing you must install rspec gem: + gem install rspec +EOS + exit(0) +end + +desc "Run the specs under spec/models" +Spec::Rake::SpecTask.new do |t| + t.spec_opts = ['--options', "spec/spec.opts"] + t.spec_files = FileList['spec/**/*_spec.rb'] +end + +task :default => :spec \ No newline at end of file diff --git a/presidents/vendor/gems/ratom-0.6.2/tasks/website.rake b/presidents/vendor/gems/ratom-0.6.2/tasks/website.rake new file mode 100644 index 0000000..93e03fa --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/tasks/website.rake @@ -0,0 +1,17 @@ +desc 'Generate website files' +task :website_generate => :ruby_env do + (Dir['website/**/*.txt'] - Dir['website/version*.txt']).each do |txt| + sh %{ #{RUBY_APP} script/txt2html #{txt} > #{txt.gsub(/txt$/,'html')} } + end +end + +desc 'Upload website files to rubyforge' +task :website_upload do + host = "#{rubyforge_username}@rubyforge.org" + remote_dir = "/var/www/gforge-projects/#{PATH}/" + local_dir = 'website' + sh %{rsync -aCv #{local_dir}/ #{host}:#{remote_dir}} +end + +desc 'Generate and upload website files' +task :website => [:website_generate, :website_upload, :publish_docs] diff --git a/presidents/vendor/gems/ratom-0.6.2/website/index.html b/presidents/vendor/gems/ratom-0.6.2/website/index.html new file mode 100644 index 0000000..b3310ad --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/website/index.html @@ -0,0 +1,11 @@ + + + + atom + + + +

    This page has not yet been created for RubyGem atom

    +

    To the developer: To generate it, update website/index.txt and run the rake task website to generate this index.html file.

    + + \ No newline at end of file diff --git a/presidents/vendor/gems/ratom-0.6.2/website/index.txt b/presidents/vendor/gems/ratom-0.6.2/website/index.txt new file mode 100644 index 0000000..0107c7a --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/website/index.txt @@ -0,0 +1,39 @@ +h1. atom + +h1. → 'atom' + + +h2. What + + +h2. Installing + +
    sudo gem install atom
    + +h2. The basics + + +h2. Demonstration of usage + + + +h2. Forum + +"http://groups.google.com/group/atom":http://groups.google.com/group/atom + +TODO - create Google Group - atom + +h2. How to submit patches + +Read the "8 steps for fixing other people's code":http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/ and for section "8b: Submit patch to Google Groups":http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/#8b-google-groups, use the Google Group above. + +The trunk repository is svn://rubyforge.org/var/svn/atom/trunk for anonymous access. + +h2. License + +This code is free to use under the terms of the MIT license. + +h2. Contact + +Comments are welcome. Send an email to "Peerworks":mailto:info@peerworks.org via the "forum":http://groups.google.com/group/atom + diff --git a/presidents/vendor/gems/ratom-0.6.2/website/javascripts/rounded_corners_lite.inc.js b/presidents/vendor/gems/ratom-0.6.2/website/javascripts/rounded_corners_lite.inc.js new file mode 100644 index 0000000..afc3ea3 --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/website/javascripts/rounded_corners_lite.inc.js @@ -0,0 +1,285 @@ + + /**************************************************************** + * * + * curvyCorners * + * ------------ * + * * + * This script generates rounded corners for your divs. * + * * + * Version 1.2.9 * + * Copyright (c) 2006 Cameron Cooke * + * By: Cameron Cooke and Tim Hutchison. * + * * + * * + * Website: http://www.curvycorners.net * + * Email: info@totalinfinity.com * + * Forum: http://www.curvycorners.net/forum/ * + * * + * * + * This library is free software; you can redistribute * + * it and/or modify it under the terms of the GNU * + * Lesser General Public License as published by the * + * Free Software Foundation; either version 2.1 of the * + * License, or (at your option) any later version. * + * * + * This library is distributed in the hope that it will * + * be useful, but WITHOUT ANY WARRANTY; without even the * + * implied warranty of MERCHANTABILITY or FITNESS FOR A * + * PARTICULAR PURPOSE. See the GNU Lesser General Public * + * License for more details. * + * * + * You should have received a copy of the GNU Lesser * + * General Public License along with this library; * + * Inc., 59 Temple Place, Suite 330, Boston, * + * MA 02111-1307 USA * + * * + ****************************************************************/ + +var isIE = navigator.userAgent.toLowerCase().indexOf("msie") > -1; var isMoz = document.implementation && document.implementation.createDocument; var isSafari = ((navigator.userAgent.toLowerCase().indexOf('safari')!=-1)&&(navigator.userAgent.toLowerCase().indexOf('mac')!=-1))?true:false; function curvyCorners() +{ if(typeof(arguments[0]) != "object") throw newCurvyError("First parameter of curvyCorners() must be an object."); if(typeof(arguments[1]) != "object" && typeof(arguments[1]) != "string") throw newCurvyError("Second parameter of curvyCorners() must be an object or a class name."); if(typeof(arguments[1]) == "string") +{ var startIndex = 0; var boxCol = getElementsByClass(arguments[1]);} +else +{ var startIndex = 1; var boxCol = arguments;} +var curvyCornersCol = new Array(); if(arguments[0].validTags) +var validElements = arguments[0].validTags; else +var validElements = ["div"]; for(var i = startIndex, j = boxCol.length; i < j; i++) +{ var currentTag = boxCol[i].tagName.toLowerCase(); if(inArray(validElements, currentTag) !== false) +{ curvyCornersCol[curvyCornersCol.length] = new curvyObject(arguments[0], boxCol[i]);} +} +this.objects = curvyCornersCol; this.applyCornersToAll = function() +{ for(var x = 0, k = this.objects.length; x < k; x++) +{ this.objects[x].applyCorners();} +} +} +function curvyObject() +{ this.box = arguments[1]; this.settings = arguments[0]; this.topContainer = null; this.bottomContainer = null; this.masterCorners = new Array(); this.contentDIV = null; var boxHeight = get_style(this.box, "height", "height"); var boxWidth = get_style(this.box, "width", "width"); var borderWidth = get_style(this.box, "borderTopWidth", "border-top-width"); var borderColour = get_style(this.box, "borderTopColor", "border-top-color"); var boxColour = get_style(this.box, "backgroundColor", "background-color"); var backgroundImage = get_style(this.box, "backgroundImage", "background-image"); var boxPosition = get_style(this.box, "position", "position"); var boxPadding = get_style(this.box, "paddingTop", "padding-top"); this.boxHeight = parseInt(((boxHeight != "" && boxHeight != "auto" && boxHeight.indexOf("%") == -1)? boxHeight.substring(0, boxHeight.indexOf("px")) : this.box.scrollHeight)); this.boxWidth = parseInt(((boxWidth != "" && boxWidth != "auto" && boxWidth.indexOf("%") == -1)? boxWidth.substring(0, boxWidth.indexOf("px")) : this.box.scrollWidth)); this.borderWidth = parseInt(((borderWidth != "" && borderWidth.indexOf("px") !== -1)? borderWidth.slice(0, borderWidth.indexOf("px")) : 0)); this.boxColour = format_colour(boxColour); this.boxPadding = parseInt(((boxPadding != "" && boxPadding.indexOf("px") !== -1)? boxPadding.slice(0, boxPadding.indexOf("px")) : 0)); this.borderColour = format_colour(borderColour); this.borderString = this.borderWidth + "px" + " solid " + this.borderColour; this.backgroundImage = ((backgroundImage != "none")? backgroundImage : ""); this.boxContent = this.box.innerHTML; if(boxPosition != "absolute") this.box.style.position = "relative"; this.box.style.padding = "0px"; if(isIE && boxWidth == "auto" && boxHeight == "auto") this.box.style.width = "100%"; if(this.settings.autoPad == true && this.boxPadding > 0) +this.box.innerHTML = ""; this.applyCorners = function() +{ for(var t = 0; t < 2; t++) +{ switch(t) +{ case 0: +if(this.settings.tl || this.settings.tr) +{ var newMainContainer = document.createElement("DIV"); newMainContainer.style.width = "100%"; newMainContainer.style.fontSize = "1px"; newMainContainer.style.overflow = "hidden"; newMainContainer.style.position = "absolute"; newMainContainer.style.paddingLeft = this.borderWidth + "px"; newMainContainer.style.paddingRight = this.borderWidth + "px"; var topMaxRadius = Math.max(this.settings.tl ? this.settings.tl.radius : 0, this.settings.tr ? this.settings.tr.radius : 0); newMainContainer.style.height = topMaxRadius + "px"; newMainContainer.style.top = 0 - topMaxRadius + "px"; newMainContainer.style.left = 0 - this.borderWidth + "px"; this.topContainer = this.box.appendChild(newMainContainer);} +break; case 1: +if(this.settings.bl || this.settings.br) +{ var newMainContainer = document.createElement("DIV"); newMainContainer.style.width = "100%"; newMainContainer.style.fontSize = "1px"; newMainContainer.style.overflow = "hidden"; newMainContainer.style.position = "absolute"; newMainContainer.style.paddingLeft = this.borderWidth + "px"; newMainContainer.style.paddingRight = this.borderWidth + "px"; var botMaxRadius = Math.max(this.settings.bl ? this.settings.bl.radius : 0, this.settings.br ? this.settings.br.radius : 0); newMainContainer.style.height = botMaxRadius + "px"; newMainContainer.style.bottom = 0 - botMaxRadius + "px"; newMainContainer.style.left = 0 - this.borderWidth + "px"; this.bottomContainer = this.box.appendChild(newMainContainer);} +break;} +} +if(this.topContainer) this.box.style.borderTopWidth = "0px"; if(this.bottomContainer) this.box.style.borderBottomWidth = "0px"; var corners = ["tr", "tl", "br", "bl"]; for(var i in corners) +{ if(i > -1 < 4) +{ var cc = corners[i]; if(!this.settings[cc]) +{ if(((cc == "tr" || cc == "tl") && this.topContainer != null) || ((cc == "br" || cc == "bl") && this.bottomContainer != null)) +{ var newCorner = document.createElement("DIV"); newCorner.style.position = "relative"; newCorner.style.fontSize = "1px"; newCorner.style.overflow = "hidden"; if(this.backgroundImage == "") +newCorner.style.backgroundColor = this.boxColour; else +newCorner.style.backgroundImage = this.backgroundImage; switch(cc) +{ case "tl": +newCorner.style.height = topMaxRadius - this.borderWidth + "px"; newCorner.style.marginRight = this.settings.tr.radius - (this.borderWidth*2) + "px"; newCorner.style.borderLeft = this.borderString; newCorner.style.borderTop = this.borderString; newCorner.style.left = -this.borderWidth + "px"; break; case "tr": +newCorner.style.height = topMaxRadius - this.borderWidth + "px"; newCorner.style.marginLeft = this.settings.tl.radius - (this.borderWidth*2) + "px"; newCorner.style.borderRight = this.borderString; newCorner.style.borderTop = this.borderString; newCorner.style.backgroundPosition = "-" + (topMaxRadius + this.borderWidth) + "px 0px"; newCorner.style.left = this.borderWidth + "px"; break; case "bl": +newCorner.style.height = botMaxRadius - this.borderWidth + "px"; newCorner.style.marginRight = this.settings.br.radius - (this.borderWidth*2) + "px"; newCorner.style.borderLeft = this.borderString; newCorner.style.borderBottom = this.borderString; newCorner.style.left = -this.borderWidth + "px"; newCorner.style.backgroundPosition = "-" + (this.borderWidth) + "px -" + (this.boxHeight + (botMaxRadius + this.borderWidth)) + "px"; break; case "br": +newCorner.style.height = botMaxRadius - this.borderWidth + "px"; newCorner.style.marginLeft = this.settings.bl.radius - (this.borderWidth*2) + "px"; newCorner.style.borderRight = this.borderString; newCorner.style.borderBottom = this.borderString; newCorner.style.left = this.borderWidth + "px" +newCorner.style.backgroundPosition = "-" + (botMaxRadius + this.borderWidth) + "px -" + (this.boxHeight + (botMaxRadius + this.borderWidth)) + "px"; break;} +} +} +else +{ if(this.masterCorners[this.settings[cc].radius]) +{ var newCorner = this.masterCorners[this.settings[cc].radius].cloneNode(true);} +else +{ var newCorner = document.createElement("DIV"); newCorner.style.height = this.settings[cc].radius + "px"; newCorner.style.width = this.settings[cc].radius + "px"; newCorner.style.position = "absolute"; newCorner.style.fontSize = "1px"; newCorner.style.overflow = "hidden"; var borderRadius = parseInt(this.settings[cc].radius - this.borderWidth); for(var intx = 0, j = this.settings[cc].radius; intx < j; intx++) +{ if((intx +1) >= borderRadius) +var y1 = -1; else +var y1 = (Math.floor(Math.sqrt(Math.pow(borderRadius, 2) - Math.pow((intx+1), 2))) - 1); if(borderRadius != j) +{ if((intx) >= borderRadius) +var y2 = -1; else +var y2 = Math.ceil(Math.sqrt(Math.pow(borderRadius,2) - Math.pow(intx, 2))); if((intx+1) >= j) +var y3 = -1; else +var y3 = (Math.floor(Math.sqrt(Math.pow(j ,2) - Math.pow((intx+1), 2))) - 1);} +if((intx) >= j) +var y4 = -1; else +var y4 = Math.ceil(Math.sqrt(Math.pow(j ,2) - Math.pow(intx, 2))); if(y1 > -1) this.drawPixel(intx, 0, this.boxColour, 100, (y1+1), newCorner, -1, this.settings[cc].radius); if(borderRadius != j) +{ for(var inty = (y1 + 1); inty < y2; inty++) +{ if(this.settings.antiAlias) +{ if(this.backgroundImage != "") +{ var borderFract = (pixelFraction(intx, inty, borderRadius) * 100); if(borderFract < 30) +{ this.drawPixel(intx, inty, this.borderColour, 100, 1, newCorner, 0, this.settings[cc].radius);} +else +{ this.drawPixel(intx, inty, this.borderColour, 100, 1, newCorner, -1, this.settings[cc].radius);} +} +else +{ var pixelcolour = BlendColour(this.boxColour, this.borderColour, pixelFraction(intx, inty, borderRadius)); this.drawPixel(intx, inty, pixelcolour, 100, 1, newCorner, 0, this.settings[cc].radius, cc);} +} +} +if(this.settings.antiAlias) +{ if(y3 >= y2) +{ if (y2 == -1) y2 = 0; this.drawPixel(intx, y2, this.borderColour, 100, (y3 - y2 + 1), newCorner, 0, 0);} +} +else +{ if(y3 >= y1) +{ this.drawPixel(intx, (y1 + 1), this.borderColour, 100, (y3 - y1), newCorner, 0, 0);} +} +var outsideColour = this.borderColour;} +else +{ var outsideColour = this.boxColour; var y3 = y1;} +if(this.settings.antiAlias) +{ for(var inty = (y3 + 1); inty < y4; inty++) +{ this.drawPixel(intx, inty, outsideColour, (pixelFraction(intx, inty , j) * 100), 1, newCorner, ((this.borderWidth > 0)? 0 : -1), this.settings[cc].radius);} +} +} +this.masterCorners[this.settings[cc].radius] = newCorner.cloneNode(true);} +if(cc != "br") +{ for(var t = 0, k = newCorner.childNodes.length; t < k; t++) +{ var pixelBar = newCorner.childNodes[t]; var pixelBarTop = parseInt(pixelBar.style.top.substring(0, pixelBar.style.top.indexOf("px"))); var pixelBarLeft = parseInt(pixelBar.style.left.substring(0, pixelBar.style.left.indexOf("px"))); var pixelBarHeight = parseInt(pixelBar.style.height.substring(0, pixelBar.style.height.indexOf("px"))); if(cc == "tl" || cc == "bl"){ pixelBar.style.left = this.settings[cc].radius -pixelBarLeft -1 + "px";} +if(cc == "tr" || cc == "tl"){ pixelBar.style.top = this.settings[cc].radius -pixelBarHeight -pixelBarTop + "px";} +switch(cc) +{ case "tr": +pixelBar.style.backgroundPosition = "-" + Math.abs((this.boxWidth - this.settings[cc].radius + this.borderWidth) + pixelBarLeft) + "px -" + Math.abs(this.settings[cc].radius -pixelBarHeight -pixelBarTop - this.borderWidth) + "px"; break; case "tl": +pixelBar.style.backgroundPosition = "-" + Math.abs((this.settings[cc].radius -pixelBarLeft -1) - this.borderWidth) + "px -" + Math.abs(this.settings[cc].radius -pixelBarHeight -pixelBarTop - this.borderWidth) + "px"; break; case "bl": +pixelBar.style.backgroundPosition = "-" + Math.abs((this.settings[cc].radius -pixelBarLeft -1) - this.borderWidth) + "px -" + Math.abs((this.boxHeight + this.settings[cc].radius + pixelBarTop) -this.borderWidth) + "px"; break;} +} +} +} +if(newCorner) +{ switch(cc) +{ case "tl": +if(newCorner.style.position == "absolute") newCorner.style.top = "0px"; if(newCorner.style.position == "absolute") newCorner.style.left = "0px"; if(this.topContainer) this.topContainer.appendChild(newCorner); break; case "tr": +if(newCorner.style.position == "absolute") newCorner.style.top = "0px"; if(newCorner.style.position == "absolute") newCorner.style.right = "0px"; if(this.topContainer) this.topContainer.appendChild(newCorner); break; case "bl": +if(newCorner.style.position == "absolute") newCorner.style.bottom = "0px"; if(newCorner.style.position == "absolute") newCorner.style.left = "0px"; if(this.bottomContainer) this.bottomContainer.appendChild(newCorner); break; case "br": +if(newCorner.style.position == "absolute") newCorner.style.bottom = "0px"; if(newCorner.style.position == "absolute") newCorner.style.right = "0px"; if(this.bottomContainer) this.bottomContainer.appendChild(newCorner); break;} +} +} +} +var radiusDiff = new Array(); radiusDiff["t"] = Math.abs(this.settings.tl.radius - this.settings.tr.radius) +radiusDiff["b"] = Math.abs(this.settings.bl.radius - this.settings.br.radius); for(z in radiusDiff) +{ if(z == "t" || z == "b") +{ if(radiusDiff[z]) +{ var smallerCornerType = ((this.settings[z + "l"].radius < this.settings[z + "r"].radius)? z +"l" : z +"r"); var newFiller = document.createElement("DIV"); newFiller.style.height = radiusDiff[z] + "px"; newFiller.style.width = this.settings[smallerCornerType].radius+ "px" +newFiller.style.position = "absolute"; newFiller.style.fontSize = "1px"; newFiller.style.overflow = "hidden"; newFiller.style.backgroundColor = this.boxColour; switch(smallerCornerType) +{ case "tl": +newFiller.style.bottom = "0px"; newFiller.style.left = "0px"; newFiller.style.borderLeft = this.borderString; this.topContainer.appendChild(newFiller); break; case "tr": +newFiller.style.bottom = "0px"; newFiller.style.right = "0px"; newFiller.style.borderRight = this.borderString; this.topContainer.appendChild(newFiller); break; case "bl": +newFiller.style.top = "0px"; newFiller.style.left = "0px"; newFiller.style.borderLeft = this.borderString; this.bottomContainer.appendChild(newFiller); break; case "br": +newFiller.style.top = "0px"; newFiller.style.right = "0px"; newFiller.style.borderRight = this.borderString; this.bottomContainer.appendChild(newFiller); break;} +} +var newFillerBar = document.createElement("DIV"); newFillerBar.style.position = "relative"; newFillerBar.style.fontSize = "1px"; newFillerBar.style.overflow = "hidden"; newFillerBar.style.backgroundColor = this.boxColour; newFillerBar.style.backgroundImage = this.backgroundImage; switch(z) +{ case "t": +if(this.topContainer) +{ if(this.settings.tl.radius && this.settings.tr.radius) +{ newFillerBar.style.height = topMaxRadius - this.borderWidth + "px"; newFillerBar.style.marginLeft = this.settings.tl.radius - this.borderWidth + "px"; newFillerBar.style.marginRight = this.settings.tr.radius - this.borderWidth + "px"; newFillerBar.style.borderTop = this.borderString; if(this.backgroundImage != "") +newFillerBar.style.backgroundPosition = "-" + (topMaxRadius + this.borderWidth) + "px 0px"; this.topContainer.appendChild(newFillerBar);} +this.box.style.backgroundPosition = "0px -" + (topMaxRadius - this.borderWidth) + "px";} +break; case "b": +if(this.bottomContainer) +{ if(this.settings.bl.radius && this.settings.br.radius) +{ newFillerBar.style.height = botMaxRadius - this.borderWidth + "px"; newFillerBar.style.marginLeft = this.settings.bl.radius - this.borderWidth + "px"; newFillerBar.style.marginRight = this.settings.br.radius - this.borderWidth + "px"; newFillerBar.style.borderBottom = this.borderString; if(this.backgroundImage != "") +newFillerBar.style.backgroundPosition = "-" + (botMaxRadius + this.borderWidth) + "px -" + (this.boxHeight + (topMaxRadius + this.borderWidth)) + "px"; this.bottomContainer.appendChild(newFillerBar);} +} +break;} +} +} +if(this.settings.autoPad == true && this.boxPadding > 0) +{ var contentContainer = document.createElement("DIV"); contentContainer.style.position = "relative"; contentContainer.innerHTML = this.boxContent; contentContainer.className = "autoPadDiv"; var topPadding = Math.abs(topMaxRadius - this.boxPadding); var botPadding = Math.abs(botMaxRadius - this.boxPadding); if(topMaxRadius < this.boxPadding) +contentContainer.style.paddingTop = topPadding + "px"; if(botMaxRadius < this.boxPadding) +contentContainer.style.paddingBottom = botMaxRadius + "px"; contentContainer.style.paddingLeft = this.boxPadding + "px"; contentContainer.style.paddingRight = this.boxPadding + "px"; this.contentDIV = this.box.appendChild(contentContainer);} +} +this.drawPixel = function(intx, inty, colour, transAmount, height, newCorner, image, cornerRadius) +{ var pixel = document.createElement("DIV"); pixel.style.height = height + "px"; pixel.style.width = "1px"; pixel.style.position = "absolute"; pixel.style.fontSize = "1px"; pixel.style.overflow = "hidden"; var topMaxRadius = Math.max(this.settings["tr"].radius, this.settings["tl"].radius); if(image == -1 && this.backgroundImage != "") +{ pixel.style.backgroundImage = this.backgroundImage; pixel.style.backgroundPosition = "-" + (this.boxWidth - (cornerRadius - intx) + this.borderWidth) + "px -" + ((this.boxHeight + topMaxRadius + inty) -this.borderWidth) + "px";} +else +{ pixel.style.backgroundColor = colour;} +if (transAmount != 100) +setOpacity(pixel, transAmount); pixel.style.top = inty + "px"; pixel.style.left = intx + "px"; newCorner.appendChild(pixel);} +} +function insertAfter(parent, node, referenceNode) +{ parent.insertBefore(node, referenceNode.nextSibling);} +function BlendColour(Col1, Col2, Col1Fraction) +{ var red1 = parseInt(Col1.substr(1,2),16); var green1 = parseInt(Col1.substr(3,2),16); var blue1 = parseInt(Col1.substr(5,2),16); var red2 = parseInt(Col2.substr(1,2),16); var green2 = parseInt(Col2.substr(3,2),16); var blue2 = parseInt(Col2.substr(5,2),16); if(Col1Fraction > 1 || Col1Fraction < 0) Col1Fraction = 1; var endRed = Math.round((red1 * Col1Fraction) + (red2 * (1 - Col1Fraction))); if(endRed > 255) endRed = 255; if(endRed < 0) endRed = 0; var endGreen = Math.round((green1 * Col1Fraction) + (green2 * (1 - Col1Fraction))); if(endGreen > 255) endGreen = 255; if(endGreen < 0) endGreen = 0; var endBlue = Math.round((blue1 * Col1Fraction) + (blue2 * (1 - Col1Fraction))); if(endBlue > 255) endBlue = 255; if(endBlue < 0) endBlue = 0; return "#" + IntToHex(endRed)+ IntToHex(endGreen)+ IntToHex(endBlue);} +function IntToHex(strNum) +{ base = strNum / 16; rem = strNum % 16; base = base - (rem / 16); baseS = MakeHex(base); remS = MakeHex(rem); return baseS + '' + remS;} +function MakeHex(x) +{ if((x >= 0) && (x <= 9)) +{ return x;} +else +{ switch(x) +{ case 10: return "A"; case 11: return "B"; case 12: return "C"; case 13: return "D"; case 14: return "E"; case 15: return "F";} +} +} +function pixelFraction(x, y, r) +{ var pixelfraction = 0; var xvalues = new Array(1); var yvalues = new Array(1); var point = 0; var whatsides = ""; var intersect = Math.sqrt((Math.pow(r,2) - Math.pow(x,2))); if ((intersect >= y) && (intersect < (y+1))) +{ whatsides = "Left"; xvalues[point] = 0; yvalues[point] = intersect - y; point = point + 1;} +var intersect = Math.sqrt((Math.pow(r,2) - Math.pow(y+1,2))); if ((intersect >= x) && (intersect < (x+1))) +{ whatsides = whatsides + "Top"; xvalues[point] = intersect - x; yvalues[point] = 1; point = point + 1;} +var intersect = Math.sqrt((Math.pow(r,2) - Math.pow(x+1,2))); if ((intersect >= y) && (intersect < (y+1))) +{ whatsides = whatsides + "Right"; xvalues[point] = 1; yvalues[point] = intersect - y; point = point + 1;} +var intersect = Math.sqrt((Math.pow(r,2) - Math.pow(y,2))); if ((intersect >= x) && (intersect < (x+1))) +{ whatsides = whatsides + "Bottom"; xvalues[point] = intersect - x; yvalues[point] = 0;} +switch (whatsides) +{ case "LeftRight": +pixelfraction = Math.min(yvalues[0],yvalues[1]) + ((Math.max(yvalues[0],yvalues[1]) - Math.min(yvalues[0],yvalues[1]))/2); break; case "TopRight": +pixelfraction = 1-(((1-xvalues[0])*(1-yvalues[1]))/2); break; case "TopBottom": +pixelfraction = Math.min(xvalues[0],xvalues[1]) + ((Math.max(xvalues[0],xvalues[1]) - Math.min(xvalues[0],xvalues[1]))/2); break; case "LeftBottom": +pixelfraction = (yvalues[0]*xvalues[1])/2; break; default: +pixelfraction = 1;} +return pixelfraction;} +function rgb2Hex(rgbColour) +{ try{ var rgbArray = rgb2Array(rgbColour); var red = parseInt(rgbArray[0]); var green = parseInt(rgbArray[1]); var blue = parseInt(rgbArray[2]); var hexColour = "#" + IntToHex(red) + IntToHex(green) + IntToHex(blue);} +catch(e){ alert("There was an error converting the RGB value to Hexadecimal in function rgb2Hex");} +return hexColour;} +function rgb2Array(rgbColour) +{ var rgbValues = rgbColour.substring(4, rgbColour.indexOf(")")); var rgbArray = rgbValues.split(", "); return rgbArray;} +function setOpacity(obj, opacity) +{ opacity = (opacity == 100)?99.999:opacity; if(isSafari && obj.tagName != "IFRAME") +{ var rgbArray = rgb2Array(obj.style.backgroundColor); var red = parseInt(rgbArray[0]); var green = parseInt(rgbArray[1]); var blue = parseInt(rgbArray[2]); obj.style.backgroundColor = "rgba(" + red + ", " + green + ", " + blue + ", " + opacity/100 + ")";} +else if(typeof(obj.style.opacity) != "undefined") +{ obj.style.opacity = opacity/100;} +else if(typeof(obj.style.MozOpacity) != "undefined") +{ obj.style.MozOpacity = opacity/100;} +else if(typeof(obj.style.filter) != "undefined") +{ obj.style.filter = "alpha(opacity:" + opacity + ")";} +else if(typeof(obj.style.KHTMLOpacity) != "undefined") +{ obj.style.KHTMLOpacity = opacity/100;} +} +function inArray(array, value) +{ for(var i = 0; i < array.length; i++){ if (array[i] === value) return i;} +return false;} +function inArrayKey(array, value) +{ for(key in array){ if(key === value) return true;} +return false;} +function addEvent(elm, evType, fn, useCapture) { if (elm.addEventListener) { elm.addEventListener(evType, fn, useCapture); return true;} +else if (elm.attachEvent) { var r = elm.attachEvent('on' + evType, fn); return r;} +else { elm['on' + evType] = fn;} +} +function removeEvent(obj, evType, fn, useCapture){ if (obj.removeEventListener){ obj.removeEventListener(evType, fn, useCapture); return true;} else if (obj.detachEvent){ var r = obj.detachEvent("on"+evType, fn); return r;} else { alert("Handler could not be removed");} +} +function format_colour(colour) +{ var returnColour = "#ffffff"; if(colour != "" && colour != "transparent") +{ if(colour.substr(0, 3) == "rgb") +{ returnColour = rgb2Hex(colour);} +else if(colour.length == 4) +{ returnColour = "#" + colour.substring(1, 2) + colour.substring(1, 2) + colour.substring(2, 3) + colour.substring(2, 3) + colour.substring(3, 4) + colour.substring(3, 4);} +else +{ returnColour = colour;} +} +return returnColour;} +function get_style(obj, property, propertyNS) +{ try +{ if(obj.currentStyle) +{ var returnVal = eval("obj.currentStyle." + property);} +else +{ if(isSafari && obj.style.display == "none") +{ obj.style.display = ""; var wasHidden = true;} +var returnVal = document.defaultView.getComputedStyle(obj, '').getPropertyValue(propertyNS); if(isSafari && wasHidden) +{ obj.style.display = "none";} +} +} +catch(e) +{ } +return returnVal;} +function getElementsByClass(searchClass, node, tag) +{ var classElements = new Array(); if(node == null) +node = document; if(tag == null) +tag = '*'; var els = node.getElementsByTagName(tag); var elsLen = els.length; var pattern = new RegExp("(^|\s)"+searchClass+"(\s|$)"); for (i = 0, j = 0; i < elsLen; i++) +{ if(pattern.test(els[i].className)) +{ classElements[j] = els[i]; j++;} +} +return classElements;} +function newCurvyError(errorMessage) +{ return new Error("curvyCorners Error:\n" + errorMessage) +} diff --git a/presidents/vendor/gems/ratom-0.6.2/website/stylesheets/screen.css b/presidents/vendor/gems/ratom-0.6.2/website/stylesheets/screen.css new file mode 100644 index 0000000..2c84cd0 --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/website/stylesheets/screen.css @@ -0,0 +1,138 @@ +body { + background-color: #E1D1F1; + font-family: "Georgia", sans-serif; + font-size: 16px; + line-height: 1.6em; + padding: 1.6em 0 0 0; + color: #333; +} +h1, h2, h3, h4, h5, h6 { + color: #444; +} +h1 { + font-family: sans-serif; + font-weight: normal; + font-size: 4em; + line-height: 0.8em; + letter-spacing: -0.1ex; + margin: 5px; +} +li { + padding: 0; + margin: 0; + list-style-type: square; +} +a { + color: #5E5AFF; + background-color: #DAC; + font-weight: normal; + text-decoration: underline; +} +blockquote { + font-size: 90%; + font-style: italic; + border-left: 1px solid #111; + padding-left: 1em; +} +.caps { + font-size: 80%; +} + +#main { + width: 45em; + padding: 0; + margin: 0 auto; +} +.coda { + text-align: right; + color: #77f; + font-size: smaller; +} + +table { + font-size: 90%; + line-height: 1.4em; + color: #ff8; + background-color: #111; + padding: 2px 10px 2px 10px; + border-style: dashed; +} + +th { + color: #fff; +} + +td { + padding: 2px 10px 2px 10px; +} + +.success { + color: #0CC52B; +} + +.failed { + color: #E90A1B; +} + +.unknown { + color: #995000; +} +pre, code { + font-family: monospace; + font-size: 90%; + line-height: 1.4em; + color: #ff8; + background-color: #111; + padding: 2px 10px 2px 10px; +} +.comment { color: #aaa; font-style: italic; } +.keyword { color: #eff; font-weight: bold; } +.punct { color: #eee; font-weight: bold; } +.symbol { color: #0bb; } +.string { color: #6b4; } +.ident { color: #ff8; } +.constant { color: #66f; } +.regex { color: #ec6; } +.number { color: #F99; } +.expr { color: #227; } + +#version { + float: right; + text-align: right; + font-family: sans-serif; + font-weight: normal; + background-color: #B3ABFF; + color: #141331; + padding: 15px 20px 10px 20px; + margin: 0 auto; + margin-top: 15px; + border: 3px solid #141331; +} + +#version .numbers { + display: block; + font-size: 4em; + line-height: 0.8em; + letter-spacing: -0.1ex; + margin-bottom: 15px; +} + +#version p { + text-decoration: none; + color: #141331; + background-color: #B3ABFF; + margin: 0; + padding: 0; +} + +#version a { + text-decoration: none; + color: #141331; + background-color: #B3ABFF; +} + +.clickable { + cursor: pointer; + cursor: hand; +} + diff --git a/presidents/vendor/gems/ratom-0.6.2/website/template.rhtml b/presidents/vendor/gems/ratom-0.6.2/website/template.rhtml new file mode 100644 index 0000000..5a26a30 --- /dev/null +++ b/presidents/vendor/gems/ratom-0.6.2/website/template.rhtml @@ -0,0 +1,48 @@ + + + + + + + <%= title %> + + + + + + +
    + +

    <%= title %>

    +
    +

    Get Version

    + <%= version %> +
    + <%= body %> +

    + Peerworks, <%= modified.pretty %>
    + Theme extended from Paul Battley +

    +
    + + + + + diff --git a/presidents/vendor/gems/rspec-1.2.9/.document b/presidents/vendor/gems/rspec-1.2.9/.document new file mode 100644 index 0000000..c845fd3 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/.document @@ -0,0 +1,7 @@ +features/**/*.feature +lib/**/*.rb +History.rdoc +License.txt +README.rdoc +Ruby1.9.rdoc +Upgrade.rdoc diff --git a/presidents/vendor/gems/rspec-1.2.9/.specification b/presidents/vendor/gems/rspec-1.2.9/.specification new file mode 100644 index 0000000..440da36 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/.specification @@ -0,0 +1,505 @@ +--- !ruby/object:Gem::Specification +name: rspec +version: !ruby/object:Gem::Version + version: 1.2.9 +platform: ruby +authors: +- RSpec Development Team +autorequire: +bindir: bin +cert_chain: [] + +date: 2009-10-05 00:00:00 +06:00 +default_executable: +dependencies: +- !ruby/object:Gem::Dependency + name: cucumber + type: :development + version_requirement: + version_requirements: !ruby/object:Gem::Requirement + requirements: + - - ">=" + - !ruby/object:Gem::Version + version: "0.3" + version: +- !ruby/object:Gem::Dependency + name: bmabey-fakefs + type: :development + version_requirement: + version_requirements: !ruby/object:Gem::Requirement + requirements: + - - ">=" + - !ruby/object:Gem::Version + version: 0.1.1 + version: +- !ruby/object:Gem::Dependency + name: syntax + type: :development + version_requirement: + version_requirements: !ruby/object:Gem::Requirement + requirements: + - - ">=" + - !ruby/object:Gem::Version + version: "1.0" + version: +- !ruby/object:Gem::Dependency + name: diff-lcs + type: :development + version_requirement: + version_requirements: !ruby/object:Gem::Requirement + requirements: + - - ">=" + - !ruby/object:Gem::Version + version: 1.1.2 + version: +- !ruby/object:Gem::Dependency + name: heckle + type: :development + version_requirement: + version_requirements: !ruby/object:Gem::Requirement + requirements: + - - ">=" + - !ruby/object:Gem::Version + version: 1.4.3 + version: +- !ruby/object:Gem::Dependency + name: hoe + type: :development + version_requirement: + version_requirements: !ruby/object:Gem::Requirement + requirements: + - - ">=" + - !ruby/object:Gem::Version + version: 2.3.3 + version: +description: Behaviour Driven Development for Ruby. +email: +- rspec-devel@rubyforge.org +executables: +- autospec +- spec +extensions: [] + +extra_rdoc_files: +- License.txt +- Manifest.txt +- TODO.txt +- examples/failing/README.txt +files: +- .document +- History.rdoc +- License.txt +- Manifest.txt +- README.rdoc +- Rakefile +- Ruby1.9.rdoc +- TODO.txt +- Upgrade.rdoc +- bin/autospec +- bin/spec +- cucumber.yml +- examples/failing/README.txt +- examples/failing/diffing_spec.rb +- examples/failing/failing_implicit_docstrings_example.rb +- examples/failing/failure_in_after.rb +- examples/failing/failure_in_before.rb +- examples/failing/mocking_example.rb +- examples/failing/mocking_with_flexmock.rb +- examples/failing/mocking_with_mocha.rb +- examples/failing/mocking_with_rr.rb +- examples/failing/partial_mock_example.rb +- examples/failing/pending_example.rb +- examples/failing/predicate_example.rb +- examples/failing/raising_example.rb +- examples/failing/syntax_error_example.rb +- examples/failing/team_spec.rb +- examples/failing/timeout_behaviour.rb +- examples/passing/custom_formatter.rb +- examples/passing/custom_matchers.rb +- examples/passing/dynamic_spec.rb +- examples/passing/file_accessor.rb +- examples/passing/file_accessor_spec.rb +- examples/passing/filtered_formatter.rb +- examples/passing/filtered_formatter_example.rb +- examples/passing/greeter_spec.rb +- examples/passing/helper_method_example.rb +- examples/passing/implicit_docstrings_example.rb +- examples/passing/io_processor.rb +- examples/passing/io_processor_spec.rb +- examples/passing/mocking_example.rb +- examples/passing/multi_threaded_example_group_runner.rb +- examples/passing/nested_classes_example.rb +- examples/passing/options_example.rb +- examples/passing/options_formatter.rb +- examples/passing/partial_mock_example.rb +- examples/passing/pending_example.rb +- examples/passing/predicate_example.rb +- examples/passing/shared_example_group_example.rb +- examples/passing/shared_stack_examples.rb +- examples/passing/simple_matcher_example.rb +- examples/passing/stack.rb +- examples/passing/stack_spec.rb +- examples/passing/stack_spec_with_nested_example_groups.rb +- examples/passing/stubbing_example.rb +- examples/passing/yielding_example.rb +- examples/ruby1.9.compatibility/access_to_constants_spec.rb +- features/before_and_after_blocks/before_and_after_blocks.feature +- features/command_line/line_number_option.feature +- features/command_line/line_number_option_with_example_with_no_name.feature +- features/example_groups/define_example_attribute.feature +- features/example_groups/example_group_with_should_methods.feature +- features/example_groups/implicit_docstrings.feature +- features/example_groups/nested_groups.feature +- features/expectations/customized_message.feature +- features/expectations/expect_change.feature +- features/expectations/expect_error.feature +- features/extensions/custom_example_group.feature +- features/formatters/custom_formatter.feature +- features/interop/examples_and_tests_together.feature +- features/interop/rspec_output.feature +- features/interop/test_but_not_test_unit.feature +- features/interop/test_case_with_should_methods.feature +- features/load_paths/add_lib_to_load_path.feature +- features/load_paths/add_spec_to_load_path.feature +- features/matchers/define_diffable_matcher.feature +- features/matchers/define_matcher.feature +- features/matchers/define_matcher_outside_rspec.feature +- features/matchers/define_matcher_with_fluent_interface.feature +- features/matchers/define_wrapped_matcher.feature +- features/mock_framework_integration/use_flexmock.feature +- features/mock_framework_integration/use_mocha.feature +- features/mock_framework_integration/use_rr.feature +- features/mocks/mix_stubs_and_mocks.feature +- features/mocks/stub_implementation.feature +- features/pending/pending_examples.feature +- features/runner/specify_line_number.feature +- features/spec_helper/spec_helper.feature +- features/step_definitions/running_rspec_steps.rb +- features/subject/explicit_subject.feature +- features/subject/implicit_subject.feature +- features/support/env.rb +- features/support/matchers/smart_match.rb +- init.rb +- lib/autotest/discover.rb +- lib/autotest/rspec.rb +- lib/spec.rb +- lib/spec/adapters/mock_frameworks/flexmock.rb +- lib/spec/adapters/mock_frameworks/mocha.rb +- lib/spec/adapters/mock_frameworks/rr.rb +- lib/spec/adapters/mock_frameworks/rspec.rb +- lib/spec/autorun.rb +- lib/spec/deprecation.rb +- lib/spec/dsl.rb +- lib/spec/dsl/main.rb +- lib/spec/example.rb +- lib/spec/example/args_and_options.rb +- lib/spec/example/before_and_after_hooks.rb +- lib/spec/example/errors.rb +- lib/spec/example/example_group.rb +- lib/spec/example/example_group_factory.rb +- lib/spec/example/example_group_hierarchy.rb +- lib/spec/example/example_group_methods.rb +- lib/spec/example/example_group_proxy.rb +- lib/spec/example/example_matcher.rb +- lib/spec/example/example_methods.rb +- lib/spec/example/example_proxy.rb +- lib/spec/example/module_reopening_fix.rb +- lib/spec/example/pending.rb +- lib/spec/example/predicate_matchers.rb +- lib/spec/example/shared_example_group.rb +- lib/spec/example/subject.rb +- lib/spec/expectations.rb +- lib/spec/expectations/errors.rb +- lib/spec/expectations/extensions.rb +- lib/spec/expectations/extensions/kernel.rb +- lib/spec/expectations/fail_with.rb +- lib/spec/expectations/handler.rb +- lib/spec/interop/test.rb +- lib/spec/interop/test/unit/autorunner.rb +- lib/spec/interop/test/unit/testcase.rb +- lib/spec/interop/test/unit/testresult.rb +- lib/spec/interop/test/unit/testsuite_adapter.rb +- lib/spec/interop/test/unit/ui/console/testrunner.rb +- lib/spec/matchers.rb +- lib/spec/matchers/be.rb +- lib/spec/matchers/be_close.rb +- lib/spec/matchers/be_instance_of.rb +- lib/spec/matchers/be_kind_of.rb +- lib/spec/matchers/change.rb +- lib/spec/matchers/compatibility.rb +- lib/spec/matchers/dsl.rb +- lib/spec/matchers/eql.rb +- lib/spec/matchers/equal.rb +- lib/spec/matchers/errors.rb +- lib/spec/matchers/exist.rb +- lib/spec/matchers/extensions/instance_exec.rb +- lib/spec/matchers/generated_descriptions.rb +- lib/spec/matchers/has.rb +- lib/spec/matchers/have.rb +- lib/spec/matchers/include.rb +- lib/spec/matchers/match.rb +- lib/spec/matchers/match_array.rb +- lib/spec/matchers/matcher.rb +- lib/spec/matchers/method_missing.rb +- lib/spec/matchers/operator_matcher.rb +- lib/spec/matchers/pretty.rb +- lib/spec/matchers/raise_error.rb +- lib/spec/matchers/respond_to.rb +- lib/spec/matchers/satisfy.rb +- lib/spec/matchers/simple_matcher.rb +- lib/spec/matchers/throw_symbol.rb +- lib/spec/matchers/wrap_expectation.rb +- lib/spec/mocks.rb +- lib/spec/mocks/argument_expectation.rb +- lib/spec/mocks/argument_matchers.rb +- lib/spec/mocks/error_generator.rb +- lib/spec/mocks/errors.rb +- lib/spec/mocks/example_methods.rb +- lib/spec/mocks/extensions.rb +- lib/spec/mocks/extensions/object.rb +- lib/spec/mocks/framework.rb +- lib/spec/mocks/message_expectation.rb +- lib/spec/mocks/methods.rb +- lib/spec/mocks/mock.rb +- lib/spec/mocks/order_group.rb +- lib/spec/mocks/proxy.rb +- lib/spec/mocks/space.rb +- lib/spec/rake/spectask.rb +- lib/spec/rake/verify_rcov.rb +- lib/spec/ruby.rb +- lib/spec/runner.rb +- lib/spec/runner/backtrace_tweaker.rb +- lib/spec/runner/class_and_arguments_parser.rb +- lib/spec/runner/command_line.rb +- lib/spec/runner/configuration.rb +- lib/spec/runner/differs/default.rb +- lib/spec/runner/differs/load-diff-lcs.rb +- lib/spec/runner/drb_command_line.rb +- lib/spec/runner/example_group_runner.rb +- lib/spec/runner/extensions/kernel.rb +- lib/spec/runner/formatter/base_formatter.rb +- lib/spec/runner/formatter/base_text_formatter.rb +- lib/spec/runner/formatter/failing_example_groups_formatter.rb +- lib/spec/runner/formatter/failing_examples_formatter.rb +- lib/spec/runner/formatter/html_formatter.rb +- lib/spec/runner/formatter/nested_text_formatter.rb +- lib/spec/runner/formatter/no_op_method_missing.rb +- lib/spec/runner/formatter/profile_formatter.rb +- lib/spec/runner/formatter/progress_bar_formatter.rb +- lib/spec/runner/formatter/silent_formatter.rb +- lib/spec/runner/formatter/snippet_extractor.rb +- lib/spec/runner/formatter/specdoc_formatter.rb +- lib/spec/runner/formatter/text_mate_formatter.rb +- lib/spec/runner/heckle_runner.rb +- lib/spec/runner/heckle_runner_unsupported.rb +- lib/spec/runner/line_number_query.rb +- lib/spec/runner/option_parser.rb +- lib/spec/runner/options.rb +- lib/spec/runner/reporter.rb +- lib/spec/stubs/cucumber.rb +- lib/spec/test/unit.rb +- lib/spec/version.rb +- resources/helpers/cmdline.rb +- resources/rake/examples.rake +- resources/rake/examples_with_rcov.rake +- resources/rake/failing_examples_with_html.rake +- resources/rake/verify_rcov.rake +- spec/README.jruby +- spec/autotest/autotest_helper.rb +- spec/autotest/autotest_matchers.rb +- spec/autotest/discover_spec.rb +- spec/autotest/failed_results_re_spec.rb +- spec/autotest/rspec_spec.rb +- spec/ruby_forker.rb +- spec/spec.opts +- spec/spec/dsl/main_spec.rb +- spec/spec/example/example_group_class_definition_spec.rb +- spec/spec/example/example_group_factory_spec.rb +- spec/spec/example/example_group_methods_spec.rb +- spec/spec/example/example_group_proxy_spec.rb +- spec/spec/example/example_group_spec.rb +- spec/spec/example/example_matcher_spec.rb +- spec/spec/example/example_methods_spec.rb +- spec/spec/example/example_proxy_spec.rb +- spec/spec/example/helper_method_spec.rb +- spec/spec/example/nested_example_group_spec.rb +- spec/spec/example/pending_module_spec.rb +- spec/spec/example/predicate_matcher_spec.rb +- spec/spec/example/shared_example_group_spec.rb +- spec/spec/example/subclassing_example_group_spec.rb +- spec/spec/example/subject_spec.rb +- spec/spec/expectations/differs/default_spec.rb +- spec/spec/expectations/extensions/kernel_spec.rb +- spec/spec/expectations/fail_with_spec.rb +- spec/spec/expectations/handler_spec.rb +- spec/spec/expectations/wrap_expectation_spec.rb +- spec/spec/interop/test/unit/resources/spec_that_fails.rb +- spec/spec/interop/test/unit/resources/spec_that_passes.rb +- spec/spec/interop/test/unit/resources/spec_with_errors.rb +- spec/spec/interop/test/unit/resources/spec_with_options_hash.rb +- spec/spec/interop/test/unit/resources/test_case_that_fails.rb +- spec/spec/interop/test/unit/resources/test_case_that_passes.rb +- spec/spec/interop/test/unit/resources/test_case_with_errors.rb +- spec/spec/interop/test/unit/resources/test_case_with_various_names.rb +- spec/spec/interop/test/unit/resources/testsuite_adapter_spec_with_test_unit.rb +- spec/spec/interop/test/unit/spec_spec.rb +- spec/spec/interop/test/unit/test_unit_spec_helper.rb +- spec/spec/interop/test/unit/testcase_spec.rb +- spec/spec/interop/test/unit/testsuite_adapter_spec.rb +- spec/spec/matchers/be_close_spec.rb +- spec/spec/matchers/be_instance_of_spec.rb +- spec/spec/matchers/be_kind_of_spec.rb +- spec/spec/matchers/be_spec.rb +- spec/spec/matchers/change_spec.rb +- spec/spec/matchers/compatibility_spec.rb +- spec/spec/matchers/description_generation_spec.rb +- spec/spec/matchers/dsl_spec.rb +- spec/spec/matchers/eql_spec.rb +- spec/spec/matchers/equal_spec.rb +- spec/spec/matchers/exist_spec.rb +- spec/spec/matchers/has_spec.rb +- spec/spec/matchers/have_spec.rb +- spec/spec/matchers/include_spec.rb +- spec/spec/matchers/match_array_spec.rb +- spec/spec/matchers/match_spec.rb +- spec/spec/matchers/matcher_methods_spec.rb +- spec/spec/matchers/matcher_spec.rb +- spec/spec/matchers/matchers_spec.rb +- spec/spec/matchers/operator_matcher_spec.rb +- spec/spec/matchers/raise_error_spec.rb +- spec/spec/matchers/respond_to_spec.rb +- spec/spec/matchers/satisfy_spec.rb +- spec/spec/matchers/simple_matcher_spec.rb +- spec/spec/matchers/throw_symbol_spec.rb +- spec/spec/mocks/any_number_of_times_spec.rb +- spec/spec/mocks/argument_expectation_spec.rb +- spec/spec/mocks/argument_matchers_spec.rb +- spec/spec/mocks/at_least_spec.rb +- spec/spec/mocks/at_most_spec.rb +- spec/spec/mocks/bug_report_10260_spec.rb +- spec/spec/mocks/bug_report_10263_spec.rb +- spec/spec/mocks/bug_report_11545_spec.rb +- spec/spec/mocks/bug_report_15719_spec.rb +- spec/spec/mocks/bug_report_496_spec.rb +- spec/spec/mocks/bug_report_600_spec.rb +- spec/spec/mocks/bug_report_7611_spec.rb +- spec/spec/mocks/bug_report_7805_spec.rb +- spec/spec/mocks/bug_report_8165_spec.rb +- spec/spec/mocks/bug_report_8302_spec.rb +- spec/spec/mocks/bug_report_830_spec.rb +- spec/spec/mocks/double_spec.rb +- spec/spec/mocks/failing_argument_matchers_spec.rb +- spec/spec/mocks/hash_including_matcher_spec.rb +- spec/spec/mocks/hash_not_including_matcher_spec.rb +- spec/spec/mocks/mock_ordering_spec.rb +- spec/spec/mocks/mock_space_spec.rb +- spec/spec/mocks/mock_spec.rb +- spec/spec/mocks/multiple_return_value_spec.rb +- spec/spec/mocks/nil_expectation_warning_spec.rb +- spec/spec/mocks/null_object_mock_spec.rb +- spec/spec/mocks/once_counts_spec.rb +- spec/spec/mocks/options_hash_spec.rb +- spec/spec/mocks/partial_mock_spec.rb +- spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +- spec/spec/mocks/passing_argument_matchers_spec.rb +- spec/spec/mocks/precise_counts_spec.rb +- spec/spec/mocks/record_messages_spec.rb +- spec/spec/mocks/stub_chain_spec.rb +- spec/spec/mocks/stub_implementation_spec.rb +- spec/spec/mocks/stub_spec.rb +- spec/spec/mocks/stubbed_message_expectations_spec.rb +- spec/spec/mocks/twice_counts_spec.rb +- spec/spec/mocks/unstub_spec.rb +- spec/spec/package/bin_spec_spec.rb +- spec/spec/rake/spectask_spec.rb +- spec/spec/runner/class_and_argument_parser_spec.rb +- spec/spec/runner/command_line_spec.rb +- spec/spec/runner/configuration_spec.rb +- spec/spec/runner/drb_command_line_spec.rb +- spec/spec/runner/empty_file.txt +- spec/spec/runner/example_group_runner_spec.rb +- spec/spec/runner/examples.txt +- spec/spec/runner/failed.txt +- spec/spec/runner/formatter/base_formatter_spec.rb +- spec/spec/runner/formatter/base_text_formatter_spec.rb +- spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +- spec/spec/runner/formatter/failing_examples_formatter_spec.rb +- spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html +- spec/spec/runner/formatter/html_formatted-1.8.6.html +- spec/spec/runner/formatter/html_formatted-1.8.7.html +- spec/spec/runner/formatter/html_formatted-1.9.1.html +- spec/spec/runner/formatter/html_formatter_spec.rb +- spec/spec/runner/formatter/nested_text_formatter_spec.rb +- spec/spec/runner/formatter/profile_formatter_spec.rb +- spec/spec/runner/formatter/progress_bar_formatter_spec.rb +- spec/spec/runner/formatter/snippet_extractor_spec.rb +- spec/spec/runner/formatter/specdoc_formatter_spec.rb +- spec/spec/runner/formatter/text_mate_formatted-1.8.6-jruby.html +- spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +- spec/spec/runner/formatter/text_mate_formatted-1.8.7.html +- spec/spec/runner/formatter/text_mate_formatted-1.9.1.html +- spec/spec/runner/formatter/text_mate_formatter_spec.rb +- spec/spec/runner/heckle_runner_spec.rb +- spec/spec/runner/heckler_spec.rb +- spec/spec/runner/line_number_query/line_number_query_fixture.rb +- spec/spec/runner/line_number_query_spec.rb +- spec/spec/runner/noisy_backtrace_tweaker_spec.rb +- spec/spec/runner/option_parser_spec.rb +- spec/spec/runner/options_spec.rb +- spec/spec/runner/output_one_time_fixture.rb +- spec/spec/runner/output_one_time_fixture_runner.rb +- spec/spec/runner/output_one_time_spec.rb +- spec/spec/runner/quiet_backtrace_tweaker_spec.rb +- spec/spec/runner/reporter_spec.rb +- spec/spec/runner/resources/a_bar.rb +- spec/spec/runner/resources/a_foo.rb +- spec/spec/runner/resources/a_spec.rb +- spec/spec/runner/resources/custom_example_group_runner.rb +- spec/spec/runner/resources/utf8_encoded.rb +- spec/spec/runner/spec.opts +- spec/spec/runner/spec_drb.opts +- spec/spec/runner/spec_spaced.opts +- spec/spec/runner_spec.rb +- spec/spec_helper.rb +- spec/support/macros.rb +- spec/support/spec_classes.rb +has_rdoc: true +homepage: http://rspec.info +licenses: [] + +post_install_message: | + ************************************************** + + Thank you for installing rspec-1.2.9 + + Please be sure to read History.rdoc and Upgrade.rdoc + for useful information about this release. + + ************************************************** + +rdoc_options: +- --main +- README.rdoc +require_paths: +- lib +required_ruby_version: !ruby/object:Gem::Requirement + requirements: + - - ">=" + - !ruby/object:Gem::Version + version: "0" + version: +required_rubygems_version: !ruby/object:Gem::Requirement + requirements: + - - ">=" + - !ruby/object:Gem::Version + version: "0" + version: +requirements: [] + +rubyforge_project: rspec +rubygems_version: 1.3.5 +signing_key: +specification_version: 3 +summary: rspec 1.2.9 +test_files: [] + diff --git a/presidents/vendor/gems/rspec-1.2.9/History.rdoc b/presidents/vendor/gems/rspec-1.2.9/History.rdoc new file mode 100644 index 0000000..9e4e146 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/History.rdoc @@ -0,0 +1,1496 @@ +=== Version 1.2.9 / 2009-10-05 + +* enhancements + * manage backtrace-ignore patterns with Spec::Runner.configure (Martin + Emde). Closes #870. + * friendly mock argument expectation failure message (Tim Harper). Closes + #868. + * added double() as alias for stub() and mock() + * failure messages for doubles, mocks and stubs use the right name + * add let() method to assign memoized attributes (suggestion from Stuart + Halloway). Closes #857. + * add its method so you can say: + describe Array do + its(:length) { should == 0 } + (Stephen Touset). Closes #833 + * spec command automatically uses spec/spec.opts if it is present + (suggestion from Yehuda Katz) + * rspec now adds PROJECT_ROOT/lib and PROJECT_ROOT/spec to the load path + * determines PROJECT_ROOT by recursing up until it finds a directory + that has a ./spec directory (thanks to Scott Taylor) + * supports require 'spec_helper' + * supports running specs from the PROJECT_ROOT or any directory + below it + * closes #733 + * better handling of determining test names in test/unit/interop mode + * Joe Ferris + * closes #854 + +* bug fixes + + * Fixed problem with colorized output when writing to a file + * Corey Ehmke + * closes #777 + +* not really a bug fix or enhancement + * temporarily moved heckle feature to features-pending (waiting to see what + happens with + http://rubyforge.org/tracker/index.php?func=detail&aid=26786&group_id=1513&atid=5921) + +=== Version 1.2.8 / 2009-07-16 + +* enhancements + * better messages for should[_not] be_nil (Chad Humphries and Rob Sanheim) + * should and should_not accept optional custom message + (suggestion from Rob Sanheim) + * result.should be_nil, "expected result to be nil" + * added 'spec/stubs/cucumber' to plug RSpec's stubbing framework into + Cucumber scenarios. + * added unstub method to remove a stub mid-example (Scott Taylor). Closes + #853. + * add more readable diff when expected and actual are hashes (Ryan Bigg). + Closes #848. + +* bug fixes + * fixed --line option for ruby 1.9.1 + * fix stub_chain conflict between two chains starting with the same message + (Mike Rohland). Closes #846. + +=== Version 1.2.7 / 2009-06-22 + +* enhancments + * added support for fakes using obj.stub(:method) { # implementation } + * allow subject { self } (Jarmo Pertman). Closes #816. + * friendly error message when a matcher returns nil on a failure message + * add ruby_cmd option to SpecTask (Rick DeNatale). Closes #823. + * also added missing specs for SpecTask - thanks Rick! + * add support for generating matchers with fluent interfaces with the + Matcher DSL + +* bug fixes + * NegativeOperatorMatcher now returns false (Wesley Beary). Closes #812. + * derive MockExpectationError from Exception rather than StandardError + (Kerry Buckley). Closes #830. + * fix bug where multi-line failure messages weren't getting picked up by + autotest (Jarmo Pertman). Closes #832. + * --line_number now works for it { should xxx } format (assist from Fred + Lee) + * warn instead of raise when there is no description supplied for an + example. Closes #840. + +=== Version 1.2.6 / 2009-04-30 + +* bug fixes + * gem actually built with spec executable + +=== Version 1.2.5 / 2009-04-29 + +* enhancements + + * name argument to mock/stub is now optional (closes #782) + * you can do mock(:foo => "woo", :bar => "car") + * expect { this_block }.to change{this.expression}.from(old_value).to(new_value) + * expect { this_block }.to raise_error + * better failiure messages for equal matcher (James Byrne). Closes #804. + * add stub_chain method + * also alias_method :stub, :stub!, so you can stub with less bang + * added options to example_group_proxy + +* bug fixes + + * ensure correct handling of ordered message expectations with duplicate + expectations (NigelThorne). Closes #793. + * get matcher backwards compat working w/ ruby 19 + * don't define instance_exec unless it is not defined + * was doing a version check, but turns out that didn't cover alternative + implementations like JRuby + * fix bug where in some circumstances, loading lib/spec/interop/test.rb + raised an error (tsechingho). Closes #803. + * make sure specs only run against spec server when using drb (patch from Chuck Grindel). Closes #797. + * remove deprecation warning in example_pending when using FailingExamplesFormatter. Closes #794. + * Access explicit subject from nested groups of arbitrary depth. Closes #756. + +=== Version 1.2.4 / 2009-04-13 + +* bug fix + + * just one - update the manifest + +=== Version 1.2.3 / 2009-04-13 + +* deprecations + + * BaseFormatter#add_example_group (use #example_group_started instead) + * ExampleGroupProxy#backtrace (use #location instead) + * ExampleProxy#backtrace (use #location instead) + * BaseFormatter#example_pending now expects two arguments. The third + argument is deprecated. + * ExampleGroupProxy#filtered_description. This was only used in one place + internally, and was a confusing solution to the problem. If you've got a + custom formatter that uses it, you can just use + ExampleGroupProxy#description and modify it directly. + * predicate_matchers (use the new Matcher DSL instead) + * Spec::Matchers.create (use Spec::Matchers.define instead) + +* enhancements + + * support for specifying single examples with colon syntax. Closes #712. + (Ben Mabey) + * you can now say "spec some_spec.rb:12" in addition to "spec some_spec.rb + --line 12" + * run specs locally with --drb if no drb server is running. Closes #780. + * still prints "No server running" to stderr + +* bug fixes + + * support expectations on DelegateClass (Clifford T. Matthews). Closes #48. + * Fixed match_array blows up if elements can't be sorted (Jeff Dean). Closes #779. + +=== Version 1.2.2 / 2009-03-22 + +Bug-fix release (fixes regression introduced in 1.2.1) + +* bug fixes + + * fixed bug in which spec_parser raised an error for custom example group + base classes + +=== Version 1.2.1 / 2009-03-22 + +This is a bug-fix release, recommended for anybody who has already upgraded to +rspec-1.2.0. + +See Upgrade.rdoc for information about upgrading to rspec-1.2.1 + +* enhancements + + * matchers, including the new DSL, easily added to your test/unit tests + * added support for 0 to n args in matcher DSL + * restored loading rubygems when necessary + * if you really don't want to use rubygems, you + can set an NO_RUBYGEMS environment + variable, and RSpec won't force it on you. + * added -u/--debugger option (Rick DeNatale) #262. + * just add "debugger" anywhere in your code and run spec path/to/code --debugger + * rename ExampleDescription to ExampleProxy + * pass ExampleProxy to example_started(). Closes #738, #743 + * thanks to Tobias Grimm (Eclipse) fort the patch and Roman Chernyatchik + (JetBrains, RubyMine) for the assist + +* bug fixes + + * subject (implicit or explicit) is now properly inherited by nested groups. Closes #744. + +=== Version 1.2.0 / 2009-03-15 + +* warnings: + + * If you use the ruby command to run specs instead of the spec command, you'll + need to require 'spec/autorun' or they won't run. This won't affect you if + you use the spec command or the Spec::Rake::SpecTask that ships with RSpec. + + * require 'spec/test/unit' to invoke test/unit interop if you're using + RSpec's core (this is handled implicitly with spec-rails) + + * setup and teardown are gone - use before and after instead + + * you can still use setup and teardown if you're using + Test::Unit::TestCase as the base ExampleGroup class (which is implicit + in rspec-rails) + + * The matcher protocol has been improved. The old protocol is still + supported, so as long as you're not monkey patching rspec's built-in + matchers, or using extension libraries that do, this should not affect + you. If you run into trouble, you'll just need to change: + + failure_message => failure_message_for_should + negative_failure_message => failure_message_for_should_not + + * All references to rubygems have been removed from within rspec's code. + + * NOTE that they have been restored in 1.2.1, above + + * See http://gist.github.com/54177 for rationale and suggestions on + alternative approaches to loading rubygems + +* deprecations + + * BaseTextFormatter#colourize - use colorize_failure instead. + * BaseTextFormatter#magenta - use red instead. + +* enhancements + + * cleaner integration with with heckle-1.4.2 + * allow registering example groups with a path-like key (Pat Maddox) + * start DRb service at "druby://localhost:0" (Hongli Lai) - See http://redmine.ruby-lang.org/issues/show/496 + * consistent reporting of errors as failures + * added spec/test/unit as more intuitive path to loading test/unit interop lib + * added explicit autorun feature for running specs with ruby command + * added handling for does_not_match? for matchers that want to know the context in which they were called + * lots of ruby 1.9.1 compatibility fixes from Chad Humprhies + * improved feedback from be_kind_of/be_a_kind_of/be_instance_of/be_an_instance_of (Jakub Šťastný) + * added --format silent (l) option, which is now the default when running --heckle (Bob Aman) + * sexy new custom matcher creation (Corey Haines & David Chelimsky - initial concept by Yehuda Katz) + * improved matcher protocol - old one is still supported, but new one is cleaner and prefered + +* bug fixes + + * support delegating operator matchers to subject with should_not + * all arguments are included if --drb is specified in spec.opts (Neil Buckley). Closes #671. + * added --autospec option hack (used internally) to get --color to work when using --drb and autospec. + * Fixed mock framework failure message bug in which similar calls were excluded from the output + * cryptic error message on change.rb when the from value is wrong (Michael Murray). Closes #706. + +=== Version 1.1.12 / 2009-01-11 + +WARNING: there was a stub/mock bug in 1.1.11 that allowed a structure that was +not intended: + + obj.stub!(:msg) + obj.msg + obj.should_receive(:msg) + +That would pass in 1.1.11, but should not have been allowed to, since the +message is received before the expectation is set. This was reported (#637) +and fixed for release 1.1.12, but may cause unexpected failures if you had +examples set up as above. + +WARNING: mock.should_receive(:msg).with(an_instance_of(klass)) now correctly uses instance_of? instead of kind_of?. This may break some existing code examples, but the fix is to just use kind_of instead of an_instance_of + +* 3 deprecations + + * deprecated ExampleMethods#implementation_backtrace - use ExampleMethods#backtrace instead + * deprecated ExampleGroupMethods#example_group_backtrace - use ExampleGroupMethods#backtrace instead + * deprecated Spec::Example::BehaviourRunner class (likely that nobody is using this) + +* 6 major enhancements + + * it { should matcher } - support for implicit receiver of #should (Joe Ferris of thoughtbot) + * subject { ... } - works in conjunction with implicit receiver of #should + * wrap_expectation (for wrapping multiple expectations and/or t/u assertions) + * added array.should =~ [1,2,3] # passes if array contains exactly the same elements in any order (Jeff Dean and Pat Maddox) + * hash_including mock argument matcher can now accept just keys, key/value pairs, or both (David Krmpotic) + * added hash_not_including mock argument matcher (David Krmpotic). Closes #634. + +* 9 minor enhancements + + * should throw_symbol accepts an optional argument: should throw_symbol(:sym, arg) + * fixed --line for jruby (Zach Moazeni) + * assorted small changes to support Ruby 1.9 (got a way to go) + * removed all instances of class << self - I do know who I am + * SpecParser can't handle backtrace paths with colons (John-Mason P. Shackelford). Closes #505. + * html formatter (and subsequently the textmate formatter) header fills in completely when running a single example + * config.include now accepts an array of types (config.include(Helpers, :type => [:view, :controller])) + * added be_a and be_an expectation matchers + * added instance_of and kind_of mock argument matchers + +* 9 bug fixes + + * fixed bug where {:a => 1, :b => 2}.should include(:a, :b) failed (Yossef Mendelssohn) + * only try to load Test::Unit if Test::Unit is defined (not just Test) + * Allow stubs on parent and child classes simultaneously (Jim Lindley). Fixes #600. + * BaseTextFormatter will now create the directory in a WHERE string (Adam Anderson). Fixes #616. + * Removed incorrect -S flag on autospec commands. Added explicit spec command for ruby to run, guarantee running rspec (raggi). Closes #507. + * Check whether test/unit has really been loaded before calling a method it defines (Brian Donovan). Closes #503. + * Fix spec_path for shared groups (Zach Dennis). Closes #615. + * stubbed message expectation not verified if it has been called *before* the expectation (Matthias Hennemeyer). Closes #637. + * stubs calculate return value by executing block passed to #and_return (hint from Aisha Fenton). Closes #642. + +=== Version 1.1.11 / 2008-10-24 + +* 1 major enhancement + + * eliminate ALL gem dependencies (as they were causing trouble for people on different platforms/environments) + +=== Version 1.1.10 / 2008-10-24 + +* 1 minor enhancement + + * hash.should include(:key => 'value') #when you don't care about the whole hash + +* 2 bug fixes + + * fix --help output (had inaccurate info about 'nested' formatter) + * eliminate spicycode-rcov dev dependency for rubygems < 1.3 + +=== Version 1.1.9 / 2008-10-20 + +WARNING: This release removes implicit inclusion of modules in example groups. +This means that if you have 'describe MyModule do', MyModule will not be +included in the group. + +* 2 major enhancements + + * Add extend to configuration (thanks to advice from Chad Fowler) + * Modules are no longer implicitly included in example groups + +* 4 minor enhancements + + * mingw indicates windows too (thanks to Luis Lavena for the tip) + * improved output for partial mock expecation failures + * it_should_behave_like now accepts n names of shared groups + * eliminated redundant inclusion/extension of ExampleGroupMethods + +* 6 bug fixes + + * spec command with no arguments prints help + * fixed typo in help. Fixes #73. + * fixed bug where should_receive..and_yield after similar stub added the args_to_yield to the stub's original args_to_yield (Pat Maddox) + * fixed bug where rspec-autotest (autospec) was loading non-spec files in spec directory. Fixes #559. + * fixed bug where should_not_receive was reporting twice + * fixed bug where rspec tries to run examples just because it is required (even if there are no examples loaded). Fixes #575. + +=== Version 1.1.8 / 2008-10-03 + +* 2 bug fixes + + * restore colorized output in linux and windows w/ autotest (Tim Pope). Fixes #413. + * autospec no longer hangs on windows. Fixes #554. + +=== Version 1.1.7 / 2008-10-02 + +* no changes since 1.1.6, but releasing rspec-1.1.7 to align versions with rspec-rails-1.1.7 + +=== Version 1.1.6 / 2008-10-02 + +* 2 bug fixes + + * fixed bug where negative message expectations following stubs resulted in false (negative) positives (Mathias Meyer). Closes #548. + * fixed bug where Not Yet Implemented examples report incorrect caller (Scott Taylor). Closes #547. + +* 1 minor enhancement + + * removed deprecated mock argument constraint symbols + +=== Version 1.1.5 / 2008-09-28 + +IMPORTANT: use the new 'autospec' command instead of 'autotest'. We changed +the way autotest discovers rspec so the autotest executable won't +automatically load rspec anymore. This allows rspec to live side by side other +spec frameworks without always co-opting autotest through autotest's discovery +mechanism. + +ALSO IMPORTANT: $rspec_options is gone. If you were using this for anything +(like your own runners), use Spec::Runner.options instead. + +ADDITIONALLY IMPORTANT: If you have any custom formatters, you'll need to +modify #example_pending to accept three arguments instead of just two. See the +rdoc for Spec::Runner::Formatter::BaseFormatter#example_pending for more +information. + +* Consider MinGW as valid RUBY_PLATFORM for --colour option. (patch from Luis Lavena). Closes #406. +* Added additional characters to be escaped in step strings (patch from Jake Cahoon). Closes #417. +* Disable color codes on STDOUT when STDOUT.tty? is false (patch from Tim Pope). Closes #413. +* mock(:null_object=>true) plays nice with HTML (patch from Gerrit Kaiser). Closes #230. +* a step definition with no block is treated as pending +* make sure consolidate_failures only grabs _spec files. Closes #369 +* Simplifying ExampleGroupMethods#registration_backtrace. (From Wilson Bilkovich - http://metaclass.org/2008/6/7/calling-in-the-dark) +* Use 127.0.0.1 instead of localhost for drb (thanks Ola Bini) +* html story formatter correctly colors story/scenario red if step fails (Patch from Joseph Wilk). Closes #300 +* plain text story formatter correctly colors story/scenario red if step fails (Patch from Joseph Wilk). Closes #439 +* quiet deprecation warning on inflector - patch from RSL. Closes #430 +* added autospec executable +* added configurable messages to simple_matcher +* should and should_not return true on success +* use hoe for build/release +* bye, bye translator +* autotest/rspec uses ruby command instead of spec command (no need for spec command unless loading directories) +* Avoid 'invalid option -O' in autotest (patch from Jonathan del Strother). Closes #486. +* Fix: Unimplemented step with new line throws error (patch from Ben Mabey). Closes #494. +* Only use color codes on tty; override for autospec (patch from Tim Pope). Closes #413. +* Warn when setting mock expectations on nil (patch from Ben Mabey). Closes #521. +* Support argument constraints as values in the hash_including contstraint. Thanks to Pirkka Hartikainen for failing code examples and the fix. Buttons up #501. +* mock(:null_object=>true) plays nice with HTML (patch from Gerrit Kaiser) +* Consider MinGW as valid RUBY_PLATFORM for --colour option. (patch from Luis Lavena). Closes #406. +* Add 2nd arg to respond_to? to align w/ core Ruby rdoc: http://www.ruby-doc.org/core/classes/Object.html#M000604 +* quiet backtrace tweaker filters individual lines out of multiline (ala Rails) error messages (Pat Maddox) +* added ability to stub multiple methods in one stub! call (Pat Maddox) +* story progress bar formatter and more colourful summaries from the plain text story formatter (Joseph Wilk) +* Avoid ruby invocation errors when autotesting (Jonathan del Strother) +* added mock('foo').as_null_object +* add file and line number to pending_example for formatters (Scott Taylor) +* return last stubbed value for mock expectation with no explicit return (Pat Maddox) +* Fixed bug when should_receive(:foo).any_number_of_times is called after similar stub (Pat Maddox) +* Warning messages now issued when expectations are set on nil (Ben Mabey) + +=== Version 1.1.4 + +Maintenance release. + +Note: we've removed the metaclass method from Object. There were some +generated specs that used it, and they will now break. Just replace the +metaclass call with (class << self; self; end) and all will be well. + +* added hash_including mock argument matcher. Closes #332 (patch from Rick DeNatale) +* pending steps print out yellow in stories (patch from Kyle Hargraves) +* Deprecation warnings for specs that assume auto-inclusion of modules. Closes #326 (patch from Scott Taylor) +* mock.should_not_receive(:anything) fails fast (once again) +* Patch from Antti Tarvainen to stop files from being loaded repeatedly when running heckle. Closes #333. +* Fixed bug in which session object in example was not the same instance used in the controller. Closes #331. +* Applied patch from Antti Tarvainen to fix bug where heckle runs rspec runs heckle runs rspec etc. Closes #280. +* Applied patch from Zach Dennis to merge :steps functionality to :steps_for. Closes #324. +* Applied patch from Ryan Davis to add eval of block passed to raise_error matcher. Closes #321. +* alias :context :describe in example_group_methods. Closes #312. +* Applied patch from Ben Mabey to make the Story runner exit with a non-0 exit code on failing stories. Closes #228. +* Applied patch from Coda Hale to get the :red hook called in autotest. Closes #279. +* Applied patch from Patrick Ritchie to support --drb in spec.opts. Closes #274, #293. +* Moved metaclass method from Object to an internal module which gets included where it is needed. +* Applied patch from Dayo Esho: and_yield clobbers return value from block. Closes #217. +* Applied patch from Bob Cotton: ExampleGroupFactory.default resets previously registered types. Closes #222. +* Applied patch from Mike Williams to support the lib directory in rails apps with the Textmate Alternate File command. Closes #276. +* ExampleGroupMethods#xspecify aliases #xit +* A SharedExampleGroup can be created within another ExampleGroup. +* Applied patch from Bob Cotton: Nested ExampleGroups do not have a spec_path. Closes #224. +* Add before_suite and after_suite callbacks to ExampleGroupMethods and Options. Closes #210. +* The after(:suite) callback lambda is passed a boolean representing whether the suite passed or failed +* Added NestedTextFormatter. Closes #366. +* decoupled mock framework from global extensions used by rspec - supports use of flexmock or mocha w/ rails +* Applied patch from Roman Chernyatchik to allow the user to pass in the ruby version into spectask. Closes #325, #370 + +=== Version 1.1.3 + +Maintenance release. +Notice to autotest users: you must also upgrade to ZenTest-3.9.0. + +* Tightened up exceptions list in autotest/rails_spec. Closes #264. +* Applied patch from Ryan Davis for ZenTest-3.9.0 compatibility +* Applied patch from Kero to add step_upcoming to story listeners. Closes #253. +* Fixed bug where the wrong named error was not always caught by "should raise_error" +* Applied patch from Luis Lavena: No coloured output on Windows due missing RUBYOPT. Closes #244. +* Applied patch from Craig Demyanovich to add support for "should_not render_template" to rspec_on_rails. Closes #241. +* Added --pattern (-p for short) option to control what files get loaded. Defaults to '**/*_spec.rb' +* Exit with non-0 exit code if examples *or tests* (in test/unit interop mode) fail. Closes #203. +* Moved at_exit hook to a method in Spec::Runner which only runs if specs get loaded. Closes #242. +* Applied patch from kakutani ensuring that base_view_path gets cleared after each view example. Closes #235. +* More tweaks to regexp step names +* Fixed focused specs in nested ExampleGroups. Closes #225. + +=== Version 1.1.2 + +Minor bug fixes/enhancements. +Notice to autotest users: you must also upgrade to ZenTest-3.8.0. + +* RSpec's Autotest subclasses compatible with ZenTest-3.8.0 (thanks to Ryan Davis for making it easier on Autotest subs). +* Applied patch from idl to add spec/lib to rake stats. Closes #226. +* calling setup_fixtures and teardown_fixtures for Rails >= r8570. Closes #219. +* Applied patch from Josh Knowles using ActiveSupport's Inflector (when available) to make 'should have' read a bit better. Closes #197. +* Fixed regression in 1.1 that caused failing examples to fail to generate their own names. Closes #209. +* Applied doc patch from Jens Krämer for capturing content_for +* Applied patch from Alexander Lang to clean up story steps after each story. Closes #198. +* Applied patch from Josh Knowles to support 'string_or_response.should have_text(...)'. Closes #193. +* Applied patch from Ian Dees to quiet the Story Runner backtrace. Closes #183. +* Complete support for defining steps with regexp 'names'. + +=== Version 1.1.1 + +Bug fix release. + +* Fix regression in 1.1.0 that caused transactions to not get rolled back between examples. +* Applied patch from Bob Cotton to reintroduce ExampleGroup.description_options. Closes LH[#186] + +=== Version 1.1.0 + +The "tell me a story and go nest yourself" release. + +* Applied patch from Mike Vincent to handle generators rails > 2.0.1. Closes LH[#181] +* Formatter.pending signature changed so it gets passed an ExampleGroup instance instead of the name ( LH[#180]) +* Fixed LH[#180] Spec::Rails::Example::ModelExampleGroup and friends show up in rspec/rails output +* Spec::Rails no longer loads ActiveRecord extensions if it's disabled in config/boot.rb +* Applied LH[#178] small annoyances running specs with warnings enabled (Patch from Mikko Lehtonen) +* Tighter integration with Rails fixtures. Take advantage of fixture caching to get performance improvements (Thanks to Pat Maddox, Nick Kallen, Jonathan Barnes, and Curtis) + +=== Version 1.1.0-RC1 + +Textmate Bundle users - this release adds a new RSpec bundle that highlights describe, it, before and after and +provides navigation to descriptions and examples (rather than classes and methods). When you first install this, +it is going to try to hijack all of your .rb files. All you need to do is open a .rb file that does not end with +'spec.rb' and change the bundle selection from RSpec to Ruby. TextMate will do the right thing from then on. + +Shortcuts for tab-activated snippets all follow the TextMate convention of 2 or 3 letters of the first word, followed by the first letter of each subsequent word. So "should have_at_least" would be triggered by shhal. + +We reduced the scope for running spec directories, files, a single file or individual spec in TextMate to source.ruby.rspec. This allowed us to restore the standard Ruby shortcuts: + +CMD-R runs all the specs in one file +CMD-SHIFT-R runs an individual spec +CMD-OPT-R runs any files or directories selected in the TextMate drawer + +rspec_on_rails users - don't forget to run script/generate rspec + +* Added shared_examples_for method, which you can (should) use instead of describe Foo, :shared => true +* Applied LH[#168] Fix describe Object, "description contains a # in it" (Patch from Martin Emde) +* Applied LH[#15] Reverse loading of ActionView::Base helper modules (Patch from Mark Van Holstyn) +* Applied LH[#149] Update contribute page to point towards lighthouse (Patch from Josh Knowles) +* Applied LH[#142] verify_rcov fails with latest rcov (Patch from Kyle Hargraves) +* Applied LH[#10] Allow stubs to yield and return values (Patch from Pat Maddox) +* Fixed LH[#139] version.rb in trunk missing svn last changed number +* Applied LH[#14] Adding support for by_at_least/by_at_most in Change matcher (Patch from Saimon Moore) +* Applied LH[#12] Fix for TM when switching to alternate file (Patch from Trevor Squires) +* Applied LH[#133] ExampleMatcher should match against before(:all) (Patch from Bob Cotton) +* Applied LH[#134] Only load spec inside spec_helper.rb (Patch from Mark Van Holstyn) +* RSpec now bails immediately if there are examples with identical names. +* Applied LH[#132] Plain Text stories should support Given and Given: (Patch from Jarkko Laine) +* Applied patch from Pat Maddox: Story Mediator - the glue that binds the plain text story parser with the rest of the system +* Applied LH[#16] Have SimpleMatchers expose their description for specdocs (Patch from Bryan Helmkamp) +* Stories now support --colour +* Changed the DSL modules to Example (i.e. Spec::Example instead of Spec::DSL) +* Applied [#15608] Story problem if parenthesis used in Given, When, Then or And (Patch from Sinclair Bain) +* Applied [#15659] GivenScenario fails when it is a RailsStory (Patch from Nathan Sutton) +* Fixed [#15639] rcov exclusion configuration. (Spec::Rails projects can configure rcov with spec/rcov.opts) +* The rdoc formatter (--format rdoc) is gone. It was buggy and noone was using it. +* Changed Spec::DSL::Behaviour to Spec::DSL::ExampleGroup +* Changed Spec::DSL::SharedBehaviour to Spec::DSL::SharedExampleGroup +* Applied [#14023] Small optimization for heavily proxied objects. (Patch from Ian Leitch) +* Applied [#13943] ProfileFormatter (Top 10 slowest examples) (Patch from Ian Leitch) +* Fixed [#15232] heckle is not working correctly in trunk (as of r2801) +* Applied [#14399] Show pending reasons in HTML report (Patch from Bryan Helmkamp) +* Discovered fixed: [#10263] mock "leak" when setting an expectation in a block passed to mock#should_receive +* Fixed [#14671] Spec::DSL::ExampleRunner gives "NO NAME because of --dry-run" for every example for 'rake spec:doc' +* Fixed [#14543] rspec_scaffold broken with Rails 2.0 +* Removed Patch [#10577] Rails with Oracle breaks 0.9.2 - was no longer necessary since we moved describe to the Main object (instead of Object) +* Fixed [#14527] specs run twice on rails 1.2.4 and rspec/rspec_on_rails trunk +* Applied [#14043] Change output ordering to show pending before errors (Patch from Mike Mangino) +* Applied [#14095] Don't have ./script/generate rspec create previous_failures.txt (Patch from Bryan Helmkamp) +* Applied [#14254] Improved error handling for Object#should and Object#should_not (Patch from Antti Tarvainen) +* Applied [#14186] Remove dead code from message_expecation.rb (Patch from Antti Tarvainen) +* Applied [#14183] Tiny improvement on mock_spec.rb (Patch from Antti Tarvainen) +* Applied [#14208] Fix to Mock#method_missing raising NameErrors instead of MockExpectationErrors (Patch from Antti Tarvainen) +* Applied [#14255] Fixed examples in mock_spec.rb and shared_behaviour_spec.rb (Patch from Antti Tarvainen) +* Applied [#14362] partially mocking objects that define == can blow up (Patch from Pat Maddox) +* test_ methods with an arity of 0 defined in a describe block or Example object will be run as an Example, providing a seamless transition from Test::Unit +* Removed BehaviourRunner +* Fixed [#13969] Spec Failures on Trunk w/ Autotest +* Applied [#14156] False positives with should_not (Patch from Antti Tarvainen) +* Applied [#14170] route_for and params_from internal specs fixed (Patch from Antti Tarvainen) +* Fixed [#14166] Cannot build trunk +* Applied [#14142] Fix for bug #11602: Nested #have_tag specifications fails on the wrong line number (Patch from Antti Tarvainen) +* Removed warn_if_no_files argument and feature +* Steps (Given/When/Then) with no blocks are treated as pending +* Applied [#13913] Scenario should treat no code block as pending (Patch from Evan Light) +* Fixed [#13370] Weird mock expectation error (Patch from Mike Mangino) +* Applied [#13952] Fix for performance regression introduced in r2096 (Patch from Ian Leitch) +* Applied [#13881] Dynamically include Helpers that are included on ActionView::Base (Patch from Brandon Keepers) +* Applied [#13833] ActionView::Helpers::JavaScriptMacrosHelper removed after 1.2.3 (Patch from Yurii Rashkovskii) +* Applied [#13814] RSpec on Rails w/ fixture-scenarios (Patch from Shintaro Kakutani) +* Add ability to define Example subclass instead of using describe +* Applied Patch from James Edward Gray II to improve syntax highlighting in TextMate +* Fixed [#13579] NoMethodError not raised for missing helper methods +* Fixed [#13713] form helper method 'select' can not be called when calling custom helper methods from specs +* Example subclasses Test::Unit::TestCase +* Added stub_everything method to create a stub that will return itself for any message it doesn't understand +* Added stories directory with stories/all.rb and stories/helper.rb when you script/generate rspec +* Applied [#13554] Add "And" so you can say Given... And... When... Then... And... +* Applied [#11254] RSpec syntax coloring and function pop-up integration in TextMate (Patch from Wincent Colaiuta) +* Applied [#13143] ActionView::Helpers::RecordIdentificationHelper should be included if present (Patch from Jay Levitt) +* Applied [#13567] patch to allow stubs to yield consecutive values (Patch from Rupert Voelcker) +* Applied [#13559] reverse version of route_for (Patch from Rupert Voelcker) +* Added [#13532] /lib specs should get base EvalContext +* Applied [#13451] Add a null_object option to mock_model (Patch from James Deville) +* Applied [#11919] Making non-implemented specs easy in textmate (Patch from Scott Taylor) +* Applied [#13274] ThrowSymbol recognized a NameError triggered by Kernel#method_missing as a thrown Symbol +* Applied [#12722] the alternate file command does not work in rails views due to scope (Patch from Carl Porth) +* Behaviour is now a Module that is used by Example class methods and SharedBehaviour +* Added ExampleDefinition +* Added story runner framework based on rbehave [#12628] +* Applied [#13336] Helper directory incorrect for rake stats in statsetup task (Patch from Curtis Miller) +* Applied [#13339] Add the ability for spec_parser to parse describes with :behaviour_type set (Patch from Will Leinweber and Dav Yaginuma) +* Fixed [#13271] incorrect behaviour with expect_render and stub_render +* Applied [#13129] Fix failing specs in spec_distributed (Patch from Bob Cotton) +* Applied [#13118] Rinda support for Spec::Distributed (Patch from Bob Cotton) +* Removed BehaviourEval +* Removed Behaviour#inherit +* Moved implementation of install_dependencies to example_rails_app +* Renamed RSPEC_DEPS to VENDOR_DEPS +* Added Example#not_implemented? +* You can now stub!(:msg).with(specific args) +* describe("A", Hash, "with one element") will generate description "A Hash with one element" (Tip from Ola Bini) +* Applied [#13016] [DOC] Point out that view specs render, well, a view (Patch from Jay Levitt) +* Applied [#13078] Develop rspec with autotest (Patch from Scott Taylor) +* Fixed [#13065] Named routes throw a NoMethodError in Helper specs (Patches from James Deville and Mike Mangino) +* Added (back) the verbose attribute in Spec::Rake::SpecTask +* Changed documentation to point at the new http svn URL, which is more accessible. + +=== Version 1.0.8 + +Another bugfix release - this time to resolve the version mismatch + +=== Version 1.0.7 + +Quick bugfix release to ensure that you don't have to have the rspec gem installed +in order to use autotest with rspec_on_rails. + +* Fixed [#13015] autotest gives failure in 'spec_command' after upgrade 1.0.5 to 1.0.6 + +=== Version 1.0.6 + +The "holy cow, batman, it's been a long time since we released and there are a ton of bug +fixes, patches and even new features" release. + +Warning: Spec::Rails users: In fixing 11508, we've removed the raise_controller_errors method. As long as you +follow the upgrade instructions and run 'script/generate rspec' you'll be fine, but if you skip this +step you need to manually go into spec_helper.rb and remove the call to that method (if present - it +might not be if you haven't upgraded in a while). + +Warning: Implementors of custom formatters. Formatters will now be sent an Example object instead of just a +String for #example_started, #example_passed and #example_failed. In certain scenarios +(Spec::Ui with Spec::Distributed), the formatter must ask the Example for its sequence number instead of +keeping track of a sequence number internal to the formatter. Most of you shouldn't need to upgrade +your formatters though - the Example#to_s method returns the example name/description, so you should be +able to use the passed Example instance as if it were a String. + +* Applied [#12986] Autotest Specs + Refactoring (Patch from Scott Tayler) +* Added a #close method to formatters, which allows them to gracefully close streams. +* Applied [#12935] Remove requirement that mocha must be installed as a gem when used as mocking framework. (Patch from Ryan Kinderman). +* Fixed [#12893] RSpec's Autotest should work with rspec's trunk +* Fixed [#12865] Partial mock error when object has an @options instance var +* Applied [#12701] Allow checking of content captured with content_for in view specs (Patch from Jens Kr�mer) +* Applied [#12817] Cannot include same shared behaviour when required with absolute paths (Patch from Ian Leitch) +* Applied [#12719] rspec_on_rails should not include pagination helper (Patch from Matthijs Langenberg) +* Fixed [#12714] helper spec not finding rails core helpers +* Applied [#12611] should_not redirect_to implementation (Patch from Yurii Rashkovskii) +* Applied [#12682] Not correctly aliasing original 'stub!' and 'should_receive' methods for ApplicationController (Patch from Matthijs Langenberg) +* Disabled controller.should_receive(:render) and controller.stub!(:render). Use expect_render or stub_render instead. +* Applied [#12484] Allow a Behaviour's Description to flow through to the Formatter (Patch from Bob Cotton) +* Fixed [#12448] The spec:plugins rake task from rspec_on_rails should ignore specs from the rspec_on_rails plugin +* Applied [#12300] rr integration (patch from Kyle Hargraves) +* Implemented [#12284] mock_with :rr (integration with RR mock framework: http://rubyforge.org/projects/pivotalrb/) +* Applied [#12237] (tiny) added full path to mate in switch_command (Patch from Carl Porth) +* Formatters will now be sent an Example object instead of just a String for certain methods +* All Spec::Rake::SpecTask attributes can now be procs, which allows for lazy evaluation. +* Changed the Spec::Ui interfaces slightly. See examples. +* Applied [#12174] mishandling of paths with spaces in spec_mate switch_command (Patch from Carl Porth) +* Implemented [#8315] File "Go to..." functionality +* Applied [#11917] Cleaner Spec::Ui error for failed Selenium connection (Patch from Ian Dees) +* Applied [#11888] rspec_on_rails spews out warnings when assert_select is used with an XML response (Patch from Ian Leitch) +* Applied [#12010] Nicer failure message formatting (Patch from Wincent Colaiuta) +* Applied [#12156] smooth open mate patch (Patch from Ienaga Eiji) +* Applied [#10577] Rails with Oracle breaks 0.9.2. (Patch from Sinclair Bain) +* Fixed [#12079] auto-generated example name incomplete: should have 1 error on ....] +* Applied [#12066] Docfix for mocks/mocks.page (Patch from Kyle Hargraves) +* Fixed [#11891] script/generate rspec_controller fails to create appropriate views (from templates) on edge rails +* Applied [#11921] Adds the correct controller_name from derived_controller_name() to the ViewExampleGroupController (Patch from Eloy Duran) +* Fixed [#11903] config.include with behaviour_type 'hash' does not work +* Examples without blocks and pending is now reported with a P instead of a * +* Pending blocks that now pass are rendered blue +* New behaviour for after: If an after block raises an error, the other ones will still run instead of bailing at the first. +* Made it possible to run spec from RSpec.tmbundle with --drb against a Rails spec_server. +* Applied [#11868] Add ability for pending to optionally hold a failing block and to fail when it passes (Patch from Bob Cotton) +* Fixed [#11843] watir_behaviour missing from spec_ui gem +* Added 'switch between source and spec file' command in Spec::Mate (based on code from Ruy Asan) +* Applied [#11509] Documentation - RSpec requires hpricot +* Applied [#11807] Daemonize spec_server and rake tasks to manage them. (patch from Kyosuke MOROHASHI) +* Added pending(message) method +* Fixed [#11777] should render_template doesn't check paths correctly +* Fixed [#11749] Use of 'rescue => e' does not catch all exceptions +* Fixed [#11793] should raise_error('with a message') does not work correctly +* Fixed [#11774] Mocks should respond to :kind_of? in the same way they respond to :is_a? +* Fixed [#11508] Exceptions are not raised for Controller Specs (removed experimental raise_controller_errors) +* Applied [#11615] Partial mock methods give ambiguous failures when given a method name as a String (Patch from Jay Phillips) +* Fixed [#11545] Rspec doesn't handle should_receive on ActiveRecord associations (Patch from Ian White) +* Fixed [#11514] configuration.use_transactional_fixtures is ALWAYS true, regardless of assignment +* Improved generated RESTful controller examples to cover both successful and unsuccessful POST and PUT +* Changed TextMate snippets for controllers to pass controller class names to #describe rather than controller_name. +* Changed TextMate snippets for mocks to use no_args() and any_args() instead of the deprecated Symbols. +* Applied [#11500] Documentation: no rails integration specs in 1.0 +* Renamed SpecMate's shortcuts for running all examples and focused examples to avoid conflicts (CMD-d and CMD-i) +* Added a TextMate snippet for custom matchers, lifted from Geoffrey Grosenbach's RSpec peepcode show. +* The translator translates mock constraints to the new matchers that were introduced in 1.0.4 +* Documented environment variables for Spec::Rake::SpecTask. Renamed SPECOPTS and RCOVOPTS to SPEC_OPTS and RCOV_OPTS. +* Fixed [#10534] Windows: undefined method 'controller_name' + +=== Version 1.0.5 +Bug fixes. Autotest plugin tweaks. + +* Fixed [#11378] fix to 10814 broke drb (re-opened #10814) +* Fixed [#11223] Unable to access flash from rails helper specs +* Fixed [#11337] autotest runs specs redundantly +* Fixed [#11258] windows: autotest won't run +* Applied [#11253] Tweaks to autotest file mappings (Patch from Wincent Colaiuta) +* Applied [#11252] Should be able to re-load file containing shared behaviours without raising an exception (Patch from Wincent Colaiuta) +* Fixed [#11247] standalone autotest doesn't work because of unneeded autotest.rb +* Applied [#11221] Autotest support does not work w/o Rails Gem installed (Patch from Josh Knowles) + +=== Version 1.0.4 +The getting ready for JRuby release. + +* Fixed [#11181] behaviour_type scoping of config.before(:each) is not working +* added mock argument constraint matchers (anything(), boolean(), an_instance_of(Type)) which work with rspec or mocha +* added mock argument constraint matchers (any_args(), no_args()) which only work with rspec +* deprecated rspec's symbol mock argument constraint matchers (:any_args, :no_args, :anything, :boolean, :numeric, :string) +* Added tarball of rspec_on_rails to the release build to support folks working behind a firewall that blocks svn access. +* Fixed [#11137] rspec incorrectly handles flash after resetting the session +* Fixed [#11143] Views code for ActionController::Base#render broke between 1.0.0 and 1.0.3 on Rails Edge r6731 +* Added raise_controller_errors for controller examples in Spec::Rails + +=== Version 1.0.3 +Bug fixes. + +* Fixed [#11104] Website uses old specify notation +* Applied [#11101] StringHelpers.starts_with?(prefix) assumes a string parameter for _prefix_ +* Removed 'rescue nil' which was hiding errors in controller examples. +* Fixed [#11075] controller specs fail when using mocha without integrated_views +* Fixed problem with redirect_to failing incorrectly against edge rails. +* Fixed [#11082] RspecResourceGenerator should be RspecScaffoldGenerator +* Fixed [#10959] Focused Examples do not work for Behaviour defined with constant with modules + +=== Version 1.0.2 +This is just to align the version numbers in rspec and rspec_on_rails. + +=== Version 1.0.1 +This is a maintenance release with mostly cleaning up, and one minor enhancement - +Modules are automatically included when described directly. + +* Renamed Spec::Rails' rspec_resource generator to rspec_scaffold. +* Removed Spec::Rails' be_feed matcher since it's based on assert_select_feed which is not part of Rails (despite that docs for assert_select_encoded says it is). +* describe(SomeModule) will include that module in the examples. Like for Spec::Rails helpers, but now also in core. +* Header in HTML report will be yellow instead of red if there is one failed example +* Applied [#10951] Odd instance variable name in rspec_model template (patch from Kyle Hargraves) +* Improved integration with autotest (Patches from Ryan Davis and David Goodland) +* Some small fixes to make all specs run on JRuby. + +=== Version 1.0.0 +The stake in the ground release. This represents a commitment to the API as it is. No significant +backwards compatibility changes in the API are expected after this release. + +* Fixed [#10923] have_text matcher does not support should_not +* Fixed [#10673] should > and should >= broken +* Applied [#10921] Allow verify_rcov to accept greater than threshold coverage %'s via configuration +* Applied [#10920] Added support for not implemented examples (Patch from Chad Humphries and Ken Barker) +* Patch to allow not implemented examples. This works by not providing a block to the example. (Patch from Chad Humphries, Ken Barker) +* Yanked support for Rails 1.1.6 in Spec::Rails +* RSpec.tmbundle uses CMD-SHIFT-R to run focused examples now. +* Spec::Rails now bundles a spec:rcov task by default (suggestion from Kurt Schrader) +* Fixed [#10814] Runner loads shared code, test cases require them again +* Fixed [#10753] Global before and after +* Fixed [#10774] Allow before and after to be specified in config II +* Refactored Spec::Ui examples to use new global before and after blocks. +* Added instructions about how to get Selenium working with Spec::Ui (spec_ui/examples/selenium/README.txt) +* Fixed [#10805] selenium.rb missing from gem? +* Added rdocs explaining how to deal with errors in Rails' controller actions +* Applied [#10770] Finer grained includes. +* Fixed [#10747] Helper methods defined in shared specs are not visible when shared spec is used +* Fixed [#10748] Shared descriptions in separate files causes 'already exists' error +* Applied [#10698] Running with --drb executes specs twice (patch from Ruy Asan) +* Fixed [#10871] 0.9.4 - Focussed spec runner fails to run specs in descriptions with type and string when there is no leading space in the string + +=== Version 0.9.4 +This release introduces massive improvements to Spec::Ui - the user interface functional testing +extension to RSpec. There are also some minor bug fixes to the RSpec core. + +* Massive improvements to Spec::Ui. Complete support for all Watir's ie.xxx(how, what) methods. Inline screenshots and HTML. +* Reactivated --timeout, which had mysteriously been deactivated in a recent release. +* Fixed [#10669] Kernel#describe override does not cover Kernel#context +* Applied [#10636] Added spec for OptionParser in Runner (Patch from Scott Taylor) +* Added [#10516] should_include should be able to accept multiple items +* Applied [#10631] redirect_to matcher doesn't respect request.host (Patch from Tim Lucas) +* Each formatter now flushes their own IO. This is to avoid buffering of output. +* Fixed [#10670] IVarProxy#delete raises exception when instance variable does not exist + +=== Version 0.9.3 +This is a bugfix release. + +* Fixed [#10594] Failing Custom Matcher show NAME NOT GENERATED description +* describe(SomeType, "#message") will not add a space: "SomeType#message" (likewise for '.') +* describe(SomeType, "message") will have a decription with a space: "SomeType message" +* Applied [#10566] prepend_before and prepend_after callbacks +* Applied [#10567] Call setup and teardown using before and after callbacks + +=== Version 0.9.2 +This is a quick maintenance release. + +* Added some website love +* Fixed [#10542] reverse predicate matcher syntax +* Added a spec:translate Rake task to make 0.9 translation easier with Spec:Rails +* Better translation of should_redirect_to +* Fixed --colour support for Windows. This is a regression that was introduced in 0.9.1 +* Applied [#10460] Make SpecRunner easier to instantiate without using commandline args + +=== Version 0.9.1 + +This release introduces #describe and #it (aliased as #context and #specify for +backwards compatibility). This allows you to express specs like this: + + describe SomeClass do # Creates a Behaviour + it "should do something" do # Creates an Example + end + end + +The command line features four new options that give you more control over what specs +are being run and in what order. This can be used to verify that your specs are +independent (by running in opposite order with --reverse). It can also be used to cut +down feedback time by running the most recently modified specs first (--loadby mtime --reverse). + +Further, --example replaces the old --spec option, and it can now take a file name of +spec names as an alternative to just a spec name. The --format failing_examples:file.txt +option allows you to output an --example compatible file, which makes it possible to only +rerun the specs that failed in the last run. Spec::Rails uses all of these four options +by default to optimise your RSpec experience. + +There is now a simple configuration model. For Spec::Rails, you do something like this: + + Spec::Runner.configure do |config| + config.use_transactional_fixtures = true + config.use_instantiated_fixtures = false + config.fixture_path = RAILS_ROOT + '/spec/fixtures' + end + +You can now use mocha or flexmock with RSpec if you prefer either to +RSpec's own mock framework. Just put this: + + Spec::Runner.configure do |config| + config.mock_with :mocha + end + +or this: + + Spec::Runner.configure do |config| + config.mock_with :flexmock + end + +in a file that is loaded before your specs. You can also +configure included modules and predicate_matchers: + + Spec::Runner.configure do |config| + config.include SomeModule + config.predicate_matchers[:does_something?] = :do_something + end + +See Spec::DSL::Behaviour for more on predicate_matchers + +* Sugar FREE! +* Added [10434 ] Please Make -s synonymous with -e for autotest compat. This is temporary until autotest uses -e instead of -s. +* Fixed [#10133] custom predicate matchers +* Applied [#10473] Add should exist (new matcher) - Patch from Bret Pettichord +* Added another formatter: failing_behaviours. Writes the names of the failing behaviours for use with --example. +* Applied [#10315] Patch to fix pre_commit bug 10313 - pre_commit_rails: doesn't always build correctly (Patch from Antii Tarvainen) +* Applied [#10245] Patch to HTML escape the behavior name when using HTML Formatter (Patch from Josh Knowles) +* Applied [#10410] redirect_to does not behave consistently with regards to query string parameter ordering (Patch from Nicholas Evans) +* Applied [#9605] Patch for ER 9472, shared behaviour (Patch by Bob Cotton) +* The '--format rdoc' option no longer causes a dry-run by default. --dry-run must be used explicitly. +* It's possible to specify the output file in the --format option (See explanation in --help) +* Several --format options may be specified to output several formats in one run. +* The --out option is gone. Use --format html:path/to/my.html instead (or similar). +* Spec::Runner::Formatter::BaseTextFormatter#initialize only takes one argument - an IO. dry_run and color are setters. +* Made Spec::Ui *much* easier to install. It will be released separately. Check out trunk/spec_ui/examples +* HTML reports now include a syntax highlighted snippet of the source code where the spec failed (needs the syntax gem) +* Added [#10262] Better Helper testing of Erb evaluation block helpers +* Added [#9735] support flexmock (thanks to Jim Weirich for his modifications to flexmock to support this) +* Spec::Rails controller specs will no longer let mock exception ripple through to the response. +* Fixed [#9260] IvarProxy does not act like a hash. +* Applied [#9458] The rspec_scaffold generator does not take into account class nesting (Patch from Steve Tendon) +* Applied [#9132] Rakefile spec:doc can fail without preparing database (Patch from Steve Ross) +* Applied [#9678] Custom runner command line switch, and multi-threaded runner (Patch from Bob Cotton) +* Applied [#9926] Rakefile - RSPEC_DEPS constant as an Array of Hashes instead of an Array of Arrays (Patch from Scott Taylor) +* Applied [#9925] Changed ".rhtml" to "template" in REST spec generator (Patch from Scott Taylor) +* Applied [#9852] Patch for RSpec's Website using Webgen 0.4.2 (Patch from Scott Taylor) +* Fixed [#6523] Run rspec on rails without a db +* Fixed [#9295] rake spec should run anything in the spec directory (not just rspec's standard dirs) +* Added [#9786] infer controller and helper names from the described type +* Fixed [#7795] form_tag renders action='/view_spec' in view specs +* Fixed [#9767] rspec_on_rails should not define rescue_action on controllers +* Fixed [#9421] --line doesn't work with behaviours that use class names +* Fixed [#9760] rspec generators incompatible with changes to edge rails +* Added [#9786] infer controller and helper names from the described type +* Applied a simplified version of [#9282] Change to allow running specs from textmate with rspec installed as a rails plugin (and no rspec gem installed) +* Applied [#9700] Make Spec::DSL::Example#name public / Add a --timeout switch. A great way to prevent specs from getting slow. +* In Rails, script/generate rspec will generate a spec.opts file that optimises faster/more efficient running of specs. +* Added [#9522] support using rspec's expectations with test/unit +* Moved rspec_on_rails up to the project root, simplifying the download url +* Fixed [#8103] RSpec not installing spec script correctly. +* The --spec option is replaced by the --example option. +* The --loadby option no longer supports a file argument. Use --example file_name instead. +* The --example option can now take a file name as an argument. The file should contain example names. +* Internal classes are named Behaviour/Example (rather than Context/Specification). +* You can now use mocha by saying config.mock_with :mocha in a spec_helper +* before_context_eval is replaced by before_eval. +* Applied [#9509] allow spaced options in spec.opts +* Applied [#9510] Added File for Ruby 1.8.6 +* Applied [#9511] Clarification to README file in spec/ +* Moved all of the Spec::Rails specs down to the plugins directory - now you can run the specs after you install. +* Updated RSpec.tmbundle to the 0.9 syntax and replaced context/specify with describe/it. +* Applied [#9232] ActionController::Base#render is sometimes protected (patch from Dan Manges) +* Added --reverse option, allowing contexts/specs to be run in reverse order. +* Added --loadby option, allowing better control over load order for spec files. mtime and file.txt supported. +* Implemented [#8696] --order option (see --reverse and --loadby) +* Added describe/it as aliases for context/specify - suggestion from Dan North. +* Applied [#7637] [PATCH] add skip-migration option to rspec_scaffold generator +* Added [#9167] string.should have_tag +* Changed script/rails_spec_server to script/spec_server and added script/spec (w/ path to vendor/plugins/rspec) +* Fixed [#8897] Error when mixing controller spec with/without integrated views and using template system other than rhtml +* Updated sample app specs to 0.9 syntax +* Updated generated specs to 0.9 syntax +* Applied [#8994] trunk: generated names for be_ specs (Multiple patches from Yurii Rashkovskii) +* Applied [#9983]: Allow before and after to be called in BehaviourEval. This is useful for shared examples. + +=== Version 0.8.2 + +Replaced assert_select fork with an assert_select wrapper for have_tag. This means that "should have_rjs" no longer supports :hide or :effect, but you can still use should_have_rjs for those. + +=== Version 0.8.1 + +Quick "in house" bug-fix + +=== Version 0.8.0 + +This release introduces a new approach to handling expectations using Expression Matchers. + +See Upgrade[http://rspec.rubyforge.org/upgrade.html], Spec::Expectations, Spec::Matchers and RELEASE-PLAN for more info. + +This release also improves the spec command line by adding DRb support and making it possible to +store command line options in a file. This means a more flexible RSpec experience with Rails, +Rake and editor plugins like TextMate. + +It also sports myriad new features, bug fixes, patches and general goodness: + +* Fixed [#8928] rspec_on_rails 0.8.0-RC1 controller tests make double call to setup_with_fixtures +* Fixed [#8925] Documentation bug in 0.8.0RC1 rspec website +* Applied [#8132] [PATCH] RSpec breaks "rake db:sessions:create" in a rails project that has the rspec_on_rails plugin (Patch from Erik Kastner) +* Fixed [#8789] --line and --spec not working when the context has parenhesis in the name +* Added [#8783] auto generate spec names from last expectation +* --heckle now fails if the heckled class or module is not found. +* Fixed [#8771] Spec::Mocks::BaseExpectation#with converts hash params to array of arrays with #collect +* Fixed [#8750] should[_not]_include backwards compatibility between 0.8.0-RC1 and 0.7.5.1 broken +* Fixed [#8646] Context Runner does not report on Non standard exceptions and return a 0 return code +* RSpec on Rails' spec_helper.rb will only force RAILS_ENV to test if it was not specified on the command line. +* Fixed [#5485] proc#should_raise and proc#should_not_raise output +* Added [#8484] should_receive with blocks +* Applied [#8218] heckle_runner.rb doesn't work with heckle >= 1.2.0 (Patch from Michal Kwiatkowski) +* Fixed [#8240] Cryptic error message when no controller_name +* Applied [#7461] [PATCH] Contexts don't call Module::included when they include a module +* Removed unintended block of test/unit assertions in rspec_on_rails - they should all, in theory, now be accessible +* Added mock_model method to RSpec on Rails, which stubs common methods. Based on http://metaclass.org/2006/12/22/making-a-mockery-of-activerecord +* Fixed [#8165] Partial Mock Errors when respond_to? is true but the method is not in the object +* Fixed [#7611] Partial Mocks override Subclass methods +* Fixed [#8302] Strange side effect when mocking a class method +* Applied [#8316] to_param should return a stringified key in resource generator's controller spec (Patch from Chris Anderson) +* Applied [#8216] shortcut for creating object stub +* Applied [#8008] Correct generated specs for view when calling resource generator (Patch from Jonathan Tron) +* Fixed [#7754] Command-R fails to run spec in TextMate (added instruction from Luke Redpath to the website) +* Fixed [#7826] RSpect.tmbundle web page out of date. +* RSpec on Rails specs are now running against RoR 1.2.1 and 1.2.2 +* rspec_scaffold now generates specs for views +* In a Rails app, RSpec core is only loaded when RAILS_ENV==test (init.rb) +* Added support for target.should arbitrary_expectation_handler and target.should_not arbitrary_expectation_handler +* Fixed [#7533] Spec suite fails and the process exits with a code 0 +* Fixed [#7565] Subsequent stub! calls for method fail to override the first call to method +* Applied [#7524] Incorrect Documentation for 'pattern' in Rake task (patch from Stephen Duncan) +* Fixed [#7409] default fixtures do not appear to run. +* Fixed [#7507] "render..and return" doesn't return +* Fixed [#7509] rcov/rspec incorrectly includes boot.rb (Patch from Courtenay) +* Fixed [#7506] unnecessary complex output on failure of response.should be_redirect +* Applied [#6098] Make scaffold_resource generator. Based on code from Pat Maddox. +* The drbspec command is gone. Use spec --drb instead. +* The drb option is gone from the Rake task. Pass --drb to spec_opts instead. +* New -X/--drb option for running specs against a server like spec/rails' script/rails_spec_server +* New -O/--options and -G/--generate flags for file-based options (handy for spec/rails) +* Applied [#7339] Turn off caching in HTML reports +* Applied [#7419] "c option for colorizing output does not work with rails_spec" (Patch from Shintaro Kakutani) +* Applied [#7406] [PATCH] 0.7.5 rspec_on_rails loads fixtures into development database (Patch from Wilson Bilkovich) +* Applied [#7387] Allow stubs to return consecutive values (Patch from Pat Maddox) +* Applied [#7393] Fix for rake task (Patch from Pat Maddox) +* Reinstated support for response.should_render (in addition to controller.should_render) + +=== Version 0.7.5.1 + +Bug fix release to allow downloads of rspec gem using rubygems 0.9.1. + +=== Version 0.7.5 +This release adds support for Heckle - Seattle'rb's code mutation tool. +There are also several bug fixes to the RSpec core and the RSpec on Rails plugin. + +* Removed svn:externals on rails versions and plugins +* Applied [#7345] Adding context_setup and context_teardown, with specs and 100% rcov +* Applied [#7320] [PATCH] Allow XHR requests in controller specs to render RJS templates +* Applied [#7319] Migration code uses drop_column when it should use remove_column (patch from Pat Maddox) +* Added support for Heckle +* Applied [#7282] dump results even if spec is interrupted (patch from Kouhei Sutou) +* Applied [#7277] model.should_have(n).errors_on(:attribute) (patch from Wilson Bilkovich) +* Applied [#7270] RSpec render_partial colliding with simply_helpful (patch from David Goodlad) +* Added [#7250] stubs should support throwing +* Added [#7249] stubs should support yielding +* Fixed [#6760] fatal error when accessing nested finders in rspec +* Fixed [#7179] script/generate rspec_scaffold generates incorrect helper name +* Added preliminary support for assert_select (response.should_have) +* Fixed [#6971] and_yield does not work when the arity is -1 +* Fixed [#6898] Can we separate rspec from the plugins? +* Added [#7025] should_change should accept a block +* Applied [#6989] partials with locals (patch from Micah Martin) +* Applied [#7023] Typo in team.page + +=== Version 0.7.4 + +This release features a complete redesign of the reports generated with --format html. +As usual there are many bug fixes - mostly related to spec/rails. + +* Applied [#7010] Fixes :spacer_template does not work w/ view spec (patch from Shintaro Kakutani) +* Applied [#6798] ensure two ':' in the first backtrace line for Emacs's 'next-error' command (patch from Kouhei Sutou) +* Added Much nicer reports to generated website +* Much nicer reports with --format --html (patch from Luke Redpath) +* Applied [#6959] Calls to render and redirect in controllers should return true +* Fixed [#6981] helper method is not available in partial template. +* Added [#6978] mock should tell you the expected and actual args when receiving the right message with the wrong args +* Added the possibility to tweak the output of the HtmlFormatter (by overriding extra_failure_content). +* Fixed [#6936] View specs don't include ApplicationHelper by default +* Fixed [#6903] Rendering a partial in a view makes the view spec blow up +* Added callback library from Brian Takita +* Added [#6925] support controller.should_render :action_name +* Fixed [#6884] intermittent errors related to method binding +* Fixed [#6870] rspec on edge rails spec:controller fixture loading fails +* Using obj.inspect for all messages +* Improved performance by getting rid of instance_exec (instance_eval is good enough because we never need to pass it args) + +=== Version 0.7.3 + +Almost normal bug fix/new feature release. + +A couple of things you need to change in your rails specs: +# spec_helper.rb is a little different (see http://rspec.rubyforge.org/upgrade.html) +# use controller.should_render before OR after the action (controller.should_have_rendered is deprecated) + +* Applied [#6577] messy mock backtrace when frozen to edge rails (patch from Jay Levitt) +* Fixed [#6674] rspec_on_rails fails on @session deprecation warning +* Fixed [#6780] routing() was failing...fix included - works for 1.1.6 and edge (1.2) +* Fixed [#6835] bad message with arbitrary predicate +* Added [#6731] Partial templates rendered +* Fixed [#6713] helper methods not rendered in view tests? +* Fixed [#6707] cannot run controller / helper tests via rails_spec or spec only works with rake +* Applied [#6417] lambda {...}.should_change(receiver, :message) (patch from Wilson Bilkovich) +* Eliminated dependency on ZenTest +* Fixed [#6650] Reserved characters in the TextMate bundle break svn on Win32 +* Fixed [#6643] script/generate rspec_controller: invalid symbol generation for 'controller_name' for *modularized* controllers +* The script/rails_spec command has been moved to bin/drbspec in RSpec core (installed by the gem) + +=== Version 0.7.2 + +This release introduces a brand new RSpec bundle for TextMate, plus some small bugfixes. + +* Packaged RSpec.tmbundle.tgz as part of the distro +* Fixed [#6593] Add moving progress bar to HtmlFormatter using Javascript +* Applied [#6265] should_raise should accept an Exception object +* Fixed [#6616] Can't run Rails specs with RSpec.tmbundle +* Fixed [#6411] Can't run Rails specs with ruby +* Added [#6589] New -l --line option. This is useful for IDE/editor runners/extensions. +* Fixed [#6615] controller.should_render_rjs should support :partial => 'path/to/template' + +=== Version 0.7.1 + +Bug fixes and a couple o' new features. + +* Fixed [#6575] Parse error in aliasing the partial mock original method (patch by Brian Takita) +* Fixed [#6277] debris left by stubbing (trunk) [submitted by dastels] (fixed by fix to [#6575]) +* Fixed [#6575] Parse error in aliasing the partial mock original method +* Fixed [#6555] should_have_tag does not match documentation +* Fixed [#6567] SyntaxError should not stop entire run +* Fixed [#6558] integrated views look for template even when redirected +* Fixed [#6547] response.should be_redirect broken in 0.7.0 +* Applied [#6471] Easy way to spec routes +* Applied [#6587] Rspec on Rails displays "Spec::Rails::ContextFactory" as context name +* Applied [#6514] Document has trivial typos. +* Added [#6560] controller.session should be available before the action +* Added support for should_have_rjs :visual_effect +* Different printing and colours for unmet expectations (red) and other exceptions (magenta) +* Simplified method_missing on mock_methods to make it less invasive on partial mocks. + +=== Version 0.7.0 + +This is the "Grow up and eat your own dog food release". RSpec is now used on itself and +we're no longer using Test::Unit to test it. Although, we are still extending Test::Unit +for the rails plugin (indirectly - through ZenTest) + +IMPORTANT NOTE: THIS RELEASE IS NOT 100% BACKWARDS COMPATIBLE TO 0.6.x + +There are a few changes that will require that you change your existing specs. + +RSpec now handles equality exactly like ruby does: + +# actual.should_equal(expected) will pass if actual.equal?(expected) returns true +# actual.should eql(expected) will pass if actual.eql?(expected) returns true +# actual.should == expected will pass if actual == expected) returns true + +At the high level, eql? implies equivalence, while equal? implies object identity. For more +information on how ruby deals w/ equality, you should do this: + +ri equal? + +or look at this: + +http://www.ruby-doc.org/core/classes/Object.html#M001057 + +Also, we left in should_be as a synonym for should_equal, so the only specs that should break are the +ones using should_equal (which used to use == instead of .equal?). + +Lastly, should_be used to handle true and false differently from any other values. We've removed +this special handling, so now actual.should_be true will fail for any value other than true (it +used to pass for any non-nil, non-false value), and actual.should_be false will fail for any +value other than false (it used to pass for nil or false). + +Here's what you'll need to do to update your specs: +# search for "should_equal" and replace with "should_eql" +# run specs + +If any specs still fail, they are probably related to should be_true or should_be_false using +non-boolean values. Those you'll just have to inspect manually and adjust appropriately (sorry!). + +-------------------------------------------------- +Specifying multiple return values in mocks now works like this: + +mock.should_receive(:message).and_return(1,2,3) + +It used to work like this: + +mock.should_receive(:message).and_return([1,2,3]) + +but we decided that was counter intuitive and otherwise lame. + +Here's what you'll need to do to update your specs: +# search for "and_return([" +# get rid of the "[" and "]" + +-------------------------------------------------- +RSpec on Rails now supports the following (thanks to ZenTest upon which it is built): + +# Separate specs for models, views, controllers and helpers +# Controller specs are completely decoupled from the views by default (though you can tell them to couple themselves if you prefer) +# View specs are completely decoupled from app-specific controllers + +See http://rspec.rubyforge.org/documentation/rails/index.html for more information +-------------------------------------------------- +As usual, there are also other new features and bug fixes: + +* Added lots of documentation on mocks/stubs and the rails plugin. +* Added support for assigns[key] syntax for controller specs (to align w/ pre-existing syntax for view specs) +* Added support for controller.should_redirect_to +* RSpec on Rails automatically checks whether it's compatible with the installed RSpec +* Applied [#6393] rspec_on_rails uses deprecated '@response' instead of the accessor +* RSpec now has 100% spec coverage(!) +* Added support for stubbing and partial mocking +* Progress (....F..F.) is now coloured. Tweaked patch from KAKUTANI Shintaro. +* Backtrace now excludes the rcov runner (/usr/local/bin/rcov) +* Fixed [#5539] predicates do not work w/ rails +* Added [#6091] support for Regexp matching messages sent to should_raise +* Added [#6333] support for Regexp matching in mock arguments +* Applied [#6283] refactoring of diff support to allow selectable formats and custom differs +* Fixed [#5564] "ruby spec_file.rb" doesn't work the same way as "spec spec_file.rb" +* Fixed [#6056] Multiple output of failing-spec notice +* Fixed [#6233] Colours in specdoc +* Applied [#6207] Allows --diff option to diff target and expected's #inspect output (Patch by Lachie Cox) +* Fixed [#6203] Failure messages are misleading - consider using inspect. +* Added [#6334] subject.should_have_xyz will try to call subject.has_xyz? - use this for hash.should_have_key(key) +* Fixed [#6017] Rake task should ignore empty or non-existent spec-dirs + +=== Version 0.6.4 + +In addition to a number of bug fixes and patches, this release begins to formalize the support for +RSpec on Rails. + +* Added Christopher Petrilli's TextMate bundle to vendor/textmate/RSpec.tmbundle +* Fixed [#5909], once again supporting multi_word_predicates +* Applied [#5873] - response.should_have_rjs (initial patch from Jake Howerton, based on ARTS by Kevin Clark) +* Added generation of view specs for rspec_on_rails +* Applied [#5815] active_record_subclass.should_have(3).records +* Added support in "rake stats" for view specs (in spec/views) +* Applied [#5801] QuickRef.pdf should say RSpec, not rSpec +* Applied [#5728] rails_spec_runner fails on Windows (Patch from Lindsay Evans). +* Applied [#5708] RSpec Rails plugin rspec_controller generator makes specs that do not parse. +* Cleaned up RSpec on Rails so it doesn't pollute as much during bootstrapping. +* Added support for response.should_have_tag and response.should_not_have_tag (works just like assert_tag in rails) +* Added new -c, --colour, --color option for colourful (red/green) output. Inspired from Pat Eyler's Redgreen gem. +* Added examples for Watir and Selenium under the gem's vendor directory. +* Renamed rails_spec_runner to rails_spec_server (as referred to in the docs) +* Added support for trying a plural for arbitrary predicates. E.g. Album.should_exist(:name => "Hey Jude") will call Album.exists?(:name => "Hey Jude") +* Added support for should_have to work with methods taking args returning a collection. E.g. @dave.should_have(3).albums_i_have_that_this_guy_doesnt(@aslak) +* Added [#5570] should_not_receive(:msg).with(:specific, "args") +* Applied [#5065] to support using define_method rather than method_missing to capture expected messages on mocks. Thanks to Eero Saynatkari for the tip that made it work. +* Restructured directories and Modules in order to separate rspec into three distinct Modules: Spec::Expectations, Spec::Runner and Spec::Mocks. This will allow us to more easily integrate other mock frameworks and/or allow test/unit users to take advantage of the expectation API. +* Applied [#5620] support any boolean method and arbitrary comparisons (5.should_be < 6) (Patch from Mike Williams) + +=== Version 0.6.3 + +This release fixes some minor bugs related to RSpec on Rails +Note that if you upgrade a rails app with this version of the rspec_on_rails plugin +you should remove your lib/tasks/rspec.rake if it exists. + +* Backtraces from drb (and other standard ruby libraries) are now stripped from backtraces. +* Applied [#5557] Put rspec.rake into the task directory of the RSpec on Rails plugin (Patch from Daniel Siemssen) +* Applied [#5556] rails_spec_server loads environment.rb twice (Patch from Daniel Siemssen) + +=== Version 0.6.2 +This release fixes a couple of regressions with the rake task that were introduced in the previous version (0.6.1) + +* Fixed [#5518] ruby -w: warnings in 0.6.1 +* Applied [#5525] fix rake task path to spec tool for gem-installed rspec (patch from Riley Lynch) +* Fixed a teensey regression with the rake task - introduced in 0.6.1. The spec command is now quoted so it works on windows. + +=== Version 0.6.1 +This is the "fix the most annoying bugs release" of RSpec. There are 9 bugfixes this time. +Things that may break backwards compatibility: +1) Spec::Rake::SpecTask no longer has the options attribute. Use ruby_opts, spec_opts and rcov_opts instead. + +* Fixed [#4891] RCOV task failing on windows +* Fixed [#4896] Shouldn't modify user's $LOAD_PATH (Tip from Gavin Sinclair) +* Fixed [#5369] ruby -w: warnings in RSpec 0.5.16 (Tip from Suraj Kurapati) +* Applied [#5141] ExampleMatcher doesn't escape strings before matching (Patch from Nikolai Weibull). +* Fixed [#5224] Move 'require diff-lcs' from test_helper.rb to diff_test.rb (Tip from Chris Roos) +* Applied [#5449] Rake stats for specs (Patch from Nick Sieger) +* Applied [#5468, #5058] Fix spec runner to correctly run controller specs (Patch from Daniel Siemssen) +* Applied fixes to rails_spec_server to improve its ability to run several times. (Patch from Daniel Siemssen) +* Changed RCov::VerifyTask to fail if the coverage is above the threshold. This is to ensure it gets bumped when coverage improves. + +=== Version 0.6.0 +This release makes an official commitment to underscore_syntax (with no more support for dot.syntax) + +* Fixed bug (5292) that caused mock argument matching to fail +* Converted ALL tests to use underscore syntax +* Fixed all remaining problems with underscores revealed by converting all the tests to underscores +* Enhanced sugar to support combinations of methods (i.e. once.and_return) +* Simplified helper structure taking advantage of dot/underscore combos (i.e. should.be.an_instance_of, which can be expressed as should be_an_instance_of) +* Added support for at_most in mocks +* Added support for should_not_receive(:msg) (will be removing should_receive(:msg).never some time soon) +* Added support for should_have_exactly(5).items_in_collection + +=== Version 0.5.16 +This release improves Rails support and test2spec translation. + +* Fixed underscore problems that occurred when RSpec was used in Rails +* Simplified the Rails support by packaging it as a plugin instead of a generator gem. +* Fixed [#5063] 'rspec_on_rails' require line in spec_helper.rb +* Added pre_commit rake task to reduce risk of regressions. Useful for RSpec developers and patchers. +* Added failure_message to RSpec Rake task +* test2spec now defines converted helper methods outside of the setup block (bug #5057). + +=== Version 0.5.15 +This release removes a prematurely added feature that shouldn't have been added. + +* Removed support for differences that was added in 0.5.14. The functionality is not aligned with RSpec's vision. + +=== Version 0.5.14 +This release introduces better ways to extend specs, improves some of the core API and +a experimental support for faster rails specs. + +* Added proc methods for specifying differences (increments and decrements). See difference_test.rb +* Methods can now be defined alongside specs. This obsoletes the need for defining methods in setup. (Patch #5002 from Brian Takita) +* Sugar (underscores) now works correctly with should be_a_kind_of and should be_an_instance_of +* Added support for include and inherit in contexts. (Patch #4971 from Brian Takita) +* Added rails_spec and rails_spec_server for faster specs on rails (still buggy - help needed) +* Fixed bug that caused should_render to break if given a :symbol (in Rails) +* Added support for comparing exception message in should_raise and should_not_raise + +=== Version 0.5.13 +This release fixes some subtle bugs in the mock API. + +* Use fully-qualified class name of Exceptions in failure message. Easier to debug that way. +* Fixed a bug that caused mocks to yield a one-element array (rather than the element) when one yield arg specified. +* Mocks not raise AmbiguousReturnError if an explicit return is used at the same time as an expectation block. +* Blocks passed to yielding mocks can now raise without causing mock verification to fail. + +=== Version 0.5.12 +This release adds diff support for failure messages, a HTML formatter plus some other +minor enhancements. + +* Added HTML formatter. +* Added fail_on_error option to spectask. +* Added support for diffing, using the diff-lcs Rubygem (#2648). +* Remove RSpec on Rails files from backtrace (#4694). +* All of RSpec's own tests run successfully after translation with test2spec. +* Added --verbose mode for test2spec - useful for debugging when classes fail to translate. +* Output of various formatters is now flushed - to get more continuous output. + +=== Version 0.5.11 +This release makes test2spec usable with Rails (with some manual steps). +See http://rspec.rubyforge.org/tools/rails.html for more details + +* test2spec now correctly translates bodies of helper methods (non- test_*, setup and teardown ones). +* Added more documentation about how to get test2spec to work with Rails. + +=== Version 0.5.10 +This version features a second rewrite of test2spec - hopefully better than the previous one. + +* Improved test2spec's internals. It now transforms the syntax tree before writing out the code. + +=== Version 0.5.9 +This release improves test2spec by allowing more control over the output + +* Added --template option to test2spec, which allows for custom output driven by ERB +* Added --quiet option to test2spec +* Removed unnecessary dependency on RubyToC + +=== Version 0.5.8 +This release features a new Test::Unit to RSpec translation tool. +Also note that the RubyGem of the previous release (0.5.7) was corrupt. +We're close to being able to translate all of RSpec's own Test::Unit +tests and have them run successfully! + +* Updated test2spec documentation. +* Replaced old test2rspec with a new test2spec, which is based on ParseTree and RubyInline. + +=== Version 0.5.7 +This release changes examples and documentation to recommend underscores rather than dots, +and addresses some bugfixes and changes to the spec commandline. + +* spec DIR now works correctly, recursing down and slurping all *.rb files +* All documentation and examples are now using '_' instead of '.' +* Custom external formatters can now be specified via --require and --format. + +=== Version 0.5.6 +This release fixes a bug in the Rails controller generator + +* The controller generator did not write correct source code (missing 'do'). Fixed. + +=== Version 0.5.5 +This release adds initial support for Ruby on Rails in the rspec_generator gem. + +* [Rails] Reorganised Lachie's original code to be a generator packaged as a gem rather than a plugin. +* [Rails] Imported code from http://lachie.info/svn/projects/rails_plugins/rspec_on_rails (Written by Lachie Cox) +* Remove stack trace lines from TextMate's Ruby bundle +* Better error message from spectask when no spec files are found. + +=== Version 0.5.4 +The "the tutorial is ahead of the gem" release + +* Support for running a single spec with --spec +* Exitcode is now 1 unless all specs pass, in which case it's 0. +* -v, --version now both mean the same thing +* For what was verbose output (-v), use --format specdoc or -f s +* --format rdoc always runs in dry-run mode +* Removed --doc and added --format and --dry-run +* Refactored towards more pluggable formatters +* Use webgen's execute tag when generating website (more accurate) +* Fixed incorrect quoting of spec_opts in SpecTask +* Added patch to enable underscored shoulds like 1.should_equal(1) - patch from Rich Kilmer +* Removed most inherited instance method from Mock, making more methods mockable. +* Made the RCovVerify task part of the standard toolset. +* Documented Rake task and how to use it with Rcov +* Implemented tags for website (hooking into ERB, RedCloth and syntax) +* RSpec Rake task now takes spec_opts and out params so it can be used for doc generation +* RCov integration for RSpec Rake task (#4058) +* Group all results instead of printing them several times (#4057) +* Mocks can now yield +* Various improvements to error reporting (including #4191) +* backtrace excludes rspec code - use -b to include it +* split examples into examples (passing) and failing_examples + +=== Version 0.5.3 +The "hurry up, CoR is in two days" release. + +* Don't run rcov by default +* Make separate task for running tests with RCov +* Added Rake task to fail build if coverage drops below a certain threshold +* Even more failure output cleanup (simplification) +* Added duck_type constraint for mocks + +=== Version 0.5.2 +This release has minor improvements to the commandline and fixes some gem warnings + +* Readded README to avoid RDoc warnings +* Added --version switch to commandline +* More changes to the mock API + +=== Version 0.5.1 +This release is the first release of RSpec with a new website. It will look better soon. + +* Added initial documentation for API +* Added website based on webgen +* Modified test task to use rcov +* Deleted unused code (thanks, rcov!) +* Various changes to the mock API, +* Various improvements to failure reporting + +=== Version 0.5.0 +This release introduces a new API and obsolesces previous versions. + +* Moved source code to separate subfolders +* Added new DSL runner based on instance_exec +* Added spike for testdox/rdoc generation +* merge Astels' and Chelimsky's work on ShouldHelper +* this would be 0.5.0 if I updated the documentation +* it breaks all of your existing specifications. We're not sorry. + +=== Version 0.3.2 + +The "srbaker is an idiot" release. + +* also forgot to update the path to the actual Subversion repository +* this should be it + +=== Version 0.3.1 + +This is just 0.3.0, but with the TUTORIAL added to the documentation list. + +* forgot to include TUTORIAL in the documentation + +=== Version 0.3.0 + +It's been a while since last release, lots of new stuff is available. For instance: + +* improvements to the runners +* addition of should_raise expectation (thanks to Brian Takita) +* some documentation improvements +* RSpec usable as a DSL + +=== Version 0.2.0 + +This release provides a tutorial for new users wishing to get started with +RSpec, and many improvements. + +* improved reporting in the spec runner output +* update the examples to the new mock api +* added TUTORIAL, a getting started document for new users of RSpec + +=== Version 0.1.7 + +This release improves installation and documentation, mock integration and error reporting. + +* Comparison errors now print the class name too. +* Mocks now take an optional +options+ parameter to specify behaviour. +* Removed __expects in favour of should_receive +* Added line number reporting in mock error messages for unreceived message expectations. +* Added should_match and should_not_match. +* Added a +mock+ method to Spec::Context which will create mocks that autoverify (no need to call __verify). +* Mocks now require names in the constructor to ensure sensible error messages. +* Made 'spec' executable and updated usage instructions in README accordingly. +* Made more parts of the Spec::Context API private to avoid accidental usage. +* Added more RDoc to Spec::Context. + +=== Version 0.1.6 + +More should methods. + +* Added should_match and should_not_match. + +=== Version 0.1.5 + +Included examples and tests in gem. + +=== Version 0.1.4 + +More tests on block based Mock expectations. + +=== Version 0.1.3 + +Improved mocking: + +* block based Mock expectations. + +=== Version 0.1.2 + +This release adds some improvements to the mock API and minor syntax improvements + +* Added Mock.should_expect for a more consistent DSL. +* Added MockExpectation.and_returns for a better DSL. +* Made Mock behave as a null object after a call to Mock.ignore_missing +* Internal syntax improvements. +* Improved exception trace by adding exception class name to error message. +* Renamed some tests for better consistency. + +=== Version 0.1.1 + +This release adds some shoulds and improves error reporting + +* Added should be_same_as and should_not be_same_as. +* Improved error reporting for comparison expectations. + +=== Version 0.1.0 + +This is the first preview release of RSpec, a Behaviour-Driven Development library for Ruby + +* Added Rake script with tasks for gems, rdoc etc. +* Added an XForge task to make release go easier. diff --git a/presidents/vendor/gems/rspec-1.2.9/License.txt b/presidents/vendor/gems/rspec-1.2.9/License.txt new file mode 100644 index 0000000..52c061f --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/License.txt @@ -0,0 +1,22 @@ +(The MIT License) + +Copyright (c) 2005-2009 The RSpec Development Team + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/presidents/vendor/gems/rspec-1.2.9/Manifest.txt b/presidents/vendor/gems/rspec-1.2.9/Manifest.txt new file mode 100644 index 0000000..4329b39 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/Manifest.txt @@ -0,0 +1,377 @@ +.document +History.rdoc +License.txt +Manifest.txt +README.rdoc +Rakefile +Ruby1.9.rdoc +TODO.txt +Upgrade.rdoc +bin/autospec +bin/spec +cucumber.yml +examples/failing/README.txt +examples/failing/diffing_spec.rb +examples/failing/failing_implicit_docstrings_example.rb +examples/failing/failure_in_after.rb +examples/failing/failure_in_before.rb +examples/failing/mocking_example.rb +examples/failing/mocking_with_flexmock.rb +examples/failing/mocking_with_mocha.rb +examples/failing/mocking_with_rr.rb +examples/failing/partial_mock_example.rb +examples/failing/pending_example.rb +examples/failing/predicate_example.rb +examples/failing/raising_example.rb +examples/failing/syntax_error_example.rb +examples/failing/team_spec.rb +examples/failing/timeout_behaviour.rb +examples/passing/custom_formatter.rb +examples/passing/custom_matchers.rb +examples/passing/dynamic_spec.rb +examples/passing/file_accessor.rb +examples/passing/file_accessor_spec.rb +examples/passing/filtered_formatter.rb +examples/passing/filtered_formatter_example.rb +examples/passing/greeter_spec.rb +examples/passing/helper_method_example.rb +examples/passing/implicit_docstrings_example.rb +examples/passing/io_processor.rb +examples/passing/io_processor_spec.rb +examples/passing/mocking_example.rb +examples/passing/multi_threaded_example_group_runner.rb +examples/passing/nested_classes_example.rb +examples/passing/options_example.rb +examples/passing/options_formatter.rb +examples/passing/partial_mock_example.rb +examples/passing/pending_example.rb +examples/passing/predicate_example.rb +examples/passing/shared_example_group_example.rb +examples/passing/shared_stack_examples.rb +examples/passing/simple_matcher_example.rb +examples/passing/stack.rb +examples/passing/stack_spec.rb +examples/passing/stack_spec_with_nested_example_groups.rb +examples/passing/stubbing_example.rb +examples/passing/yielding_example.rb +examples/ruby1.9.compatibility/access_to_constants_spec.rb +features/before_and_after_blocks/before_and_after_blocks.feature +features/command_line/line_number_option.feature +features/command_line/line_number_option_with_example_with_no_name.feature +features/example_groups/define_example_attribute.feature +features/example_groups/example_group_with_should_methods.feature +features/example_groups/implicit_docstrings.feature +features/example_groups/nested_groups.feature +features/expectations/customized_message.feature +features/expectations/expect_change.feature +features/expectations/expect_error.feature +features/extensions/custom_example_group.feature +features/formatters/custom_formatter.feature +features/interop/examples_and_tests_together.feature +features/interop/rspec_output.feature +features/interop/test_but_not_test_unit.feature +features/interop/test_case_with_should_methods.feature +features/load_paths/add_lib_to_load_path.feature +features/load_paths/add_spec_to_load_path.feature +features/matchers/define_diffable_matcher.feature +features/matchers/define_matcher.feature +features/matchers/define_matcher_outside_rspec.feature +features/matchers/define_matcher_with_fluent_interface.feature +features/matchers/define_wrapped_matcher.feature +features/mock_framework_integration/use_flexmock.feature +features/mock_framework_integration/use_mocha.feature +features/mock_framework_integration/use_rr.feature +features/mocks/mix_stubs_and_mocks.feature +features/mocks/stub_implementation.feature +features/pending/pending_examples.feature +features/runner/specify_line_number.feature +features/spec_helper/spec_helper.feature +features/step_definitions/running_rspec_steps.rb +features/subject/explicit_subject.feature +features/subject/implicit_subject.feature +features/support/env.rb +features/support/matchers/smart_match.rb +init.rb +lib/autotest/discover.rb +lib/autotest/rspec.rb +lib/spec.rb +lib/spec/adapters/mock_frameworks/flexmock.rb +lib/spec/adapters/mock_frameworks/mocha.rb +lib/spec/adapters/mock_frameworks/rr.rb +lib/spec/adapters/mock_frameworks/rspec.rb +lib/spec/autorun.rb +lib/spec/deprecation.rb +lib/spec/dsl.rb +lib/spec/dsl/main.rb +lib/spec/example.rb +lib/spec/example/args_and_options.rb +lib/spec/example/before_and_after_hooks.rb +lib/spec/example/errors.rb +lib/spec/example/example_group.rb +lib/spec/example/example_group_factory.rb +lib/spec/example/example_group_hierarchy.rb +lib/spec/example/example_group_methods.rb +lib/spec/example/example_group_proxy.rb +lib/spec/example/example_matcher.rb +lib/spec/example/example_methods.rb +lib/spec/example/example_proxy.rb +lib/spec/example/module_reopening_fix.rb +lib/spec/example/pending.rb +lib/spec/example/predicate_matchers.rb +lib/spec/example/shared_example_group.rb +lib/spec/example/subject.rb +lib/spec/expectations.rb +lib/spec/expectations/errors.rb +lib/spec/expectations/extensions.rb +lib/spec/expectations/extensions/kernel.rb +lib/spec/expectations/fail_with.rb +lib/spec/expectations/handler.rb +lib/spec/interop/test.rb +lib/spec/interop/test/unit/autorunner.rb +lib/spec/interop/test/unit/testcase.rb +lib/spec/interop/test/unit/testresult.rb +lib/spec/interop/test/unit/testsuite_adapter.rb +lib/spec/interop/test/unit/ui/console/testrunner.rb +lib/spec/matchers.rb +lib/spec/matchers/be.rb +lib/spec/matchers/be_close.rb +lib/spec/matchers/be_instance_of.rb +lib/spec/matchers/be_kind_of.rb +lib/spec/matchers/change.rb +lib/spec/matchers/compatibility.rb +lib/spec/matchers/dsl.rb +lib/spec/matchers/eql.rb +lib/spec/matchers/equal.rb +lib/spec/matchers/errors.rb +lib/spec/matchers/exist.rb +lib/spec/matchers/extensions/instance_exec.rb +lib/spec/matchers/generated_descriptions.rb +lib/spec/matchers/has.rb +lib/spec/matchers/have.rb +lib/spec/matchers/include.rb +lib/spec/matchers/match.rb +lib/spec/matchers/match_array.rb +lib/spec/matchers/matcher.rb +lib/spec/matchers/method_missing.rb +lib/spec/matchers/operator_matcher.rb +lib/spec/matchers/pretty.rb +lib/spec/matchers/raise_error.rb +lib/spec/matchers/respond_to.rb +lib/spec/matchers/satisfy.rb +lib/spec/matchers/simple_matcher.rb +lib/spec/matchers/throw_symbol.rb +lib/spec/matchers/wrap_expectation.rb +lib/spec/mocks.rb +lib/spec/mocks/argument_expectation.rb +lib/spec/mocks/argument_matchers.rb +lib/spec/mocks/error_generator.rb +lib/spec/mocks/errors.rb +lib/spec/mocks/example_methods.rb +lib/spec/mocks/extensions.rb +lib/spec/mocks/extensions/object.rb +lib/spec/mocks/framework.rb +lib/spec/mocks/message_expectation.rb +lib/spec/mocks/methods.rb +lib/spec/mocks/mock.rb +lib/spec/mocks/order_group.rb +lib/spec/mocks/proxy.rb +lib/spec/mocks/space.rb +lib/spec/rake/spectask.rb +lib/spec/rake/verify_rcov.rb +lib/spec/ruby.rb +lib/spec/runner.rb +lib/spec/runner/backtrace_tweaker.rb +lib/spec/runner/class_and_arguments_parser.rb +lib/spec/runner/command_line.rb +lib/spec/runner/configuration.rb +lib/spec/runner/differs/default.rb +lib/spec/runner/differs/load-diff-lcs.rb +lib/spec/runner/drb_command_line.rb +lib/spec/runner/example_group_runner.rb +lib/spec/runner/extensions/kernel.rb +lib/spec/runner/formatter/base_formatter.rb +lib/spec/runner/formatter/base_text_formatter.rb +lib/spec/runner/formatter/failing_example_groups_formatter.rb +lib/spec/runner/formatter/failing_examples_formatter.rb +lib/spec/runner/formatter/html_formatter.rb +lib/spec/runner/formatter/nested_text_formatter.rb +lib/spec/runner/formatter/no_op_method_missing.rb +lib/spec/runner/formatter/profile_formatter.rb +lib/spec/runner/formatter/progress_bar_formatter.rb +lib/spec/runner/formatter/silent_formatter.rb +lib/spec/runner/formatter/snippet_extractor.rb +lib/spec/runner/formatter/specdoc_formatter.rb +lib/spec/runner/formatter/text_mate_formatter.rb +lib/spec/runner/heckle_runner.rb +lib/spec/runner/heckle_runner_unsupported.rb +lib/spec/runner/line_number_query.rb +lib/spec/runner/option_parser.rb +lib/spec/runner/options.rb +lib/spec/runner/reporter.rb +lib/spec/stubs/cucumber.rb +lib/spec/test/unit.rb +lib/spec/version.rb +resources/helpers/cmdline.rb +resources/rake/examples.rake +resources/rake/examples_with_rcov.rake +resources/rake/failing_examples_with_html.rake +resources/rake/verify_rcov.rake +spec/README.jruby +spec/autotest/autotest_helper.rb +spec/autotest/autotest_matchers.rb +spec/autotest/discover_spec.rb +spec/autotest/failed_results_re_spec.rb +spec/autotest/rspec_spec.rb +spec/ruby_forker.rb +spec/spec.opts +spec/spec/dsl/main_spec.rb +spec/spec/example/example_group_class_definition_spec.rb +spec/spec/example/example_group_factory_spec.rb +spec/spec/example/example_group_methods_spec.rb +spec/spec/example/example_group_proxy_spec.rb +spec/spec/example/example_group_spec.rb +spec/spec/example/example_matcher_spec.rb +spec/spec/example/example_methods_spec.rb +spec/spec/example/example_proxy_spec.rb +spec/spec/example/helper_method_spec.rb +spec/spec/example/nested_example_group_spec.rb +spec/spec/example/pending_module_spec.rb +spec/spec/example/predicate_matcher_spec.rb +spec/spec/example/shared_example_group_spec.rb +spec/spec/example/subclassing_example_group_spec.rb +spec/spec/example/subject_spec.rb +spec/spec/expectations/differs/default_spec.rb +spec/spec/expectations/extensions/kernel_spec.rb +spec/spec/expectations/fail_with_spec.rb +spec/spec/expectations/handler_spec.rb +spec/spec/expectations/wrap_expectation_spec.rb +spec/spec/interop/test/unit/resources/spec_that_fails.rb +spec/spec/interop/test/unit/resources/spec_that_passes.rb +spec/spec/interop/test/unit/resources/spec_with_errors.rb +spec/spec/interop/test/unit/resources/spec_with_options_hash.rb +spec/spec/interop/test/unit/resources/test_case_that_fails.rb +spec/spec/interop/test/unit/resources/test_case_that_passes.rb +spec/spec/interop/test/unit/resources/test_case_with_errors.rb +spec/spec/interop/test/unit/resources/test_case_with_various_names.rb +spec/spec/interop/test/unit/resources/testsuite_adapter_spec_with_test_unit.rb +spec/spec/interop/test/unit/spec_spec.rb +spec/spec/interop/test/unit/test_unit_spec_helper.rb +spec/spec/interop/test/unit/testcase_spec.rb +spec/spec/interop/test/unit/testsuite_adapter_spec.rb +spec/spec/matchers/be_close_spec.rb +spec/spec/matchers/be_instance_of_spec.rb +spec/spec/matchers/be_kind_of_spec.rb +spec/spec/matchers/be_spec.rb +spec/spec/matchers/change_spec.rb +spec/spec/matchers/compatibility_spec.rb +spec/spec/matchers/description_generation_spec.rb +spec/spec/matchers/dsl_spec.rb +spec/spec/matchers/eql_spec.rb +spec/spec/matchers/equal_spec.rb +spec/spec/matchers/exist_spec.rb +spec/spec/matchers/has_spec.rb +spec/spec/matchers/have_spec.rb +spec/spec/matchers/include_spec.rb +spec/spec/matchers/match_array_spec.rb +spec/spec/matchers/match_spec.rb +spec/spec/matchers/matcher_methods_spec.rb +spec/spec/matchers/matcher_spec.rb +spec/spec/matchers/matchers_spec.rb +spec/spec/matchers/operator_matcher_spec.rb +spec/spec/matchers/raise_error_spec.rb +spec/spec/matchers/respond_to_spec.rb +spec/spec/matchers/satisfy_spec.rb +spec/spec/matchers/simple_matcher_spec.rb +spec/spec/matchers/throw_symbol_spec.rb +spec/spec/mocks/any_number_of_times_spec.rb +spec/spec/mocks/argument_expectation_spec.rb +spec/spec/mocks/argument_matchers_spec.rb +spec/spec/mocks/at_least_spec.rb +spec/spec/mocks/at_most_spec.rb +spec/spec/mocks/bug_report_10260_spec.rb +spec/spec/mocks/bug_report_10263_spec.rb +spec/spec/mocks/bug_report_11545_spec.rb +spec/spec/mocks/bug_report_15719_spec.rb +spec/spec/mocks/bug_report_496_spec.rb +spec/spec/mocks/bug_report_600_spec.rb +spec/spec/mocks/bug_report_7611_spec.rb +spec/spec/mocks/bug_report_7805_spec.rb +spec/spec/mocks/bug_report_8165_spec.rb +spec/spec/mocks/bug_report_8302_spec.rb +spec/spec/mocks/bug_report_830_spec.rb +spec/spec/mocks/double_spec.rb +spec/spec/mocks/failing_argument_matchers_spec.rb +spec/spec/mocks/hash_including_matcher_spec.rb +spec/spec/mocks/hash_not_including_matcher_spec.rb +spec/spec/mocks/mock_ordering_spec.rb +spec/spec/mocks/mock_space_spec.rb +spec/spec/mocks/mock_spec.rb +spec/spec/mocks/multiple_return_value_spec.rb +spec/spec/mocks/nil_expectation_warning_spec.rb +spec/spec/mocks/null_object_mock_spec.rb +spec/spec/mocks/once_counts_spec.rb +spec/spec/mocks/options_hash_spec.rb +spec/spec/mocks/partial_mock_spec.rb +spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +spec/spec/mocks/passing_argument_matchers_spec.rb +spec/spec/mocks/precise_counts_spec.rb +spec/spec/mocks/record_messages_spec.rb +spec/spec/mocks/stub_chain_spec.rb +spec/spec/mocks/stub_implementation_spec.rb +spec/spec/mocks/stub_spec.rb +spec/spec/mocks/stubbed_message_expectations_spec.rb +spec/spec/mocks/twice_counts_spec.rb +spec/spec/mocks/unstub_spec.rb +spec/spec/package/bin_spec_spec.rb +spec/spec/rake/spectask_spec.rb +spec/spec/runner/class_and_argument_parser_spec.rb +spec/spec/runner/command_line_spec.rb +spec/spec/runner/configuration_spec.rb +spec/spec/runner/drb_command_line_spec.rb +spec/spec/runner/empty_file.txt +spec/spec/runner/example_group_runner_spec.rb +spec/spec/runner/examples.txt +spec/spec/runner/failed.txt +spec/spec/runner/formatter/base_formatter_spec.rb +spec/spec/runner/formatter/base_text_formatter_spec.rb +spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +spec/spec/runner/formatter/failing_examples_formatter_spec.rb +spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html +spec/spec/runner/formatter/html_formatted-1.8.6.html +spec/spec/runner/formatter/html_formatted-1.8.7.html +spec/spec/runner/formatter/html_formatted-1.9.1.html +spec/spec/runner/formatter/html_formatter_spec.rb +spec/spec/runner/formatter/nested_text_formatter_spec.rb +spec/spec/runner/formatter/profile_formatter_spec.rb +spec/spec/runner/formatter/progress_bar_formatter_spec.rb +spec/spec/runner/formatter/snippet_extractor_spec.rb +spec/spec/runner/formatter/specdoc_formatter_spec.rb +spec/spec/runner/formatter/text_mate_formatted-1.8.6-jruby.html +spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +spec/spec/runner/formatter/text_mate_formatted-1.8.7.html +spec/spec/runner/formatter/text_mate_formatted-1.9.1.html +spec/spec/runner/formatter/text_mate_formatter_spec.rb +spec/spec/runner/heckle_runner_spec.rb +spec/spec/runner/heckler_spec.rb +spec/spec/runner/line_number_query/line_number_query_fixture.rb +spec/spec/runner/line_number_query_spec.rb +spec/spec/runner/noisy_backtrace_tweaker_spec.rb +spec/spec/runner/option_parser_spec.rb +spec/spec/runner/options_spec.rb +spec/spec/runner/output_one_time_fixture.rb +spec/spec/runner/output_one_time_fixture_runner.rb +spec/spec/runner/output_one_time_spec.rb +spec/spec/runner/quiet_backtrace_tweaker_spec.rb +spec/spec/runner/reporter_spec.rb +spec/spec/runner/resources/a_bar.rb +spec/spec/runner/resources/a_foo.rb +spec/spec/runner/resources/a_spec.rb +spec/spec/runner/resources/custom_example_group_runner.rb +spec/spec/runner/resources/utf8_encoded.rb +spec/spec/runner/spec.opts +spec/spec/runner/spec_drb.opts +spec/spec/runner/spec_spaced.opts +spec/spec/runner_spec.rb +spec/spec_helper.rb +spec/support/macros.rb +spec/support/spec_classes.rb diff --git a/presidents/vendor/gems/rspec-1.2.9/README.rdoc b/presidents/vendor/gems/rspec-1.2.9/README.rdoc new file mode 100644 index 0000000..3174497 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/README.rdoc @@ -0,0 +1,55 @@ += RSpec + +* http://rspec.info +* http://rubyforge.org/projects/rspec +* http://github.com/dchelimsky/rspec/wikis +* mailto:rspec-users@rubyforge.org +* mailto:rspec-devel@rubyforge.org + +== DESCRIPTION: + +RSpec is a Behaviour Driven Development framework for writing executable code +examples. + +== FEATURES: + +* Spec::Example provides a framework for organizing executable code examples +* Spec::Expectations adds #should and #should_not to every object +* Spec::Matchers provides Expression Matchers for use with #should and #should_not +* Spec::Mocks is a full featured mock object/stubbing library + +== SYNOPSIS: + + describe Account do + context "transfering money" do + it "deposits transfer amount to the other account" do + source = Account.new(50, :USD) + target = mock('target account') + target.should_receive(:deposit).with(Money.new(5, :USD)) + source.transfer(5, :USD).to(target) + end + + it "reduces its balance by the transfer amount" do + source = Account.new(50, :USD) + target = stub('target account') + source.transfer(5, :USD).to(target) + source.balance.should == Money.new(45, :USD) + end + end + end + + $ spec spec/account_spec.rb --format nested + Account + transfering money + deposits transfer amount to the other account + reduces its balance by the transfer amount + + 2 examples, 0 failures + +== INSTALL: + + [sudo] gem install rspec + + or + + clone, build, install - See http://wiki.github.com/dchelimsky/rspec \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/Rakefile b/presidents/vendor/gems/rspec-1.2.9/Rakefile new file mode 100644 index 0000000..1a0a7cf --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/Rakefile @@ -0,0 +1,145 @@ +# -*- ruby -*- +gem 'hoe', '>=2.0.0' +require 'hoe' + +$:.unshift 'lib' + +require 'spec/version' +require 'spec/rake/spectask' +require 'spec/ruby' +require 'cucumber/rake/task' + +Hoe.spec 'rspec' do + self.version = Spec::VERSION::STRING + self.summary = Spec::VERSION::SUMMARY + self.description = "Behaviour Driven Development for Ruby." + self.rubyforge_name = 'rspec' + self.developer('RSpec Development Team', 'rspec-devel@rubyforge.org') + self.extra_dev_deps << ["cucumber",">=0.3"] << ["bmabey-fakefs",">=0.1.1"] << ["syntax",">=1.0"] << ["diff-lcs",">=1.1.2"] + self.extra_dev_deps << ["heckle",">=1.4.3"] unless Spec::Ruby.version >= "1.9" + self.remote_rdoc_dir = "rspec/#{Spec::VERSION::STRING}" + self.rspec_options = ['--options', 'spec/spec.opts'] + self.history_file = 'History.rdoc' + self.readme_file = 'README.rdoc' + self.post_install_message = <<-POST_INSTALL_MESSAGE +#{'*'*50} + + Thank you for installing rspec-#{Spec::VERSION::STRING} + + Please be sure to read History.rdoc and Upgrade.rdoc + for useful information about this release. + +#{'*'*50} +POST_INSTALL_MESSAGE +end + +['audit','test','test_deps','default','post_blog'].each do |task| + Rake.application.instance_variable_get('@tasks').delete(task) +end + +task :post_blog do + # no-op +end + +# Some of the tasks are in separate files since they are also part of the website documentation +load 'resources/rake/examples.rake' +load 'resources/rake/examples_with_rcov.rake' +load 'resources/rake/failing_examples_with_html.rake' +load 'resources/rake/verify_rcov.rake' + +task :cleanup_rcov_files do + rm_rf 'coverage.data' +end + + +if RUBY_VERSION =~ /^1.8/ + task :default => [:cleanup_rcov_files, :features, :verify_rcov] +else + task :default => [:spec, :features] +end + +namespace :spec do + + desc "Run all specs with rcov" + Spec::Rake::SpecTask.new(:rcov) do |t| + t.spec_files = FileList['spec/**/*_spec.rb'] + t.spec_opts = ['--options', 'spec/spec.opts'] + t.rcov = true + t.rcov_dir = 'coverage' + t.rcov_opts = ['--exclude', "features,kernel,load-diff-lcs\.rb,instance_exec\.rb,lib/spec.rb,lib/spec/runner.rb,^spec/*,bin/spec,examples,/gems,/Library/Ruby,\.autotest,#{ENV['GEM_HOME']}"] + t.rcov_opts << '--sort coverage --text-summary --aggregate coverage.data' + end + + desc "Run files listed in spec/spec_files.txt" + Spec::Rake::SpecTask.new(:focus) do |t| + if File.exists?('spec/spec_files.txt') + t.spec_files = File.readlines('spec/spec_files.txt').collect{|f| f.chomp} + end + end +end + +desc "Run Cucumber features" +if RUBY_VERSION =~ /^1.8/ + Cucumber::Rake::Task.new :features do |t| + t.rcov = true + t.rcov_opts = ['--exclude', "features,kernel,load-diff-lcs\.rb,instance_exec\.rb,lib/spec.rb,lib/spec/runner.rb,^spec/*,bin/spec,examples,/gems,/Library/Ruby,\.autotest,#{ENV['GEM_HOME']}"] + t.rcov_opts << '--no-html --aggregate coverage.data' + t.cucumber_opts = %w{--format progress} + end +else + task :features do + sh 'cucumber --profile no_heckle' + end +end + +desc "Run failing examples (see failure output)" +Spec::Rake::SpecTask.new('failing_examples') do |t| + t.spec_files = FileList['failing_examples/**/*_spec.rb'] + t.spec_opts = ['--options', 'spec/spec.opts'] +end + +def egrep(pattern) + Dir['**/*.rb'].each do |fn| + count = 0 + open(fn) do |f| + while line = f.gets + count += 1 + if line =~ pattern + puts "#{fn}:#{count}:#{line}" + end + end + end + end +end + +desc "Look for TODO and FIXME tags in the code" +task :todo do + egrep /(FIXME|TODO|TBD)/ +end + +desc "verify_committed, verify_rcov, post_news, release" +task :complete_release => [:verify_committed, :verify_rcov, :post_news, :release] + +desc "Verifies that there is no uncommitted code" +task :verify_committed do + IO.popen('git status') do |io| + io.each_line do |line| + raise "\n!!! Do a git commit first !!!\n\n" if line =~ /^#\s*modified:/ + end + end +end + +namespace :update do + desc "update the manifest" + task :manifest do + system %q[touch Manifest.txt; rake check_manifest | grep -v "(in " | patch] + end +end + +task :clobber => :clobber_tmp + +task :clobber_tmp do + cmd = %q[rm -r tmp] + puts cmd + system cmd if test ?d, 'tmp' +end diff --git a/presidents/vendor/gems/rspec-1.2.9/Ruby1.9.rdoc b/presidents/vendor/gems/rspec-1.2.9/Ruby1.9.rdoc new file mode 100644 index 0000000..e42cc85 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/Ruby1.9.rdoc @@ -0,0 +1,31 @@ += RSpec and Ruby 1.9 + +RSpec runs on Ruby 1.9.1 with the following caveats. + +== Test::Unit + +RSpec/Test::Unit interop will run with the test-unit-1.2.3 gem, but you must install it. + +== Class Variables + +Due to changes in scoping rules, class variables within example groups are not +supported in Ruby 1.9. + + describe "a class variable" do + @@class_variable = "a class variable" + + it "can access class variables in examples in Ruby 1.8" do + with_ruby 1.8 do + @@class_variable.should == "a class variable" + end + end + + it "can NOT access class variables in examples in Ruby 1.9" do + with_ruby 1.9 do + lambda do + @@class_variable.should == "a class variable" + end.should raise_error(NameError) + end + end + end + diff --git a/presidents/vendor/gems/rspec-1.2.9/TODO.txt b/presidents/vendor/gems/rspec-1.2.9/TODO.txt new file mode 100644 index 0000000..fc59a25 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/TODO.txt @@ -0,0 +1,17 @@ +== Refactoring + +** global predictate matchers should be stored in run_options +* eliminate dependency on global options and configuration +** the only place they should exist is in the Runner, which should manage them + +== Future + +* do SOMETHING with the website +* separate the underlying framework from the DSL + * be able to do everything with classes and methods +* tweak raise_error rdoc to show only one arg + +== rspec-2.0 + +* rename top level namespace to Rspec and commands to 'rspec' and 'autorspec' + * continue to support Spec 'spec' and 'autospec' as aliases for a reasonable time diff --git a/presidents/vendor/gems/rspec-1.2.9/Upgrade.rdoc b/presidents/vendor/gems/rspec-1.2.9/Upgrade.rdoc new file mode 100644 index 0000000..126177f --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/Upgrade.rdoc @@ -0,0 +1,199 @@ += Upgrade to rspec-1.2.9 + +== What's new + +=== spec/spec.opts + +If you have a spec/spec.opts file, the spec command will now use that +automatically as long as you don't include any options on the command line. + +=== let() + +Writing specs tends to follow a regular pattern of using local variables, discovering duplication, and then having to convert to local variables to instance variables by adding an "@" symbol. The let() method assigns the result of a lazy eval'd block as the return value of an instance method using +the same name. This way you can go from this: + + describe Subscription do + it "does something" do + subscription = Subscription.create :limit => 1 + subscription... + end + + it "does something else" do + subscription = Subscription.create :limit => 1 + subscription... + end + end + +to this: + + describe Subscription do + let(:subscription) { Subscription.create :limit => 1 } + + it "does something" do + subscription... + end + + it "does something else" do + subscription... + end + end + +=== its() + +If you're in the habit of writing one-liners using implicit subject, this new +its() feature is for you. Here's the basic idea: + + describe Array do + its(:length) { should == 0 } + end + += Upgrade to rspec-1.2.3-1.2.7 + +== What's Changed + +=== Matcher DSL + +Use Spec::Matchers.define instead of Spec::Matchers.create (which is now +deprecated). + +=== Explicit Predicate Matchers are deprecated + +With the addition of the new Matcher DSL the old, confusing, and +almost-nobody-uses-it explicit predicate matcher functionality's days are now +numbered. + +If you're not familiar with this feature, don't worry about it. If you have anything +that looks like this: + + predicate_matchers[:swim] = :can_swim? + +Or this + + config.predicate_matchers[:swim] = :can_swim? + +Change it to this: + + Spec::Matchers.define :swim do + match do |potential_swimmer| + potential_swimmer.can_swim? + end + end + +== Custom Formatters + +If you have an custom formatter, the add_example_group method has +been changed to example_group_started, and kept as an alias so your +formatters will still work. Though not yet, add_example_group will be +deprecated in a future minor release, and removed in a future major release, +so we recommend you make this change now. + += Upgrade to rspec-1.2.2 + +== What's Changed + +=== require 'rubygems' unless ENV['NO_RUBYGEMS'] + +After minor public outcry and confusion, we restored necessary references to +rubygems in rspec. If you use a different mechanism for managing gems, just +set a NO_RUBYGEMS environment variable (to any non-nil value). + +=== Proxies and locations + +This is probably only interesting to you if you use custom formatters. + +Formatters now receive Spec::Example::ExampleGroupProxy and +Spec::Example::ExampleGroup objects with cohesive APIs for reporting. See the +RDoc for those classes and Spec::Runner::Formatter::BaseFormatter for more +information. + +== What's new + +=== The new matcher DSL works with test/unit (without the rest of rspec) + +We'll be separating this out to its own gem for rspec 2.0, but for now, just install +rspec >= 1.2.1 and add the following to your test_helper file: + + require 'spec/expectations' + class Test::Unit::TestCase + include Spec::Matchers + end + +This will add should() and should_not() to your objects, make all of +rspec's built-in matchers available to your tests, INCLUDING rspec's DSL for +creating matchers (see below, under Upgrade to rspec-1.2.0) + +=== debugger + +If you have ruby-debug installed, you can set a breakpoint by adding debugger() +in your code: + + # some code ..... + debugger + # some more code .... + +... and using the --debugger or -u command line option. + + spec path/to/file.rb --debugger + += Upgrade to rspec-1.2.0 + +== What's Changed + +=== WARNINGS + +* If you use the ruby command to run specs instead of the spec command, you'll + need to require 'spec/autorun' or they won't run. This won't affect you if + you use the spec command or the Spec::Rake::SpecTask that ships with RSpec. + +* require 'spec/test/unit' to invoke test/unit interop if you're using + RSpec's core (this is handled implicitly with spec-rails) + +* setup and teardown are gone - use before and after instead + + * you can still use setup and teardown if you're using + Test::Unit::TestCase as the base ExampleGroup class (which is implicit + in rspec-rails) + +* The matcher protocol has been improved. The old protocol is still supported, + but we added support for two new methods that speak a bit more clearly: + + failure_message => failure_message_for_should + negative_failure_message => failure_message_for_should_not + +* All references to rubygems have been removed from within rspec's code. + + * See http://gist.github.com/54177 for rationale and suggestions on + alternative approaches to loading rubygems + +== What's New + +=== Ruby 1.9 + +RSpec now works with Ruby 1.9.1. See http://wiki.github.com/dchelimsky/rspec/ruby-191 +for useful information. + +=== Improved heckle integration + +RSpec works with heckle again! Gotta use heckle >= 1.4.2 for this to work +though, and it only works with ruby-1.8.6 and 1.8.7 (heckle doesn't support +1.9.1 yet). + + [sudo] gem install heckle --version ">=1.4.2" + spec spec/game/mastermind.rb --heckle Game::Mastermind + +=== New Matcher DSL + +We've added a new DSL for generating custom matchers very simply and cleanly. +We'll still support the simple_matcher method, so never fear if you're using +that, but we recommend that you start developing your new matchers with this +new syntax. + + Spec::Matchers.create :be_a_multiple_of do |smaller| + match do |bigger| + bigger % smaller == 0 + end + end + + 9.should be_a_multiple_of(3) + +See features/matchers/define_matcher.feature for more examples diff --git a/presidents/vendor/gems/rspec-1.2.9/bin/autospec b/presidents/vendor/gems/rspec-1.2.9/bin/autospec new file mode 100755 index 0000000..82a314f --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/bin/autospec @@ -0,0 +1,4 @@ +#!/usr/bin/env ruby +ENV['RSPEC'] = 'true' # allows autotest to discover rspec +ENV['AUTOTEST'] = 'true' # allows autotest to run w/ color on linux +system (RUBY_PLATFORM =~ /mswin|mingw/ ? 'autotest.bat' : 'autotest'), *ARGV \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/bin/spec b/presidents/vendor/gems/rspec-1.2.9/bin/spec new file mode 100755 index 0000000..d3dd243 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/bin/spec @@ -0,0 +1,5 @@ +#!/usr/bin/env ruby +rspec_dir = File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib')) +$LOAD_PATH.unshift(rspec_dir) unless $LOAD_PATH.include?(rspec_dir) +require 'spec/autorun' +exit ::Spec::Runner::CommandLine.run diff --git a/presidents/vendor/gems/rspec-1.2.9/cucumber.yml b/presidents/vendor/gems/rspec-1.2.9/cucumber.yml new file mode 100644 index 0000000..31733b5 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/cucumber.yml @@ -0,0 +1,5 @@ +default: --require features features -t ~@wip +pending: --require features features-pending +no_heckle: --require features features --exclude heckle +focus: --require features features -t focus +wip: --require features features -t @wip diff --git a/presidents/vendor/gems/rspec-1.2.9/examples/failing/README.txt b/presidents/vendor/gems/rspec-1.2.9/examples/failing/README.txt new file mode 100644 index 0000000..7e9f492 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/examples/failing/README.txt @@ -0,0 +1,11 @@ +"Why have failing examples?", you might ask. + +They allow us to see failure messages. RSpec wants to provide meaningful and +helpful failure messages. The failures in this directory not only provide you +a way of seeing the failure messages, but they provide RSpec's own specs a way +of describing what they should look like and ensuring they stay correct. + +To see the types of messages you can expect, stand in the root directory and +run: + +bin/spec examples/failing/*.rb \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/examples/failing/diffing_spec.rb b/presidents/vendor/gems/rspec-1.2.9/examples/failing/diffing_spec.rb new file mode 100644 index 0000000..85e13e8 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/examples/failing/diffing_spec.rb @@ -0,0 +1,36 @@ +describe "Running specs with --diff" do + it "should print diff of different strings" do + uk = <<-EOF +RSpec is a +behaviour driven development +framework for Ruby +EOF + usa = <<-EOF +RSpec is a +behavior driven development +framework for Ruby +EOF + usa.should == uk + end + + class Animal + def initialize(name,species) + @name,@species = name,species + end + + def inspect + <<-EOA + + EOA + end + end + + it "should print diff of different objects' pretty representation" do + expected = Animal.new "bob", "giraffe" + actual = Animal.new "bob", "tortoise" + expected.should eql(actual) + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/examples/failing/failing_implicit_docstrings_example.rb b/presidents/vendor/gems/rspec-1.2.9/examples/failing/failing_implicit_docstrings_example.rb new file mode 100644 index 0000000..7b0b866 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/examples/failing/failing_implicit_docstrings_example.rb @@ -0,0 +1,17 @@ +# Run spec w/ -fs to see the output of this file + +describe "Failing examples with no descriptions" do + + # description is auto-generated as "should equal(5)" based on the last #should + it do + 3.should equal(2) + 5.should equal(5) + end + + it { 3.should be > 5 } + + it { ["a"].should include("b") } + + it { [1,2,3].should_not respond_to(:size) } + +end diff --git a/presidents/vendor/gems/rspec-1.2.9/examples/failing/failure_in_after.rb b/presidents/vendor/gems/rspec-1.2.9/examples/failing/failure_in_after.rb new file mode 100644 index 0000000..a47338a --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/examples/failing/failure_in_after.rb @@ -0,0 +1,10 @@ +describe "This example" do + + it "should be listed as failing in after" do + end + + after(:each) do + NonExistentClass.new + end + +end diff --git a/presidents/vendor/gems/rspec-1.2.9/examples/failing/failure_in_before.rb b/presidents/vendor/gems/rspec-1.2.9/examples/failing/failure_in_before.rb new file mode 100644 index 0000000..b082660 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/examples/failing/failure_in_before.rb @@ -0,0 +1,10 @@ +describe "This example" do + + before(:each) do + NonExistentClass.new + end + + it "should be listed as failing in each" do + end + +end diff --git a/presidents/vendor/gems/rspec-1.2.9/examples/failing/mocking_example.rb b/presidents/vendor/gems/rspec-1.2.9/examples/failing/mocking_example.rb new file mode 100644 index 0000000..9c735e0 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/examples/failing/mocking_example.rb @@ -0,0 +1,38 @@ +describe "Mocker" do + + it "should be able to call mock()" do + mock = mock("poke me") + mock.should_receive(:poke) + mock.poke + end + + it "should fail when expected message not received" do + mock = mock("poke me") + mock.should_receive(:poke) + end + + it "should fail when messages are received out of order" do + mock = mock("one two three") + mock.should_receive(:one).ordered + mock.should_receive(:two).ordered + mock.should_receive(:three).ordered + mock.one + mock.three + mock.two + end + + it "should get yelled at when sending unexpected messages" do + mock = mock("don't talk to me") + mock.should_not_receive(:any_message_at_all) + mock.any_message_at_all + end + + it "has a bug we need to fix" do + pending "here is the bug" do + # Actually, no. It's fixed. This will fail because it passes :-) + mock = mock("Bug") + mock.should_receive(:hello) + mock.hello + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/examples/failing/mocking_with_flexmock.rb b/presidents/vendor/gems/rspec-1.2.9/examples/failing/mocking_with_flexmock.rb new file mode 100644 index 0000000..6e79ece --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/examples/failing/mocking_with_flexmock.rb @@ -0,0 +1,26 @@ +# stub frameworks like to gum up Object, so this is deliberately +# set NOT to run so that you don't accidentally run it when you +# run this dir. + +# To run it, stand in this directory and say: +# +# RUN_FLEXMOCK_EXAMPLE=true ruby ../bin/spec mocking_with_flexmock.rb + +if ENV['RUN_FLEXMOCK_EXAMPLE'] + Spec::Runner.configure do |config| + config.mock_with :flexmock + end + + describe "Flexmocks" do + it "should fail when the expected message is received with wrong arguments" do + m = flexmock("now flex!") + m.should_receive(:msg).with("arg").once + m.msg("other arg") + end + + it "should fail when the expected message is not received at all" do + m = flexmock("now flex!") + m.should_receive(:msg).with("arg").once + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/examples/failing/mocking_with_mocha.rb b/presidents/vendor/gems/rspec-1.2.9/examples/failing/mocking_with_mocha.rb new file mode 100644 index 0000000..f14a1a3 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/examples/failing/mocking_with_mocha.rb @@ -0,0 +1,25 @@ +# stub frameworks like to gum up Object, so this is deliberately +# set NOT to run so that you don't accidentally run it when you +# run this dir. + +# To run it, stand in this directory and say: +# +# RUN_MOCHA_EXAMPLE=true ruby ../bin/spec mocking_with_mocha.rb + +if ENV['RUN_MOCHA_EXAMPLE'] + Spec::Runner.configure do |config| + config.mock_with :mocha + end + describe "Mocha framework" do + it "should should be made available by saying config.mock_with :mocha" do + m = mock() + m.expects(:msg).with("arg") + m.msg + end + it "should should be made available by saying config.mock_with :mocha" do + o = Object.new + o.expects(:msg).with("arg") + o.msg + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/examples/failing/mocking_with_rr.rb b/presidents/vendor/gems/rspec-1.2.9/examples/failing/mocking_with_rr.rb new file mode 100644 index 0000000..0d2b4fe --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/examples/failing/mocking_with_rr.rb @@ -0,0 +1,27 @@ +# stub frameworks like to gum up Object, so this is deliberately +# set NOT to run so that you don't accidentally run it when you +# run this dir. + +# To run it, stand in this directory and say: +# +# RUN_RR_EXAMPLE=true ruby ../bin/spec mocking_with_rr.rb + +if ENV['RUN_RR_EXAMPLE'] + Spec::Runner.configure do |config| + config.mock_with :rr + end + describe "RR framework" do + it "should should be made available by saying config.mock_with :rr" do + o = Object.new + mock(o).msg("arg") + o.msg + end + it "should should be made available by saying config.mock_with :rr" do + o = Object.new + mock(o) do |m| + m.msg("arg") + end + o.msg + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/examples/failing/partial_mock_example.rb b/presidents/vendor/gems/rspec-1.2.9/examples/failing/partial_mock_example.rb new file mode 100644 index 0000000..7f8d081 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/examples/failing/partial_mock_example.rb @@ -0,0 +1,18 @@ +class MockableClass + def self.find id + return :original_return + end +end + +describe "A partial mock" do + + it "should work at the class level (but fail here due to the type mismatch)" do + MockableClass.should_receive(:find).with(1).and_return {:stub_return} + MockableClass.find("1").should equal(:stub_return) + end + + it "should revert to the original after each spec" do + MockableClass.find(1).should equal(:original_return) + end + +end diff --git a/presidents/vendor/gems/rspec-1.2.9/examples/failing/pending_example.rb b/presidents/vendor/gems/rspec-1.2.9/examples/failing/pending_example.rb new file mode 100644 index 0000000..825af2e --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/examples/failing/pending_example.rb @@ -0,0 +1,7 @@ +describe "pending example (which is fixed)" do + it %Q|reports "FIXED ... Expected ... to fail. No Error was raised."| do + pending("for some reason") do + # success + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/examples/failing/predicate_example.rb b/presidents/vendor/gems/rspec-1.2.9/examples/failing/predicate_example.rb new file mode 100644 index 0000000..aed8b14 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/examples/failing/predicate_example.rb @@ -0,0 +1,32 @@ +class BddFramework + def intuitive? + true + end + + def adopted_quickly? + #this will cause failures because it reallly SHOULD be adopted quickly + false + end +end + +describe "BDD framework" do + + before(:each) do + @bdd_framework = BddFramework.new + end + + it "should be adopted quickly" do + #this will fail because it reallly SHOULD be adopted quickly + @bdd_framework.should be_adopted_quickly + end + + it "should be intuitive" do + @bdd_framework.should be_intuitive + end + + it "should not respond to test" do + #this will fail + @bdd_framework.test + end + +end diff --git a/presidents/vendor/gems/rspec-1.2.9/examples/failing/raising_example.rb b/presidents/vendor/gems/rspec-1.2.9/examples/failing/raising_example.rb new file mode 100644 index 0000000..e40b51e --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/examples/failing/raising_example.rb @@ -0,0 +1,47 @@ +describe "This example" do + + it "should show that a NoMethodError is raised but an Exception was expected" do + proc { ''.nonexistent_method }.should raise_error + end + + it "should pass" do + proc { ''.nonexistent_method }.should raise_error(NoMethodError) + end + + it "should show that a NoMethodError is raised but a SyntaxError was expected" do + proc { ''.nonexistent_method }.should raise_error(SyntaxError) + end + + it "should show that nothing is raised when SyntaxError was expected" do + proc { }.should raise_error(SyntaxError) + end + + it "should show that a NoMethodError is raised but a Exception was expected" do + proc { ''.nonexistent_method }.should_not raise_error + end + + it "should show that a NoMethodError is raised" do + proc { ''.nonexistent_method }.should_not raise_error(NoMethodError) + end + + it "should also pass" do + proc { ''.nonexistent_method }.should_not raise_error(SyntaxError) + end + + it "should show that a NoMethodError is raised when nothing expected" do + proc { ''.nonexistent_method }.should_not raise_error(Exception) + end + + it "should show that the wrong message was received" do + proc { raise StandardError.new("what is an enterprise?") }.should raise_error(StandardError, "not this") + end + + it "should show that the unexpected error/message was thrown" do + proc { raise StandardError.new("abc") }.should_not raise_error(StandardError, "abc") + end + + it "should pass too" do + proc { raise StandardError.new("abc") }.should_not raise_error(StandardError, "xyz") + end + +end diff --git a/presidents/vendor/gems/rspec-1.2.9/examples/failing/syntax_error_example.rb b/presidents/vendor/gems/rspec-1.2.9/examples/failing/syntax_error_example.rb new file mode 100644 index 0000000..c9bb907 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/examples/failing/syntax_error_example.rb @@ -0,0 +1,7 @@ +describe "when passing a block to a matcher" do + it "you should use {} instead of do/end" do + Object.new.should satisfy do + "this block is being passed to #should instead of #satisfy - use {} instead" + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/examples/failing/team_spec.rb b/presidents/vendor/gems/rspec-1.2.9/examples/failing/team_spec.rb new file mode 100644 index 0000000..ab35b52 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/examples/failing/team_spec.rb @@ -0,0 +1,41 @@ +class Team + attr_reader :players + def initialize + @players = Players.new + end +end + +class Players + def initialize + @players = [] + end + def size + @players.size + end + def include? player + raise "player must be a string" unless player.is_a?(String) + @players.include? player + end +end + +describe "A new team" do + + before(:each) do + @team = Team.new + end + + it "should have 3 players (failing example)" do + @team.should have(3).players + end + + it "should include some player (failing example)" do + @team.players.should include("Some Player") + end + + it "should include 5 (failing example)" do + @team.players.should include(5) + end + + it "should have no players" + +end diff --git a/presidents/vendor/gems/rspec-1.2.9/examples/failing/timeout_behaviour.rb b/presidents/vendor/gems/rspec-1.2.9/examples/failing/timeout_behaviour.rb new file mode 100644 index 0000000..1a3615f --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/examples/failing/timeout_behaviour.rb @@ -0,0 +1,5 @@ +describe "Something really slow" do + it "should be failed by RSpec when it takes longer than --timeout" do + sleep(2) + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/examples/passing/custom_formatter.rb b/presidents/vendor/gems/rspec-1.2.9/examples/passing/custom_formatter.rb new file mode 100644 index 0000000..4c74821 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/examples/passing/custom_formatter.rb @@ -0,0 +1,11 @@ +require 'spec/runner/formatter/progress_bar_formatter' + +# Example of a formatter with custom bactrace printing. Run me with: +# ruby bin/spec examples/failing -r examples/passing/custom_formatter.rb -f CustomFormatter +class CustomFormatter < Spec::Runner::Formatter::ProgressBarFormatter + def backtrace_line(line) + line.gsub(/([^:]*\.rb):(\d*)/) do + "#{$1}:#{$2} " + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/examples/passing/custom_matchers.rb b/presidents/vendor/gems/rspec-1.2.9/examples/passing/custom_matchers.rb new file mode 100644 index 0000000..075bb54 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/examples/passing/custom_matchers.rb @@ -0,0 +1,54 @@ +module AnimalSpecHelper + class Eat + def initialize(food) + @food = food + end + + def matches?(animal) + @animal = animal + @animal.eats?(@food) + end + + def failure_message + "expected #{@animal} to eat #{@food}, but it does not" + end + + def negative_failure_message + "expected #{@animal} not to eat #{@food}, but it does" + end + end + + def eat(food) + Eat.new(food) + end +end + +module Animals + class Animal + def eats?(food) + return foods_i_eat.include?(food) + end + end + + class Mouse < Animal + def foods_i_eat + [:cheese] + end + end + + describe Mouse do + include AnimalSpecHelper + before(:each) do + @mouse = Animals::Mouse.new + end + + it "should eat cheese" do + @mouse.should eat(:cheese) + end + + it "should not eat cat" do + @mouse.should_not eat(:cat) + end + end + +end diff --git a/presidents/vendor/gems/rspec-1.2.9/examples/passing/dynamic_spec.rb b/presidents/vendor/gems/rspec-1.2.9/examples/passing/dynamic_spec.rb new file mode 100644 index 0000000..7c03726 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/examples/passing/dynamic_spec.rb @@ -0,0 +1,7 @@ +describe "The square root" do + (1..10).each do |n| + it "of #{n*n} should be #{n}" do + Math.sqrt(n*n).should == n + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/examples/passing/file_accessor.rb b/presidents/vendor/gems/rspec-1.2.9/examples/passing/file_accessor.rb new file mode 100644 index 0000000..e67f447 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/examples/passing/file_accessor.rb @@ -0,0 +1,18 @@ +class FileAccessor + def open_and_handle_with(pathname, processor) + pathname.open do |io| + processor.process(io) + end + end +end + +if __FILE__ == $0 + require 'examples/passing/io_processor' + require 'pathname' + + accessor = FileAccessor.new + io_processor = IoProcessor.new + file = Pathname.new ARGV[0] + + accessor.open_and_handle_with(file, io_processor) +end diff --git a/presidents/vendor/gems/rspec-1.2.9/examples/passing/file_accessor_spec.rb b/presidents/vendor/gems/rspec-1.2.9/examples/passing/file_accessor_spec.rb new file mode 100644 index 0000000..84428b6 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/examples/passing/file_accessor_spec.rb @@ -0,0 +1,37 @@ +require 'examples/passing/file_accessor' +require 'stringio' + +describe "A FileAccessor" do + # This sequence diagram illustrates what this spec specifies. + # + # +--------------+ +----------+ +-------------+ + # | FileAccessor | | Pathname | | IoProcessor | + # +--------------+ +----------+ +-------------+ + # | | | + # open_and_handle_with | | | + # -------------------->| | open | | + # | |--------------->| | | + # | | io | | | + # | |<...............| | | + # | | | process(io) | + # | |---------------------------------->| | + # | | | | | + # | |<..................................| | + # | | | + # + it "should open a file and pass it to the processor's process method" do + # This is the primary actor + accessor = FileAccessor.new + + # These are the primary actor's neighbours, which we mock. + file = mock "Pathname" + io_processor = mock "IoProcessor" + + io = StringIO.new "whatever" + file.should_receive(:open).and_yield io + io_processor.should_receive(:process).with(io) + + accessor.open_and_handle_with(file, io_processor) + end + +end diff --git a/presidents/vendor/gems/rspec-1.2.9/examples/passing/filtered_formatter.rb b/presidents/vendor/gems/rspec-1.2.9/examples/passing/filtered_formatter.rb new file mode 100644 index 0000000..eaeabbc --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/examples/passing/filtered_formatter.rb @@ -0,0 +1,17 @@ +require 'spec/runner/formatter/nested_text_formatter' + +class FilteredFormatter < Spec::Runner::Formatter::NestedTextFormatter + def add_example_group(example_group) + if example_group.options[:show] == false + @showing = false + else + @showing = true + puts example_group.description + end + end + + def example_passed(example) + puts " " << example.description if @showing unless example.options[:show] == false + end +end + diff --git a/presidents/vendor/gems/rspec-1.2.9/examples/passing/filtered_formatter_example.rb b/presidents/vendor/gems/rspec-1.2.9/examples/passing/filtered_formatter_example.rb new file mode 100644 index 0000000..3c9d067 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/examples/passing/filtered_formatter_example.rb @@ -0,0 +1,31 @@ +# This demonstrates how you can write custom formatters to handle arbitrary +# options passed to the +describe+ and +it+ methods. To see it in action, stand +# in the project root and say: +# +# bin/spec -r examples/passing/filtered_formatter.rb examples/passing/filtered_formatter_example.rb -f FilteredFormatter +# +# You should only see the examples and groups below that are not explicitly +# marked :show => false +# +# group 1 +# example 1 a +# group 3 +# example 3 + + +describe "group 1", :show => true do + it "example 1 a", :show => true do + end + it "example 1 b", :show => false do + end +end + +describe "group 2", :show => false do + it "example 2" do + end +end + +describe "group 3" do + it "example 3" do + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/examples/passing/greeter_spec.rb b/presidents/vendor/gems/rspec-1.2.9/examples/passing/greeter_spec.rb new file mode 100644 index 0000000..7d67e31 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/examples/passing/greeter_spec.rb @@ -0,0 +1,30 @@ +# greeter.rb +# +# Based on http://glu.ttono.us/articles/2006/12/19/tormenting-your-tests-with-heckle +# +# Run with: +# +# spec greeter_spec.rb --heckle Greeter +# +class Greeter + def initialize(person = nil) + @person = person + end + + def greet + @person.nil? ? "Hi there!" : "Hi #{@person}!" + end +end + +describe "Greeter" do + it "should say Hi to person" do + greeter = Greeter.new("Kevin") + greeter.greet.should == "Hi Kevin!" + end + + it "should say Hi to nobody" do + greeter = Greeter.new + # Uncomment the next line to make Heckle happy + #greeter.greet.should == "Hi there!" + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/examples/passing/helper_method_example.rb b/presidents/vendor/gems/rspec-1.2.9/examples/passing/helper_method_example.rb new file mode 100644 index 0000000..eb3dca9 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/examples/passing/helper_method_example.rb @@ -0,0 +1,12 @@ +module HelperMethodExample + describe "an example group with helper a method" do + def helper_method + "received call" + end + + it "should make that method available to specs" do + helper_method.should == "received call" + end + end +end + diff --git a/presidents/vendor/gems/rspec-1.2.9/examples/passing/implicit_docstrings_example.rb b/presidents/vendor/gems/rspec-1.2.9/examples/passing/implicit_docstrings_example.rb new file mode 100644 index 0000000..889cef4 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/examples/passing/implicit_docstrings_example.rb @@ -0,0 +1,16 @@ +# Run "spec implicit_docstrings_example.rb --format specdoc" to see the output of this file + +describe "Examples with no docstrings generate their own:" do + + specify { 3.should be < 5 } + + specify { ["a"].should include("a") } + + specify { [1,2,3].should respond_to(:size) } + +end + +describe 1 do + it { should == 1 } + it { should be < 2} +end diff --git a/presidents/vendor/gems/rspec-1.2.9/examples/passing/io_processor.rb b/presidents/vendor/gems/rspec-1.2.9/examples/passing/io_processor.rb new file mode 100644 index 0000000..6b15147 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/examples/passing/io_processor.rb @@ -0,0 +1,8 @@ +class DataTooShort < StandardError; end + +class IoProcessor + # Does some fancy stuff unless the length of +io+ is shorter than 32 + def process(io) + raise DataTooShort if io.read.length < 32 + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/examples/passing/io_processor_spec.rb b/presidents/vendor/gems/rspec-1.2.9/examples/passing/io_processor_spec.rb new file mode 100644 index 0000000..1f5020e --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/examples/passing/io_processor_spec.rb @@ -0,0 +1,20 @@ +require 'examples/passing/io_processor' +require 'stringio' + +describe "An IoProcessor" do + before(:each) do + @processor = IoProcessor.new + end + + it "should raise nothing when the file is exactly 32 bytes" do + lambda { + @processor.process(StringIO.new("z"*32)) + }.should_not raise_error + end + + it "should raise an exception when the file length is less than 32 bytes" do + lambda { + @processor.process(StringIO.new("z"*31)) + }.should raise_error(DataTooShort) + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/examples/passing/mocking_example.rb b/presidents/vendor/gems/rspec-1.2.9/examples/passing/mocking_example.rb new file mode 100644 index 0000000..1d342c7 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/examples/passing/mocking_example.rb @@ -0,0 +1,25 @@ +describe "A consumer of a mock" do + it "should be able to send messages to the mock" do + mock = mock("poke me") + mock.should_receive(:poke) + mock.poke + end +end + +describe "a mock" do + it "should be able to mock the same message twice w/ different args" do + mock = mock("mock") + mock.should_receive(:msg).with(:arg1).and_return(:val1) + mock.should_receive(:msg).with(:arg2).and_return(:val2) + mock.msg(:arg1).should eql(:val1) + mock.msg(:arg2).should eql(:val2) + end + + it "should be able to mock the same message twice w/ different args in reverse order" do + mock = mock("mock") + mock.should_receive(:msg).with(:arg1).and_return(:val1) + mock.should_receive(:msg).with(:arg2).and_return(:val2) + mock.msg(:arg2).should eql(:val2) + mock.msg(:arg1).should eql(:val1) + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/examples/passing/multi_threaded_example_group_runner.rb b/presidents/vendor/gems/rspec-1.2.9/examples/passing/multi_threaded_example_group_runner.rb new file mode 100644 index 0000000..d5458dd --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/examples/passing/multi_threaded_example_group_runner.rb @@ -0,0 +1,26 @@ +class MultiThreadedExampleGroupRunner < Spec::Runner::ExampleGroupRunner + def initialize(options, arg) + super(options) + # configure these + @thread_count = 4 + @thread_wait = 0 + end + + def run + @threads = [] + q = Queue.new + example_groups.each { |b| q << b} + success = true + @thread_count.times do + @threads << Thread.new(q) do |queue| + while not queue.empty? + example_group = queue.pop + success &= example_group.suite.run(nil) + end + end + sleep @thread_wait + end + @threads.each {|t| t.join} + success + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/examples/passing/nested_classes_example.rb b/presidents/vendor/gems/rspec-1.2.9/examples/passing/nested_classes_example.rb new file mode 100644 index 0000000..ce54995 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/examples/passing/nested_classes_example.rb @@ -0,0 +1,35 @@ +require 'examples/passing/stack' + +class StackExamples < Spec::ExampleGroup + describe(Stack) + before(:each) do + @stack = Stack.new + end +end + +class EmptyStackExamples < StackExamples + describe("when empty") + it "should be empty" do + @stack.should be_empty + end +end + +class AlmostFullStackExamples < StackExamples + describe("when almost full") + before(:each) do + (1..9).each {|n| @stack.push n} + end + it "should be full" do + @stack.should_not be_full + end +end + +class FullStackExamples < StackExamples + describe("when full") + before(:each) do + (1..10).each {|n| @stack.push n} + end + it "should be full" do + @stack.should be_full + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/examples/passing/options_example.rb b/presidents/vendor/gems/rspec-1.2.9/examples/passing/options_example.rb new file mode 100644 index 0000000..bed3077 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/examples/passing/options_example.rb @@ -0,0 +1,29 @@ +# This demonstrates the use of the options hash to support custom reporting. +# To see the result, run this command from the project root: +# +# bin/spec --require examples/passing/options_formatter.rb examples/passing/options_example.rb \ +# --format OptionsFormatter + +describe "this group will be reported", :report => true do + it "this example will be reported", :report => true do + # no-op + end + + it "this example will not be reported", :report => false do + # no-op + end + + it "this example will also not be reported", :foo => 'bar' do + # no-op + end + + it "this example will also also not be reported" do + # no-op + end +end + +describe "this group will not be reported", :report => false do + it "though this example will", :report => true do + # no-op + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/examples/passing/options_formatter.rb b/presidents/vendor/gems/rspec-1.2.9/examples/passing/options_formatter.rb new file mode 100644 index 0000000..b88bebb --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/examples/passing/options_formatter.rb @@ -0,0 +1,20 @@ +# This is an example of how you can use a custom formatter to do custom +# reporting. This formatter will only report example groups and examples that +# have :report => true (or anything truthy) in the declaration. See +# options_example.rb in this directory. + +require 'spec/runner/formatter/base_text_formatter' + +class OptionsFormatter < Spec::Runner::Formatter::BaseTextFormatter + def example_started(proxy) + if proxy.options[:report] + puts proxy.description + end + end + + def example_group_started(proxy) + if proxy.options[:report] + puts proxy.description + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/examples/passing/partial_mock_example.rb b/presidents/vendor/gems/rspec-1.2.9/examples/passing/partial_mock_example.rb new file mode 100644 index 0000000..38aafa1 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/examples/passing/partial_mock_example.rb @@ -0,0 +1,27 @@ +class MockableClass + def self.find id + return :original_return + end +end + +describe "A partial mock" do + + it "should work at the class level" do + MockableClass.should_receive(:find).with(1).and_return {:stub_return} + MockableClass.find(1).should equal(:stub_return) + end + + it "should revert to the original after each spec" do + MockableClass.find(1).should equal(:original_return) + end + + it "can be mocked w/ ordering" do + MockableClass.should_receive(:msg_1).ordered + MockableClass.should_receive(:msg_2).ordered + MockableClass.should_receive(:msg_3).ordered + MockableClass.msg_1 + MockableClass.msg_2 + MockableClass.msg_3 + end + +end diff --git a/presidents/vendor/gems/rspec-1.2.9/examples/passing/pending_example.rb b/presidents/vendor/gems/rspec-1.2.9/examples/passing/pending_example.rb new file mode 100644 index 0000000..7ce3827 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/examples/passing/pending_example.rb @@ -0,0 +1,18 @@ +describe "pending example (using pending method)" do + it %Q|should be reported as "PENDING: for some reason"| do + pending("for some reason") + end +end + +describe "pending example (with no block)" do + it %Q|should be reported as "PENDING: Not Yet Implemented"| +end + +describe "pending example (with block for pending)" do + it %Q|should have a failing block, passed to pending, reported as "PENDING: for some reason"| do + pending("for some reason") do + raise "some reason" + end + end +end + diff --git a/presidents/vendor/gems/rspec-1.2.9/examples/passing/predicate_example.rb b/presidents/vendor/gems/rspec-1.2.9/examples/passing/predicate_example.rb new file mode 100644 index 0000000..f10c386 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/examples/passing/predicate_example.rb @@ -0,0 +1,25 @@ +class BddFramework + def intuitive? + true + end + + def adopted_quickly? + true + end +end + +describe "BDD framework" do + + before(:each) do + @bdd_framework = BddFramework.new + end + + it "should be adopted quickly" do + @bdd_framework.should be_adopted_quickly + end + + it "should be intuitive" do + @bdd_framework.should be_intuitive + end + +end diff --git a/presidents/vendor/gems/rspec-1.2.9/examples/passing/shared_example_group_example.rb b/presidents/vendor/gems/rspec-1.2.9/examples/passing/shared_example_group_example.rb new file mode 100644 index 0000000..f034a11 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/examples/passing/shared_example_group_example.rb @@ -0,0 +1,79 @@ +module SharedExampleGroupExample + class OneThing + def what_things_do + "stuff" + end + end + + class AnotherThing + def what_things_do + "stuff" + end + end + + class YetAnotherThing + def what_things_do + "stuff" + end + end + + # A SharedExampleGroup is an example group that doesn't get run. + # You can create one like this: + share_examples_for "most things" do + def helper_method + "helper method" + end + + it "should do what things do" do + @thing.what_things_do.should == "stuff" + end + end + + # A SharedExampleGroup is also a module. If you create one like this it gets + # assigned to the constant MostThings + share_as :MostThings do + def helper_method + "helper method" + end + + it "should do what things do" do + @thing.what_things_do.should == "stuff" + end + end + + describe OneThing do + # Now you can include the shared example group like this, which + # feels more like what you might say ... + it_should_behave_like "most things" + + before(:each) { @thing = OneThing.new } + + it "should have access to helper methods defined in the shared example group" do + helper_method.should == "helper method" + end + end + + describe AnotherThing do + # ... or you can include the example group like this, which + # feels more like the programming language we love. + it_should_behave_like MostThings + + before(:each) { @thing = AnotherThing.new } + + it "should have access to helper methods defined in the shared example group" do + helper_method.should == "helper method" + end + end + + describe YetAnotherThing do + # ... or you can include the example group like this, which + # feels more like the programming language we love. + include MostThings + + before(:each) { @thing = AnotherThing.new } + + it "should have access to helper methods defined in the shared example group" do + helper_method.should == "helper method" + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/examples/passing/shared_stack_examples.rb b/presidents/vendor/gems/rspec-1.2.9/examples/passing/shared_stack_examples.rb new file mode 100644 index 0000000..e14fd14 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/examples/passing/shared_stack_examples.rb @@ -0,0 +1,36 @@ +shared_examples_for "non-empty Stack" do + + it { @stack.should_not be_empty } + + it "should return the top item when sent #peek" do + @stack.peek.should == @last_item_added + end + + it "should NOT remove the top item when sent #peek" do + @stack.peek.should == @last_item_added + @stack.peek.should == @last_item_added + end + + it "should return the top item when sent #pop" do + @stack.pop.should == @last_item_added + end + + it "should remove the top item when sent #pop" do + @stack.pop.should == @last_item_added + unless @stack.empty? + @stack.pop.should_not == @last_item_added + end + end + +end + +shared_examples_for "non-full Stack" do + + it { @stack.should_not be_full } + + it "should add to the top when sent #push" do + @stack.push "newly added top item" + @stack.peek.should == "newly added top item" + end + +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/examples/passing/simple_matcher_example.rb b/presidents/vendor/gems/rspec-1.2.9/examples/passing/simple_matcher_example.rb new file mode 100644 index 0000000..5a0fc0f --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/examples/passing/simple_matcher_example.rb @@ -0,0 +1,29 @@ +describe "arrays" do + def contain_same_elements_as(expected) + simple_matcher "array with same elements in any order as #{expected.inspect}" do |actual| + if actual.size == expected.size + a, e = actual.dup, expected.dup + until e.empty? do + if i = a.index(e.pop) then a.delete_at(i) end + end + a.empty? + else + false + end + end + end + + describe "can be matched by their contents disregarding order" do + subject { [1,2,2,3] } + it { should contain_same_elements_as([1,2,2,3]) } + it { should contain_same_elements_as([2,3,2,1]) } + it { should_not contain_same_elements_as([3,3,2,1]) } + end + + describe "fail the match with different contents" do + subject { [1,2,3] } + it { should_not contain_same_elements_as([2,3,4])} + it { should_not contain_same_elements_as([1,2,2,3])} + it { should_not contain_same_elements_as([1,2])} + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/examples/passing/stack.rb b/presidents/vendor/gems/rspec-1.2.9/examples/passing/stack.rb new file mode 100644 index 0000000..407173f --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/examples/passing/stack.rb @@ -0,0 +1,36 @@ +class StackUnderflowError < RuntimeError +end + +class StackOverflowError < RuntimeError +end + +class Stack + + def initialize + @items = [] + end + + def push object + raise StackOverflowError if @items.length == 10 + @items.push object + end + + def pop + raise StackUnderflowError if @items.empty? + @items.delete @items.last + end + + def peek + raise StackUnderflowError if @items.empty? + @items.last + end + + def empty? + @items.empty? + end + + def full? + @items.length == 10 + end + +end diff --git a/presidents/vendor/gems/rspec-1.2.9/examples/passing/stack_spec.rb b/presidents/vendor/gems/rspec-1.2.9/examples/passing/stack_spec.rb new file mode 100644 index 0000000..6d0d063 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/examples/passing/stack_spec.rb @@ -0,0 +1,63 @@ +require 'examples/passing/stack' +require 'examples/passing/shared_stack_examples' + +describe Stack, " (empty)" do + before(:each) do + @stack = Stack.new + end + + # This uses @stack (because the described class is Stack) auto-generates the + # description "should be empty" + it { should be_empty } + + it_should_behave_like "non-full Stack" + + it "should complain when sent #peek" do + lambda { @stack.peek }.should raise_error(StackUnderflowError) + end + + it "should complain when sent #pop" do + lambda { @stack.pop }.should raise_error(StackUnderflowError) + end +end + +describe Stack, " (with one item)" do + before(:each) do + @stack = Stack.new + @stack.push 3 + @last_item_added = 3 + end + + it_should_behave_like "non-empty Stack" + it_should_behave_like "non-full Stack" + +end + +describe Stack, " (with one item less than capacity)" do + before(:each) do + @stack = Stack.new + (1..9).each { |i| @stack.push i } + @last_item_added = 9 + end + + it_should_behave_like "non-empty Stack" + it_should_behave_like "non-full Stack" +end + +describe Stack, " (full)" do + before(:each) do + @stack = Stack.new + (1..10).each { |i| @stack.push i } + @last_item_added = 10 + end + + # NOTE that this one auto-generates the description "should be full" + it { @stack.should be_full } + + it_should_behave_like "non-empty Stack" + + it "should complain on #push" do + lambda { @stack.push Object.new }.should raise_error(StackOverflowError) + end + +end diff --git a/presidents/vendor/gems/rspec-1.2.9/examples/passing/stack_spec_with_nested_example_groups.rb b/presidents/vendor/gems/rspec-1.2.9/examples/passing/stack_spec_with_nested_example_groups.rb new file mode 100644 index 0000000..6e36df7 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/examples/passing/stack_spec_with_nested_example_groups.rb @@ -0,0 +1,66 @@ +require 'examples/passing/stack' +require 'examples/passing/shared_stack_examples' + +describe Stack do + + before(:each) do + @stack = Stack.new + end + + describe "(empty)" do + + it { @stack.should be_empty } + + it_should_behave_like "non-full Stack" + + it "should complain when sent #peek" do + lambda { @stack.peek }.should raise_error(StackUnderflowError) + end + + it "should complain when sent #pop" do + lambda { @stack.pop }.should raise_error(StackUnderflowError) + end + + end + + describe "(with one item)" do + + before(:each) do + @stack.push 3 + @last_item_added = 3 + end + + it_should_behave_like "non-empty Stack" + it_should_behave_like "non-full Stack" + + end + + describe "(with one item less than capacity)" do + + before(:each) do + (1..9).each { |i| @stack.push i } + @last_item_added = 9 + end + + it_should_behave_like "non-empty Stack" + it_should_behave_like "non-full Stack" + end + + describe "(full)" do + + before(:each) do + (1..10).each { |i| @stack.push i } + @last_item_added = 10 + end + + it { @stack.should be_full } + + it_should_behave_like "non-empty Stack" + + it "should complain on #push" do + lambda { @stack.push Object.new }.should raise_error(StackOverflowError) + end + + end + +end diff --git a/presidents/vendor/gems/rspec-1.2.9/examples/passing/stubbing_example.rb b/presidents/vendor/gems/rspec-1.2.9/examples/passing/stubbing_example.rb new file mode 100644 index 0000000..dab8982 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/examples/passing/stubbing_example.rb @@ -0,0 +1,67 @@ +describe "A consumer of a stub" do + it "should be able to stub methods on any Object" do + obj = Object.new + obj.stub!(:foobar).and_return {:return_value} + obj.foobar.should equal(:return_value) + end +end + +class StubbableClass + def self.find id + return :original_return + end +end + +describe "A stubbed method on a class" do + it "should return the stubbed value" do + StubbableClass.stub!(:find).and_return(:stub_return) + StubbableClass.find(1).should equal(:stub_return) + end + + it "should revert to the original method after each spec" do + StubbableClass.find(1).should equal(:original_return) + end + + it "can stub! and mock the same message" do + StubbableClass.stub!(:msg).and_return(:stub_value) + StubbableClass.should_receive(:msg).with(:arg).and_return(:mock_value) + + StubbableClass.msg.should equal(:stub_value) + StubbableClass.msg(:other_arg).should equal(:stub_value) + StubbableClass.msg(:arg).should equal(:mock_value) + StubbableClass.msg(:another_arg).should equal(:stub_value) + StubbableClass.msg(:yet_another_arg).should equal(:stub_value) + StubbableClass.msg.should equal(:stub_value) + end +end + +describe "A mock" do + it "can stub!" do + mock = mock("stubbing mock") + mock.stub!(:msg).and_return(:value) + (1..10).each {mock.msg.should equal(:value)} + end + + it "can stub! and mock" do + mock = mock("stubbing mock") + mock.stub!(:stub_message).and_return(:stub_value) + mock.should_receive(:mock_message).once.and_return(:mock_value) + (1..10).each {mock.stub_message.should equal(:stub_value)} + mock.mock_message.should equal(:mock_value) + (1..10).each {mock.stub_message.should equal(:stub_value)} + end + + it "can stub! and mock the same message" do + mock = mock("stubbing mock") + mock.stub!(:msg).and_return(:stub_value) + mock.should_receive(:msg).with(:arg).and_return(:mock_value) + mock.msg.should equal(:stub_value) + mock.msg(:other_arg).should equal(:stub_value) + mock.msg(:arg).should equal(:mock_value) + mock.msg(:another_arg).should equal(:stub_value) + mock.msg(:yet_another_arg).should equal(:stub_value) + mock.msg.should equal(:stub_value) + end +end + + diff --git a/presidents/vendor/gems/rspec-1.2.9/examples/passing/yielding_example.rb b/presidents/vendor/gems/rspec-1.2.9/examples/passing/yielding_example.rb new file mode 100644 index 0000000..e7b43ff --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/examples/passing/yielding_example.rb @@ -0,0 +1,31 @@ +class MessageAppender + + def initialize(appendage) + @appendage = appendage + end + + def append_to(message) + if_told_to_yield do + message << @appendage + end + end + +end + +describe "a message expectation yielding to a block" do + it "should yield if told to" do + appender = MessageAppender.new("appended to") + appender.should_receive(:if_told_to_yield).and_yield + message = "" + appender.append_to(message) + message.should == "appended to" + end + + it "should not yield if not told to" do + appender = MessageAppender.new("appended to") + appender.should_receive(:if_told_to_yield) + message = "" + appender.append_to(message) + message.should == "" + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/examples/ruby1.9.compatibility/access_to_constants_spec.rb b/presidents/vendor/gems/rspec-1.2.9/examples/ruby1.9.compatibility/access_to_constants_spec.rb new file mode 100644 index 0000000..b34b8ba --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/examples/ruby1.9.compatibility/access_to_constants_spec.rb @@ -0,0 +1,85 @@ +# courtesy of Matthias Hennemeyer +# +# The following should pass against ruby 1.8 and 1.9. It currently only passes +# 1.8 (as of 1/2/2009) +# +# Once cucumber supports ruby 1.9, this should be moved to cucumber scenarios instead. +module Foo + module Bar + + module ModuleInEnclosingModule;end + class ClassInEnclosingModule;end + def method_in_enclosing_module;end + CONSTANT_IN_ENCLOSING_MODULE = 0 + + describe "Examples trying to access constants defined in an enclosing module" do + + it "can access Modules" do + ModuleInEnclosingModule + end + it "can access Classes" do + ClassInEnclosingModule.new + end + it "can access CONSTANTS" do + CONSTANT_IN_ENCLOSING_MODULE + end + it "can NOT access methods" do + lambda {method_in_enclosing_module}.should raise_error(/undefined/) + end + + describe "from a nested example group" do + + it "can access Modules" do + ModuleInEnclosingModule + end + it "can access Classes" do + ClassInEnclosingModule.new + end + it "can access CONSTANTS" do + CONSTANT_IN_ENCLOSING_MODULE + end + it "can NOT access methods" do + lambda {method_in_enclosing_module}.should raise_error(/undefined/) + end + + end + + end + + describe "Examples trying to access constants defined in the example group" do + + module ModuleDefinedInGroup;end + class ClassDefinedInGroup; end + def method_defined_in_group; end + CONSTANT_DEFINED_IN_GROUP = 0 + + it "can access Modules" do + ModuleDefinedInGroup + end + it "can access Classes" do + ClassDefinedInGroup.new + end + it "can access CONSTANTS" do + CONSTANT_DEFINED_IN_GROUP + end + it "can access methods" do + method_defined_in_group + end + + describe "that live inside a nested group" do + it "can access Modules" do + ModuleDefinedInGroup + end + it "can access Classes" do + ClassDefinedInGroup.new + end + it "can access CONSTANTS" do + CONSTANT_DEFINED_IN_GROUP + end + it "can access methods" do + method_defined_in_group + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/features/before_and_after_blocks/before_and_after_blocks.feature b/presidents/vendor/gems/rspec-1.2.9/features/before_and_after_blocks/before_and_after_blocks.feature new file mode 100644 index 0000000..c1446bb --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/features/before_and_after_blocks/before_and_after_blocks.feature @@ -0,0 +1,167 @@ +Feature: before and after blocks + + As a developer using RSpec + I want to execute arbitrary code before and after each example + So that I can control the environment in which it is run + + This is supported by the before and after methods which each take a symbol + indicating the scope, and a block of code to execute. + + before(:each) blocks are run before each example + before(:all) blocks are run once before all of the examples in a group + before(:suite) blocks are run once before the entire suite + + after(:each) blocks are run after each example + after(:all) blocks are run once after all of the examples in a group + after(:suite) blocks are run once after the entire suite + + Before and after blocks are called in the following order: + before suite + before all + before each + after each + after all + after suite + + Before and after blocks can be defined in the example groups to which they + apply or in a configuration. When defined in a configuration, they can be + applied to all groups or subsets of all groups defined by example group + types. + + Scenario: define before(:each) block in example group + Given a file named "before_each_in_example_group_spec.rb" with: + """ + class Thing + def widgets + @widgets ||= [] + end + end + + describe Thing do + before(:each) do + @thing = Thing.new + end + + context "initialized in before(:each)" do + it "has 0 widgets" do + @thing.should have(0).widgets + end + + it "can get accept new widgets" do + @thing.widgets << Object.new + end + + it "does not share state across examples" do + @thing.should have(0).widgets + end + end + end + """ + When I run "spec before_each_in_example_group_spec.rb" + Then the stdout should include "3 examples, 0 failures" + + Scenario: define before(:all) block in example group + Given a file named "before_all_in_example_group_spec.rb" with: + """ + class Thing + def widgets + @widgets ||= [] + end + end + + describe Thing do + before(:all) do + @thing = Thing.new + end + + context "initialized in before(:all)" do + it "has 0 widgets" do + @thing.should have(0).widgets + end + + it "can get accept new widgets" do + @thing.widgets << Object.new + end + + it "shares state across examples" do + @thing.should have(1).widgets + end + end + end + """ + When I run "spec before_all_in_example_group_spec.rb" + Then the stdout should include "3 examples, 0 failures" + + Scenario: define before and after blocks in configuration + Given a file named "befores_in_configuration_spec.rb" with: + """ + Spec::Runner.configure do |config| + config.before(:suite) do + $before_suite = "before suite" + end + config.before(:each) do + @before_each = "before each" + end + config.before(:all) do + @before_all = "before all" + end + end + + describe "stuff in before blocks" do + describe "with :suite" do + it "should be available in the example" do + $before_suite.should == "before suite" + end + end + describe "with :all" do + it "should be available in the example" do + @before_all.should == "before all" + end + end + describe "with :each" do + it "should be available in the example" do + @before_each.should == "before each" + end + end + end + """ + When I run "spec befores_in_configuration_spec.rb" + Then the stdout should include "3 examples, 0 failures" + + Scenario: before/after blocks are run in order + Given a file named "ensure_block_order_spec.rb" with: + """ + Spec::Runner.configure do |config| + config.before(:suite) do + puts "before suite" + end + config.after(:suite) do + puts "after suite" + end + end + + describe "before and after callbacks" do + before(:all) do + puts "before all" + end + + before(:each) do + puts "before each" + end + + after(:each) do + puts "after each" + end + + after(:all) do + puts "after all" + end + + it "gets run in order" do + + end + end + """ + When I run "spec ensure_block_order_spec.rb" + Then the stdout should include /before suite\nbefore all\nbefore each\nafter each\n\.after all\n.*after suite/m + diff --git a/presidents/vendor/gems/rspec-1.2.9/features/command_line/line_number_option.feature b/presidents/vendor/gems/rspec-1.2.9/features/command_line/line_number_option.feature new file mode 100644 index 0000000..7fc6fc5 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/features/command_line/line_number_option.feature @@ -0,0 +1,56 @@ +Feature: Spec and test together + + As an RSpec user + I want to run one example identified by the line number + + Background: + Given a file named "example.rb" with: + """ + describe "a group" do + + it "has a first example" do + + end + + it "has a second example" do + + end + + end + """ + + Scenario: two examples - first example on declaration line + When I run "spec example.rb:3 --format nested" + Then the stdout should include "1 example, 0 failures" + And the stdout should include "has a first example" + But the stdout should not match "has a second example" + + Scenario: two examples - first example from line inside declaration + When I run "spec example.rb:4 --format nested" + Then the stdout should include "1 example, 0 failures" + And the stdout should include "has a first example" + But the stdout should not match "has a second example" + + Scenario: two examples - first example from line below declaration + When I run "spec example.rb:6 --format nested" + Then the stdout should include "1 example, 0 failures" + And the stdout should include "has a first example" + But the stdout should not match "has a second example" + + Scenario: two examples - second example from line below declaration + When I run "spec example.rb:7 --format nested" + Then the stdout should include "1 example, 0 failures" + And the stdout should include "has a second example" + But the stdout should not match "has a first example" + + Scenario: two examples - both examples from the group declaration + When I run "spec example.rb:1 --format nested" + Then the stdout should include "2 examples, 0 failures" + And the stdout should include "has a second example" + And the stdout should include "has a first example" + + Scenario: two examples - both examples from above the first example declaration + When I run "spec example.rb:2 --format nested" + Then the stdout should include "2 examples, 0 failures" + And the stdout should include "has a second example" + And the stdout should include "has a first example" diff --git a/presidents/vendor/gems/rspec-1.2.9/features/command_line/line_number_option_with_example_with_no_name.feature b/presidents/vendor/gems/rspec-1.2.9/features/command_line/line_number_option_with_example_with_no_name.feature new file mode 100644 index 0000000..244db51 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/features/command_line/line_number_option_with_example_with_no_name.feature @@ -0,0 +1,22 @@ +Feature: Spec and test together + + As an RSpec user + I want to run one example identified by the line number + + Background: + Given a file named "example.rb" with: + """ + describe 9 do + + it { should be > 8 } + + it { should be < 10 } + + end + """ + + Scenario: two examples - first example on declaration line + When I run "spec example.rb:3 --format nested" + Then the stdout should include "1 example, 0 failures" + Then the stdout should include "should be > 8" + But the stdout should not match "should be < 10" diff --git a/presidents/vendor/gems/rspec-1.2.9/features/example_groups/define_example_attribute.feature b/presidents/vendor/gems/rspec-1.2.9/features/example_groups/define_example_attribute.feature new file mode 100644 index 0000000..9fc72ac --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/features/example_groups/define_example_attribute.feature @@ -0,0 +1,41 @@ +Feature: Define example attribute + + In order to streamline process + As an RSpec user + I want to easily define helper methods that act as a variable assignment + + It is fairly common to start with a local variable in one example, use the same + local variable in the next, and then extract the declaration of that variable + to before(:each). This requires converting the locals to instance variables. + + This feature streamlines the process by defining a helper method so you can extract + the duplication without having to change other references to the same variables + to @instance_variables. + + Scenario: + Given a file named "counter_spec.rb" with: + """ + require 'spec/autorun' + + class Counter + def initialize + @count = 0 + end + def count + @count += 1 + end + end + + describe Counter do + let(:counter) { Counter.new } + it "returns 1 the first time" do + counter.count.should == 1 + end + it "returns 2 the second time because the counter itself is cached by the 'assign' method" do + counter.count + counter.count.should == 2 + end + end + """ + When I run "spec counter_spec.rb" + Then the stdout should include "2 examples, 0 failures" diff --git a/presidents/vendor/gems/rspec-1.2.9/features/example_groups/example_group_with_should_methods.feature b/presidents/vendor/gems/rspec-1.2.9/features/example_groups/example_group_with_should_methods.feature new file mode 100644 index 0000000..b5f76bf --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/features/example_groups/example_group_with_should_methods.feature @@ -0,0 +1,29 @@ +Feature: Spec::ExampleGroup with should methods + + As an RSpec adopter accustomed to classes and methods + I want to use should_* methods in an ExampleGroup + So that I use RSpec with classes and methods that look more like RSpec examples + + Scenario Outline: Example Group class with should methods + Given a file named "example_group_with_should_methods.rb" with: + """ + require 'spec/autorun' + + class MySpec < Spec::ExampleGroup + def should_pass_with_should + 1.should == 1 + end + + def should_fail_with_should + 1.should == 2 + end + end + """ + When I run " example_group_with_should_methods.rb" + Then the exit code should be 256 + And the stdout should include "2 examples, 1 failure" + + Scenarios: Run with ruby and spec + | Command | + | ruby | + | spec | diff --git a/presidents/vendor/gems/rspec-1.2.9/features/example_groups/implicit_docstrings.feature b/presidents/vendor/gems/rspec-1.2.9/features/example_groups/implicit_docstrings.feature new file mode 100644 index 0000000..b83a347 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/features/example_groups/implicit_docstrings.feature @@ -0,0 +1,59 @@ +Feature: implicit docstrings + + As an RSpec user + I want examples to generate their own names + So that I can reduce duplication between example names and example code + + Scenario Outline: run passing examples + Given a file named "implicit_docstrings_example.rb" with: + """ + require 'spec/autorun' + describe "Examples with no docstrings generate their own:" do + + specify { 3.should be < 5 } + + specify { ["a"].should include("a") } + + specify { [1,2,3].should respond_to(:size) } + + end + """ + + When I run " implicit_docstrings_example.rb -fs" + + Then the stdout should include /should be < 5/ + And the stdout should include /should include "a"/ + And the stdout should include /should respond to #size/ + + Scenarios: Run with ruby and spec + | Command | + | ruby | + | spec | + + Scenario Outline: run failing examples + Given a file named "failing_implicit_docstrings_example.rb" with: + """ + require 'spec/autorun' + describe "Failing examples with no descriptions" do + + # description is auto-generated as "should equal(5)" based on the last #should + it do + 3.should equal(2) + 5.should equal(5) + end + + it { 3.should be > 5 } + + it { ["a"].should include("b") } + + it { [1,2,3].should_not respond_to(:size) } + + end + """ + + When I run " failing_implicit_docstrings_example.rb -fs" + + Then the stdout should include /should equal 2/ + And the stdout should include /should be > 5/ + And the stdout should include /should include "b"/ + And the stdout should include /should not respond to #size/ diff --git a/presidents/vendor/gems/rspec-1.2.9/features/example_groups/nested_groups.feature b/presidents/vendor/gems/rspec-1.2.9/features/example_groups/nested_groups.feature new file mode 100644 index 0000000..6d8c7aa --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/features/example_groups/nested_groups.feature @@ -0,0 +1,32 @@ +Feature: Nested example groups + + As an RSpec user + I want to nest examples groups + So that I can better organize my examples + + Scenario Outline: Nested example groups + Given a file named "nested_example_groups.rb" with: + """ + require 'spec/autorun' + + describe "Some Object" do + describe "with some more context" do + it "should do this" do + true.should be_true + end + end + describe "with some other context" do + it "should do that" do + false.should be_false + end + end + end + """ + When I run " nested_example_groups.rb -fs" + Then the stdout should include /Some Object with some more context/ + And the stdout should include /Some Object with some other context/ + + Scenarios: Run with ruby and spec + | Command | + | ruby | + | spec | diff --git a/presidents/vendor/gems/rspec-1.2.9/features/expectations/customized_message.feature b/presidents/vendor/gems/rspec-1.2.9/features/expectations/customized_message.feature new file mode 100644 index 0000000..c19490c --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/features/expectations/customized_message.feature @@ -0,0 +1,54 @@ +Feature: customized message + + In order to get the feedback I want + As an RSpec user + I want to customize the failure message per example + + Scenario: one additional method + Given a file named "node_spec.rb.rb" with: + """ + class Node + def initialize(state=:waiting) + @state = state + end + def state + @state + end + def waiting? + @state == :waiting + end + def started? + @state == :started + end + def start + @state = :started + end + end + + describe "a new Node" do + it "should be waiting" do + node = Node.new(:started) #start w/ started to trigger failure + node.should be_waiting, "node.state: #{node.state} (first example)" + end + + it "should not be started" do + node = Node.new(:started) #start w/ started to trigger failure + node.should_not be_started, "node.state: #{node.state} (second example)" + end + end + + describe "node.start" do + it "should change the state" do + node = Node.new(:started) #start w/ started to trigger failure + lambda {node.start}.should change{node.state}, "expected a change" + end + end + + """ + When I run "spec node_spec.rb.rb --format specdoc" + Then the stdout should include "3 examples, 3 failures" + And the stdout should not match "to return true, got false" + And the stdout should not match "to return false, got true" + And the stdout should include "node.state: started (first example)" + And the stdout should include "node.state: started (second example)" + And the stdout should include "expected a change" diff --git a/presidents/vendor/gems/rspec-1.2.9/features/expectations/expect_change.feature b/presidents/vendor/gems/rspec-1.2.9/features/expectations/expect_change.feature new file mode 100644 index 0000000..f644b52 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/features/expectations/expect_change.feature @@ -0,0 +1,65 @@ +Feature: expect change + + Expect some code (wrapped in a proc) to change the state of some object. + + Scenario: expecting change + Given a file named "expect_change.rb" with: + """ + class Counter + class << self + def increment + @count ||= 0 + @count += 1 + end + + def count + @count ||= 0 + end + end + end + + describe Counter, "#increment" do + it "should increment the count" do + expect{Counter.increment}.to change{Counter.count}.from(0).to(1) + end + + # deliberate failure + it "should increment the count by 2" do + expect{Counter.increment}.to change{Counter.count}.by(2) + end + end + """ + When I run "spec expect_change.rb" + Then the stdout should include "2 examples, 1 failure" + Then the stdout should include "should have been changed by 2, but was changed by 1" + + Scenario: expecting no change + Given a file named "expect_no_change.rb" with: + """ + class Counter + class << self + def increment + @count ||= 0 + @count += 1 + end + + def count + @count ||= 0 + end + end + end + + describe Counter, "#increment" do + it "should not increment the count by 2" do + expect{Counter.increment}.to_not change{Counter.count}.from(0).to(2) + end + + # deliberate failure + it "should not increment the count by 1" do + expect{Counter.increment}.to_not change{Counter.count}.by(1) + end + end + """ + When I run "spec expect_no_change.rb" + Then the stdout should include "2 examples, 1 failure" + Then the stdout should include "should not have changed, but did change from 1 to 2" diff --git a/presidents/vendor/gems/rspec-1.2.9/features/expectations/expect_error.feature b/presidents/vendor/gems/rspec-1.2.9/features/expectations/expect_error.feature new file mode 100644 index 0000000..7c48e7c --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/features/expectations/expect_error.feature @@ -0,0 +1,44 @@ +Feature: expect error + + Expect a proc to change the state of some object. + + Scenario: expect error + Given a file named "expect_error.rb" with: + """ + describe Object, "#non_existent_message" do + it "should raise" do + expect{Object.non_existent_message}.to raise_error(NameError) + end + end + + #deliberate failure + describe Object, "#public_instance_methods" do + it "should raise" do + expect{Object.public_instance_methods}.to raise_error(NameError) + end + end + """ + When I run "spec expect_error.rb" + Then the stdout should include "2 examples, 1 failure" + Then the stdout should include "expected NameError but nothing was raised" + + Scenario: expect no error + Given a file named "expect_no_error.rb" with: + """ + describe Object, "#public_instance_methods" do + it "should not raise" do + expect{Object.public_instance_methods}.to_not raise_error(NameError) + end + end + + #deliberate failure + describe Object, "#non_existent_message" do + it "should not raise" do + expect{Object.non_existent_message}.to_not raise_error(NameError) + end + end + """ + When I run "spec expect_no_error.rb" + Then the stdout should include "2 examples, 1 failure" + Then the stdout should include "undefined method `non_existent_message'" + diff --git a/presidents/vendor/gems/rspec-1.2.9/features/extensions/custom_example_group.feature b/presidents/vendor/gems/rspec-1.2.9/features/extensions/custom_example_group.feature new file mode 100644 index 0000000..70974db --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/features/extensions/custom_example_group.feature @@ -0,0 +1,19 @@ +Feature: custom example group + + Scenario: simple custom example group + Given a file named "custom_example_group_spec.rb" with: + """ + class CustomGroup < Spec::ExampleGroup + end + + Spec::Example::ExampleGroupFactory.default(CustomGroup) + + describe "a custom group set as the default" do + it "becomes the default base class for example groups" do + CustomGroup.should === self + end + end + """ + When I run "spec custom_example_group_spec.rb" + Then the stdout should include "1 example, 0 failures" + diff --git a/presidents/vendor/gems/rspec-1.2.9/features/formatters/custom_formatter.feature b/presidents/vendor/gems/rspec-1.2.9/features/formatters/custom_formatter.feature new file mode 100644 index 0000000..191ac36 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/features/formatters/custom_formatter.feature @@ -0,0 +1,30 @@ +Feature: custom formatters + + In order to format output/reporting to my particular needs + As an RSpec user + I want to create my own custom output formatters + + Scenario: specdoc format + Given a file named "custom_formatter.rb" with: + """ + require 'spec/runner/formatter/base_formatter' + class CustomFormatter < Spec::Runner::Formatter::BaseFormatter + def initialize(options, output) + @output = output + end + def example_started(proxy) + @output << "example: " << proxy.description + end + end + """ + And a file named "simple_example_spec.rb" with: + """ + describe "my group" do + specify "my example" do + end + end + """ + + When I run "spec simple_example_spec.rb --require custom_formatter.rb --format CustomFormatter" + Then the exit code should be 0 + And the stdout should include "example: my example" diff --git a/presidents/vendor/gems/rspec-1.2.9/features/interop/examples_and_tests_together.feature b/presidents/vendor/gems/rspec-1.2.9/features/interop/examples_and_tests_together.feature new file mode 100644 index 0000000..dda11af --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/features/interop/examples_and_tests_together.feature @@ -0,0 +1,84 @@ +Feature: Spec and test together + + As an RSpec adopter with existing Test::Unit tests + I want to run a few specs alongside my existing Test::Unit tests + So that I can experience a smooth, gradual migration path + + Scenario Outline: Run specs and tests together + Given a file named "spec_and_test_together.rb" with: + """ + require 'spec/autorun' + require 'spec/test/unit' + + describe "An Example" do + it "should pass with assert" do + assert true + end + + it "should fail with assert" do + assert false + end + + it "should pass with should" do + 1.should == 1 + end + + it "should fail with should" do + 1.should == 2 + end + end + + class ATest < Test::Unit::TestCase + def test_should_pass_with_assert + assert true + end + + def test_should_fail_with_assert + assert false + end + + def test_should_pass_with_should + 1.should == 1 + end + + def test_should_fail_with_should + 1.should == 2 + end + + def setup + @from_setup ||= 3 + @from_setup += 1 + end + + def test_should_fail_with_setup_method_variable + @from_setup.should == 40 + end + + before do + @from_before = @from_setup + 1 + end + + def test_should_fail_with_before_block_variable + @from_before.should == 50 + end + + define_method :"test: should run with strange name" do + assert true + end + end + """ + + When I run " spec_and_test_together.rb -fs" + + Then the exit code should be 256 + And the stdout should include "ATest" + And the stdout should include "Test::Unit::AssertionFailedError in 'An Example should fail with assert'" + And the stdout should include "'An Example should fail with should' FAILED" + And the stdout should include "11 examples, 6 failures" + And the stdout should include /expected: 40,\s*got: 4/m + And the stdout should include /expected: 50,\s*got: 5/m + + Scenarios: run with ruby and spec + | Command | + | ruby | + | spec | diff --git a/presidents/vendor/gems/rspec-1.2.9/features/interop/rspec_output.feature b/presidents/vendor/gems/rspec-1.2.9/features/interop/rspec_output.feature new file mode 100644 index 0000000..3a34d21 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/features/interop/rspec_output.feature @@ -0,0 +1,25 @@ +Feature: spec output + + When running in interop mode with test/unit, RSpec will output + the RSpec summary, but not the test/unit summary. + + Scenario Outline: Interop mode with test/unit + Given a file named "simple_spec.rb" with: + """ + require 'spec/autorun' + + describe "Running an Example" do + it "should not output twice" do + true.should be_true + end + end + """ + When I run " simple_spec.rb" + Then the exit code should be 0 + And the stdout should not match /\d+ tests, \d+ assertions, \d+ failures, \d+ errors/m + And the stdout should include "1 example, 0 failures" + + Scenarios: Run with ruby and CommandLine object + | Command | + | ruby | + | cmdline.rb | diff --git a/presidents/vendor/gems/rspec-1.2.9/features/interop/test_but_not_test_unit.feature b/presidents/vendor/gems/rspec-1.2.9/features/interop/test_but_not_test_unit.feature new file mode 100644 index 0000000..a14b9c5 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/features/interop/test_but_not_test_unit.feature @@ -0,0 +1,26 @@ +Story: Test is defined, but not Test::Unit + + As an RSpec user who has my own library named Test (but not Test::Unit) + I want to run examples without getting Test::Unit NameErrors + + Scenario Outline: Spec including Test const but not Test::Unit + Given a file named "spec_including_test_but_not_unit.rb" with: + """ + require 'spec/autorun' + + module Test + end + + describe "description" do + it "should description" do + 1.should == 1 + end + end + """ + When I run " spec_including_test_but_not_unit.rb" + Then the stderr should not match "Test::Unit" + + Scenarios: Run with ruby and spec + | Command | + | ruby | + | spec | diff --git a/presidents/vendor/gems/rspec-1.2.9/features/interop/test_case_with_should_methods.feature b/presidents/vendor/gems/rspec-1.2.9/features/interop/test_case_with_should_methods.feature new file mode 100644 index 0000000..07091a0 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/features/interop/test_case_with_should_methods.feature @@ -0,0 +1,46 @@ +Story: Test::Unit::TestCase extended by rspec with should methods + + As an RSpec adopter with existing Test::Unit tests + I want to use should_* methods in a Test::Unit::TestCase + So that I use RSpec with classes and methods that look more like RSpec examples + + Scenario Outline: TestCase with should methods + Given a file named "test_case_with_should_methods.rb" with: + """ + require 'spec/autorun' + require 'spec/test/unit' + + class MyTest < Test::Unit::TestCase + def should_pass_with_should + 1.should == 1 + end + + def should_fail_with_should + 1.should == 2 + end + + def should_pass_with_assert + assert true + end + + def should_fail_with_assert + assert false + end + + def test + raise "This is not a real test" + end + + def test_ify + raise "This is a real test" + end + end + """ + When I run " test_case_with_should_methods.rb" + Then the exit code should be 256 + And the stdout should include "5 examples, 3 failures" + + Scenarios: Run with ruby and spec + | Command | + | ruby | + | spec | diff --git a/presidents/vendor/gems/rspec-1.2.9/features/load_paths/add_lib_to_load_path.feature b/presidents/vendor/gems/rspec-1.2.9/features/load_paths/add_lib_to_load_path.feature new file mode 100644 index 0000000..81513ec --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/features/load_paths/add_lib_to_load_path.feature @@ -0,0 +1,20 @@ +Feature: add ./lib to load path + In order to ... + As a spec author + I want rspec to add ./lib to the load path + + Scenario: spec helper + Given a directory named "spec" + And a file named "example.rb" with: + """ + describe $LOAD_PATH do + it "begins with 'lib' in the current directory in the load path" do + libdir = File.expand_path(File.join(File.dirname(__FILE__), 'lib')) + $LOAD_PATH.should include(libdir) + end + end + """ + When I run "spec example.rb" + Then the stdout should include "1 example, 0 failures" + And the exit code should be 0 + diff --git a/presidents/vendor/gems/rspec-1.2.9/features/load_paths/add_spec_to_load_path.feature b/presidents/vendor/gems/rspec-1.2.9/features/load_paths/add_spec_to_load_path.feature new file mode 100644 index 0000000..b216ebe --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/features/load_paths/add_spec_to_load_path.feature @@ -0,0 +1,20 @@ +Feature: add 'spec' to load path + In order to ... + As a spec author + I want rspec to add 'spec to the load path + + Scenario: add 'spec' to load path + Given a directory named "spec" + And a file named "example.rb" with: + """ + describe $LOAD_PATH do + it "includes with 'spec' in the current directory in the load path" do + specdir = File.expand_path(File.join(File.dirname(__FILE__), 'spec')) + $LOAD_PATH.should include(specdir) + end + end + """ + When I run "spec example.rb" + Then the stdout should include "1 example, 0 failures" + And the exit code should be 0 + diff --git a/presidents/vendor/gems/rspec-1.2.9/features/matchers/define_diffable_matcher.feature b/presidents/vendor/gems/rspec-1.2.9/features/matchers/define_diffable_matcher.feature new file mode 100644 index 0000000..8715641 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/features/matchers/define_diffable_matcher.feature @@ -0,0 +1,26 @@ +Feature: define diffable matcher + + When a matcher is defined as diffable, and the --diff + flag is set, the output will include a diff of the submitted + objects. + + Scenario: define a diffable matcher + Given a file named "diffable_matcher_spec.rb" with: + """ + Spec::Matchers.define :be_just_like do |expected| + match do |actual| + actual == expected + end + + diffable + end + + describe "this" do + it {should be_just_like("that")} + end + """ + When I run "spec diffable_matcher_spec.rb --diff" + Then the exit code should be 256 + + And the stdout should include "should be just like \"that\"" + And the stdout should include "Diff:\n@@ -1,2 +1,2 @@\n-that\n+this" diff --git a/presidents/vendor/gems/rspec-1.2.9/features/matchers/define_matcher.feature b/presidents/vendor/gems/rspec-1.2.9/features/matchers/define_matcher.feature new file mode 100644 index 0000000..79edae7 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/features/matchers/define_matcher.feature @@ -0,0 +1,179 @@ +Feature: define matcher + + In order to express my domain clearly in my code examples + As an RSpec user + I want a shortcut to define custom matchers + + Scenario: define a matcher with default messages + Given a file named "matcher_with_default_message_spec.rb" with: + """ + Spec::Matchers.define :be_a_multiple_of do |expected| + match do |actual| + actual % expected == 0 + end + end + + describe 9 do + it {should be_a_multiple_of(3)} + end + + describe 9 do + it {should_not be_a_multiple_of(4)} + end + + # fail intentionally to generate expected output + describe 9 do + it {should be_a_multiple_of(4)} + end + + # fail intentionally to generate expected output + describe 9 do + it {should_not be_a_multiple_of(3)} + end + + """ + When I run "spec matcher_with_default_message_spec.rb --format specdoc" + Then the exit code should be 256 + + And the stdout should include "should be a multiple of 3" + And the stdout should include "should not be a multiple of 4" + And the stdout should include "should be a multiple of 4 (FAILED - 1)" + And the stdout should include "should not be a multiple of 3 (FAILED - 2)" + + And the stdout should include "4 examples, 2 failures" + And the stdout should include "expected 9 to be a multiple of 4" + And the stdout should include "expected 9 not to be a multiple of 3" + + Scenario: overriding the failure_message_for_should + Given a file named "matcher_with_failure_message_spec.rb" with: + """ + Spec::Matchers.define :be_a_multiple_of do |expected| + match do |actual| + actual % expected == 0 + end + failure_message_for_should do |actual| + "expected that #{actual} would be a multiple of #{expected}" + end + end + + # fail intentionally to generate expected output + describe 9 do + it {should be_a_multiple_of(4)} + end + """ + When I run "spec matcher_with_failure_message_spec.rb" + Then the exit code should be 256 + And the stdout should include "1 example, 1 failure" + And the stdout should include "expected that 9 would be a multiple of 4" + + Scenario: overriding the failure_message_for_should_not + Given a file named "matcher_with_failure_for_message_spec.rb" with: + """ + Spec::Matchers.define :be_a_multiple_of do |expected| + match do |actual| + actual % expected == 0 + end + failure_message_for_should_not do |actual| + "expected that #{actual} would not be a multiple of #{expected}" + end + end + + # fail intentionally to generate expected output + describe 9 do + it {should_not be_a_multiple_of(3)} + end + """ + When I run "spec matcher_with_failure_for_message_spec.rb" + Then the exit code should be 256 + And the stdout should include "1 example, 1 failure" + And the stdout should include "expected that 9 would not be a multiple of 3" + + Scenario: overriding the description + Given a file named "matcher_overriding_description_spec.rb" with: + """ + Spec::Matchers.define :be_a_multiple_of do |expected| + match do |actual| + actual % expected == 0 + end + description do + "be multiple of #{expected}" + end + end + + describe 9 do + it {should be_a_multiple_of(3)} + end + + describe 9 do + it {should_not be_a_multiple_of(4)} + end + """ + When I run "spec matcher_overriding_description_spec.rb --format specdoc" + Then the exit code should be 0 + And the stdout should include "2 examples, 0 failures" + And the stdout should include "should be multiple of 3" + And the stdout should include "should not be multiple of 4" + + Scenario: with no args + Given a file named "matcher_with_no_args_spec.rb" with: + """ + Spec::Matchers.define :have_7_fingers do + match do |thing| + thing.fingers.length == 7 + end + end + + class Thing + def fingers; (1..7).collect {"finger"}; end + end + + describe Thing do + it {should have_7_fingers} + end + """ + When I run "spec matcher_with_no_args_spec.rb --format specdoc" + Then the exit code should be 0 + And the stdout should include "1 example, 0 failures" + And the stdout should include "should have 7 fingers" + + Scenario: with multiple args + Given a file named "matcher_with_multiple_args_spec.rb" with: + """ + Spec::Matchers.define :be_the_sum_of do |a,b,c,d| + match do |sum| + a + b + c + d == sum + end + end + + describe 10 do + it {should be_the_sum_of(1,2,3,4)} + end + """ + When I run "spec matcher_with_multiple_args_spec.rb --format specdoc" + Then the exit code should be 0 + And the stdout should include "1 example, 0 failures" + And the stdout should include "should be the sum of 1, 2, 3, and 4" + + Scenario: with helper methods + Given a file named "matcher_with_internal_helper_spec.rb" with: + """ + Spec::Matchers.define :have_same_elements_as do |sample| + match do |actual| + similar?(sample, actual) + end + + def similar?(a, b) + a.sort == b.sort + end + end + + describe "these two arrays" do + specify "should be similar" do + [1,2,3].should have_same_elements_as([2,3,1]) + end + end + """ + When I run "spec matcher_with_internal_helper_spec.rb" + Then the exit code should be 0 + And the stdout should include "1 example, 0 failures" + diff --git a/presidents/vendor/gems/rspec-1.2.9/features/matchers/define_matcher_outside_rspec.feature b/presidents/vendor/gems/rspec-1.2.9/features/matchers/define_matcher_outside_rspec.feature new file mode 100644 index 0000000..5e7d705 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/features/matchers/define_matcher_outside_rspec.feature @@ -0,0 +1,38 @@ +Feature: define matcher outside rspec + + In order to express my domain clearly in my code examples + As a non-rspec user + I want a shortcut to define custom matchers + + Scenario: define a matcher with default messages + Given a file named "test_multiples.rb" with: + """ + require 'test/unit' + require 'spec/expectations' + + Spec::Matchers.define :be_a_multiple_of do |expected| + match do |actual| + actual % expected == 0 + end + end + + class Test::Unit::TestCase + include Spec::Matchers + end + + class TestMultiples < Test::Unit::TestCase + + def test_9_should_be_a_multiple_of_3 + 9.should be_a_multiple_of(3) + end + + def test_9_should_be_a_multiple_of_4 + 9.should be_a_multiple_of(4) + end + + end + """ + When I run "ruby test_multiples.rb" + Then the exit code should be 256 + And the stdout should include "expected 9 to be a multiple of 4" + And the stdout should include "2 tests, 0 assertions, 1 failures, 0 errors" diff --git a/presidents/vendor/gems/rspec-1.2.9/features/matchers/define_matcher_with_fluent_interface.feature b/presidents/vendor/gems/rspec-1.2.9/features/matchers/define_matcher_with_fluent_interface.feature new file mode 100644 index 0000000..01845b2 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/features/matchers/define_matcher_with_fluent_interface.feature @@ -0,0 +1,27 @@ +Feature: define matcher + + In order to express my domain clearly in my code examples + As an RSpec user + I want to define matchers with fluent interfaces + + Scenario: one additional method + Given a file named "between_spec.rb" with: + """ + Spec::Matchers.define :be_bigger_than do |first| + def but_smaller_than(second) + @second = second + self + end + + match do |actual| + (actual > first) && (actual < @second) + end + end + + describe 5 do + it { should be_bigger_than(4).but_smaller_than(6) } + end + """ + When I run "spec between_spec.rb --format specdoc" + Then the stdout should include "1 example, 0 failures" + And the stdout should include "should be bigger than 4" diff --git a/presidents/vendor/gems/rspec-1.2.9/features/matchers/define_wrapped_matcher.feature b/presidents/vendor/gems/rspec-1.2.9/features/matchers/define_wrapped_matcher.feature new file mode 100644 index 0000000..d19808b --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/features/matchers/define_wrapped_matcher.feature @@ -0,0 +1,29 @@ +Feature: define wrapped matcher + + In order to reuse existing matchers + As an RSpec user + I want to define matchers that wrap other matchers + + Scenario: one additional method + Given a file named "new_model_spec.rb" with: + """ + Spec::Matchers.define :have_tag do |tag| + match do |markup| + markup =~ /<#{tag}>.*<\/#{tag}>/ + end + end + + Spec::Matchers.define :have_button do + match do |markup| + markup.should have_tag('button') + end + end + + describe "some markup" do + it "has a button" do + "".should have_button + end + end + """ + When I run "spec new_model_spec.rb --format specdoc" + Then the stdout should include "1 example, 0 failures" diff --git a/presidents/vendor/gems/rspec-1.2.9/features/mock_framework_integration/use_flexmock.feature b/presidents/vendor/gems/rspec-1.2.9/features/mock_framework_integration/use_flexmock.feature new file mode 100644 index 0000000..0a204df --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/features/mock_framework_integration/use_flexmock.feature @@ -0,0 +1,27 @@ +Feature: mock with flexmock + + As an RSpec user who prefers flexmock + I want to be able to use flexmock without rspec mocks interfering + + Scenario: Mock with flexmock + Given a file named "flexmock_example_spec.rb" with: + """ + Spec::Runner.configure do |config| + config.mock_with :flexmock + end + + describe "plugging in flexmock" do + it "allows flexmock to be used" do + target = Object.new + flexmock(target).should_receive(:foo).once + target.foo + end + + it "does not include rspec mocks" do + Spec.const_defined?(:Mocks).should be_false + end + end + """ + When I run "spec flexmock_example_spec.rb" + Then the exit code should be 0 + And the stdout should include "2 examples, 0 failures" diff --git a/presidents/vendor/gems/rspec-1.2.9/features/mock_framework_integration/use_mocha.feature b/presidents/vendor/gems/rspec-1.2.9/features/mock_framework_integration/use_mocha.feature new file mode 100644 index 0000000..d53b967 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/features/mock_framework_integration/use_mocha.feature @@ -0,0 +1,27 @@ +Feature: mock with mocha + + As an RSpec user who prefers mocha + I want to be able to use mocha without rspec mocks interfering + + Scenario: Mock with mocha + Given a file named "mocha_example_spec.rb" with: + """ + Spec::Runner.configure do |config| + config.mock_with :mocha + end + + describe "plugging in mocha" do + it "allows mocha to be used" do + target = Object.new + target.expects(:foo).once + target.foo + end + + it "does not include rspec mocks" do + Spec.const_defined?(:Mocks).should be_false + end + end + """ + When I run "spec mocha_example_spec.rb" + Then the exit code should be 0 + And the stdout should include "2 examples, 0 failures" diff --git a/presidents/vendor/gems/rspec-1.2.9/features/mock_framework_integration/use_rr.feature b/presidents/vendor/gems/rspec-1.2.9/features/mock_framework_integration/use_rr.feature new file mode 100644 index 0000000..aa30882 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/features/mock_framework_integration/use_rr.feature @@ -0,0 +1,27 @@ +Feature: mock with rr + + As an RSpec user who prefers rr + I want to be able to use rr without rspec mocks interfering + + Scenario: Mock with rr + Given a file named "rr_example_spec.rb" with: + """ + Spec::Runner.configure do |config| + config.mock_with :rr + end + + describe "plugging in rr" do + it "allows rr to be used" do + target = Object.new + mock(target).foo + target.foo + end + + it "does not include rspec mocks" do + Spec.const_defined?(:Mocks).should be_false + end + end + """ + When I run "spec rr_example_spec.rb" + Then the exit code should be 0 + And the stdout should include "2 examples, 0 failures" diff --git a/presidents/vendor/gems/rspec-1.2.9/features/mocks/mix_stubs_and_mocks.feature b/presidents/vendor/gems/rspec-1.2.9/features/mocks/mix_stubs_and_mocks.feature new file mode 100644 index 0000000..deaf84e --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/features/mocks/mix_stubs_and_mocks.feature @@ -0,0 +1,22 @@ +Feature: stub and mock together + + As an RSpec user + I want to use stubs and mocks together + + Scenario: stub in before + Given a file named "stub_and_mocks_spec.rb" with: + """ + describe "a stub in before" do + before(:each) do + @messenger = mock('messenger').as_null_object + end + + it "a" do + @messenger.should_receive(:foo).with('first') + @messenger.foo('second') + @messenger.foo('third') + end + end + """ + When I run "spec stub_and_mocks_spec.rb --format nested" + Then the stdout should include "received :foo with unexpected arguments\n expected: (\"first\")\n got: ([\"second\"], [\"third\"])" diff --git a/presidents/vendor/gems/rspec-1.2.9/features/mocks/stub_implementation.feature b/presidents/vendor/gems/rspec-1.2.9/features/mocks/stub_implementation.feature new file mode 100644 index 0000000..269de47 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/features/mocks/stub_implementation.feature @@ -0,0 +1,26 @@ +Feature: stub implementation + + As an rspec user, I want to stub a complete implementation, not just a + return value. + + Scenario: stub implementation + Given a file named "stub_implementation.rb" with: + """ + describe "a stubbed implementation" do + it "works" do + object = Object.new + object.stub(:foo) do |arg| + if arg == :this + "got this" + elsif arg == :that + "got that" + end + end + + object.foo(:this).should == "got this" + object.foo(:that).should == "got that" + end + end + """ + When I run "spec stub_implementation.rb" + Then the stdout should include "1 example, 0 failures" diff --git a/presidents/vendor/gems/rspec-1.2.9/features/pending/pending_examples.feature b/presidents/vendor/gems/rspec-1.2.9/features/pending/pending_examples.feature new file mode 100644 index 0000000..5827395 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/features/pending/pending_examples.feature @@ -0,0 +1,81 @@ +Feature: pending examples + + RSpec offers three ways to indicate that an example is disabled pending + some action. + + Scenario: pending implementation + Given a file named "example_without_block_spec.rb" with: + """ + describe "an example" do + it "has not yet been implemented" + end + """ + When I run "spec example_without_block_spec.rb" + Then the exit code should be 0 + And the stdout should include "1 example, 0 failures, 1 pending" + And the stdout should include "Not Yet Implemented" + And the stdout should include "example_without_block_spec.rb:2" + + Scenario: pending implementation with spec/test/unit + Given a file named "example_without_block_spec.rb" with: + """ + require 'spec/test/unit' + describe "an example" do + it "has not yet been implemented" + end + """ + When I run "spec example_without_block_spec.rb" + Then the exit code should be 0 + And the stdout should include "1 example, 0 failures, 1 pending" + And the stdout should include "Not Yet Implemented" + And the stdout should include "example_without_block_spec.rb:3" + + Scenario: pending any arbitary reason, with no block + Given a file named "pending_without_block_spec.rb" with: + """ + describe "an example" do + it "is implemented but waiting" do + pending("something else getting finished") + end + end + """ + When I run "spec pending_without_block_spec.rb" + Then the exit code should be 0 + And the stdout should include "1 example, 0 failures, 1 pending" + And the stdout should include "(something else getting finished)" + And the stdout should include "pending_without_block_spec.rb:2" + + Scenario: pending any arbitary reason, with a block that fails + Given a file named "pending_with_failing_block_spec.rb" with: + """ + describe "an example" do + it "is implemented but waiting" do + pending("something else getting finished") do + raise "this is the failure" + end + end + end + """ + When I run "spec pending_with_failing_block_spec.rb" + Then the exit code should be 0 + And the stdout should include "1 example, 0 failures, 1 pending" + And the stdout should include "(something else getting finished)" + And the stdout should include "pending_with_failing_block_spec.rb:2" + + Scenario: pending any arbitary reason, with a block that passes + Given a file named "pending_with_passing_block_spec.rb" with: + """ + describe "an example" do + it "is implemented but waiting" do + pending("something else getting finished") do + true.should be(true) + end + end + end + """ + When I run "spec pending_with_passing_block_spec.rb" + Then the exit code should be 256 + And the stdout should include "1 example, 1 failure" + And the stdout should include "FIXED" + And the stdout should include "Expected pending 'something else getting finished' to fail. No Error was raised." + And the stdout should include "pending_with_passing_block_spec.rb:3" diff --git a/presidents/vendor/gems/rspec-1.2.9/features/runner/specify_line_number.feature b/presidents/vendor/gems/rspec-1.2.9/features/runner/specify_line_number.feature new file mode 100644 index 0000000..bf44f2c --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/features/runner/specify_line_number.feature @@ -0,0 +1,32 @@ +Feature: run specific examples by line number + + In order to run a single example from command line + RSpec allows you to specify the line number of the example(s) to run + + Scenario: --line syntax on single example + Given a file named "example_spec.rb" with: + """ + describe "an example" do + it "has not yet been implemented" + it "has been implemented" do + true + end + end + """ + When I run "spec example_spec.rb --line 2" + Then the stdout should include "1 example, 0 failures, 1 pending" + And the stdout should include "example_spec.rb:2" + + Scenario: colon line syntax on single example + Given a file named "example_spec.rb" with: + """ + describe "an example" do + it "has not yet been implemented" + it "has been implemented" do + true + end + end + """ + When I run "spec example_spec.rb:2" + Then the stdout should include "1 example, 0 failures, 1 pending" + And the stdout should include "example_spec.rb:2" diff --git a/presidents/vendor/gems/rspec-1.2.9/features/spec_helper/spec_helper.feature b/presidents/vendor/gems/rspec-1.2.9/features/spec_helper/spec_helper.feature new file mode 100644 index 0000000..2711e1a --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/features/spec_helper/spec_helper.feature @@ -0,0 +1,25 @@ +Feature: spec helper + In order to centralize code needed across most specs + As a spec author + I want to require 'spec_helper' + + Because rspec adds the PROJECT_ROOT/spec directory to the load path, we can + just require 'spec_helper' and it will be found. + + Scenario: spec helper + Given a directory named "spec" + And a file named "spec/spec_helper.rb" with: + """ + SOME_CONSTANT = 'some value' + """ + And a file named "example.rb" with: + """ + require 'spec_helper' + describe SOME_CONSTANT do + it { should == 'some value' } + end + """ + When I run "spec example.rb" + And the stdout should include "1 example, 0 failures" + And the exit code should be 0 + diff --git a/presidents/vendor/gems/rspec-1.2.9/features/step_definitions/running_rspec_steps.rb b/presidents/vendor/gems/rspec-1.2.9/features/step_definitions/running_rspec_steps.rb new file mode 100644 index 0000000..60f27fa --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/features/step_definitions/running_rspec_steps.rb @@ -0,0 +1,43 @@ +Given %r{^a file named "([^"]+)" with:$} do |file_name, code| + create_file(file_name, code) +end + +Given /^a directory named "([^\"]*)"$/ do |dirname| + create_directory(dirname) +end + +When %r{^I run "spec ([^"]+)"$} do |file_and_args| + spec(file_and_args) +end + +When %r{^I run "ruby ([^"]+)"$} do |file_and_args| + ruby(file_and_args) +end + +When %r{^I run "cmdline.rb ([^"]+)"$} do |file_and_args| + cmdline(file_and_args) +end + +Then /^the (.*) should include (.*)$/ do |stream, string_or_regex| + written = case(stream) + when 'stdout' then last_stdout + when 'stderr' then last_stderr + else raise "Unknown stream: #{stream}" + end + written.should smart_match(string_or_regex) +end + +Then /^the (.*) should not match (.*)$/ do |stream, string_or_regex| + written = case(stream) + when 'stdout' then last_stdout + when 'stderr' then last_stderr + else raise "Unknown stream: #{stream}" + end + written.should_not smart_match(string_or_regex) +end + +Then /^the exit code should be (\d+)$/ do |exit_code| + if last_exit_code != exit_code.to_i + raise "Did not exit with #{exit_code}, but with #{last_exit_code}. Standard error:\n#{last_stderr}" + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/features/subject/explicit_subject.feature b/presidents/vendor/gems/rspec-1.2.9/features/subject/explicit_subject.feature new file mode 100644 index 0000000..9fb68ad --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/features/subject/explicit_subject.feature @@ -0,0 +1,31 @@ +Feature: explicit subject + + You can override the implicit subject using the subject() method. + + Scenario: subject in top level group + Given a file named "top_level_subject_spec.rb" with: + """ + describe Array, "with some elements" do + subject { [1,2,3] } + it "should have the prescribed elements" do + subject.should == [1,2,3] + end + end + """ + When I run "spec top_level_subject_spec.rb" + Then the stdout should include "1 example, 0 failures" + + Scenario: subject in a nested group + Given a file named "nested_subject_spec.rb" with: + """ + describe Array do + subject { [1,2,3] } + describe "with some elements" do + it "should have the prescribed elements" do + subject.should == [1,2,3] + end + end + end + """ + When I run "spec nested_subject_spec.rb" + Then the stdout should include "1 example, 0 failures" diff --git a/presidents/vendor/gems/rspec-1.2.9/features/subject/implicit_subject.feature b/presidents/vendor/gems/rspec-1.2.9/features/subject/implicit_subject.feature new file mode 100644 index 0000000..bc57d2b --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/features/subject/implicit_subject.feature @@ -0,0 +1,43 @@ +Feature: implicit subject + + The first argument to the outermost example group block is + made available to each example as an implicit subject of + that example. + + Scenario: subject in top level group + Given a file named "top_level_subject_spec.rb" with: + """ + describe Array, "when first created" do + it "should be empty" do + subject.should == [] + end + end + """ + When I run "spec top_level_subject_spec.rb" + Then the stdout should include "1 example, 0 failures" + + Scenario: subject in a nested group + Given a file named "nested_subject_spec.rb" with: + """ + describe Array do + describe "when first created" do + it "should be empty" do + subject.should == [] + end + end + end + """ + When I run "spec nested_subject_spec.rb" + Then the stdout should include "1 example, 0 failures" + + Scenario: subject with getters + Given a file named "subject_with_getter_spec.rb" with: + """ + describe Array do + describe "when first created" do + its(:length) { should == 0 } + end + end + """ + When I run "spec subject_with_getter_spec.rb" + Then the stdout should include "1 example, 0 failures" diff --git a/presidents/vendor/gems/rspec-1.2.9/features/support/env.rb b/presidents/vendor/gems/rspec-1.2.9/features/support/env.rb new file mode 100644 index 0000000..e11b3db --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/features/support/env.rb @@ -0,0 +1,82 @@ +$:.unshift File.join(File.dirname(__FILE__), "/../../lib") + +require 'spec/expectations' +require 'forwardable' +require 'tempfile' +require 'spec/ruby_forker' +require 'features/support/matchers/smart_match' + +class RspecWorld + include Spec::Expectations + include Spec::Matchers + include RubyForker + + extend Forwardable + def_delegators RspecWorld, :working_dir, :spec_command, :cmdline_file, :rspec_lib + + def self.working_dir + @working_dir ||= File.expand_path(File.join(File.dirname(__FILE__), "/../../tmp/cucumber-generated-files")) + end + + def self.spec_command + @spec_command ||= File.expand_path(File.join(File.dirname(__FILE__), "/../../bin/spec")) + end + + def self.cmdline_file + @cmdline_file ||= File.expand_path(File.join(File.dirname(__FILE__), "/../../resources/helpers/cmdline.rb")) + end + + def self.rspec_lib + @rspec_lib ||= File.join(working_dir, "/../../lib") + end + + def spec(args) + ruby("#{spec_command} #{args}") + end + + def cmdline(args) + ruby("#{cmdline_file} #{args}") + end + + def create_file(file_name, contents) + file_path = File.join(working_dir, file_name) + File.open(file_path, "w") { |f| f << contents } + end + + def create_directory(dirname) + FileUtils.mkdir_p File.join(working_dir, dirname) + end + + def last_stdout + @stdout + end + + def last_stderr + @stderr + end + + def last_exit_code + @exit_code + end + + # it seems like this, and the last_* methods, could be moved into RubyForker-- is that being used anywhere but the features? + def ruby(args) + stderr_file = Tempfile.new('rspec') + stderr_file.close + Dir.chdir(working_dir) do + @stdout = super("-I #{rspec_lib} #{args}", stderr_file.path) + end + @stderr = IO.read(stderr_file.path) + @exit_code = $?.to_i + end + +end + +Before do + FileUtils.rm_rf RspecWorld.working_dir if test ?d, RspecWorld.working_dir + FileUtils.mkdir_p RspecWorld.working_dir +end + +World do + RspecWorld.new +end diff --git a/presidents/vendor/gems/rspec-1.2.9/features/support/matchers/smart_match.rb b/presidents/vendor/gems/rspec-1.2.9/features/support/matchers/smart_match.rb new file mode 100644 index 0000000..74c5089 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/features/support/matchers/smart_match.rb @@ -0,0 +1,12 @@ +Spec::Matchers.define :smart_match do |expected| + match do |actual| + case expected + when /^\/.*\/?$/ + actual =~ eval(expected) + when /^".*"$/ + actual.index(eval(expected)) + else + false + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/init.rb b/presidents/vendor/gems/rspec-1.2.9/init.rb new file mode 100644 index 0000000..6262f03 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/init.rb @@ -0,0 +1,9 @@ +# Placeholder to satisfy Rails. +# +# Do NOT add any require statements to this file. Doing +# so will cause Rails to load this plugin all of the time. +# +# Running 'ruby script/generate rspec' will +# generate spec/spec_helper.rb, which includes the necessary +# require statements and configuration. This file should +# be required by all of your spec files. \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/autotest/discover.rb b/presidents/vendor/gems/rspec-1.2.9/lib/autotest/discover.rb new file mode 100644 index 0000000..3ac51c1 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/autotest/discover.rb @@ -0,0 +1,3 @@ +Autotest.add_discovery do + "rspec" if File.directory?('spec') && ENV['RSPEC'] +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/autotest/rspec.rb b/presidents/vendor/gems/rspec-1.2.9/lib/autotest/rspec.rb new file mode 100644 index 0000000..625e340 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/autotest/rspec.rb @@ -0,0 +1,47 @@ +require 'autotest' + +Autotest.add_hook :initialize do |at| + at.clear_mappings + # watch out: Ruby bug (1.8.6): + # %r(/) != /\// + at.add_mapping(%r%^spec/.*_spec.rb$%) { |filename, _| + filename + } + at.add_mapping(%r%^lib/(.*)\.rb$%) { |_, m| + ["spec/#{m[1]}_spec.rb"] + } + at.add_mapping(%r%^spec/(spec_helper|shared/.*)\.rb$%) { + at.files_matching %r%^spec/.*_spec\.rb$% + } +end + +class RspecCommandError < StandardError; end + +class Autotest::Rspec < Autotest + + def initialize + super + self.failed_results_re = /^\d+\)\n(?:\e\[\d*m)?(?:.*?in )?'([^\n]*)'(?: FAILED)?(?:\e\[\d*m)?\n\n?(.*?(\n\n\(.*?)?)\n\n/m + self.completed_re = /\n(?:\e\[\d*m)?\d* examples?/m + end + + def consolidate_failures(failed) + filters = new_hash_of_arrays + failed.each do |spec, trace| + if trace =~ /\n(\.\/)?(.*spec\.rb):[\d]+:/ + filters[$2] << spec + end + end + return filters + end + + def make_test_cmd(files_to_test) + return '' if files_to_test.empty? + spec_program = File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'bin', 'spec')) + return "#{ruby} #{spec_program} --autospec #{files_to_test.keys.flatten.join(' ')} #{add_options_if_present}" + end + + def add_options_if_present # :nodoc: + File.exist?("spec/spec.opts") ? "-O spec/spec.opts " : "" + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec.rb new file mode 100644 index 0000000..879c373 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec.rb @@ -0,0 +1,8 @@ +require 'spec/deprecation' +require 'spec/ruby' +require 'spec/matchers' +require 'spec/expectations' +require 'spec/example' +require 'spec/runner' +require 'spec/version' +require 'spec/dsl' diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/adapters/mock_frameworks/flexmock.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/adapters/mock_frameworks/flexmock.rb new file mode 100644 index 0000000..18dd453 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/adapters/mock_frameworks/flexmock.rb @@ -0,0 +1,24 @@ +#!/usr/bin/env ruby +# +# Created by Jim Weirich on 2007-04-10. +# Copyright (c) 2007. All rights reserved. + +require 'rubygems' unless ENV['NO_RUBYGEMS'] +require 'flexmock/rspec' + +module Spec + module Adapters + module MockFramework + include FlexMock::MockContainer + def setup_mocks_for_rspec + # No setup required + end + def verify_mocks_for_rspec + flexmock_verify + end + def teardown_mocks_for_rspec + flexmock_close + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/adapters/mock_frameworks/mocha.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/adapters/mock_frameworks/mocha.rb new file mode 100644 index 0000000..4c97c13 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/adapters/mock_frameworks/mocha.rb @@ -0,0 +1,25 @@ +require 'rubygems' unless ENV['NO_RUBYGEMS'] +require 'mocha/standalone' +require 'mocha/object' + +module Spec + module Adapters + module MockFramework + # Mocha::Standalone was deprecated as of Mocha 0.9.7. + begin + include Mocha::API + rescue NameError + include Mocha::Standalone + end + def setup_mocks_for_rspec + mocha_setup + end + def verify_mocks_for_rspec + mocha_verify + end + def teardown_mocks_for_rspec + mocha_teardown + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/adapters/mock_frameworks/rr.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/adapters/mock_frameworks/rr.rb new file mode 100644 index 0000000..758ddf6 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/adapters/mock_frameworks/rr.rb @@ -0,0 +1,22 @@ +require 'rubygems' unless ENV['NO_RUBYGEMS'] +require 'rr' + +patterns = ::Spec::Runner::QuietBacktraceTweaker::IGNORE_PATTERNS +patterns.push(RR::Errors::BACKTRACE_IDENTIFIER) + +module Spec + module Adapters + module MockFramework + include RR::Extensions::InstanceMethods + def setup_mocks_for_rspec + RR::Space.instance.reset + end + def verify_mocks_for_rspec + RR::Space.instance.verify_doubles + end + def teardown_mocks_for_rspec + RR::Space.instance.reset + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/adapters/mock_frameworks/rspec.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/adapters/mock_frameworks/rspec.rb new file mode 100644 index 0000000..b159f8b --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/adapters/mock_frameworks/rspec.rb @@ -0,0 +1,21 @@ +require 'spec/mocks/framework' +require 'spec/mocks/extensions' + +module Spec + module Adapters + unless defined?(MockFramework) + module MockFramework + include Spec::Mocks::ExampleMethods + def setup_mocks_for_rspec + $rspec_mocks ||= Spec::Mocks::Space.new + end + def verify_mocks_for_rspec + $rspec_mocks.verify_all + end + def teardown_mocks_for_rspec + $rspec_mocks.reset_all + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/autorun.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/autorun.rb new file mode 100644 index 0000000..f29b819 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/autorun.rb @@ -0,0 +1,3 @@ +require 'spec' + +Spec::Runner.autorun diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/deprecation.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/deprecation.rb new file mode 100644 index 0000000..ebab789 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/deprecation.rb @@ -0,0 +1,40 @@ +module Spec + class << self + def deprecate(method, alternate_method=nil) + message = <<-NOTICE + +***************************************************************** +DEPRECATION WARNING: you are using deprecated behaviour that will +be removed from a future version of RSpec. + +#{caller(0)[2]} + +* #{method} is deprecated. +NOTICE + if alternate_method + message << <<-ADDITIONAL +* please use #{alternate_method} instead. +ADDITIONAL + end + + message << "*****************************************************************" + warn(message) + end + + def warn(message) + Kernel.warn(message) + end + + end + + class HashWithDeprecationNotice < Hash + def initialize(method, alternate_method=nil, &block) + @method, @alternate_method = method, alternate_method + end + def []=(k,v) + Spec.deprecate(@method, @alternate_method) + super + end + end +end + diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/dsl.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/dsl.rb new file mode 100644 index 0000000..d93e90d --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/dsl.rb @@ -0,0 +1 @@ +require 'spec/dsl/main' diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/dsl/main.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/dsl/main.rb new file mode 100644 index 0000000..3459275 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/dsl/main.rb @@ -0,0 +1,92 @@ +module Spec + module DSL + module Main + include Spec::Example::ArgsAndOptions + + # Creates and returns a class that includes the ExampleGroupMethods + # module. Which ExampleGroup type is created depends on the directory of the file + # calling this method. For example, Spec::Rails will use different + # classes for specs living in spec/models, + # spec/helpers, spec/views and + # spec/controllers. + # + # It is also possible to override autodiscovery of the example group + # type with an options Hash as the last argument: + # + # describe "name", :type => :something_special do ... + # + # The reason for using different example group classes is to have different + # matcher methods available from within the describe block. + # + # See Spec::Example::ExampleGroupFactory#register for details about how to + # register special implementations. + # + def describe(*args, &block) + raise Spec::Example::NoDescriptionError.new("example group", caller(0)[1]) if args.empty? + add_options(args, :scope => self) + set_location(args.options, caller(0)[1]) + Spec::Example::ExampleGroupFactory.create_example_group(*args, &block) + end + alias :context :describe + + # Creates an example group that can be shared by other example groups + # + # == Examples + # + # share_examples_for "All Editions" do + # it "all editions behaviour" ... + # end + # + # describe SmallEdition do + # it_should_behave_like "All Editions" + # + # it "should do small edition stuff" do + # ... + # end + # end + def share_examples_for(*args, &block) + add_options(args) + set_location(args.options, caller(0)[1]) + Spec::Example::ExampleGroupFactory.create_shared_example_group(*args, &block) + end + alias :shared_examples_for :share_examples_for + + # Creates a Shared Example Group and assigns it to a constant + # + # share_as :AllEditions do + # it "should do all editions stuff" ... + # end + # + # describe SmallEdition do + # it_should_behave_like AllEditions + # + # it "should do small edition stuff" do + # ... + # end + # end + # + # And, for those of you who prefer to use something more like Ruby, you + # can just include the module directly + # + # describe SmallEdition do + # include AllEditions + # + # it "should do small edition stuff" do + # ... + # end + # end + def share_as(name, &block) + begin + args = [name] + add_options(args) + set_location(args.options, caller(0)[1]) + Object.const_set(name, Spec::Example::ExampleGroupFactory.create_shared_example_group(*args, &block)) + rescue NameError => e + raise NameError.new(e.message + "\nThe first argument to share_as must be a legal name for a constant\n") + end + end + end + end +end + +include Spec::DSL::Main diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/example.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/example.rb new file mode 100644 index 0000000..afbf412 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/example.rb @@ -0,0 +1,164 @@ +module Spec + # == Example Groups and Code Examples + # + # A Code Example is an executable example of how a bit of code is expected + # to behave. + # + # An Example Group is a group of code examples. + # + # RSpec exposes a DSL to describe groups of examples. + # + # describe Account do + # it "should have a balance of $0" do + # account = Account.new + # account.balance.should == Money.new(0, :dollars) + # end + # end + # + # == Before and After + # + # You can use the before() and after() methods to extract + # common code within an Example Group. Both methods take an optional scope + # argument so you can run the block before :each example or before :all + # examples + # + # describe "..." do + # before :all do + # ... + # end + # + # before :each do + # ... + # end + # + # it "should do something" do + # ... + # end + # + # it "should do something else" do + # ... + # end + # + # after :each do + # ... + # end + # + # after :all do + # ... + # end + # + # end + # + # The before :each block will run before each of the examples, once + # for each example. Likewise, the after :each block will run after + # each of the examples. + # + # It is also possible to specify a before :all and after + # :all block that will run only once for each example group, before the + # first before :each and after the last after + # :each respectively. The use of these is generally discouraged, + # because it introduces dependencies between the examples. Still, it might + # prove useful for very expensive operations if you know what you are doing. + # + # == Local helper methods + # + # You can include local helper methods by simply expressing them within an + # example group: + # + # describe "..." do + # + # it "..." do + # helper_method + # end + # + # def helper_method + # ... + # end + # + # end + # + # == Included helper methods + # + # You can include helper methods in multiple example groups by expressing + # them within a module, and then including that module in your example + # groups: + # + # module AccountExampleHelperMethods + # def helper_method + # ... + # end + # end + # + # describe "A new account" do + # include AccountExampleHelperMethods + # before do + # @account = Account.new + # end + # + # it "should have a balance of $0" do + # helper_method + # @account.balance.should eql(Money.new(0, :dollars)) + # end + # end + # + # == Shared Example Groups + # + # You can define a shared example group, that may be used on other groups + # + # share_examples_for "All Editions" do + # it "all editions behaviour" ... + # end + # + # describe SmallEdition do + # it_should_behave_like "All Editions" + # + # it "should do small edition stuff" do + # ... + # end + # end + # + # You can also assign the shared group to a module and include that + # + # share_as :AllEditions do + # it "should do all editions stuff" ... + # end + # + # describe SmallEdition do + # it_should_behave_like AllEditions + # + # it "should do small edition stuff" do + # ... + # end + # end + # + # And, for those of you who prefer to use something more like Ruby, you can + # just include the module directly + # + # describe SmallEdition do + # include AllEditions + # + # it "should do small edition stuff" do + # ... + # end + # end + module Example + end +end + +require 'timeout' +require 'spec/example/args_and_options' +require 'spec/example/predicate_matchers' +require 'spec/example/example_group_proxy' +require 'spec/example/example_proxy' +require 'spec/example/subject' +require 'spec/example/before_and_after_hooks' +require 'spec/example/pending' +require 'spec/example/module_reopening_fix' +require 'spec/example/example_group_hierarchy' +require 'spec/example/example_group_methods' +require 'spec/example/example_methods' +require 'spec/example/example_group' +require 'spec/example/shared_example_group' +require 'spec/example/example_group_factory' +require 'spec/example/errors' +require 'spec/example/example_matcher' diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/example/args_and_options.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/example/args_and_options.rb new file mode 100644 index 0000000..b74fddd --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/example/args_and_options.rb @@ -0,0 +1,27 @@ +module Spec + module Example + module ArgsAndOptions + def args_and_options(*args) # :nodoc: + options = Hash === args.last ? args.pop : {} + return args, options + end + + def add_options(args, options={}) # :nodoc: + args << {} unless Hash === args.last + args.extend WithOptions + args.options.merge!(options) + args.options + end + + def set_location(options, location) # :nodoc: + options[:location] ||= location + end + + module WithOptions # :nodoc: + def options + last + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/example/before_and_after_hooks.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/example/before_and_after_hooks.rb new file mode 100644 index 0000000..9f5039d --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/example/before_and_after_hooks.rb @@ -0,0 +1,93 @@ +module Spec + module Example + module BeforeAndAfterHooks + class << self + def before_suite_parts # :nodoc: + @before_suite_parts ||= [] + end + + def after_suite_parts # :nodoc: + @after_suite_parts ||= [] + end + end + + # Registers a block to be executed before examples. scope can be + # :each (default), :all, or :suite. When + # :each, the block is executed before each example. When + # :all, the block is executed only once before any examples are + # run. + def append_before(scope = :each, &block) + before_parts(scope) << block + end + alias_method :before, :append_before + + # Registers a block to be executed before each example. + # This method prepends +block+ to existing before blocks. + # + # See append_before for scoping semantics. + def prepend_before(scope = :each, &block) + before_parts(scope).unshift(block) + end + + # Registers a block to be executed after each example. + # This method prepends +block+ to existing after blocks. + # + # See append_before for scoping semantics. + def prepend_after(scope = :each, &block) + after_parts(scope).unshift(block) + end + alias_method :after, :prepend_after + + # Registers a block to be executed after each example. + # This method appends +block+ to existing after blocks. + # + # See append_before for scoping semantics. + def append_after(scope = :each, &block) + after_parts(scope) << block + end + + def before_each_parts # :nodoc: + @before_each_parts ||= [] + end + + def after_each_parts # :nodoc: + @after_each_parts ||= [] + end + + def before_all_parts # :nodoc: + @before_all_parts ||= [] + end + + def after_all_parts # :nodoc: + @after_all_parts ||= [] + end + + def before_suite_parts # :nodoc: + BeforeAndAfterHooks.before_suite_parts + end + + def after_suite_parts # :nodoc: + BeforeAndAfterHooks.after_suite_parts + end + + private + + def before_parts(scope) + case scope + when :each; before_each_parts + when :all; before_all_parts + when :suite; before_suite_parts + end + end + + def after_parts(scope) + case scope + when :each; after_each_parts + when :all; after_all_parts + when :suite; after_suite_parts + end + end + + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/example/errors.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/example/errors.rb new file mode 100644 index 0000000..157b669 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/example/errors.rb @@ -0,0 +1,25 @@ +module Spec + module Example + class ExamplePendingError < StandardError; end + + class NotYetImplementedError < ExamplePendingError + MESSAGE = "Not Yet Implemented" + def initialize + super(MESSAGE) + end + end + + class PendingExampleFixedError < StandardError; end + + class NoDescriptionError < ArgumentError + class << self + def message(kind, location) + "No description supplied for #{kind} declared on #{location}" + end + end + def initialize(kind, location) + super(self.class.message(kind, location)) + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/example/example_group.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/example/example_group.rb new file mode 100644 index 0000000..983be9a --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/example/example_group.rb @@ -0,0 +1,10 @@ +module Spec + module Example + # Base class for customized example groups. Use this if you + # want to make a custom example group. + class ExampleGroup + extend Spec::Example::ExampleGroupMethods + include Spec::Example::ExampleMethods + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/example/example_group_factory.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/example/example_group_factory.rb new file mode 100644 index 0000000..1d66278 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/example/example_group_factory.rb @@ -0,0 +1,82 @@ +module Spec + module Example + + class ExampleGroupFactory + module ClassMethods + include Spec::Example::ArgsAndOptions + + def reset + @example_group_types = nil + default(ExampleGroup) + end + + def example_group_creation_listeners + @example_group_creation_listeners ||= [] + end + + def register_example_group(klass) + example_group_creation_listeners.each do |listener| + listener.register_example_group(klass) + end + end + + def create_shared_example_group(*args, &example_group_block) # :nodoc: + ::Spec::Example::SharedExampleGroup.register(*args, &example_group_block) + end + + def create_example_group(*args, &block) + raise ArgumentError if args.empty? || block.nil? + add_options(args) + superclass = determine_superclass(args.last) + superclass.describe(*args, &block) + end + + # Registers an example group class +klass+ with the symbol +type+. For + # example: + # + # Spec::Example::ExampleGroupFactory.register(:farm, FarmExampleGroup) + # + # With that you can append a hash with :type => :farm to the describe + # method and it will load an instance of FarmExampleGroup. + # + # describe Pig, :type => :farm do + # ... + # + # If you don't use the hash explicitly, describe will + # implicitly use an instance of FarmExampleGroup for any file loaded + # from the ./spec/farm directory. + def register(key, example_group_class) + @example_group_types[key.to_sym] = example_group_class + end + + # Sets the default ExampleGroup class + def default(example_group_class) + Spec.__send__ :remove_const, :ExampleGroup if Spec.const_defined?(:ExampleGroup) + Spec.const_set(:ExampleGroup, example_group_class) + old = @example_group_types + @example_group_types = Hash.new(example_group_class) + @example_group_types.merge!(old) if old + end + + def [](key) + @example_group_types[key] + end + + protected + + def determine_superclass(opts) + if type = opts[:type] + self[type] + elsif opts[:location] =~ /spec(\\|\/)(#{@example_group_types.keys.sort_by{|k| k.to_s.length}.reverse.join('|')})/ + self[$2 == '' ? nil : $2.to_sym] + else + self[nil] + end + end + + end + extend ClassMethods + self.reset + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/example/example_group_hierarchy.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/example/example_group_hierarchy.rb new file mode 100644 index 0000000..f2c9fb5 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/example/example_group_hierarchy.rb @@ -0,0 +1,53 @@ +module Spec + module Example + class ExampleGroupHierarchy < Array + def initialize(example_group_class) + push example_group_class + if example_group_class.respond_to?(:superclass) && example_group_class.superclass.respond_to?(:example_group_hierarchy) + unshift example_group_class.superclass.example_group_hierarchy + flatten! + end + end + + def run_before_all(example) + example.eval_each_fail_fast(before_all_parts) + end + + def run_before_each(example) + example.eval_each_fail_fast(before_each_parts) + end + + def run_after_each(example) + example.eval_each_fail_slow(after_each_parts) + end + + def run_after_all(example) + example.eval_each_fail_slow(after_all_parts) + end + + def before_all_parts + @before_all_parts ||= collect {|klass| klass.before_all_parts}.flatten + end + + def before_each_parts + @before_each_parts ||= collect {|klass| klass.before_each_parts}.flatten + end + + def after_each_parts + @after_each_parts ||= reverse.collect {|klass| klass.after_each_parts}.flatten + end + + def after_all_parts + @after_all_parts ||= reverse.collect {|klass| klass.after_all_parts}.flatten + end + + def nested_descriptions + @nested_descriptions ||= collect {|eg| nested_description_from(eg) == "" ? nil : nested_description_from(eg) }.compact + end + + def nested_description_from(example_group) + example_group.description_args.join + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/example/example_group_methods.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/example/example_group_methods.rb new file mode 100644 index 0000000..3862fde --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/example/example_group_methods.rb @@ -0,0 +1,282 @@ +module Spec + module Example + + module ExampleGroupMethods + class << self + attr_accessor :matcher_class + + def build_description_from(*args) + text = args.inject("") do |description, arg| + description << " " unless (description == "" || arg.to_s =~ /^(\s|\.|#)/) + description << arg.to_s + end + text == "" ? nil : text + end + end + + include Spec::Example::BeforeAndAfterHooks + include Spec::Example::Subject::ExampleGroupMethods + include Spec::Example::PredicateMatchers + include Spec::Example::ArgsAndOptions + + attr_reader :location + + def options # :nodoc: + @options ||= {} + end + + def inherited(klass) # :nodoc: + super + ExampleGroupFactory.register_example_group(klass) + end + + # Makes the describe/it syntax available from a class. For example: + # + # class StackSpec < Spec::ExampleGroup + # describe Stack, "with no elements" + # + # before + # @stack = Stack.new + # end + # + # it "should raise on pop" do + # lambda{ @stack.pop }.should raise_error + # end + # end + # + def describe(*args, &example_group_block) + raise Spec::Example::NoDescriptionError.new("example group", caller(0)[1]) if args.empty? + if example_group_block + options = add_options(args) + set_location(options, caller(0)[1]) + if options[:shared] + ExampleGroupFactory.create_shared_example_group(*args, &example_group_block) + else + subclass(*args, &example_group_block) + end + else + set_description(*args) + end + end + alias :context :describe + + # Use this to pull in examples from shared example groups. + def it_should_behave_like(*shared_example_groups) + shared_example_groups.each do |group| + include_shared_example_group(group) + end + end + + # Creates an instance of the current example group class and adds it to + # a collection of examples of the current example group. + def example(description=nil, options={}, backtrace=nil, &implementation) + example_proxy = ExampleProxy.new(description, options, backtrace || caller(0)[1]) + example_proxies << example_proxy + example_implementations[example_proxy] = implementation || pending_implementation + example_proxy + end + + def pending_implementation + lambda { raise(Spec::Example::NotYetImplementedError) } + end + + alias_method :it, :example + alias_method :specify, :example + + # Use this to temporarily disable an example. + def xexample(description=nil, opts={}, &block) + Kernel.warn("Example disabled: #{description}") + end + + alias_method :xit, :xexample + alias_method :xspecify, :xexample + + def run(run_options) + examples = examples_to_run(run_options) + notify(run_options.reporter) unless examples.empty? + return true if examples.empty? + return dry_run(examples, run_options) if run_options.dry_run? + + define_methods_from_predicate_matchers + + success, before_all_instance_variables = run_before_all(run_options) + success, after_all_instance_variables = run_examples(success, before_all_instance_variables, examples, run_options) + success = run_after_all(success, after_all_instance_variables, run_options) + end + + def set_description(*args) + @description_args, @options = args_and_options(*args) + @backtrace = caller(1) + @location = File.expand_path(options[:location]) if options[:location] + self + end + + def notify(reporter) # :nodoc: + reporter.example_group_started(ExampleGroupProxy.new(self)) + end + + def description + @description ||= ExampleGroupMethods.build_description_from(*description_parts) || to_s + end + + def described_type + @described_type ||= description_parts.reverse.find {|part| part.is_a?(Module)} + end + + def described_class + @described_class ||= Class === described_type ? described_type : nil + end + + def description_args + @description_args ||= [] + end + + def description_parts #:nodoc: + @description_parts ||= example_group_hierarchy.inject([]) do |parts, example_group_class| + [parts << example_group_class.description_args].flatten + end + end + + def example_proxies # :nodoc: + @example_proxies ||= [] + end + + def example_implementations # :nodoc: + @example_implementations ||= {} + end + + def examples(run_options=nil) #:nodoc: + (run_options && run_options.reverse) ? example_proxies.reverse : example_proxies + end + + def number_of_examples #:nodoc: + example_proxies.length + end + + def example_group_hierarchy + @example_group_hierarchy ||= ExampleGroupHierarchy.new(self) + end + + def nested_descriptions + example_group_hierarchy.nested_descriptions + end + + def include_constants_in(mod) + include mod if (Spec::Ruby.version.to_f >= 1.9) & (Module === mod) & !(Class === mod) + end + + def let(name, &block) + define_method name do + @assignments ||= {} + @assignments[name] ||= instance_eval(&block) + end + end + + private + + def subclass(*args, &example_group_block) + @class_count ||= 0 + @class_count += 1 + klass = const_set("Subclass_#{@class_count}", Class.new(self)) + klass.set_description(*args) + klass.include_constants_in(args.last[:scope]) + klass.module_eval(&example_group_block) + klass + end + + def dry_run(examples, run_options) + examples.each do |example| + run_options.reporter.example_started(example) + run_options.reporter.example_finished(example) + end + end + + def run_before_all(run_options) + return [true,{}] if example_group_hierarchy.before_all_parts.empty? + example_proxy = ExampleProxy.new("before(:all)") + before_all = new(example_proxy) + begin + example_group_hierarchy.run_before_all(before_all) + return [true, before_all.instance_variable_hash] + rescue Exception => e + run_options.reporter.example_failed(example_proxy, e) + return [false, before_all.instance_variable_hash] + end + end + + def run_examples(success, instance_variables, examples, run_options) + return [success, instance_variables] unless success + + after_all_instance_variables = instance_variables + + examples.each do |example| + example_group_instance = new(example, &example_implementations[example]) + success &= example_group_instance.execute(run_options, instance_variables) + after_all_instance_variables = example_group_instance.instance_variable_hash + end + + return [success, after_all_instance_variables] + end + + def run_after_all(success, instance_variables, run_options) + return success if example_group_hierarchy.after_all_parts.empty? + example_proxy = ExampleProxy.new("after(:all)") + after_all = new(example_proxy) + after_all.set_instance_variables_from_hash(instance_variables) + example_group_hierarchy.run_after_all(after_all) + success + rescue Exception => e + run_options.reporter.example_failed(example_proxy, e) + false + end + + def examples_to_run(run_options) + return example_proxies unless examples_were_specified?(run_options) + if run_options.line_number_requested? + if location =~ /:#{run_options.example_line}:?/ + example_proxies + else + example_proxies.select {|proxy| proxy.location =~ /:#{run_options.example_line}:?/} + end + else + example_proxies.reject do |proxy| + matcher = ExampleGroupMethods.matcher_class. + new(description.to_s, proxy.description) + !matcher.matches?(run_options.examples) + end + end + end + + def examples_were_specified?(run_options) + !run_options.examples.empty? + end + + def method_added(name) # :nodoc: + example(name.to_s, {}, caller(0)[1]) {__send__ name.to_s} if example_method?(name.to_s) + end + + def example_method?(method_name) + should_method?(method_name) + end + + def should_method?(method_name) + !(method_name =~ /^should(_not)?$/) && + method_name =~ /^should/ && + instance_method(method_name).arity < 1 + end + + def include_shared_example_group(shared_example_group) + case shared_example_group + when SharedExampleGroup + include shared_example_group + else + unless example_group = SharedExampleGroup.find(shared_example_group) + raise RuntimeError.new("Shared Example Group '#{shared_example_group}' can not be found") + end + include(example_group) + end + end + end + + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/example/example_group_proxy.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/example/example_group_proxy.rb new file mode 100644 index 0000000..3c258d6 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/example/example_group_proxy.rb @@ -0,0 +1,61 @@ +module Spec + module Example + # Lightweight proxy for an example group. This is the object that is passed + # to Spec::Runner::Formatter::BaseFormatter#example_group_started + class ExampleGroupProxy + + def initialize(example_group) # :nodoc: + @description = example_group.description + @nested_descriptions = example_group.nested_descriptions + @examples = example_group.example_proxies + @location = example_group.location + @backtrace = example_group.location # deprecated - see the backtrace method below + @options = example_group.options.dup + @options.delete(:location) + @options.delete(:scope) + end + + # Optional hash passed to the example group declaration. Note that RSpec uses + # this hash internally and reserves the keys :location and :scope for its own + # use (and removes them from this hash) + attr_reader :options + + # This is the description passed to the describe() method or any + # of its aliases + attr_reader :description + + # Used by Spec::Runner::Formatter::NestedTextFormatter to access the + # description of each example group in a nested group separately. + attr_reader :nested_descriptions + + # A collection of ExampleGroupProxy objects, one for each example + # declared in this group. + attr_reader :examples + + # The file and line number at which the proxied example group + # was declared. This is extracted from caller, and is therefore + # formatted as an individual line in a backtrace. + attr_reader :location + + # Deprecated - use location() instead + def backtrace + Spec::deprecate("ExampleGroupProxy#backtrace","ExampleGroupProxy#location") + @backtrace + end + + # Deprecated - just use gsub on the description instead. + def filtered_description(regexp) + Spec::deprecate("ExampleGroupProxy#filtered_description","gsub (or similar) to modify ExampleGroupProxy#description") + ExampleGroupMethods.build_description_from( + *nested_descriptions.collect do |description| + description =~ regexp ? description.gsub($1, "") : description + end + ) + end + + def ==(other) # :nodoc: + other.description == description + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/example/example_matcher.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/example/example_matcher.rb new file mode 100644 index 0000000..3acd7e1 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/example/example_matcher.rb @@ -0,0 +1,43 @@ +module Spec + module Example + class ExampleMatcher + def initialize(example_group_description, example_name) + @example_group_description = example_group_description + @example_name = example_name + end + + def matches?(specified_examples) + specified_examples.any? do |specified_example| + matches_literal_example?(specified_example) || matches_example_not_considering_modules?(specified_example) + end + end + + protected + def matches_literal_example?(specified_example) + specified_example =~ /(^#{example_group_regex} #{example_regexp}$|^#{example_group_regex}$|^#{example_group_with_before_all_regexp}$|^#{example_regexp}$)/ + end + + def matches_example_not_considering_modules?(specified_example) + specified_example =~ /(^#{example_group_regex_not_considering_modules} #{example_regexp}$|^#{example_group_regex_not_considering_modules}$|^#{example_regexp}$)/ + end + + def example_group_regex + Regexp.escape(@example_group_description) + end + + def example_group_with_before_all_regexp + Regexp.escape("#{@example_group_description} before(:all)") + end + + def example_group_regex_not_considering_modules + Regexp.escape(@example_group_description.split('::').last) + end + + def example_regexp + Regexp.escape(@example_name) if @example_name + end + end + + ExampleGroupMethods.matcher_class = ExampleMatcher + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/example/example_methods.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/example/example_methods.rb new file mode 100644 index 0000000..ca81a93 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/example/example_methods.rb @@ -0,0 +1,148 @@ +module Spec + module Example + module ExampleMethods + + extend Spec::Example::ModuleReopeningFix + include Spec::Example::Subject::ExampleMethods + + def violated(message="") + raise Spec::Expectations::ExpectationNotMetError.new(message) + end + + # Declared description for this example: + # + # describe Account do + # it "should start with a balance of 0" do + # ... + # + # description + # => "should start with a balance of 0" + def description + if description = @_proxy.description || ::Spec::Matchers.generated_description + description + else + Spec.warn Spec::Example::NoDescriptionError.message("example", @_proxy.location) + end + end + + def options # :nodoc: + @_proxy.options + end + + def execute(run_options, instance_variables) # :nodoc: + run_options.reporter.example_started(@_proxy) + set_instance_variables_from_hash(instance_variables) + + execution_error = nil + Timeout.timeout(run_options.timeout) do + begin + before_each_example + instance_eval(&@_implementation) + rescue Exception => e + execution_error ||= e + end + begin + after_each_example + rescue Exception => e + execution_error ||= e + end + end + + run_options.reporter.example_finished(@_proxy.update(description), execution_error) + success = execution_error.nil? || ExamplePendingError === execution_error + end + + module BlockAliases + alias_method :to, :should + alias_method :to_not, :should_not + end + + # Extends the submitted block with aliases to and to_not + # for should and should_not. Allows expectations like this: + # + # expect { this_block }.to change{this.expression}.from(old_value).to(new_value) + # expect { this_block }.to raise_error + def expect(&block) + block.extend BlockAliases + end + + def eval_each_fail_fast(blocks) # :nodoc: + blocks.each {|block| instance_eval(&block)} + end + + def eval_each_fail_slow(blocks) # :nodoc: + first_exception = nil + blocks.each do |block| + begin + instance_eval(&block) + rescue Exception => e + first_exception ||= e + end + end + raise first_exception if first_exception + end + + def instance_variable_hash # :nodoc: + instance_variables.inject({}) do |variable_hash, variable_name| + variable_hash[variable_name] = instance_variable_get(variable_name) + variable_hash + end + end + + def set_instance_variables_from_hash(ivars) # :nodoc: + ivars.each do |variable_name, value| + # Ruby 1.9 requires variable.to_s on the next line + unless ['@_proxy', '@_implementation', '@method_name'].include?(variable_name.to_s) + instance_variable_set variable_name, value + end + end + end + + # Run all the before(:each) blocks for this example + def run_before_each + example_group_hierarchy.run_before_each(self) + end + + # Run all the after(:each) blocks for this example + def run_after_each + example_group_hierarchy.run_after_each(self) + end + + def initialize(example_proxy, &implementation) + @_proxy = example_proxy + @_implementation = implementation + @_backtrace = caller + end + + private + + include Matchers + include Pending + + def before_each_example + setup_mocks_for_rspec + run_before_each + end + + def after_each_example + run_after_each + verify_mocks_for_rspec + ensure + teardown_mocks_for_rspec + end + + def described_class + self.class.described_class + end + + def description_args + self.class.description_args + end + + def example_group_hierarchy + self.class.example_group_hierarchy + end + + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/example/example_proxy.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/example/example_proxy.rb new file mode 100644 index 0000000..f726d0e --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/example/example_proxy.rb @@ -0,0 +1,41 @@ +module Spec + module Example + # Lightweight proxy for an example. This is the object that is passed to + # example-related methods in Spec::Runner::Formatter::BaseFormatter + class ExampleProxy + + def initialize(description=nil, options={}, location=nil) # :nodoc: + @description, @options, @location = description, options, location + end + + # Optional hash passed to the example declaration + attr_reader :options + + # This is the docstring passed to the it() method or any + # of its aliases + attr_reader :description + + # The file and line number at which the represented example + # was declared. This is extracted from caller, and is therefore + # formatted as an individual line in a backtrace. + attr_reader :location + + # Deprecated - use location() + def backtrace + Spec.deprecate("ExampleProxy#backtrace","ExampleProxy#location") + location + end + + # Convenience method for example group - updates the value of + # description and returns self. + def update(description) # :nodoc: + @description = description + self + end + + def ==(other) # :nodoc: + (other.description == description) & (other.location == location) + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/example/module_reopening_fix.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/example/module_reopening_fix.rb new file mode 100644 index 0000000..9ea088a --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/example/module_reopening_fix.rb @@ -0,0 +1,43 @@ +module Spec + module Example + # When you reopen a module that is included in another module that is included in a class, + # the new material you define does not make it to the class. This fixes that. + # + # == Example + # + # module M1; end + # + # module M2 + # def foo; "FOO"; end + # end + # + # class C + # include M1 + # end + # + # module M1 + # include M2 + # end + # + # c = C.new + # c.foo + # NoMethodError: undefined method `foo' for # + # from (irb):12 + module ModuleReopeningFix + def child_modules + @child_modules ||= [] + end + + def included(mod) + child_modules << mod + end + + def include(mod) + super + child_modules.each do |child_module| + child_module.__send__(:include, mod) + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/example/pending.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/example/pending.rb new file mode 100644 index 0000000..9aad1aa --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/example/pending.rb @@ -0,0 +1,18 @@ +module Spec + module Example + module Pending + def pending(message = "TODO") + if block_given? + begin + yield + rescue Exception + raise Spec::Example::ExamplePendingError.new(message) + end + raise Spec::Example::PendingExampleFixedError.new("Expected pending '#{message}' to fail. No Error was raised.") + else + raise Spec::Example::ExamplePendingError.new(message) + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/example/predicate_matchers.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/example/predicate_matchers.rb new file mode 100644 index 0000000..c3c3195 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/example/predicate_matchers.rb @@ -0,0 +1,46 @@ +module Spec + module Example + module PredicateMatchers + # :call-seq: + # predicate_matchers[matcher_name] = method_on_object + # predicate_matchers[matcher_name] = [method1_on_object, method2_on_object] + # + # Dynamically generates a custom matcher that will match + # a predicate on your class. RSpec provides a couple of these + # out of the box: + # + # exist (for state expectations) + # File.should exist("path/to/file") + # + # an_instance_of (for mock argument matchers) + # mock.should_receive(:message).with(an_instance_of(String)) + # + # == Examples + # + # class Fish + # def can_swim? + # true + # end + # end + # + # describe Fish do + # predicate_matchers[:swim] = :can_swim? + # it "should swim" do + # Fish.new.should swim + # end + # end + def predicate_matchers + @predicate_matchers ||= Spec::HashWithDeprecationNotice.new("predicate_matchers", "the new Matcher DSL") + end + + def define_methods_from_predicate_matchers # :nodoc: + predicate_matchers.each_pair do |matcher_method, method_on_object| + define_method matcher_method do |*args| + eval("be_#{method_on_object.to_s.gsub('?','')}(*args)") + end + end + end + + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/example/shared_example_group.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/example/shared_example_group.rb new file mode 100644 index 0000000..3369449 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/example/shared_example_group.rb @@ -0,0 +1,59 @@ +module Spec + module Example + class SharedExampleGroup < Module + module ClassMethods + def register(*args, &block) + new_example_group = new(*args, &block) + shared_example_groups << new_example_group unless already_registered?(new_example_group) + new_example_group + end + + def find(example_group_description) + shared_example_groups.find {|b| b.description == example_group_description} + end + + def clear + shared_example_groups.clear + end + + def include?(group) + shared_example_groups.include?(group) + end + + def count + shared_example_groups.length + end + + private + + def shared_example_groups + @shared_example_groups ||= [] + end + + def already_registered?(new_example_group) + existing_example_group = find(new_example_group.description) + return false unless existing_example_group + return true if new_example_group.equal?(existing_example_group) + return true if expanded_path(new_example_group) == expanded_path(existing_example_group) + raise ArgumentError.new("Shared Example '#{existing_example_group.description}' already exists") + end + + def expanded_path(example_group) + File.expand_path(example_group.location) + end + end + + extend ClassMethods + include ExampleGroupMethods + + def initialize(*args, &example_group_block) + set_description(*args) + @example_group_block = example_group_block + end + + def included(mod) # :nodoc: + mod.module_eval(&@example_group_block) + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/example/subject.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/example/subject.rb new file mode 100644 index 0000000..944edca --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/example/subject.rb @@ -0,0 +1,108 @@ +module Spec + module Example + module Subject + module ExampleGroupMethods + # Defines an explicit subject for an example group which can then be the + # implicit receiver (through delegation) of calls to +should+. + # + # == Examples + # + # describe CheckingAccount, "with $50" do + # subject { CheckingAccount.new(:amount => 50, :currency => :USD) } + # it { should have_a_balance_of(50, :USD) } + # it { should_not be_overdrawn } + # its(:currency) { should == :USD } + # end + # + # See +ExampleMethods#should+ for more information about this approach. + def subject(&block) + block.nil? ? + explicit_subject || implicit_subject : @explicit_subject_block = block + end + + def its(attribute, &block) + describe(attribute) do + define_method(:subject) { super().send(attribute) } + it(&block) + end + end + + attr_reader :explicit_subject_block # :nodoc: + + private + + def explicit_subject + group = self + while group.respond_to?(:explicit_subject_block) + return group.explicit_subject_block if group.explicit_subject_block + group = group.superclass + end + end + + def implicit_subject + (described_class ? lambda {described_class.new} : lambda {description_args.first}) + end + end + + module ExampleMethods + + alias_method :__should_for_example_group__, :should + alias_method :__should_not_for_example_group__, :should_not + + # Returns the subject defined in ExampleGroupMethods#subject. The + # subject block is only executed once per example, the result of which + # is cached and returned by any subsequent calls to +subject+. + # + # If a class is passed to +describe+ and no subject is explicitly + # declared in the example group, then +subject+ will return a new + # instance of that class. + # + # == Examples + # + # # explicit subject defined by the subject method + # describe Person do + # subject { Person.new(:birthdate => 19.years.ago) } + # it "should be eligible to vote" do + # subject.should be_eligible_to_vote + # end + # end + # + # # implicit subject => { Person.new } + # describe Person do + # it "should be eligible to vote" do + # subject.should be_eligible_to_vote + # end + # end + def subject + @subject ||= instance_eval(&self.class.subject) + end + + # When +should+ is called with no explicit receiver, the call is + # delegated to the object returned by +subject+. Combined with + # an implicit subject (see +subject+), this supports very concise + # expressions. + # + # == Examples + # + # describe Person do + # it { should be_eligible_to_vote } + # end + def should(matcher=nil, message=nil) + self == subject ? self.__should_for_example_group__(matcher) : subject.should(matcher,message) + end + + # Just like +should+, +should_not+ delegates to the subject (implicit or + # explicit) of the example group. + # + # == Examples + # + # describe Person do + # it { should_not be_eligible_to_vote } + # end + def should_not(matcher=nil, message=nil) + self == subject ? self.__should_not_for_example_group__(matcher) : subject.should_not(matcher,message) + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/expectations.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/expectations.rb new file mode 100644 index 0000000..13cf59b --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/expectations.rb @@ -0,0 +1,35 @@ +require 'spec/matchers' +require 'spec/expectations/fail_with' +require 'spec/expectations/errors' +require 'spec/expectations/extensions' +require 'spec/expectations/handler' + +module Spec + + # Spec::Expectations lets you set expectations on your objects. + # + # result.should == 37 + # team.should have(11).players_on_the_field + # + # == How Expectations work. + # + # Spec::Expectations adds two methods to Object: + # + # should(matcher=nil) + # should_not(matcher=nil) + # + # Both methods take an optional Expression Matcher (See Spec::Matchers). + # + # When +should+ receives an Expression Matcher, it calls matches?(self). If + # it returns +true+, the spec passes and execution continues. If it returns + # +false+, then the spec fails with the message returned by matcher.failure_message. + # + # Similarly, when +should_not+ receives a matcher, it calls matches?(self). If + # it returns +false+, the spec passes and execution continues. If it returns + # +true+, then the spec fails with the message returned by matcher.negative_failure_message. + # + # RSpec ships with a standard set of useful matchers, and writing your own + # matchers is quite simple. See Spec::Matchers for details. + module Expectations + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/expectations/errors.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/expectations/errors.rb new file mode 100644 index 0000000..1fabd10 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/expectations/errors.rb @@ -0,0 +1,12 @@ +module Spec + module Expectations + # If Test::Unit is loaed, we'll use its error as baseclass, so that Test::Unit + # will report unmet RSpec expectations as failures rather than errors. + superclass = ['Test::Unit::AssertionFailedError', '::StandardError'].map do |c| + eval(c) rescue nil + end.compact.first + + class ExpectationNotMetError < superclass + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/expectations/extensions.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/expectations/extensions.rb new file mode 100644 index 0000000..d68212e --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/expectations/extensions.rb @@ -0,0 +1 @@ +require 'spec/expectations/extensions/kernel' diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/expectations/extensions/kernel.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/expectations/extensions/kernel.rb new file mode 100644 index 0000000..7d88492 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/expectations/extensions/kernel.rb @@ -0,0 +1,52 @@ +module Kernel + # :call-seq: + # should(matcher) + # should == expected + # should === expected + # should =~ expected + # + # receiver.should(matcher) + # => Passes if matcher.matches?(receiver) + # + # receiver.should == expected #any value + # => Passes if (receiver == expected) + # + # receiver.should === expected #any value + # => Passes if (receiver === expected) + # + # receiver.should =~ regexp + # => Passes if (receiver =~ regexp) + # + # See Spec::Matchers for more information about matchers + # + # == Warning + # + # NOTE that this does NOT support receiver.should != expected. + # Instead, use receiver.should_not == expected + def should(matcher=nil, message=nil, &block) + Spec::Expectations::PositiveExpectationHandler.handle_matcher(self, matcher, message, &block) + end + + # :call-seq: + # should_not(matcher) + # should_not == expected + # should_not === expected + # should_not =~ expected + # + # receiver.should_not(matcher) + # => Passes unless matcher.matches?(receiver) + # + # receiver.should_not == expected + # => Passes unless (receiver == expected) + # + # receiver.should_not === expected + # => Passes unless (receiver === expected) + # + # receiver.should_not =~ regexp + # => Passes unless (receiver =~ regexp) + # + # See Spec::Matchers for more information about matchers + def should_not(matcher=nil, message=nil, &block) + Spec::Expectations::NegativeExpectationHandler.handle_matcher(self, matcher, message, &block) + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/expectations/fail_with.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/expectations/fail_with.rb new file mode 100644 index 0000000..5e01f99 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/expectations/fail_with.rb @@ -0,0 +1,45 @@ +module Spec + module Expectations + class << self + attr_accessor :differ + + # raises a Spec::Expectations::ExpectationNotMetError with message + # + # When a differ has been assigned and fail_with is passed + # expected and target, passes them + # to the differ to append a diff message to the failure message. + def fail_with(message, expected=nil, target=nil) # :nodoc: + if message.nil? + raise ArgumentError, "Failure message is nil. Does your matcher define the " + + "appropriate failure_message_for_* method to return a string?" + end + if (Array === message) & (message.length == 3) + ::Spec.warn(<<-NOTICE + +***************************************************************** +DEPRECATION WARNING: you are using deprecated behaviour that will +be removed from a future version of RSpec. + +* Support for matchers that return arrays from failure message +methods is deprecated. +* Instead, the matcher should return a string, and expose methods +for the expected() and actual() values. +***************************************************************** +NOTICE + ) + message, expected, target = message[0], message[1], message[2] + end + unless (differ.nil? || expected.nil? || target.nil?) + if expected.is_a?(String) + message << "\n\n Diff:" << self.differ.diff_as_string(target.to_s, expected) + elsif expected.is_a?(Hash) && target.is_a?(Hash) + message << "\n\n Diff:" << self.differ.diff_as_hash(target, expected) + elsif !target.is_a?(Proc) + message << "\n\n Diff:" << self.differ.diff_as_object(target, expected) + end + end + Kernel::raise(Spec::Expectations::ExpectationNotMetError.new(message)) + end + end + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/expectations/handler.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/expectations/handler.rb new file mode 100644 index 0000000..c059637 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/expectations/handler.rb @@ -0,0 +1,50 @@ +module Spec + module Expectations + class InvalidMatcherError < ArgumentError; end + + class PositiveExpectationHandler + def self.handle_matcher(actual, matcher, message=nil, &block) + ::Spec::Matchers.last_should = :should + ::Spec::Matchers.last_matcher = matcher + return ::Spec::Matchers::PositiveOperatorMatcher.new(actual) if matcher.nil? + + match = matcher.matches?(actual, &block) + return match if match + + message ||= matcher.respond_to?(:failure_message_for_should) ? + matcher.failure_message_for_should : + matcher.failure_message + + if matcher.respond_to?(:diffable?) && matcher.diffable? + ::Spec::Expectations.fail_with message, matcher.expected.first, matcher.actual + else + ::Spec::Expectations.fail_with message + end + end + end + + class NegativeExpectationHandler + def self.handle_matcher(actual, matcher, message=nil, &block) + ::Spec::Matchers.last_should = :should_not + ::Spec::Matchers.last_matcher = matcher + return ::Spec::Matchers::NegativeOperatorMatcher.new(actual) if matcher.nil? + + match = matcher.respond_to?(:does_not_match?) ? + !matcher.does_not_match?(actual, &block) : + matcher.matches?(actual, &block) + return match unless match + + message ||= matcher.respond_to?(:failure_message_for_should_not) ? + matcher.failure_message_for_should_not : + matcher.negative_failure_message + + if matcher.respond_to?(:diffable?) && matcher.diffable? + ::Spec::Expectations.fail_with message, matcher.expected.first, matcher.actual + else + ::Spec::Expectations.fail_with message + end + end + end + end +end + diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/interop/test.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/interop/test.rb new file mode 100644 index 0000000..284eb32 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/interop/test.rb @@ -0,0 +1,44 @@ +require 'spec' + +if Spec::Ruby.version.to_f >= 1.9 + gem 'test-unit','= 1.2.3' +end + +require 'test/unit' + +if Spec::Ruby.version.to_f >= 1.9 + require 'test/unit/version' + if Test::Unit::VERSION > '1.2.3' + raise <<-MESSAGE +#{'*' * 50} +Required: test-unit-1.2.3 +Loaded: test-unit-#{Test::Unit::VERSION} + +With ruby-1.9, rspec-#{Spec::VERSION::STRING} requires test-unit-1.2.3, and +tries to force it with "gem 'test-unit', '= 1.2.3'" in: + + #{__FILE__} + +Unfortunately, test-unit-#{Test::Unit::VERSION} was loaded anyway. While we are +aware of this bug we have not been able to track down its source. +Until we do, you have two alternatives: + +* uninstall test-unit-2.0.3 +* use 'script/spec' instead of 'rake spec' +#{'*' * 50} +MESSAGE + end +end + + +require 'test/unit/testresult' + +require 'spec/interop/test/unit/testcase' +require 'spec/interop/test/unit/testsuite_adapter' +require 'spec/interop/test/unit/autorunner' +require 'spec/interop/test/unit/testresult' +require 'spec/interop/test/unit/ui/console/testrunner' + +Spec::Example::ExampleGroupFactory.default(Test::Unit::TestCase) + +Test::Unit.run = true diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/interop/test/unit/autorunner.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/interop/test/unit/autorunner.rb new file mode 100644 index 0000000..3944e69 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/interop/test/unit/autorunner.rb @@ -0,0 +1,6 @@ +class Test::Unit::AutoRunner + remove_method :process_args + def process_args(argv) + true + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/interop/test/unit/testcase.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/interop/test/unit/testcase.rb new file mode 100644 index 0000000..dc10a2a --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/interop/test/unit/testcase.rb @@ -0,0 +1,56 @@ +require 'test/unit/testcase' + +module Test + module Unit + # This extension of the standard Test::Unit::TestCase makes RSpec + # available from within, so that you can do things like: + # + # require 'spec/test/unit' + # + # class MyTest < Test::Unit::TestCase + # it "should work with Test::Unit assertions" do + # assert_equal 4, 2+1 + # end + # + # def test_should_work_with_rspec_expectations + # (3+1).should == 5 + # end + # end + # + # See also Spec::Example::ExampleGroup + class TestCase + extend Spec::Example::ExampleGroupMethods + include Spec::Example::ExampleMethods + + def self.suite + Test::Unit::TestSuiteAdapter.new(self) + end + + def self.example_method?(method_name) + should_method?(method_name) || test_method?(method_name) + end + + def self.test_method?(method_name) + method_name =~ /^test./ && ( + instance_method(method_name).arity == 0 || + instance_method(method_name).arity == -1 + ) + end + + before(:each) {setup} + after(:each) {teardown} + + def initialize(description, &implementation) + super + # Some Test::Unit extensions depend on @method_name being present. + @method_name = description.description + @_result = ::Test::Unit::TestResult.new + end + + def run(ignore_this_argument=nil) + super() + end + + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/interop/test/unit/testresult.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/interop/test/unit/testresult.rb new file mode 100644 index 0000000..dddcfe8 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/interop/test/unit/testresult.rb @@ -0,0 +1,6 @@ +class Test::Unit::TestResult + alias_method :tu_passed?, :passed? + def passed? + return tu_passed? & ::Spec::Runner.run + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/interop/test/unit/testsuite_adapter.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/interop/test/unit/testsuite_adapter.rb new file mode 100644 index 0000000..912762f --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/interop/test/unit/testsuite_adapter.rb @@ -0,0 +1,34 @@ +module Test + module Unit + class TestSuiteAdapter < TestSuite + attr_reader :example_group, :examples + alias_method :tests, :examples + def initialize(example_group) + @example_group = example_group + @examples = example_group.examples + end + + def name + example_group.description + end + + def run(*args) + return true unless args.empty? + example_group.run(Spec::Runner.options) + end + + def size + example_group.number_of_examples + end + + def delete(example) + examples.delete example + end + + def empty? + examples.empty? + end + end + end +end + diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/interop/test/unit/ui/console/testrunner.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/interop/test/unit/ui/console/testrunner.rb new file mode 100644 index 0000000..8e9995e --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/interop/test/unit/ui/console/testrunner.rb @@ -0,0 +1,61 @@ +require 'test/unit/ui/console/testrunner' + +module Test + module Unit + module UI + module Console + class TestRunner + + alias_method :started_without_rspec, :started + def started_with_rspec(result) + @result = result + @need_to_output_started = true + end + alias_method :started, :started_with_rspec + + alias_method :test_started_without_rspec, :test_started + def test_started_with_rspec(name) + if @need_to_output_started + if @rspec_io + @rspec_io.rewind + output(@rspec_io.read) + end + output("Started") + @need_to_output_started = false + end + test_started_without_rspec(name) + end + alias_method :test_started, :test_started_with_rspec + + alias_method :test_finished_without_rspec, :test_finished + def test_finished_with_rspec(name) + test_finished_without_rspec(name) + @ran_test = true + end + alias_method :test_finished, :test_finished_with_rspec + + alias_method :finished_without_rspec, :finished + def finished_with_rspec(elapsed_time) + @ran_test ||= false + if @ran_test + finished_without_rspec(elapsed_time) + end + end + alias_method :finished, :finished_with_rspec + + alias_method :setup_mediator_without_rspec, :setup_mediator + def setup_mediator_with_rspec + orig_io = @io + @io = StringIO.new + setup_mediator_without_rspec + ensure + @rspec_io = @io + @io = orig_io + end + alias_method :setup_mediator, :setup_mediator_with_rspec + + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers.rb new file mode 100644 index 0000000..4ef8329 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers.rb @@ -0,0 +1,195 @@ +require 'spec/matchers/extensions/instance_exec' +require 'spec/matchers/pretty' +require 'spec/matchers/matcher' +require 'spec/matchers/operator_matcher' +require 'spec/matchers/be' +require 'spec/matchers/be_close' +require 'spec/matchers/be_instance_of' +require 'spec/matchers/be_kind_of' +require 'spec/matchers/change' +require 'spec/matchers/eql' +require 'spec/matchers/equal' +require 'spec/matchers/errors' +require 'spec/matchers/exist' +require 'spec/matchers/generated_descriptions' +require 'spec/matchers/has' +require 'spec/matchers/have' +require 'spec/matchers/include' +require 'spec/matchers/match' +require 'spec/matchers/match_array' +require 'spec/matchers/method_missing' +require 'spec/matchers/raise_error' +require 'spec/matchers/respond_to' +require 'spec/matchers/satisfy' +require 'spec/matchers/simple_matcher' +require 'spec/matchers/throw_symbol' +require 'spec/matchers/wrap_expectation' +require 'spec/matchers/compatibility' +require 'spec/matchers/dsl' + +module Spec + + # RSpec ships with a number of useful Expression Matchers. An Expression Matcher + # is any object that responds to the following methods: + # + # matches?(actual) + # failure_message_for_should + # + # These methods are also part of the matcher protocol, but are optional: + # + # does_not_match?(actual) + # failure_message_for_should_not + # description #optional + # + # These methods are from older versions of the protocol. They are still supported, + # but are not recommended: + # + # failure_message (use failure_message_for_should instead) + # negative_failure_message (use failure_message_for_should_not instead) + # + # See Spec::Expectations to learn how to use these as Expectation Matchers. + # + # == Predicates + # + # In addition to those Expression Matchers that are defined explicitly, RSpec will + # create custom Matchers on the fly for any arbitrary predicate, giving your specs + # a much more natural language feel. + # + # A Ruby predicate is a method that ends with a "?" and returns true or false. + # Common examples are +empty?+, +nil?+, and +instance_of?+. + # + # All you need to do is write +should be_+ followed by the predicate without + # the question mark, and RSpec will figure it out from there. For example: + # + # [].should be_empty => [].empty? #passes + # [].should_not be_empty => [].empty? #fails + # + # In addtion to prefixing the predicate matchers with "be_", you can also use "be_a_" + # and "be_an_", making your specs read much more naturally: + # + # "a string".should be_an_instance_of(String) =>"a string".instance_of?(String) #passes + # + # 3.should be_a_kind_of(Fixnum) => 3.kind_of?(Numeric) #passes + # 3.should be_a_kind_of(Numeric) => 3.kind_of?(Numeric) #passes + # 3.should be_an_instance_of(Fixnum) => 3.instance_of?(Fixnum) #passes + # 3.should_not be_instance_of(Numeric) => 3.instance_of?(Numeric) #fails + # + # RSpec will also create custom matchers for predicates like +has_key?+. To + # use this feature, just state that the object should have_key(:key) and RSpec will + # call has_key?(:key) on the target. For example: + # + # {:a => "A"}.should have_key(:a) => {:a => "A"}.has_key?(:a) #passes + # {:a => "A"}.should have_key(:b) => {:a => "A"}.has_key?(:b) #fails + # + # You can use this feature to invoke any predicate that begins with "has_", whether it is + # part of the Ruby libraries (like +Hash#has_key?+) or a method you wrote on your own class. + # + # == Custom Matchers + # + # When you find that none of the stock Expectation Matchers provide a natural + # feeling expectation, you can very easily write your own using RSpec's matcher + # DSL or writing one from scratch. + # + # === Matcher DSL + # + # Imagine that you are writing a game in which players can be in various + # zones on a virtual board. To specify that bob should be in zone 4, you + # could say: + # + # bob.current_zone.should eql(Zone.new("4")) + # + # But you might find it more expressive to say: + # + # bob.should be_in_zone("4") + # + # and/or + # + # bob.should_not be_in_zone("3") + # + # You can create such a matcher like so: + # + # Spec::Matchers.define :be_in_zone do |zone| + # match do |player| + # player.in_zone?(zone) + # end + # end + # + # This will generate a be_in_zone method that returns a matcher + # with logical default messages for failures. You can override the failure + # messages and the generated description as follows: + # + # Spec::Matchers.define :be_in_zone do |zone| + # match do |player| + # player.in_zone?(zone) + # end + # failure_message_for_should do |player| + # # generate and return the appropriate string. + # end + # failure_message_for_should_not do |player| + # # generate and return the appropriate string. + # end + # description do + # # generate and return the appropriate string. + # end + # end + # + # Each of the message-generation methods has access to the block arguments + # passed to the create method (in this case, zone). The + # failure message methods (failure_message_for_should and + # failure_message_for_should_not) are passed the actual value (the + # receiver of should or should_not). + # + # === Custom Matcher from scratch + # + # You could also write a custom matcher from scratch, as follows: + # + # class BeInZone + # def initialize(expected) + # @expected = expected + # end + # def matches?(target) + # @target = target + # @target.current_zone.eql?(Zone.new(@expected)) + # end + # def failure_message_for_should + # "expected #{@target.inspect} to be in Zone #{@expected}" + # end + # def failure_message_for_should_not + # "expected #{@target.inspect} not to be in Zone #{@expected}" + # end + # end + # + # ... and a method like this: + # + # def be_in_zone(expected) + # BeInZone.new(expected) + # end + # + # And then expose the method to your specs. This is normally done + # by including the method and the class in a module, which is then + # included in your spec: + # + # module CustomGameMatchers + # class BeInZone + # ... + # end + # + # def be_in_zone(expected) + # ... + # end + # end + # + # describe "Player behaviour" do + # include CustomGameMatchers + # ... + # end + # + # or you can include in globally in a spec_helper.rb file required + # from your spec file(s): + # + # Spec::Runner.configure do |config| + # config.include(CustomGameMatchers) + # end + # + module Matchers; end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/be.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/be.rb new file mode 100644 index 0000000..242f7c5 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/be.rb @@ -0,0 +1,210 @@ +module Spec + module Matchers + + class Be #:nodoc: + include Spec::Matchers::Pretty + + def initialize(*args) + @expected = args.empty? ? true : set_expected(args.shift) + @args = args + @comparison_method = nil + end + + def matches?(actual) + @actual = actual + handling_predicate? ? run_predicate_on(actual) : match_or_compare(actual) + end + + def run_predicate_on(actual) + begin + return @result = actual.__send__(predicate, *@args) + rescue NameError => predicate_missing_error + "this needs to be here or rcov will not count this branch even though it's executed in a code example" + end + + begin + return @result = actual.__send__(present_tense_predicate, *@args) + rescue NameError + raise predicate_missing_error + end + end + + def failure_message_for_should + if handling_predicate? + if predicate == :nil? + "expected nil, got #{@actual.inspect}" + else + "expected #{predicate}#{args_to_s} to return true, got #{@result.inspect}" + end + else + "expected #{@comparison_method} #{expected}, got #{@actual.inspect}".gsub(' ',' ') + end + end + + def failure_message_for_should_not + if handling_predicate? + if predicate == :nil? + "expected not nil, got nil" + else + "expected #{predicate}#{args_to_s} to return false, got #{@result.inspect}" + end + else + message = <<-MESSAGE +'should_not be #{@comparison_method} #{expected}' not only FAILED, +it is a bit confusing. + MESSAGE + + raise message << ([:===,:==].include?(@comparison_method) ? + "It might be more clearly expressed without the \"be\"?" : + "It might be more clearly expressed in the positive?") + end + end + + def description + "#{prefix_to_sentence}#{comparison} #{expected_to_sentence}#{args_to_sentence}".gsub(/\s+/,' ') + end + + [:==, :<, :<=, :>=, :>, :===].each do |method| + define_method method do |expected| + compare_to(expected, :using => method) + self + end + end + + private + def match_or_compare(actual) + TrueClass === @expected ? @actual : @actual.__send__(comparison_method, @expected) + end + + def comparison_method + @comparison_method || :equal? + end + + def expected + @expected + end + + def compare_to(expected, opts) + @expected, @comparison_method = expected, opts[:using] + end + + def set_expected(expected) + Symbol === expected ? parse_expected(expected) : expected + end + + def parse_expected(expected) + ["be_an_","be_a_","be_"].each do |prefix| + handling_predicate! + if expected.to_s =~ /^#{prefix}/ + set_prefix(prefix) + expected = expected.to_s.sub(prefix,"") + [true, false, nil].each do |val| + return val if val.to_s == expected + end + return expected.to_sym + end + end + end + + def set_prefix(prefix) + @prefix = prefix + end + + def prefix + # FIXME - this is a bit goofy - but we get failures + # if just defining @prefix = nil in initialize + @prefix = nil unless defined?(@prefix) + @prefix + end + + def handling_predicate! + @handling_predicate = true + end + + def handling_predicate? + return false if [true, false, nil].include?(expected) + # FIXME - this is a bit goofy - but we get failures + # if just defining @handling_predicate = nil or false in initialize + return defined?(@handling_predicate) ? @handling_predicate : nil + end + + def predicate + "#{@expected.to_s}?".to_sym + end + + def present_tense_predicate + "#{@expected.to_s}s?".to_sym + end + + def args_to_s + @args.empty? ? "" : parenthesize(inspected_args.join(', ')) + end + + def parenthesize(string) + return "(#{string})" + end + + def inspected_args + @args.collect{|a| a.inspect} + end + + def comparison + @comparison_method.nil? ? " " : "be #{@comparison_method.to_s} " + end + + def expected_to_sentence + split_words(expected) + end + + def prefix_to_sentence + split_words(prefix) + end + + def args_to_sentence + to_sentence(@args) + end + + end + + # :call-seq: + # should be_true + # should be_false + # should be_nil + # should be_[arbitrary_predicate](*args) + # should_not be_nil + # should_not be_[arbitrary_predicate](*args) + # + # Given true, false, or nil, will pass if actual value is + # true, false or nil (respectively). Given no args means + # the caller should satisfy an if condition (to be or not to be). + # + # Predicates are any Ruby method that ends in a "?" and returns true or false. + # Given be_ followed by arbitrary_predicate (without the "?"), RSpec will match + # convert that into a query against the target object. + # + # The arbitrary_predicate feature will handle any predicate + # prefixed with "be_an_" (e.g. be_an_instance_of), "be_a_" (e.g. be_a_kind_of) + # or "be_" (e.g. be_empty), letting you choose the prefix that best suits the predicate. + # + # == Examples + # + # target.should be_true + # target.should be_false + # target.should be_nil + # target.should_not be_nil + # + # collection.should be_empty #passes if target.empty? + # target.should_not be_empty #passes unless target.empty? + # target.should_not be_old_enough(16) #passes unless target.old_enough?(16) + def be(*args) + Matchers::Be.new(*args) + end + + # passes if target.kind_of?(klass) + def be_a(klass) + be_a_kind_of(klass) + end + + alias_method :be_an, :be_a + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/be_close.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/be_close.rb new file mode 100644 index 0000000..28015f5 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/be_close.rb @@ -0,0 +1,32 @@ +module Spec + module Matchers + # :call-seq: + # should be_close(expected, delta) + # should_not be_close(expected, delta) + # + # Passes if actual == expected +/- delta + # + # == Example + # + # result.should be_close(3.0, 0.5) + def be_close(expected, delta) + Matcher.new :be_close, expected, delta do |_expected_, _delta_| + match do |actual| + (actual - _expected_).abs < _delta_ + end + + failure_message_for_should do |actual| + "expected #{_expected_} +/- (< #{_delta_}), got #{actual}" + end + + failure_message_for_should_not do |actual| + "expected #{_expected_} +/- (< #{_delta_}), got #{actual}" + end + + description do + "be close to #{_expected_} (within +- #{_delta_})" + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/be_instance_of.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/be_instance_of.rb new file mode 100644 index 0000000..ffc2384 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/be_instance_of.rb @@ -0,0 +1,26 @@ +module Spec + module Matchers + # :call-seq: + # should be_instance_of(expected) + # should be_an_instance_of(expected) + # should_not be_instance_of(expected) + # should_not be_an_instance_of(expected) + # + # Passes if actual.instance_of?(expected) + # + # == Examples + # + # 5.should be_instance_of(Fixnum) + # 5.should_not be_instance_of(Numeric) + # 5.should_not be_instance_of(Float) + def be_an_instance_of(expected) + Matcher.new :be_an_instance_of, expected do |_expected_| + match do |actual| + actual.instance_of?(_expected_) + end + end + end + + alias_method :be_instance_of, :be_an_instance_of + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/be_kind_of.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/be_kind_of.rb new file mode 100644 index 0000000..6a1fddc --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/be_kind_of.rb @@ -0,0 +1,26 @@ +module Spec + module Matchers + # :call-seq: + # should be_kind_of(expected) + # should be_a_kind_of(expected) + # should_not be_kind_of(expected) + # should_not be_a_kind_of(expected) + # + # Passes if actual.kind_of?(expected) + # + # == Examples + # + # 5.should be_kind_of(Fixnum) + # 5.should be_kind_of(Numeric) + # 5.should_not be_kind_of(Float) + def be_a_kind_of(expected) + Matcher.new :be_a_kind_of, expected do |_expected_| + match do |actual| + actual.kind_of?(_expected_) + end + end + end + + alias_method :be_kind_of, :be_a_kind_of + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/change.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/change.rb new file mode 100644 index 0000000..c8ab9e5 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/change.rb @@ -0,0 +1,151 @@ +module Spec + module Matchers + + #Based on patch from Wilson Bilkovich + class Change #:nodoc: + def initialize(receiver=nil, message=nil, &block) + @message = message || "result" + @value_proc = block || lambda {receiver.__send__(message)} + @to = @from = @minimum = @maximum = @amount = nil + end + + def matches?(event_proc) + raise_block_syntax_error if block_given? + + @before = evaluate_value_proc + event_proc.call + @after = evaluate_value_proc + + return (@to = false) if @from unless @from == @before + return false if @to unless @to == @after + return (@before + @amount == @after) if @amount + return ((@after - @before) >= @minimum) if @minimum + return ((@after - @before) <= @maximum) if @maximum + return @before != @after + end + + def raise_block_syntax_error + raise MatcherError.new(<<-MESSAGE +block passed to should or should_not change must use {} instead of do/end +MESSAGE + ) + end + + def evaluate_value_proc + @value_proc.call + end + + def failure_message_for_should + if @to + "#{@message} should have been changed to #{@to.inspect}, but is now #{@after.inspect}" + elsif @from + "#{@message} should have initially been #{@from.inspect}, but was #{@before.inspect}" + elsif @amount + "#{@message} should have been changed by #{@amount.inspect}, but was changed by #{actual_delta.inspect}" + elsif @minimum + "#{@message} should have been changed by at least #{@minimum.inspect}, but was changed by #{actual_delta.inspect}" + elsif @maximum + "#{@message} should have been changed by at most #{@maximum.inspect}, but was changed by #{actual_delta.inspect}" + else + "#{@message} should have changed, but is still #{@before.inspect}" + end + end + + def actual_delta + @after - @before + end + + def failure_message_for_should_not + "#{@message} should not have changed, but did change from #{@before.inspect} to #{@after.inspect}" + end + + def by(amount) + @amount = amount + self + end + + def by_at_least(minimum) + @minimum = minimum + self + end + + def by_at_most(maximum) + @maximum = maximum + self + end + + def to(to) + @to = to + self + end + + def from (from) + @from = from + self + end + + def description + "change ##{@message}" + end + end + + # :call-seq: + # should change(receiver, message, &block) + # should change(receiver, message, &block).by(value) + # should change(receiver, message, &block).from(old).to(new) + # should_not change(receiver, message, &block) + # + # Allows you to specify that a Proc will cause some value to change. + # + # == Examples + # + # lambda { + # team.add_player(player) + # }.should change(roster, :count) + # + # lambda { + # team.add_player(player) + # }.should change(roster, :count).by(1) + # + # lambda { + # team.add_player(player) + # }.should change(roster, :count).by_at_least(1) + # + # lambda { + # team.add_player(player) + # }.should change(roster, :count).by_at_most(1) + # + # string = "string" + # lambda { + # string.reverse! + # }.should change { string }.from("string").to("gnirts") + # + # lambda { + # person.happy_birthday + # }.should change(person, :birthday).from(32).to(33) + # + # lambda { + # employee.develop_great_new_social_networking_app + # }.should change(employee, :title).from("Mail Clerk").to("CEO") + # + # Evaluates receiver.message or block before and after + # it evaluates the c object (generated by the lambdas in the examples + # above). + # + # Then compares the values before and after the receiver.message + # and evaluates the difference compared to the expected difference. + # + # == WARNING + # should_not change only supports the form with no + # subsequent calls to by, by_at_least, + # by_at_most, to or from. + # + # blocks passed to should change and should_not + # change must use the {} form (do/end is not + # supported). + # + def change(receiver=nil, message=nil, &block) + Matchers::Change.new(receiver, message, &block) + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/compatibility.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/compatibility.rb new file mode 100644 index 0000000..3b3ddb9 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/compatibility.rb @@ -0,0 +1,14 @@ +Spec::Matchers.constants.each do |c| + if Class === (klass = Spec::Matchers.const_get(c)) + if klass.public_instance_methods.any? {|m| ['failure_message_for_should',:failure_message_for_should].include?(m)} + klass.class_eval do + alias_method :failure_message, :failure_message_for_should + end + end + if klass.public_instance_methods.any? {|m| ['failure_message_for_should_not',:failure_message_for_should_not].include?(m)} + klass.class_eval do + alias_method :negative_failure_message, :failure_message_for_should_not + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/dsl.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/dsl.rb new file mode 100644 index 0000000..73f3634 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/dsl.rb @@ -0,0 +1,20 @@ +module Spec + module Matchers + module DSL + # See Spec::Matchers + def define(name, &declarations) + define_method name do |*expected| + Spec::Matchers::Matcher.new name, *expected, &declarations + end + end + + # Deprecated - use define + def create(name, &declarations) + Spec.deprecate("Spec::Matchers.create","Spec::Matchers.define") + define(name, &declarations) + end + end + end +end + +Spec::Matchers.extend Spec::Matchers::DSL diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/eql.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/eql.rb new file mode 100644 index 0000000..98ab198 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/eql.rb @@ -0,0 +1,42 @@ +module Spec + module Matchers + # :call-seq: + # should eql(expected) + # should_not eql(expected) + # + # Passes if actual and expected are of equal value, but not necessarily the same object. + # + # See http://www.ruby-doc.org/core/classes/Object.html#M001057 for more information about equality in Ruby. + # + # == Examples + # + # 5.should eql(5) + # 5.should_not eql(3) + def eql(expected) + Matcher.new :eql, expected do |_expected_| + match do |actual| + actual.eql?(_expected_) + end + + failure_message_for_should do |actual| + <<-MESSAGE + +expected #{_expected_.inspect} + got #{actual.inspect} + +(compared using eql?) +MESSAGE + end + + failure_message_for_should_not do |actual| + <<-MESSAGE + +expected #{actual.inspect} not to equal #{_expected_.inspect} + +(compared using eql?) +MESSAGE + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/equal.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/equal.rb new file mode 100644 index 0000000..3580a95 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/equal.rb @@ -0,0 +1,53 @@ +module Spec + module Matchers + + # :call-seq: + # should equal(expected) + # should_not equal(expected) + # + # Passes if actual and expected are the same object (object identity). + # + # See http://www.ruby-doc.org/core/classes/Object.html#M001057 for more information about equality in Ruby. + # + # == Examples + # + # 5.should equal(5) #Fixnums are equal + # "5".should_not equal("5") #Strings that look the same are not the same object + def equal(expected) + Matcher.new :equal, expected do |_expected_| + match do |actual| + actual.equal?(_expected_) + end + + def inspect_object(o) + "#<#{o.class}:#{o.object_id}> => #{o.inspect}" + end + + failure_message_for_should do |actual| + <<-MESSAGE + +expected #{inspect_object(_expected_)} + got #{inspect_object(actual)} + +Compared using equal?, which compares object identity, +but expected and actual are not the same object. Use +'actual.should == expected' if you don't care about +object identity in this example. + +MESSAGE + end + + failure_message_for_should_not do |actual| + <<-MESSAGE + +expected not #{inspect_object(actual)} + got #{inspect_object(_expected_)} + +Compared using equal?, which compares object identity. + +MESSAGE + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/errors.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/errors.rb new file mode 100644 index 0000000..49c2677 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/errors.rb @@ -0,0 +1,5 @@ +module Spec + module Matchers + class MatcherError < StandardError; end + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/exist.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/exist.rb new file mode 100644 index 0000000..dc69c68 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/exist.rb @@ -0,0 +1,16 @@ +module Spec + module Matchers + # :call-seq: + # should exist + # should_not exist + # + # Passes if actual.exist? + def exist(arg=nil) + Matcher.new :exist do + match do |actual| + arg ? actual.exist?(arg) : actual.exist? + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/extensions/instance_exec.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/extensions/instance_exec.rb new file mode 100644 index 0000000..ca7e14e --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/extensions/instance_exec.rb @@ -0,0 +1,31 @@ +module Spec + module Matchers + module InstanceExec + unless respond_to?(:instance_exec) + # based on Bounded Spec InstanceExec (Mauricio Fernandez) + # http://eigenclass.org/hiki/bounded+space+instance_exec + # - uses singleton_class of matcher instead of global + # InstanceExecHelper module + # - this keeps it scoped to this class only, which is the + # only place we need it + # - only necessary for ruby 1.8.6 + def instance_exec(*args, &block) + singleton_class = (class << self; self; end) + begin + orig_critical, Thread.critical = Thread.critical, true + n = 0 + n += 1 while respond_to?(method_name="__instance_exec#{n}") + singleton_class.module_eval{ define_method(:__instance_exec, &block) } + ensure + Thread.critical = orig_critical + end + begin + return send(:__instance_exec, *args) + ensure + singleton_class.module_eval{ remove_method(:__instance_exec) } rescue nil + end + end + end + end + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/generated_descriptions.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/generated_descriptions.rb new file mode 100644 index 0000000..2340f57 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/generated_descriptions.rb @@ -0,0 +1,36 @@ +module Spec + module Matchers + class << self + attr_accessor :last_matcher, :last_should # :nodoc: + end + + def self.clear_generated_description + self.last_matcher = nil + self.last_should = nil + end + + def self.generated_description + return nil if last_should.nil? + "#{last_should.to_s.gsub('_',' ')} #{last_description}" + end + + private + + def self.last_description + last_matcher.respond_to?(:description) ? last_matcher.description : <<-MESSAGE +When you call a matcher in an example without a String, like this: + +specify { object.should matcher } + +or this: + +it { should matcher } + +RSpec expects the matcher to have a #description method. You should either +add a String to the example this matcher is being used in, or give it a +description method. Then you won't have to suffer this lengthy warning again. +MESSAGE + end + end +end + diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/has.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/has.rb new file mode 100644 index 0000000..7073e0a --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/has.rb @@ -0,0 +1,35 @@ +module Spec + module Matchers + + class Has + + def initialize(expected, *args) + @expected, @args = expected, args + end + + def matches?(actual) + actual.__send__(predicate(@expected), *@args) + end + + def failure_message_for_should + "expected ##{predicate(@expected)}(#{@args[0].inspect}) to return true, got false" + end + + def failure_message_for_should_not + "expected ##{predicate(@expected)}(#{@args[0].inspect}) to return false, got true" + end + + def description + "have key #{@args[0].inspect}" + end + + private + + def predicate(sym) + "#{sym.to_s.sub("have_","has_")}?".to_sym + end + + end + + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/have.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/have.rb new file mode 100644 index 0000000..2975ee1 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/have.rb @@ -0,0 +1,151 @@ +module Spec + module Matchers + class Have #:nodoc: + def initialize(expected, relativity=:exactly) + @expected = (expected == :no ? 0 : expected) + @relativity = relativity + @actual = nil + end + + def relativities + @relativities ||= { + :exactly => "", + :at_least => "at least ", + :at_most => "at most " + } + end + + def matches?(collection_owner) + if collection_owner.respond_to?(@collection_name) + collection = collection_owner.__send__(@collection_name, *@args, &@block) + elsif (@plural_collection_name && collection_owner.respond_to?(@plural_collection_name)) + collection = collection_owner.__send__(@plural_collection_name, *@args, &@block) + elsif (collection_owner.respond_to?(:length) || collection_owner.respond_to?(:size)) + collection = collection_owner + else + collection_owner.__send__(@collection_name, *@args, &@block) + end + @actual = collection.size if collection.respond_to?(:size) + @actual = collection.length if collection.respond_to?(:length) + raise not_a_collection if @actual.nil? + return @actual >= @expected if @relativity == :at_least + return @actual <= @expected if @relativity == :at_most + return @actual == @expected + end + + def not_a_collection + "expected #{@collection_name} to be a collection but it does not respond to #length or #size" + end + + def failure_message_for_should + "expected #{relative_expectation} #{@collection_name}, got #{@actual}" + end + + def failure_message_for_should_not + if @relativity == :exactly + return "expected target not to have #{@expected} #{@collection_name}, got #{@actual}" + elsif @relativity == :at_most + return <<-EOF +Isn't life confusing enough? +Instead of having to figure out the meaning of this: + should_not have_at_most(#{@expected}).#{@collection_name} +We recommend that you use this instead: + should have_at_least(#{@expected + 1}).#{@collection_name} +EOF + elsif @relativity == :at_least + return <<-EOF +Isn't life confusing enough? +Instead of having to figure out the meaning of this: + should_not have_at_least(#{@expected}).#{@collection_name} +We recommend that you use this instead: + should have_at_most(#{@expected - 1}).#{@collection_name} +EOF + end + end + + def description + "have #{relative_expectation} #{@collection_name}" + end + + def respond_to?(sym) + @expected.respond_to?(sym) || super + end + + private + + def method_missing(sym, *args, &block) + @collection_name = sym + if inflector = (defined?(ActiveSupport::Inflector) ? ActiveSupport::Inflector : (defined?(Inflector) ? Inflector : nil)) + @plural_collection_name = inflector.pluralize(sym.to_s) + end + @args = args + @block = block + self + end + + def relative_expectation + "#{relativities[@relativity]}#{@expected}" + end + end + + # :call-seq: + # should have(number).named_collection__or__sugar + # should_not have(number).named_collection__or__sugar + # + # Passes if receiver is a collection with the submitted + # number of items OR if the receiver OWNS a collection + # with the submitted number of items. + # + # If the receiver OWNS the collection, you must use the name + # of the collection. So if a Team instance has a + # collection named #players, you must use that name + # to set the expectation. + # + # If the receiver IS the collection, you can use any name + # you like for named_collection. We'd recommend using + # either "elements", "members", or "items" as these are all + # standard ways of describing the things IN a collection. + # + # This also works for Strings, letting you set an expectation + # about its length + # + # == Examples + # + # # Passes if team.players.size == 11 + # team.should have(11).players + # + # # Passes if [1,2,3].length == 3 + # [1,2,3].should have(3).items #"items" is pure sugar + # + # # Passes if "this string".length == 11 + # "this string".should have(11).characters #"characters" is pure sugar + def have(n) + Matchers::Have.new(n) + end + alias :have_exactly :have + + # :call-seq: + # should have_at_least(number).items + # + # Exactly like have() with >=. + # + # == Warning + # + # +should_not+ +have_at_least+ is not supported + def have_at_least(n) + Matchers::Have.new(n, :at_least) + end + + # :call-seq: + # should have_at_most(number).items + # + # Exactly like have() with <=. + # + # == Warning + # + # +should_not+ +have_at_most+ is not supported + def have_at_most(n) + Matchers::Have.new(n, :at_most) + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/include.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/include.rb new file mode 100644 index 0000000..a2a7fe3 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/include.rb @@ -0,0 +1,44 @@ +module Spec + module Matchers + # :call-seq: + # should include(expected) + # should_not include(expected) + # + # Passes if actual includes expected. This works for + # collections and Strings. You can also pass in multiple args + # and it will only pass if all args are found in collection. + # + # == Examples + # + # [1,2,3].should include(3) + # [1,2,3].should include(2,3) #would pass + # [1,2,3].should include(2,3,4) #would fail + # [1,2,3].should_not include(4) + # "spread".should include("read") + # "spread".should_not include("red") + def include(*expected) + Matcher.new :include, *expected do |*_expected_| + match do |actual| + helper(actual, *_expected_) + end + + def helper(actual, *_expected_) + _expected_.each do |expected| + if actual.is_a?(Hash) + if expected.is_a?(Hash) + expected.each_pair do |k,v| + return false unless actual[k] == v + end + else + return false unless actual.has_key?(expected) + end + else + return false unless actual.include?(expected) + end + end + true + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/match.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/match.rb new file mode 100644 index 0000000..b4b9ea8 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/match.rb @@ -0,0 +1,21 @@ +module Spec + module Matchers + # :call-seq: + # should match(pattern) + # should_not match(pattern) + # + # Given a Regexp or String, passes if actual.match(pattern) + # + # == Examples + # + # email.should match(/^([^\s]+)((?:[-a-z0-9]+\.)+[a-z]{2,})$/i) + # email.should match("@example.com") + def match(expected) + Matcher.new :match, expected do |_expected_| + match do |actual| + actual.match(_expected_) + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/match_array.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/match_array.rb new file mode 100644 index 0000000..51b4f39 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/match_array.rb @@ -0,0 +1,71 @@ +module Spec + module Matchers + + class MatchArray #:nodoc: + include Spec::Matchers::Pretty + + def initialize(expected) + @expected = expected + end + + def matches?(actual) + @actual = actual + @extra_items = difference_between_arrays(@actual, @expected) + @missing_items = difference_between_arrays(@expected, @actual) + @extra_items.empty? & @missing_items.empty? + end + + def failure_message_for_should + message = "expected collection contained: #{safe_sort(@expected).inspect}\n" + message += "actual collection contained: #{safe_sort(@actual).inspect}\n" + message += "the missing elements were: #{safe_sort(@missing_items).inspect}\n" unless @missing_items.empty? + message += "the extra elements were: #{safe_sort(@extra_items).inspect}\n" unless @extra_items.empty? + message + end + + def failure_message_for_should_not + "Matcher does not support should_not" + end + + def description + "contain exactly #{_pretty_print(@expected)}" + end + + private + + def safe_sort(array) + array.all?{|item| item.respond_to?(:<=>)} ? array.sort : array + end + + def difference_between_arrays(array_1, array_2) + difference = array_1.dup + array_2.each do |element| + if index = difference.index(element) + difference.delete_at(index) + end + end + difference + end + + + end + + # :call-seq: + # should =~ expected + # + # Passes if actual contains all of the expected regardless of order. + # This works for collections. Pass in multiple args and it will only + # pass if all args are found in collection. + # + # NOTE: there is no should_not version of array.should =~ other_array + # + # == Examples + # + # [1,2,3].should =~ [1,2,3] # => would pass + # [1,2,3].should =~ [2,3,1] # => would pass + # [1,2,3,4].should =~ [1,2,3] # => would fail + # [1,2,2,3].should =~ [1,2,3] # => would fail + # [1,2,3].should =~ [1,2,3,4] # => would fail + OperatorMatcher.register(Array, '=~', Spec::Matchers::MatchArray) + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/matcher.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/matcher.rb new file mode 100644 index 0000000..165ddff --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/matcher.rb @@ -0,0 +1,87 @@ +module Spec + module Matchers + class Matcher + include Spec::Matchers::InstanceExec + include Spec::Matchers::Pretty + include Spec::Matchers + + attr_reader :expected, :actual + + def initialize(name, *expected, &declarations) + @name = name + @expected = expected + @actual = nil + @diffable = false + @messages = { + :description => lambda {"#{name_to_sentence}#{expected_to_sentence}"}, + :failure_message_for_should => lambda {|actual| "expected #{actual.inspect} to #{name_to_sentence}#{expected_to_sentence}"}, + :failure_message_for_should_not => lambda {|actual| "expected #{actual.inspect} not to #{name_to_sentence}#{expected_to_sentence}"} + } + making_declared_methods_public do + instance_exec(*@expected, &declarations) + end + end + + def matches?(actual) + instance_exec(@actual = actual, &@match_block) + end + + def description(&block) + cache_or_call_cached(:description, &block) + end + + def failure_message_for_should(&block) + cache_or_call_cached(:failure_message_for_should, actual, &block) + end + + def failure_message_for_should_not(&block) + cache_or_call_cached(:failure_message_for_should_not, actual, &block) + end + + def match(&block) + @match_block = block + end + + def diffable? + @diffable + end + + def diffable + @diffable = true + end + + private + + def making_declared_methods_public # :nodoc: + # Our home-grown instance_exec in ruby 1.8.6 results in any methods + # declared in the block eval'd by instance_exec in the block to which we + # are yielding here are scoped private. This is NOT the case for Ruby + # 1.8.7 or 1.9. + # + # Also, due some crazy scoping that I don't understand, these methods + # are actually available in the specs (something about the matcher being + # defined in the scope of Spec::Matchers or within an example), so not + # doing the following will not cause specs to fail, but they *will* + # cause features to fail and that will make users unhappy. So don't. + orig_private_methods = private_methods + yield + st = (class << self; self; end) + (private_methods - orig_private_methods).each {|m| st.__send__ :public, m} + end + + def cache_or_call_cached(key, actual=nil, &block) + block ? @messages[key] = block : + actual.nil? ? @messages[key].call : @messages[key].call(actual) + end + + def name_to_sentence + split_words(@name) + end + + def expected_to_sentence + to_sentence(@expected) + end + + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/method_missing.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/method_missing.rb new file mode 100644 index 0000000..ae7f397 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/method_missing.rb @@ -0,0 +1,9 @@ +module Spec + module Matchers + def method_missing(sym, *args, &block) # :nodoc: + return Matchers::Be.new(sym, *args) if sym.to_s =~ /^be_/ + return Matchers::Has.new(sym, *args) if sym.to_s =~ /^have_/ + super + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/operator_matcher.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/operator_matcher.rb new file mode 100644 index 0000000..30295be --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/operator_matcher.rb @@ -0,0 +1,78 @@ +module Spec + module Matchers + + class OperatorMatcher + class << self + def registry + @registry ||= {} + end + + def register(klass, operator, matcher) + registry[klass] ||= {} + registry[klass][operator] = matcher + end + + def get(klass, operator) + registry[klass] && registry[klass][operator] + end + end + + def initialize(actual) + @actual = actual + end + + def self.use_custom_matcher_or_delegate(operator) + define_method(operator) do |expected| + if matcher = OperatorMatcher.get(@actual.class, operator) + @actual.send(::Spec::Matchers.last_should, matcher.new(expected)) + else + eval_match(@actual, operator, expected) + end + end + end + + ['==', '===', '=~', '>', '>=', '<', '<='].each do |operator| + use_custom_matcher_or_delegate operator + end + + def fail_with_message(message) + Spec::Expectations.fail_with(message, @expected, @actual) + end + + def description + "#{@operator} #{@expected.inspect}" + end + + private + + def eval_match(actual, operator, expected) + ::Spec::Matchers.last_matcher = self + @operator, @expected = operator, expected + __delegate_operator(actual, operator, expected) + end + + end + + class PositiveOperatorMatcher < OperatorMatcher #:nodoc: + def __delegate_operator(actual, operator, expected) + if actual.__send__(operator, expected) + true + elsif ['==','===', '=~'].include?(operator) + fail_with_message("expected: #{expected.inspect},\n got: #{actual.inspect} (using #{operator})") + else + fail_with_message("expected: #{operator} #{expected.inspect},\n got: #{operator.gsub(/./, ' ')} #{actual.inspect}") + end + end + + end + + class NegativeOperatorMatcher < OperatorMatcher #:nodoc: + def __delegate_operator(actual, operator, expected) + return false unless actual.__send__(operator, expected) + return fail_with_message("expected not: #{operator} #{expected.inspect},\n got: #{operator.gsub(/./, ' ')} #{actual.inspect}") + end + + end + + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/pretty.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/pretty.rb new file mode 100644 index 0000000..1520583 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/pretty.rb @@ -0,0 +1,37 @@ +module Spec + module Matchers + module Pretty + def split_words(sym) + sym.to_s.gsub(/_/,' ') + end + + def to_sentence(words) + words = words.map{|w| w.inspect} + case words.length + when 0 + "" + when 1 + " #{words[0]}" + when 2 + " #{words[0]} and #{words[1]}" + else + " #{words[0...-1].join(', ')}, and #{words[-1]}" + end + end + + def _pretty_print(array) + result = "" + array.each_with_index do |item, index| + if index < (array.length - 2) + result << "#{item.inspect}, " + elsif index < (array.length - 1) + result << "#{item.inspect} and " + else + result << "#{item.inspect}" + end + end + result + end + end + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/raise_error.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/raise_error.rb new file mode 100644 index 0000000..65bdf23 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/raise_error.rb @@ -0,0 +1,129 @@ +module Spec + module Matchers + class RaiseError #:nodoc: + def initialize(expected_error_or_message=Exception, expected_message=nil, &block) + @block = block + @actual_error = nil + case expected_error_or_message + when String, Regexp + @expected_error, @expected_message = Exception, expected_error_or_message + else + @expected_error, @expected_message = expected_error_or_message, expected_message + end + end + + def matches?(given_proc) + @raised_expected_error = false + @with_expected_message = false + @eval_block = false + @eval_block_passed = false + begin + given_proc.call + rescue @expected_error => @actual_error + @raised_expected_error = true + @with_expected_message = verify_message + rescue Exception => @actual_error + # This clause should be empty, but rcov will not report it as covered + # unless something (anything) is executed within the clause + rcov_error_report = "http://eigenclass.org/hiki.rb?rcov-0.8.0" + end + + unless negative_expectation? + eval_block if @raised_expected_error && @with_expected_message && @block + end + ensure + return (@raised_expected_error & @with_expected_message) ? (@eval_block ? @eval_block_passed : true) : false + end + + def eval_block + @eval_block = true + begin + @block[@actual_error] + @eval_block_passed = true + rescue Exception => err + @actual_error = err + end + end + + def verify_message + case @expected_message + when nil + true + when Regexp + @expected_message =~ @actual_error.message + else + @expected_message == @actual_error.message + end + end + + def failure_message_for_should + @eval_block ? @actual_error.message : "expected #{expected_error}#{given_error}" + end + + def failure_message_for_should_not + "expected no #{expected_error}#{given_error}" + end + + def description + "raise #{expected_error}" + end + + private + def expected_error + case @expected_message + when nil + @expected_error + when Regexp + "#{@expected_error} with message matching #{@expected_message.inspect}" + else + "#{@expected_error} with #{@expected_message.inspect}" + end + end + + def given_error + @actual_error.nil? ? " but nothing was raised" : ", got #{@actual_error.inspect}" + end + + def negative_expectation? + # YES - I'm a bad person... help me find a better way - ryand + caller.first(3).find { |s| s =~ /should_not/ } + end + end + + # :call-seq: + # should raise_error() + # should raise_error(NamedError) + # should raise_error(NamedError, String) + # should raise_error(NamedError, Regexp) + # should raise_error() { |error| ... } + # should raise_error(NamedError) { |error| ... } + # should raise_error(NamedError, String) { |error| ... } + # should raise_error(NamedError, Regexp) { |error| ... } + # should_not raise_error() + # should_not raise_error(NamedError) + # should_not raise_error(NamedError, String) + # should_not raise_error(NamedError, Regexp) + # + # With no args, matches if any error is raised. + # With a named error, matches only if that specific error is raised. + # With a named error and messsage specified as a String, matches only if both match. + # With a named error and messsage specified as a Regexp, matches only if both match. + # Pass an optional block to perform extra verifications on the exception matched + # + # == Examples + # + # lambda { do_something_risky }.should raise_error + # lambda { do_something_risky }.should raise_error(PoorRiskDecisionError) + # lambda { do_something_risky }.should raise_error(PoorRiskDecisionError) { |error| error.data.should == 42 } + # lambda { do_something_risky }.should raise_error(PoorRiskDecisionError, "that was too risky") + # lambda { do_something_risky }.should raise_error(PoorRiskDecisionError, /oo ri/) + # + # lambda { do_something_risky }.should_not raise_error + # lambda { do_something_risky }.should_not raise_error(PoorRiskDecisionError) + # lambda { do_something_risky }.should_not raise_error(PoorRiskDecisionError, "that was too risky") + # lambda { do_something_risky }.should_not raise_error(PoorRiskDecisionError, /oo ri/) + def raise_error(error=Exception, message=nil, &block) + Matchers::RaiseError.new(error, message, &block) + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/respond_to.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/respond_to.rb new file mode 100644 index 0000000..9161cb9 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/respond_to.rb @@ -0,0 +1,71 @@ +module Spec + module Matchers + + class RespondTo #:nodoc: + def initialize(*names) + @names = names + @expected_arity = nil + @names_not_responded_to = [] + end + + def matches?(actual) + @actual = actual + @names.each do |name| + @names_not_responded_to << name unless actual.respond_to?(name) && matches_arity?(actual, name) + end + return @names_not_responded_to.empty? + end + + def failure_message_for_should + "expected #{@actual.inspect} to respond to #{@names_not_responded_to.collect {|name| name.inspect }.join(', ')}#{with_arity}" + end + + def failure_message_for_should_not + "expected #{@actual.inspect} not to respond to #{@names.collect {|name| name.inspect }.join(', ')}" + end + + def description + "respond to #{pp_names}#{with_arity}" + end + + def with(n) + @expected_arity = n + self + end + + def argument + self + end + alias :arguments :argument + + private + + def matches_arity?(actual, name) + @expected_arity.nil?? true : @expected_arity == actual.method(name).arity + end + + def with_arity + @expected_arity.nil?? "" : + " with #{@expected_arity} argument#{@expected_arity == 1 ? '' : 's'}" + end + + def pp_names + # Ruby 1.9 returns the same thing for array.to_s as array.inspect, so just use array.inspect here + @names.length == 1 ? "##{@names.first}" : @names.inspect + end + end + + # :call-seq: + # should respond_to(*names) + # should_not respond_to(*names) + # + # Matches if the target object responds to all of the names + # provided. Names can be Strings or Symbols. + # + # == Examples + # + def respond_to(*names) + Matchers::RespondTo.new(*names) + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/satisfy.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/satisfy.rb new file mode 100644 index 0000000..58e3f56 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/satisfy.rb @@ -0,0 +1,47 @@ +module Spec + module Matchers + + class Satisfy #:nodoc: + def initialize(&block) + @block = block + end + + def matches?(actual, &block) + @block = block if block + @actual = actual + @block.call(actual) + end + + def failure_message_for_should + "expected #{@actual} to satisfy block" + end + + def failure_message_for_should_not + "expected #{@actual} not to satisfy block" + end + end + + # :call-seq: + # should satisfy {} + # should_not satisfy {} + # + # Passes if the submitted block returns true. Yields target to the + # block. + # + # Generally speaking, this should be thought of as a last resort when + # you can't find any other way to specify the behaviour you wish to + # specify. + # + # If you do find yourself in such a situation, you could always write + # a custom matcher, which would likely make your specs more expressive. + # + # == Examples + # + # 5.should satisfy { |n| + # n > 3 + # } + def satisfy(&block) + Matchers::Satisfy.new(&block) + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/simple_matcher.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/simple_matcher.rb new file mode 100644 index 0000000..5ab7f30 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/simple_matcher.rb @@ -0,0 +1,133 @@ +module Spec + module Matchers + class SimpleMatcher + attr_writer :failure_message, :negative_failure_message, :description + + def initialize(description, &match_block) + @description = description + @match_block = match_block + @failure_message = @negative_failure_message = nil + end + + def matches?(given) + @given = given + case @match_block.arity + when 2 + @match_block.call(@given, self) + else + @match_block.call(@given) + end + end + + def description + @description || explanation + end + + def failure_message_for_should + @failure_message || (@description.nil? ? explanation : %[expected #{@description.inspect} but got #{@given.inspect}]) + end + + def failure_message_for_should_not + @negative_failure_message || (@description.nil? ? explanation : %[expected not to get #{@description.inspect}, but got #{@given.inspect}]) + end + + def explanation + "No description provided. See RDoc for simple_matcher()" + end + end + + # simple_matcher makes it easy for you to create your own custom matchers + # in just a few lines of code when you don't need all the power of a + # completely custom matcher object. + # + # The description argument will appear as part of any failure + # message, and is also the source for auto-generated descriptions. + # + # The match_block can have an arity of 1 or 2. The first block + # argument will be the given value. The second, if the block accepts it + # will be the matcher itself, giving you access to set custom failure + # messages in favor of the defaults. + # + # The match_block should return a boolean: true + # indicates a match, which will pass if you use should and fail + # if you use should_not. false (or nil) indicates no match, + # which will do the reverse: fail if you use should and pass if + # you use should_not. + # + # An error in the match_block will bubble up, resulting in a + # failure. + # + # == Example with default messages + # + # def be_even + # simple_matcher("an even number") { |given| given % 2 == 0 } + # end + # + # describe 2 do + # it "should be even" do + # 2.should be_even + # end + # end + # + # Given an odd number, this example would produce an error message stating: + # expected "an even number", got 3. + # + # Unfortunately, if you're a fan of auto-generated descriptions, this will + # produce "should an even number." Not the most desirable result. You can + # control that using custom messages: + # + # == Example with custom messages + # + # def rhyme_with(expected) + # simple_matcher("rhyme with #{expected.inspect}") do |given, matcher| + # matcher.failure_message = "expected #{given.inspect} to rhyme with #{expected.inspect}" + # matcher.negative_failure_message = "expected #{given.inspect} not to rhyme with #{expected.inspect}" + # given.rhymes_with? expected + # end + # end + # + # # OR + # + # def rhyme_with(expected) + # simple_matcher do |given, matcher| + # matcher.description = "rhyme with #{expected.inspect}" + # matcher.failure_message = "expected #{given.inspect} to rhyme with #{expected.inspect}" + # matcher.negative_failure_message = "expected #{given.inspect} not to rhyme with #{expected.inspect}" + # given.rhymes_with? expected + # end + # end + # + # describe "pecan" do + # it "should rhyme with 'be gone'" do + # nut = "pecan" + # nut.extend Rhymer + # nut.should rhyme_with("be gone") + # end + # end + # + # The resulting messages would be: + # description: rhyme with "be gone" + # failure_message: expected "pecan" to rhyme with "be gone" + # negative failure_message: expected "pecan" not to rhyme with "be gone" + # + # == Wrapped Expectations + # + # Because errors will bubble up, it is possible to wrap other expectations + # in a SimpleMatcher. + # + # def be_even + # simple_matcher("an even number") { |given| (given % 2).should == 0 } + # end + # + # BE VERY CAREFUL when you do this. Only use wrapped expectations for + # matchers that will always be used in only the positive + # (should) or negative (should_not), but not both. + # The reason is that is you wrap a should and call the wrapper + # with should_not, the correct result (the should + # failing), will fail when you want it to pass. + # + def simple_matcher(description=nil, &match_block) + SimpleMatcher.new(description, &match_block) + end + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/throw_symbol.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/throw_symbol.rb new file mode 100644 index 0000000..da16bb6 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/throw_symbol.rb @@ -0,0 +1,104 @@ +module Spec + module Matchers + + class ThrowSymbol #:nodoc: + def initialize(expected_symbol = nil, expected_arg=nil) + @expected_symbol = expected_symbol + @expected_arg = expected_arg + @caught_symbol = @caught_arg = nil + end + + def matches?(given_proc) + begin + if @expected_symbol.nil? + given_proc.call + else + @caught_arg = catch :proc_did_not_throw_anything do + catch @expected_symbol do + given_proc.call + throw :proc_did_not_throw_anything, :nothing_thrown + end + end + @caught_symbol = @expected_symbol unless @caught_arg == :nothing_thrown + end + + # Ruby 1.8 uses NameError with `symbol' + # Ruby 1.9 uses ArgumentError with :symbol + rescue NameError, ArgumentError => e + raise e unless e.message =~ /uncaught throw (`|\:)([a-zA-Z0-9_]*)(')?/ + @caught_symbol = $2.to_sym + + ensure + if @expected_symbol.nil? + return !@caught_symbol.nil? + else + if @expected_arg.nil? + return @caught_symbol == @expected_symbol + else + return (@caught_symbol == @expected_symbol) & (@caught_arg == @expected_arg) + end + end + end + end + + def failure_message_for_should + if @caught_symbol + "expected #{expected}, got #{@caught_symbol.inspect}" + else + "expected #{expected} but nothing was thrown" + end + end + + def failure_message_for_should_not + if @expected_symbol + "expected #{expected} not to be thrown" + else + "expected no Symbol, got :#{@caught_symbol}" + end + end + + def description + "throw #{expected}" + end + + private + + def expected + @expected_symbol.nil? ? "a Symbol" : "#{@expected_symbol.inspect}#{args}" + end + + def args + @expected_arg.nil? ? "" : " with #{@expected_arg.inspect}" + end + + end + + # :call-seq: + # should throw_symbol() + # should throw_symbol(:sym) + # should throw_symbol(:sym, arg) + # should_not throw_symbol() + # should_not throw_symbol(:sym) + # should_not throw_symbol(:sym, arg) + # + # Given no argument, matches if a proc throws any Symbol. + # + # Given a Symbol, matches if the given proc throws the specified Symbol. + # + # Given a Symbol and an arg, matches if the given proc throws the + # specified Symbol with the specified arg. + # + # == Examples + # + # lambda { do_something_risky }.should throw_symbol + # lambda { do_something_risky }.should throw_symbol(:that_was_risky) + # lambda { do_something_risky }.should throw_symbol(:that_was_risky, culprit) + # + # lambda { do_something_risky }.should_not throw_symbol + # lambda { do_something_risky }.should_not throw_symbol(:that_was_risky) + # lambda { do_something_risky }.should_not throw_symbol(:that_was_risky, culprit) + def throw_symbol(sym=nil) + Matchers::ThrowSymbol.new(sym) + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/wrap_expectation.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/wrap_expectation.rb new file mode 100644 index 0000000..95162ca --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/matchers/wrap_expectation.rb @@ -0,0 +1,55 @@ +module Spec + module Matchers + # wraps an expectation in a block that will return true if the + # expectation passes and false if it fails (without bubbling up + # the failure). + # + # This is intended to be used in the context of a simple matcher, + # and is especially useful for wrapping multiple expectations or + # one or more assertions from test/unit extensions when running + # with test/unit. + # + # == Examples + # + # def eat_cheese(cheese) + # simple_matcher do |mouse, matcher| + # matcher.failure_message = "expected #{mouse} to eat cheese" + # wrap_expectation do |matcher| + # assert_eats_cheese(mouse) + # end + # end + # end + # + # describe Mouse do + # it "eats cheese" do + # Mouse.new.should eat_cheese + # end + # end + # + # You might be wondering "why would I do this if I could just say" + # assert_eats_cheese?", a fair question, indeed. You might prefer + # to replace the word assert with something more aligned with the + # rest of your code examples. You are using rspec, after all. + # + # The other benefit you get is that you can use the negative version + # of the matcher: + # + # describe Cat do + # it "does not eat cheese" do + # Cat.new.should_not eat_cheese + # end + # end + # + # So in the event there is no assert_does_not_eat_cheese available, + # you're all set! + def wrap_expectation(matcher, &block) + begin + block.call(matcher) + return true + rescue Exception => e + matcher.failure_message = e.message + return false + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks.rb new file mode 100644 index 0000000..339c0cc --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks.rb @@ -0,0 +1,200 @@ +require 'spec/mocks/framework' +require 'spec/mocks/extensions/object' + +module Spec + # == Mocks and Stubs + # + # RSpec will create Mock Objects and Stubs for you at runtime, or attach stub/mock behaviour + # to any of your real objects (Partial Mock/Stub). Because the underlying implementation + # for mocks and stubs is the same, you can intermingle mock and stub + # behaviour in either dynamically generated mocks or your pre-existing classes. + # There is a semantic difference in how they are created, however, + # which can help clarify the role it is playing within a given spec. + # + # == Mock Objects + # + # Mocks are objects that allow you to set and verify expectations that they will + # receive specific messages during run time. They are very useful for specifying how the subject of + # the spec interacts with its collaborators. This approach is widely known as "interaction + # testing". + # + # Mocks are also very powerful as a design tool. As you are + # driving the implementation of a given class, Mocks provide an anonymous + # collaborator that can change in behaviour as quickly as you can write an expectation in your + # spec. This flexibility allows you to design the interface of a collaborator that often + # does not yet exist. As the shape of the class being specified becomes more clear, so do the + # requirements for its collaborators - often leading to the discovery of new types that are + # needed in your system. + # + # Read Endo-Testing[http://www.mockobjects.com/files/endotesting.pdf] for a much + # more in depth description of this process. + # + # == Stubs + # + # Stubs are objects that allow you to set "stub" responses to + # messages. As Martin Fowler points out on his site, + # mocks_arent_stubs[http://www.martinfowler.com/articles/mocksArentStubs.html]. + # Paraphrasing Fowler's paraphrasing + # of Gerard Meszaros: Stubs provide canned responses to messages they might receive in a test, while + # mocks allow you to specify and, subsquently, verify that certain messages should be received during + # the execution of a test. + # + # == Partial Mocks/Stubs + # + # RSpec also supports partial mocking/stubbing, allowing you to add stub/mock behaviour + # to instances of your existing classes. This is generally + # something to be avoided, because changes to the class can have ripple effects on + # seemingly unrelated specs. When specs fail due to these ripple effects, the fact + # that some methods are being mocked can make it difficult to understand why a + # failure is occurring. + # + # That said, partials do allow you to expect and + # verify interactions with class methods such as +#find+ and +#create+ + # on Ruby on Rails model classes. + # + # == Further Reading + # + # There are many different viewpoints about the meaning of mocks and stubs. If you are interested + # in learning more, here is some recommended reading: + # + # * Mock Objects: http://www.mockobjects.com/ + # * Endo-Testing: http://www.mockobjects.com/files/endotesting.pdf + # * Mock Roles, Not Objects: http://www.mockobjects.com/files/mockrolesnotobjects.pdf + # * Test Double Patterns: http://xunitpatterns.com/Test%20Double%20Patterns.html + # * Mocks aren't stubs: http://www.martinfowler.com/articles/mocksArentStubs.html + # + # == Creating a Mock + # + # You can create a mock in any specification (or setup) using: + # + # mock(name, options={}) + # + # The optional +options+ argument is a +Hash+. Currently the only supported + # option is +:null_object+. Setting this to true instructs the mock to ignore + # any messages it hasn’t been told to expect – and quietly return itself. For example: + # + # mock("person", :null_object => true) + # + # == Creating a Stub + # + # You can create a stub in any specification (or setup) using: + # + # stub(name, stub_methods_and_values_hash) + # + # For example, if you wanted to create an object that always returns + # "More?!?!?!" to "please_sir_may_i_have_some_more" you would do this: + # + # stub("Mr Sykes", :please_sir_may_i_have_some_more => "More?!?!?!") + # + # == Creating a Partial Mock + # + # You don't really "create" a partial mock, you simply add method stubs and/or + # mock expectations to existing classes and objects: + # + # Factory.should_receive(:find).with(id).and_return(value) + # obj.stub!(:to_i).and_return(3) + # etc ... + # + # == Expecting Messages + # + # my_mock.should_receive(:sym) + # my_mock.should_not_receive(:sym) + # + # == Expecting Arguments + # + # my_mock.should_receive(:sym).with(*args) + # my_mock.should_not_receive(:sym).with(*args) + # + # == Argument Matchers + # + # Arguments that are passed to #with are compared with actual arguments received + # using == by default. In cases in which you want to specify things about the arguments + # rather than the arguments themselves, you can use any of RSpec's Expression Matchers. + # They don't all make syntactic sense (they were primarily designed for use with + # Spec::Expectations), but you are free to create your own custom Spec::Matchers. + # + # Spec::Mocks does provide one additional Matcher method named #ducktype. + # + # In addition, Spec::Mocks adds some keyword Symbols that you can use to + # specify certain kinds of arguments: + # + # my_mock.should_receive(:sym).with(no_args()) + # my_mock.should_receive(:sym).with(any_args()) + # my_mock.should_receive(:sym).with(1, kind_of(Numeric), "b") #2nd argument can any kind of Numeric + # my_mock.should_receive(:sym).with(1, boolean(), "b") #2nd argument can true or false + # my_mock.should_receive(:sym).with(1, /abc/, "b") #2nd argument can be any String matching the submitted Regexp + # my_mock.should_receive(:sym).with(1, anything(), "b") #2nd argument can be anything at all + # my_mock.should_receive(:sym).with(1, ducktype(:abs, :div), "b") + # #2nd argument can be object that responds to #abs and #div + # + # == Receive Counts + # + # my_mock.should_receive(:sym).once + # my_mock.should_receive(:sym).twice + # my_mock.should_receive(:sym).exactly(n).times + # my_mock.should_receive(:sym).at_least(:once) + # my_mock.should_receive(:sym).at_least(:twice) + # my_mock.should_receive(:sym).at_least(n).times + # my_mock.should_receive(:sym).at_most(:once) + # my_mock.should_receive(:sym).at_most(:twice) + # my_mock.should_receive(:sym).at_most(n).times + # my_mock.should_receive(:sym).any_number_of_times + # + # == Ordering + # + # my_mock.should_receive(:sym).ordered + # my_mock.should_receive(:other_sym).ordered + # #This will fail if the messages are received out of order + # + # == Setting Reponses + # + # Whether you are setting a mock expectation or a simple stub, you can tell the + # object precisely how to respond: + # + # my_mock.should_receive(:sym).and_return(value) + # my_mock.should_receive(:sym).exactly(3).times.and_return(value1, value2, value3) + # # returns value1 the first time, value2 the second, etc + # my_mock.should_receive(:sym).and_return { ... } #returns value returned by the block + # my_mock.should_receive(:sym).and_raise(error) + # #error can be an instantiated object or a class + # #if it is a class, it must be instantiable with no args + # my_mock.should_receive(:sym).and_throw(:sym) + # my_mock.should_receive(:sym).and_yield(values,to,yield) + # my_mock.should_receive(:sym).and_yield(values,to,yield).and_yield(some,other,values,this,time) + # # for methods that yield to a block multiple times + # + # Any of these responses can be applied to a stub as well, but stubs do + # not support any qualifiers about the message received (i.e. you can't specify arguments + # or receive counts): + # + # my_mock.stub!(:sym).and_return(value) + # my_mock.stub!(:sym).and_return(value1, value2, value3) + # my_mock.stub!(:sym).and_raise(error) + # my_mock.stub!(:sym).and_throw(:sym) + # my_mock.stub!(:sym).and_yield(values,to,yield) + # my_mock.stub!(:sym).and_yield(values,to,yield).and_yield(some,other,values,this,time) + # + # == Arbitrary Handling + # + # Once in a while you'll find that the available expectations don't solve the + # particular problem you are trying to solve. Imagine that you expect the message + # to come with an Array argument that has a specific length, but you don't care + # what is in it. You could do this: + # + # my_mock.should_receive(:sym) do |arg| + # arg.should be_an_istance_of(Array) + # arg.length.should == 7 + # end + # + # Note that this would fail if the number of arguments received was different from + # the number of block arguments (in this case 1). + # + # == Combining Expectation Details + # + # Combining the message name with specific arguments, receive counts and responses + # you can get quite a bit of detail in your expectations: + # + # my_mock.should_receive(:<<).with("illegal value").once.and_raise(ArgumentError) + module Mocks + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/argument_expectation.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/argument_expectation.rb new file mode 100644 index 0000000..b51b7ba --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/argument_expectation.rb @@ -0,0 +1,51 @@ +module Spec + module Mocks + + class ArgumentExpectation + attr_reader :args + + def initialize(args, &block) + @args = args + @matchers_block = block + @match_any_args = false + @matchers = nil + + if ArgumentMatchers::AnyArgsMatcher === args.first + @match_any_args = true + elsif ArgumentMatchers::NoArgsMatcher === args.first + @matchers = [] + else + @matchers = args.collect {|arg| matcher_for(arg)} + end + end + + def matcher_for(arg) + return ArgumentMatchers::MatcherMatcher.new(arg) if is_matcher?(arg) + return ArgumentMatchers::RegexpMatcher.new(arg) if arg.is_a?(Regexp) + return ArgumentMatchers::EqualityProxy.new(arg) + end + + def is_matcher?(obj) + return obj.respond_to?(:matches?) & obj.respond_to?(:description) + end + + def args_match?(given_args) + match_any_args? || matchers_block_matches?(given_args) || matchers_match?(given_args) + end + + def matchers_block_matches?(given_args) + @matchers_block ? @matchers_block.call(*given_args) : nil + end + + def matchers_match?(given_args) + @matchers == given_args + end + + def match_any_args? + @match_any_args + end + + end + + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/argument_matchers.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/argument_matchers.rb new file mode 100644 index 0000000..f56551f --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/argument_matchers.rb @@ -0,0 +1,237 @@ +module Spec + module Mocks + + # ArgumentMatchers are messages that you can include in message + # expectations to match arguments against a broader check than simple + # equality. + # + # With the exception of any_args() and no_args(), the matchers + # are all positional - they match against the arg in the given position. + module ArgumentMatchers + + class AnyArgsMatcher + def description + "any args" + end + end + + class NoArgsMatcher + def description + "no args" + end + end + + class AnyArgMatcher + def initialize(ignore) + end + + def ==(other) + true + end + + def description + "anything" + end + end + + class RegexpMatcher + def initialize(regexp) + @regexp = regexp + end + + def ==(value) + return value =~ @regexp unless value.is_a?(Regexp) + value == @regexp + end + end + + class BooleanMatcher + def initialize(ignore) + end + + def ==(value) + TrueClass === value || FalseClass === value + end + end + + class HashIncludingMatcher + def initialize(expected) + @expected = expected + end + + def ==(actual) + @expected.each do | key, value | + return false unless actual.has_key?(key) && value == actual[key] + end + true + rescue NoMethodError => ex + return false + end + + def description + "hash_including(#{@expected.inspect.sub(/^\{/,"").sub(/\}$/,"")})" + end + end + + class HashNotIncludingMatcher + def initialize(expected) + @expected = expected + end + + def ==(actual) + @expected.each do | key, value | + return false if actual.has_key?(key) && value == actual[key] + end + true + rescue NoMethodError => ex + return false + end + + def description + "hash_not_including(#{@expected.inspect.sub(/^\{/,"").sub(/\}$/,"")})" + end + end + + class DuckTypeMatcher + def initialize(*methods_to_respond_to) + @methods_to_respond_to = methods_to_respond_to + end + + def ==(value) + @methods_to_respond_to.all? { |sym| value.respond_to?(sym) } + end + end + + class MatcherMatcher + def initialize(matcher) + @matcher = matcher + end + + def ==(value) + @matcher.matches?(value) + end + end + + class EqualityProxy + def initialize(given) + @given = given + end + + def ==(expected) + @given == expected + end + end + + class InstanceOf + def initialize(klass) + @klass = klass + end + + def ==(actual) + actual.instance_of?(@klass) + end + end + + class KindOf + def initialize(klass) + @klass = klass + end + + def ==(actual) + actual.kind_of?(@klass) + end + end + + # :call-seq: + # object.should_receive(:message).with(no_args()) + # + # Passes if no arguments are passed along with the message + def no_args + NoArgsMatcher.new + end + + # :call-seq: + # object.should_receive(:message).with(any_args()) + # + # Passes if object receives :message with any args at all. This is + # really a more explicit variation of object.should_receive(:message) + def any_args + AnyArgsMatcher.new + end + + # :call-seq: + # object.should_receive(:message).with(anything()) + # + # Passes as long as there is an argument. + def anything + AnyArgMatcher.new(nil) + end + + # :call-seq: + # object.should_receive(:message).with(duck_type(:hello)) + # object.should_receive(:message).with(duck_type(:hello, :goodbye)) + # + # Passes if the argument responds to the specified messages. + # + # == Examples + # + # array = [] + # display = mock('display') + # display.should_receive(:present_names).with(duck_type(:length, :each)) + # => passes + def duck_type(*args) + DuckTypeMatcher.new(*args) + end + + # :call-seq: + # object.should_receive(:message).with(boolean()) + # + # Passes if the argument is boolean. + def boolean + BooleanMatcher.new(nil) + end + + # :call-seq: + # object.should_receive(:message).with(hash_including(:key => val)) + # object.should_receive(:message).with(hash_including(:key)) + # object.should_receive(:message).with(hash_including(:key, :key2 => val2)) + # Passes if the argument is a hash that includes the specified key(s) or key/value + # pairs. If the hash includes other keys, it will still pass. + def hash_including(*args) + HashIncludingMatcher.new(anythingize_lonely_keys(*args)) + end + + # :call-seq: + # object.should_receive(:message).with(hash_not_including(:key => val)) + # object.should_receive(:message).with(hash_not_including(:key)) + # object.should_receive(:message).with(hash_not_including(:key, :key2 => :val2)) + # + # Passes if the argument is a hash that doesn't include the specified key(s) or key/value + def hash_not_including(*args) + HashNotIncludingMatcher.new(anythingize_lonely_keys(*args)) + end + + # Passes if arg.instance_of?(klass) + def instance_of(klass) + InstanceOf.new(klass) + end + + alias_method :an_instance_of, :instance_of + + # Passes if arg.kind_of?(klass) + def kind_of(klass) + KindOf.new(klass) + end + + alias_method :a_kind_of, :kind_of + + private + + def anythingize_lonely_keys(*args) + hash = args.last.class == Hash ? args.delete_at(-1) : {} + args.each { | arg | hash[arg] = anything } + hash + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/error_generator.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/error_generator.rb new file mode 100644 index 0000000..f63811f --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/error_generator.rb @@ -0,0 +1,92 @@ +module Spec + module Mocks + class ErrorGenerator + attr_writer :opts + + def initialize(target, name, options={}) + @declared_as = options[:__declared_as] || 'Mock' + @target = target + @name = name + end + + def opts + @opts ||= {} + end + + def raise_unexpected_message_error(sym, *args) + __raise "#{intro} received unexpected message :#{sym}#{arg_message(*args)}" + end + + def raise_unexpected_message_args_error(expectation, *args) + expected_args = format_args(*expectation.expected_args) + actual_args = args.empty? ? "(no args)" : format_args(*args) + __raise "#{intro} received #{expectation.sym.inspect} with unexpected arguments\n expected: #{expected_args}\n got: #{actual_args}" + end + + def raise_expectation_error(sym, expected_received_count, actual_received_count, *args) + __raise "#{intro} expected :#{sym}#{arg_message(*args)} #{count_message(expected_received_count)}, but received it #{count_message(actual_received_count)}" + end + + def raise_out_of_order_error(sym) + __raise "#{intro} received :#{sym} out of order" + end + + def raise_block_failed_error(sym, detail) + __raise "#{intro} received :#{sym} but passed block failed with: #{detail}" + end + + def raise_missing_block_error(args_to_yield) + __raise "#{intro} asked to yield |#{arg_list(*args_to_yield)}| but no block was passed" + end + + def raise_wrong_arity_error(args_to_yield, arity) + __raise "#{intro} yielded |#{arg_list(*args_to_yield)}| to block with arity of #{arity}" + end + + private + + def intro + if @name + "#{@declared_as} #{@name.inspect}" + elsif Mock === @target + @declared_as + elsif Class === @target + "<#{@target.inspect} (class)>" + elsif @target + @target + else + "nil" + end + end + + def __raise(message) + message = opts[:message] unless opts[:message].nil? + Kernel::raise(Spec::Mocks::MockExpectationError, message) + end + + def arg_message(*args) + " with " + format_args(*args) + end + + def format_args(*args) + args.empty? ? "(no args)" : "(" + arg_list(*args) + ")" + end + + def arg_list(*args) + args.collect {|arg| arg.respond_to?(:description) ? arg.description : arg.inspect}.join(", ") + end + + def count_message(count) + return "at least #{pretty_print(count.abs)}" if count < 0 + return pretty_print(count) + end + + def pretty_print(count) + return "once" if count == 1 + return "twice" if count == 2 + return "#{count} times" + end + + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/errors.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/errors.rb new file mode 100644 index 0000000..560b66a --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/errors.rb @@ -0,0 +1,10 @@ +module Spec + module Mocks + class MockExpectationError < Exception + end + + class AmbiguousReturnError < StandardError + end + end +end + diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/example_methods.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/example_methods.rb new file mode 100644 index 0000000..f6c68ab --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/example_methods.rb @@ -0,0 +1,69 @@ +module Spec + module Mocks + module ExampleMethods + include Spec::Mocks::ArgumentMatchers + + # Shortcut for creating an instance of Spec::Mocks::Mock. + # + # +name+ is used for failure reporting, so you should use the + # role that the double is playing in the example. + # + # +stubs_and_options+ lets you assign options and stub values + # at the same time. The only option available is :null_object. + # Anything else is treated as a stub value. + # + # == Examples + # + # thing = double("thing", :a => "A") + # thing.a == "A" => true + # + # person = double("thing", :name => "Joe", :email => "joe@domain.com") + # person.name => "Joe" + # person.email => "joe@domain.com" + def double(*args) + __declare_double('Double', *args) + end + + # Alias for double + def mock(*args) + __declare_double('Mock', *args) + end + + # Alias for double + def stub(*args) + __declare_double('Stub', *args) + end + + def __declare_double(declared_as, *args) # :nodoc: + args << {} unless Hash === args.last + args.last[:__declared_as] = declared_as + Spec::Mocks::Mock.new(*args) + end + + # DEPRECATED - use double('name').as_null_object instead + # + # Shortcut for creating a mock object that will return itself in response + # to any message it receives that it hasn't been explicitly instructed + # to respond to. + def stub_everything(name = 'stub') + Spec.warn(<<-WARNING) + +DEPRECATION: stub_everything('#{name}') is deprecated and will be removed +from a future version of rspec. Please use double('#{name}').as_null_object +(or stub('#{name}').as_null_object or mock('#{name}').as_null_object instead. + +WARNING + mock(name, :null_object => true) + end + + # Disables warning messages about expectations being set on nil. + # + # By default warning messages are issued when expectations are set on nil. This is to + # prevent false-positives and to catch potential bugs early on. + def allow_message_expectations_on_nil + Proxy.allow_message_expectations_on_nil + end + + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/extensions.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/extensions.rb new file mode 100644 index 0000000..6fd51a2 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/extensions.rb @@ -0,0 +1 @@ +require 'spec/mocks/extensions/object' diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/extensions/object.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/extensions/object.rb new file mode 100644 index 0000000..4b75310 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/extensions/object.rb @@ -0,0 +1,3 @@ +class Object + include Spec::Mocks::Methods +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/framework.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/framework.rb new file mode 100644 index 0000000..e257786 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/framework.rb @@ -0,0 +1,15 @@ +# Require everything except the global extensions of class and object. This +# supports wrapping rspec's mocking functionality without invading every +# object in the system. + +require 'spec/mocks/methods' +require 'spec/mocks/argument_matchers' +require 'spec/mocks/example_methods' +require 'spec/mocks/proxy' +require 'spec/mocks/mock' +require 'spec/mocks/argument_expectation' +require 'spec/mocks/message_expectation' +require 'spec/mocks/order_group' +require 'spec/mocks/errors' +require 'spec/mocks/error_generator' +require 'spec/mocks/space' diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/message_expectation.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/message_expectation.rb new file mode 100644 index 0000000..8a8133f --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/message_expectation.rb @@ -0,0 +1,329 @@ +module Spec + module Mocks + + class BaseExpectation + attr_reader :sym + attr_writer :expected_received_count, :method_block, :expected_from + protected :expected_received_count=, :method_block=, :expected_from= + attr_accessor :error_generator + protected :error_generator, :error_generator= + + def initialize(error_generator, expectation_ordering, expected_from, sym, method_block, expected_received_count=1, opts={}, &implementation) + @error_generator = error_generator + @error_generator.opts = opts + @expected_from = expected_from + @sym = sym + @method_block = method_block + @actual_received_count = 0 + @expected_received_count = expected_received_count + @args_expectation = ArgumentExpectation.new([ArgumentMatchers::AnyArgsMatcher.new]) + @consecutive = false + @exception_to_raise = nil + @symbol_to_throw = nil + @order_group = expectation_ordering + @at_least = nil + @at_most = nil + @args_to_yield = [] + @failed_fast = nil + @args_to_yield_were_cloned = false + @return_block = implementation + end + + def build_child(expected_from, method_block, expected_received_count, opts={}) + child = clone + child.expected_from = expected_from + child.method_block = method_block + child.expected_received_count = expected_received_count + child.clear_actual_received_count! + new_gen = error_generator.clone + new_gen.opts = opts + child.error_generator = new_gen + child.clone_args_to_yield @args_to_yield + child + end + + def expected_args + @args_expectation.args + end + + def and_return(*values, &return_block) + Kernel::raise AmbiguousReturnError unless @method_block.nil? + case values.size + when 0 then value = nil + when 1 then value = values[0] + else + value = values + @consecutive = true + @expected_received_count = values.size if !ignoring_args? && + @expected_received_count < values.size + end + @return_block = block_given? ? return_block : lambda { value } + end + + # :call-seq: + # and_raise() + # and_raise(Exception) #any exception class + # and_raise(exception) #any exception object + # + # == Warning + # + # When you pass an exception class, the MessageExpectation will + # raise an instance of it, creating it with +new+. If the exception + # class initializer requires any parameters, you must pass in an + # instance and not the class. + def and_raise(exception=Exception) + @exception_to_raise = exception + end + + def and_throw(symbol) + @symbol_to_throw = symbol + end + + def and_yield(*args) + if @args_to_yield_were_cloned + @args_to_yield.clear + @args_to_yield_were_cloned = false + end + + @args_to_yield << args + self + end + + def matches(sym, args) + @sym == sym and @args_expectation.args_match?(args) + end + + def invoke(*args, &block) + if @expected_received_count == 0 + @failed_fast = true + @actual_received_count += 1 + @error_generator.raise_expectation_error @sym, @expected_received_count, @actual_received_count, *args + end + + @order_group.handle_order_constraint self + + begin + Kernel::raise @exception_to_raise unless @exception_to_raise.nil? + Kernel::throw @symbol_to_throw unless @symbol_to_throw.nil? + + + if !@method_block.nil? + default_return_val = invoke_method_block(*args) + elsif @args_to_yield.size > 0 + default_return_val = invoke_with_yield(&block) + else + default_return_val = nil + end + + if @consecutive + return invoke_consecutive_return_block(*args, &block) + elsif @return_block + return invoke_return_block(*args, &block) + else + return default_return_val + end + ensure + @actual_received_count += 1 + end + end + + def called_max_times? + @expected_received_count != :any && @expected_received_count > 0 && + @actual_received_count >= @expected_received_count + end + + def invoke_return_block(*args, &block) + args << block unless block.nil? + # Ruby 1.9 - when we set @return_block to return values + # regardless of arguments, any arguments will result in + # a "wrong number of arguments" error + @return_block.arity == 0 ? @return_block.call : @return_block.call(*args) + end + + protected + + def invoke_method_block(*args) + begin + @method_block.call(*args) + rescue => detail + @error_generator.raise_block_failed_error @sym, detail.message + end + end + + def invoke_with_yield(&block) + if block.nil? + @error_generator.raise_missing_block_error @args_to_yield + end + value = nil + @args_to_yield.each do |args_to_yield_this_time| + if block.arity > -1 && args_to_yield_this_time.length != block.arity + @error_generator.raise_wrong_arity_error args_to_yield_this_time, block.arity + end + value = block.call(*args_to_yield_this_time) + end + value + end + + def invoke_consecutive_return_block(*args, &block) + value = invoke_return_block(*args, &block) + index = [@actual_received_count, value.size-1].min + value[index] + end + + def clone_args_to_yield(args) + @args_to_yield = args.clone + @args_to_yield_were_cloned = true + end + + def failed_fast? + @failed_fast + end + end + + class MessageExpectation < BaseExpectation + + def matches_name?(sym) + @sym == sym + end + + def matches_name_but_not_args(sym, args) + matches_name?(sym) and not @args_expectation.args_match?(args) + end + + def verify_messages_received + return if expected_messages_received? || failed_fast? + + generate_error + rescue Spec::Mocks::MockExpectationError => error + error.backtrace.insert(0, @expected_from) + Kernel::raise error + end + + def expected_messages_received? + ignoring_args? || matches_exact_count? || + matches_at_least_count? || matches_at_most_count? + end + + def ignoring_args? + @expected_received_count == :any + end + + def matches_at_least_count? + @at_least && @actual_received_count >= @expected_received_count + end + + def matches_at_most_count? + @at_most && @actual_received_count <= @expected_received_count + end + + def matches_exact_count? + @expected_received_count == @actual_received_count + end + + def similar_messages + @similar_messages ||= [] + end + + def advise(args, block) + similar_messages << args + end + + def generate_error + if similar_messages.empty? + @error_generator.raise_expectation_error(@sym, @expected_received_count, @actual_received_count, *@args_expectation.args) + else + @error_generator.raise_unexpected_message_args_error(self, *@similar_messages) + end + end + + def with(*args, &block) + @args_expectation = ArgumentExpectation.new(args, &block) + self + end + + def exactly(n) + set_expected_received_count :exactly, n + self + end + + def at_least(n) + set_expected_received_count :at_least, n + self + end + + def at_most(n) + set_expected_received_count :at_most, n + self + end + + def times(&block) + @method_block = block if block + self + end + + def any_number_of_times(&block) + @method_block = block if block + @expected_received_count = :any + self + end + + def never + @expected_received_count = 0 + self + end + + def once(&block) + @method_block = block if block + @expected_received_count = 1 + self + end + + def twice(&block) + @method_block = block if block + @expected_received_count = 2 + self + end + + def ordered(&block) + @method_block = block if block + @order_group.register(self) + @ordered = true + self + end + + def negative_expectation_for?(sym) + return false + end + + protected + def set_expected_received_count(relativity, n) + @at_least = (relativity == :at_least) + @at_most = (relativity == :at_most) + @expected_received_count = case n + when Numeric + n + when :once + 1 + when :twice + 2 + end + end + + def clear_actual_received_count! + @actual_received_count = 0 + end + + end + + class NegativeMessageExpectation < MessageExpectation + def initialize(message, expectation_ordering, expected_from, sym, method_block) + super(message, expectation_ordering, expected_from, sym, method_block, 0) + end + + def negative_expectation_for?(sym) + return @sym == sym + end + end + + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/methods.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/methods.rb new file mode 100644 index 0000000..16dd6e8 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/methods.rb @@ -0,0 +1,89 @@ +module Spec + module Mocks + module Methods + def should_receive(sym, opts={}, &block) + __mock_proxy.add_message_expectation(opts[:expected_from] || caller(1)[0], sym.to_sym, opts, &block) + end + + def should_not_receive(sym, &block) + __mock_proxy.add_negative_message_expectation(caller(1)[0], sym.to_sym, &block) + end + + def stub!(sym_or_hash, opts={}, &block) + if Hash === sym_or_hash + sym_or_hash.each {|method, value| stub!(method).and_return value } + else + __mock_proxy.add_stub(caller(1)[0], sym_or_hash.to_sym, opts, &block) + end + end + + alias_method :stub, :stub! + + def unstub!(message) + __mock_proxy.remove_stub(message) + end + + alias_method :unstub, :unstub! + + # :call-seq: + # object.stub_chain(:first, :second, :third).and_return(:this) + # + # Supports stubbing a chain of methods. Each argument represents + # a method name to stub, and each one returns a proxy object that + # can accept more stubs, until the last, which returns whatever + # is passed to +and_return_. + # + # == Examples + # + # # with this in an example ... + # article = double('article') + # Article.stub_chain(:authored_by, :published, :recent).and_return([article]) + # # then this will return an Array with the article double in it: + # Article.authored_by(params[:author_id]).published.recent + def stub_chain(*methods) + if methods.length > 1 + if matching_stub = __mock_proxy.find_matching_method_stub(methods[0]) + methods.shift + matching_stub.invoke_return_block.stub_chain(*methods) + else + next_in_chain = Object.new + stub!(methods.shift) {next_in_chain} + next_in_chain.stub_chain(*methods) + end + else + stub!(methods.shift) + end + end + + def received_message?(sym, *args, &block) #:nodoc: + __mock_proxy.received_message?(sym.to_sym, *args, &block) + end + + def rspec_verify #:nodoc: + __mock_proxy.verify + end + + def rspec_reset #:nodoc: + __mock_proxy.reset + end + + def as_null_object + __mock_proxy.as_null_object + end + + def null_object? + __mock_proxy.null_object? + end + + private + + def __mock_proxy + if Mock === self + @mock_proxy ||= Proxy.new(self, @name, @options) + else + @mock_proxy ||= Proxy.new(self) + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/mock.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/mock.rb new file mode 100644 index 0000000..35a6c79 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/mock.rb @@ -0,0 +1,71 @@ +module Spec + module Mocks + class Mock + include Methods + + # Creates a new mock with a +name+ (that will be used in error messages + # only) == Options: + # * :null_object - if true, the mock object acts as a forgiving + # null object allowing any message to be sent to it. + def initialize(name=nil, stubs_and_options={}) + if name.is_a?(Hash) && stubs_and_options.empty? + stubs_and_options = name + @name = nil + else + @name = name + end + @options = extract_options(stubs_and_options) + assign_stubs(stubs_and_options) + end + + # This allows for comparing the mock to other objects that proxy such as + # ActiveRecords belongs_to proxy objects. By making the other object run + # the comparison, we're sure the call gets delegated to the proxy + # target. + def ==(other) + other == __mock_proxy + end + + def inspect + "#<#{self.class}:#{sprintf '0x%x', self.object_id} @name=#{@name.inspect}>" + end + + def to_s + inspect.gsub('<','[').gsub('>',']') + end + + private + + def method_missing(sym, *args, &block) + __mock_proxy.record_message_received(sym, args, block) + begin + return self if __mock_proxy.null_object? + super(sym, *args, &block) + rescue NameError + __mock_proxy.raise_unexpected_message_error sym, *args + end + end + + def extract_options(stubs_and_options) + options = {} + extract_option(stubs_and_options, options, :null_object) + extract_option(stubs_and_options, options, :__declared_as, 'Mock') + options + end + + def extract_option(source, target, key, default=nil) + if source[key] + target[key] = source.delete(key) + elsif default + target[key] = default + end + end + + def assign_stubs(stubs) + stubs.each_pair do |message, response| + stub!(message).and_return(response) + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/order_group.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/order_group.rb new file mode 100644 index 0000000..9983207 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/order_group.rb @@ -0,0 +1,29 @@ +module Spec + module Mocks + class OrderGroup + def initialize error_generator + @error_generator = error_generator + @ordering = Array.new + end + + def register(expectation) + @ordering << expectation + end + + def ready_for?(expectation) + return @ordering.first == expectation + end + + def consume + @ordering.shift + end + + def handle_order_constraint expectation + return unless @ordering.include? expectation + return consume if ready_for?(expectation) + @error_generator.raise_out_of_order_error expectation.sym + end + + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/proxy.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/proxy.rb new file mode 100644 index 0000000..acf72e0 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/proxy.rb @@ -0,0 +1,245 @@ +module Spec + module Mocks + class Proxy + DEFAULT_OPTIONS = { + :null_object => false, + } + + @@warn_about_expectations_on_nil = true + + def self.allow_message_expectations_on_nil + @@warn_about_expectations_on_nil = false + + # ensure nil.rspec_verify is called even if an expectation is not set in the example + # otherwise the allowance would effect subsequent examples + $rspec_mocks.add(nil) unless $rspec_mocks.nil? + end + + def initialize(target, name=nil, options={}) + @target = target + @name = name + @error_generator = ErrorGenerator.new target, name, options + @expectation_ordering = OrderGroup.new @error_generator + @expectations = [] + @messages_received = [] + @stubs = [] + @proxied_methods = [] + @options = options ? DEFAULT_OPTIONS.dup.merge(options) : DEFAULT_OPTIONS + @already_proxied_respond_to = false + end + + def null_object? + @options[:null_object] + end + + def as_null_object + @options[:null_object] = true + @target + end + + def add_message_expectation(expected_from, sym, opts={}, &block) + __add sym + warn_if_nil_class sym + if existing_stub = @stubs.detect {|s| s.sym == sym } + expectation = existing_stub.build_child(expected_from, block_given?? block : nil, 1, opts) + else + expectation = MessageExpectation.new(@error_generator, @expectation_ordering, expected_from, sym, block_given? ? block : nil, 1, opts) + end + @expectations << expectation + @expectations.last + end + + def add_negative_message_expectation(expected_from, sym, &block) + __add sym + warn_if_nil_class sym + @expectations << NegativeMessageExpectation.new(@error_generator, @expectation_ordering, expected_from, sym, block_given? ? block : nil) + @expectations.last + end + + def add_stub(expected_from, sym, opts={}, &implementation) + __add sym + @stubs.unshift MessageExpectation.new(@error_generator, @expectation_ordering, expected_from, sym, nil, :any, opts, &implementation) + @stubs.first + end + + def remove_stub(message) + message = message.to_sym + + if stub_to_remove = @stubs.detect { |s| s.matches_name?(message) } + reset_proxied_method(message) + @stubs.delete(stub_to_remove) + else + raise MockExpectationError, "The method `#{message}` was not stubbed or was already unstubbed" + end + end + + def verify #:nodoc: + verify_expectations + ensure + reset + end + + def reset + clear_expectations + clear_stubs + reset_proxied_methods + clear_proxied_methods + reset_nil_expectations_warning + end + + def received_message?(sym, *args, &block) + @messages_received.any? {|array| array == [sym, args, block]} + end + + def has_negative_expectation?(sym) + @expectations.detect {|expectation| expectation.negative_expectation_for?(sym)} + end + + def record_message_received(sym, args, block) + @messages_received << [sym, args, block] + end + + def message_received(sym, *args, &block) + expectation = find_matching_expectation(sym, *args) + stub = find_matching_method_stub(sym, *args) + + if (stub && expectation && expectation.called_max_times?) || (stub && !expectation) + if expectation = find_almost_matching_expectation(sym, *args) + expectation.advise(args, block) unless expectation.expected_messages_received? + end + stub.invoke(*args, &block) + elsif expectation + expectation.invoke(*args, &block) + elsif expectation = find_almost_matching_expectation(sym, *args) + expectation.advise(args, block) if null_object? unless expectation.expected_messages_received? + raise_unexpected_message_args_error(expectation, *args) unless (has_negative_expectation?(sym) or null_object?) + else + @target.__send__ :method_missing, sym, *args, &block + end + end + + def raise_unexpected_message_args_error(expectation, *args) + @error_generator.raise_unexpected_message_args_error expectation, *args + end + + def raise_unexpected_message_error(sym, *args) + @error_generator.raise_unexpected_message_error sym, *args + end + + def find_matching_method_stub(sym, *args) + @stubs.find {|stub| stub.matches(sym, args)} + end + + private + + def __add(sym) + $rspec_mocks.add(@target) unless $rspec_mocks.nil? + define_expected_method(sym) + end + + def warn_if_nil_class(sym) + if proxy_for_nil_class? & @@warn_about_expectations_on_nil + Kernel.warn("An expectation of :#{sym} was set on nil. Called from #{caller[2]}. Use allow_message_expectations_on_nil to disable warnings.") + end + end + + def define_expected_method(sym) + unless @proxied_methods.include?(sym) + visibility_string = "#{visibility(sym)} :#{sym}" + if target_responds_to?(sym) + munged_sym = munge(sym) + target_metaclass.instance_eval do + alias_method munged_sym, sym if method_defined?(sym) + end + @proxied_methods << sym + end + target_metaclass.class_eval(<<-EOF, __FILE__, __LINE__) + def #{sym}(*args, &block) + __mock_proxy.message_received :#{sym}, *args, &block + end + #{visibility_string} + EOF + end + end + + def target_responds_to?(sym) + return @target.__send__(munge(:respond_to?),sym) if @already_proxied_respond_to + return @already_proxied_respond_to = true if sym == :respond_to? + return @target.respond_to?(sym, true) + end + + def visibility(sym) + if Mock === @target + 'public' + elsif target_metaclass.private_method_defined?(sym) + 'private' + elsif target_metaclass.protected_method_defined?(sym) + 'protected' + else + 'public' + end + end + + def munge(sym) + "proxied_by_rspec__#{sym}" + end + + def clear_expectations + @expectations.clear + end + + def clear_stubs + @stubs.clear + end + + def clear_proxied_methods + @proxied_methods.clear + end + + def target_metaclass + class << @target; self; end + end + + def verify_expectations + @expectations.each do |expectation| + expectation.verify_messages_received + end + end + + def reset_proxied_methods + @proxied_methods.each do |sym| + reset_proxied_method(sym) + end + end + + def reset_proxied_method(sym) + munged_sym = munge(sym) + target_metaclass.instance_eval do + remove_method sym + if method_defined?(munged_sym) + alias_method sym, munged_sym + remove_method munged_sym + end + end + end + + def proxy_for_nil_class? + @target.nil? + end + + def reset_nil_expectations_warning + @@warn_about_expectations_on_nil = true if proxy_for_nil_class? + end + + def find_matching_expectation(sym, *args) + @expectations.find {|expectation| expectation.matches(sym, args) && !expectation.called_max_times?} || + @expectations.find {|expectation| expectation.matches(sym, args)} + end + + def find_almost_matching_expectation(sym, *args) + @expectations.find {|expectation| expectation.matches_name_but_not_args(sym, args)} + end + + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/space.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/space.rb new file mode 100644 index 0000000..3e13224 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/mocks/space.rb @@ -0,0 +1,28 @@ +module Spec + module Mocks + class Space + def add(obj) + mocks << obj unless mocks.detect {|m| m.equal? obj} + end + + def verify_all + mocks.each do |mock| + mock.rspec_verify + end + end + + def reset_all + mocks.each do |mock| + mock.rspec_reset + end + mocks.clear + end + + private + + def mocks + @mocks ||= [] + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/rake/spectask.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/rake/spectask.rb new file mode 100644 index 0000000..9049fd0 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/rake/spectask.rb @@ -0,0 +1,230 @@ +#!/usr/bin/env ruby + +# Define a task library for running RSpec contexts. + +require 'rake' +require 'rake/tasklib' + +module Spec + module Rake + + # A Rake task that runs a set of specs. + # + # Example: + # + # Spec::Rake::SpecTask.new do |t| + # t.warning = true + # t.rcov = true + # end + # + # This will create a task that can be run with: + # + # rake spec + # + # If rake is invoked with a "SPEC=filename" command line option, + # then the list of spec files will be overridden to include only the + # filename specified on the command line. This provides an easy way + # to run just one spec. + # + # If rake is invoked with a "SPEC_OPTS=options" command line option, + # then the given options will override the value of the +spec_opts+ + # attribute. + # + # If rake is invoked with a "RCOV_OPTS=options" command line option, + # then the given options will override the value of the +rcov_opts+ + # attribute. + # + # Examples: + # + # rake spec # run specs normally + # rake spec SPEC=just_one_file.rb # run just one spec file. + # rake spec SPEC_OPTS="--diff" # enable diffing + # rake spec RCOV_OPTS="--aggregate myfile.txt" # see rcov --help for details + # + # Each attribute of this task may be a proc. This allows for lazy evaluation, + # which is sometimes handy if you want to defer the evaluation of an attribute value + # until the task is run (as opposed to when it is defined). + # + # This task can also be used to run existing Test::Unit tests and get RSpec + # output, for example like this: + # + # require 'spec/rake/spectask' + # Spec::Rake::SpecTask.new do |t| + # t.ruby_opts = ['-rtest/unit'] + # t.spec_files = FileList['test/**/*_test.rb'] + # end + # + class SpecTask < ::Rake::TaskLib + def self.attr_accessor(*names) + super(*names) + names.each do |name| + module_eval "def #{name}() evaluate(@#{name}) end" # Allows use of procs + end + end + + # Name of spec task. (default is :spec) + attr_accessor :name + + # Array of directories to be added to $LOAD_PATH before running the + # specs. Defaults to [''] + attr_accessor :libs + + # If true, requests that the specs be run with the warning flag set. + # E.g. warning=true implies "ruby -w" used to run the specs. Defaults to false. + attr_accessor :warning + + # Glob pattern to match spec files. (default is 'spec/**/*_spec.rb') + # Setting the SPEC environment variable overrides this. + attr_accessor :pattern + + # Array of commandline options to pass to RSpec. Defaults to []. + # Setting the SPEC_OPTS environment variable overrides this. + attr_accessor :spec_opts + + # Whether or not to use RCov (default is false) + # See http://eigenclass.org/hiki.rb?rcov + attr_accessor :rcov + + # Array of commandline options to pass to RCov. Defaults to ['--exclude', 'lib\/spec,bin\/spec']. + # Ignored if rcov=false + # Setting the RCOV_OPTS environment variable overrides this. + attr_accessor :rcov_opts + + # Directory where the RCov report is written. Defaults to "coverage" + # Ignored if rcov=false + attr_accessor :rcov_dir + + # Array of commandline options to pass to ruby. Defaults to []. + attr_accessor :ruby_opts + + # Whether or not to fail Rake when an error occurs (typically when specs fail). + # Defaults to true. + attr_accessor :fail_on_error + + # A message to print to stderr when there are failures. + attr_accessor :failure_message + + # Where RSpec's output is written. Defaults to $stdout. + # DEPRECATED. Use --format FORMAT:WHERE in spec_opts. + attr_accessor :out + + # Explicitly define the list of spec files to be included in a + # spec. +spec_files+ is expected to be an array of file names (a + # FileList is acceptable). If both +pattern+ and +spec_files+ are + # used, then the list of spec files is the union of the two. + # Setting the SPEC environment variable overrides this. + attr_accessor :spec_files + + # Use verbose output. If this is set to true, the task will print + # the executed spec command to stdout. Defaults to false. + attr_accessor :verbose + + # Explicitly define the path to the ruby binary, or its proxy (e.g. multiruby) + attr_accessor :ruby_cmd + + # Defines a new task, using the name +name+. + def initialize(name=:spec) + @name = name + @libs = ['lib'] + @pattern = nil + @spec_files = nil + @spec_opts = [] + @warning = false + @ruby_opts = [] + @fail_on_error = true + @rcov = false + @rcov_opts = ['--exclude', 'lib\/spec,bin\/spec,config\/boot.rb'] + @rcov_dir = "coverage" + + yield self if block_given? + @pattern = 'spec/**/*_spec.rb' if pattern.nil? && spec_files.nil? + define + end + + def define # :nodoc: + spec_script = File.expand_path(File.join(File.dirname(__FILE__),"..","..","..","bin","spec")) + + lib_path = libs.join(File::PATH_SEPARATOR) + actual_name = Hash === name ? name.keys.first : name + unless ::Rake.application.last_comment + desc "Run specs" + (rcov ? " using RCov" : "") + end + task name do + RakeFileUtils.verbose(verbose) do + unless spec_file_list.empty? + # ruby [ruby_opts] -Ilib -S rcov [rcov_opts] bin/spec -- examples [spec_opts] + # or + # ruby [ruby_opts] -Ilib bin/spec examples [spec_opts] + cmd_parts = [ruby_cmd || RUBY] + cmd_parts += ruby_opts + cmd_parts << %[-I"#{lib_path}"] + cmd_parts << "-S rcov" if rcov + cmd_parts << "-w" if warning + cmd_parts << rcov_option_list + cmd_parts << %[-o "#{rcov_dir}"] if rcov + cmd_parts << %["#{spec_script}"] + cmd_parts << "--" if rcov + cmd_parts += spec_file_list.collect { |fn| %["#{fn}"] } + cmd_parts << spec_option_list + if out + cmd_parts << %[> "#{out}"] + STDERR.puts "The Spec::Rake::SpecTask#out attribute is DEPRECATED and will be removed in a future version. Use --format FORMAT:WHERE instead." + end + cmd = cmd_parts.join(" ") + puts cmd if verbose + unless system(cmd) + STDERR.puts failure_message if failure_message + raise("Command #{cmd} failed") if fail_on_error + end + end + end + end + + if rcov + desc "Remove rcov products for #{actual_name}" + task paste("clobber_", actual_name) do + rm_r rcov_dir rescue nil + end + + clobber_task = paste("clobber_", actual_name) + task :clobber => [clobber_task] + + task actual_name => clobber_task + end + self + end + + def rcov_option_list # :nodoc: + if rcov + ENV['RCOV_OPTS'] || rcov_opts.join(" ") || "" + else + "" + end + end + + def spec_option_list # :nodoc: + STDERR.puts "RSPECOPTS is DEPRECATED and will be removed in a future version. Use SPEC_OPTS instead." if ENV['RSPECOPTS'] + ENV['SPEC_OPTS'] || ENV['RSPECOPTS'] || spec_opts.join(" ") || "" + end + + def evaluate(o) # :nodoc: + case o + when Proc then o.call + else o + end + end + + def spec_file_list # :nodoc: + if ENV['SPEC'] + FileList[ ENV['SPEC'] ] + else + result = [] + result += spec_files.to_a if spec_files + result += FileList[ pattern ].to_a if pattern + FileList[result] + end + end + + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/rake/verify_rcov.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/rake/verify_rcov.rb new file mode 100644 index 0000000..199bd85 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/rake/verify_rcov.rb @@ -0,0 +1,52 @@ +module RCov + # A task that can verify that the RCov coverage doesn't + # drop below a certain threshold. It should be run after + # running Spec::Rake::SpecTask. + class VerifyTask < Rake::TaskLib + # Name of the task. Defaults to :verify_rcov + attr_accessor :name + + # Path to the index.html file generated by RCov, which + # is the file containing the total coverage. + # Defaults to 'coverage/index.html' + attr_accessor :index_html + + # Whether or not to output details. Defaults to true. + attr_accessor :verbose + + # The threshold value (in percent) for coverage. If the + # actual coverage is not equal to this value, the task will raise an + # exception. + attr_accessor :threshold + + # Require the threshold value be met exactly. This is the default. + attr_accessor :require_exact_threshold + + def initialize(name=:verify_rcov) + @name = name + @index_html = 'coverage/index.html' + @verbose = true + @require_exact_threshold = true + yield self if block_given? + raise "Threshold must be set" if @threshold.nil? + define + end + + def define + desc "Verify that rcov coverage is at least #{threshold}%" + task @name do + total_coverage = 0 + + File.open(index_html).each_line do |line| + if line =~ /\s*(\d+\.\d+)%\s*<\/tt>/ + total_coverage = $1.to_f + break + end + end + puts "Coverage: #{total_coverage}% (threshold: #{threshold}%)" if verbose + raise "Coverage must be at least #{threshold}% but was #{total_coverage}%" if total_coverage < threshold + raise "Coverage has increased above the threshold of #{threshold}% to #{total_coverage}%. You should update your threshold value." if (total_coverage > threshold) and require_exact_threshold + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/ruby.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/ruby.rb new file mode 100644 index 0000000..863877c --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/ruby.rb @@ -0,0 +1,9 @@ +module Spec + module Ruby + class << self + def version + RUBY_VERSION + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner.rb new file mode 100644 index 0000000..519b536 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner.rb @@ -0,0 +1,66 @@ +require 'spec/runner/configuration' +require 'spec/runner/options' +require 'spec/runner/option_parser' +require 'spec/runner/example_group_runner' +require 'spec/runner/command_line' +require 'spec/runner/drb_command_line' +require 'spec/runner/backtrace_tweaker' +require 'spec/runner/reporter' +require 'spec/runner/line_number_query' +require 'spec/runner/class_and_arguments_parser' +require 'spec/runner/extensions/kernel' + +module Spec + module Runner + + class ExampleGroupCreationListener + def register_example_group(klass) + Spec::Runner.options.add_example_group klass + end + end + + Spec::Example::ExampleGroupFactory.example_group_creation_listeners << ExampleGroupCreationListener.new + + class << self + def configuration # :nodoc: + @configuration ||= Spec::Runner::Configuration.new + end + + # Use this to configure various configurable aspects of + # RSpec: + # + # Spec::Runner.configure do |configuration| + # # Configure RSpec here + # end + # + # The yielded configuration object is a + # Spec::Runner::Configuration instance. See its RDoc + # for details about what you can do with it. + # + def configure + yield configuration + end + + def autorun # :nodoc: + at_exit {exit run unless $!} + end + + def options # :nodoc: + @options ||= begin + parser = ::Spec::Runner::OptionParser.new($stderr, $stdout) + parser.order!(ARGV) + parser.options + end + end + + def use options + @options = options + end + + def run + options.examples_run? || options.run_examples + end + + end + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/backtrace_tweaker.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/backtrace_tweaker.rb new file mode 100644 index 0000000..a3cb7d9 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/backtrace_tweaker.rb @@ -0,0 +1,77 @@ +module Spec + module Runner + class BacktraceTweaker + def initialize(*patterns) + @ignore_patterns = [] + end + + def clean_up_double_slashes(line) + line.gsub!('//','/') + end + + def ignore_patterns(*patterns) + # do nothing. Only QuietBacktraceTweaker ignores patterns. + end + + def ignored_patterns + [] + end + + def tweak_backtrace(error) + return if error.backtrace.nil? + tweaked = error.backtrace.collect do |message| + clean_up_double_slashes(message) + kept_lines = message.split("\n").select do |line| + ignored_patterns.each do |ignore| + break if line =~ ignore + end + end + kept_lines.empty?? nil : kept_lines.join("\n") + end + error.set_backtrace(tweaked.select {|line| line}) + end + end + + class NoisyBacktraceTweaker < BacktraceTweaker + end + + # Tweaks raised Exceptions to mask noisy (unneeded) parts of the backtrace + class QuietBacktraceTweaker < BacktraceTweaker + unless defined?(IGNORE_PATTERNS) + spec_files = Dir["lib/*"].map do |path| + subpath = path[1..-1] + /#{subpath}/ + end + IGNORE_PATTERNS = spec_files + [ + /\/rspec-[^\/]*\/lib\/spec\//, + /\/spork-[^\/]*\/lib\/spork\//, + /\/lib\/ruby\//, + /bin\/spec:/, + /bin\/spork:/, + /bin\/rcov:/, + /lib\/rspec-rails/, + /vendor\/rails/, + # TextMate's Ruby and RSpec plugins + /Ruby\.tmbundle\/Support\/tmruby.rb:/, + /RSpec\.tmbundle\/Support\/lib/, + /temp_textmate\./, + /mock_frameworks\/rspec/, + /spec_server/ + ] + end + + def initialize(*patterns) + super + ignore_patterns(*patterns) + end + + def ignore_patterns(*patterns) + @ignore_patterns += patterns.flatten.map { |pattern| Regexp.new(pattern) } + end + + def ignored_patterns + IGNORE_PATTERNS + @ignore_patterns + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/class_and_arguments_parser.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/class_and_arguments_parser.rb new file mode 100644 index 0000000..a49ade2 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/class_and_arguments_parser.rb @@ -0,0 +1,14 @@ +module Spec + module Runner + class ClassAndArgumentsParser + def self.parse(s) + if s =~ /([a-zA-Z_]+(?:::[a-zA-Z_]+)*):?(.*)/ + arg = $2 == "" ? nil : $2 + [$1, arg] + else + raise "Couldn't parse #{s.inspect}" + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/command_line.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/command_line.rb new file mode 100644 index 0000000..35a7e31 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/command_line.rb @@ -0,0 +1,15 @@ +require 'spec/runner/option_parser' + +module Spec + module Runner + class CommandLine + def self.run(tmp_options=Spec::Runner.options) + orig_options = Spec::Runner.options + Spec::Runner.use tmp_options + tmp_options.run_examples + ensure + Spec::Runner.use orig_options + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/configuration.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/configuration.rb new file mode 100644 index 0000000..d211565 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/configuration.rb @@ -0,0 +1,194 @@ +module Spec + module Runner + class Configuration + include Spec::Example::ArgsAndOptions + + # Chooses what mock framework to use. Example: + # + # Spec::Runner.configure do |config| + # config.mock_with :rspec, :mocha, :flexmock, or :rr + # end + # + # To use any other mock framework, you'll have to provide your own + # adapter. This is simply a module that responds to the following + # methods: + # + # setup_mocks_for_rspec + # verify_mocks_for_rspec + # teardown_mocks_for_rspec. + # + # These are your hooks into the lifecycle of a given example. RSpec will + # call setup_mocks_for_rspec before running anything else in each + # Example. After executing the #after methods, RSpec will then call + # verify_mocks_for_rspec and teardown_mocks_for_rspec (this is + # guaranteed to run even if there are failures in + # verify_mocks_for_rspec). + # + # Once you've defined this module, you can pass that to mock_with: + # + # Spec::Runner.configure do |config| + # config.mock_with MyMockFrameworkAdapter + # end + # + def mock_with(mock_framework) + @mock_framework = case mock_framework + when Symbol + mock_framework_path(mock_framework.to_s) + else + mock_framework + end + end + + def mock_framework # :nodoc: + @mock_framework ||= mock_framework_path("rspec") + end + + # :call-seq: + # include(Some::Helpers) + # include(Some::Helpers, More::Helpers) + # include(My::Helpers, :type => :key) + # + # Declares modules to be included in multiple example groups + # (describe blocks). With no :type, the modules listed + # will be included in all example groups. + # + # Use :type to restrict + # the inclusion to a subset of example groups. The value assigned to + # :type should be a key that maps to a class that is either a + # subclass of Spec::Example::ExampleGroup or extends + # Spec::Example::ExampleGroupMethods and includes + # Spec::Example::ExampleMethods. + # + # For example, the rspec-rails gem/plugin extends Test::Unit::TestCase + # with Spec::Example::ExampleGroupMethods and includes + # Spec::Example::ExampleMethods in it. So if you have a module of helper + # methods for controller examples, you could do this: + # + # config.include(ControllerExampleHelpers, :type => :controller) + # + # Only example groups that have that type will get the modules included: + # + # describe Account, :type => :model do + # # Will *not* include ControllerExampleHelpers + # end + # + # describe AccountsController, :type => :controller do + # # *Will* include ControllerExampleHelpers + # end + # + def include(*modules_and_options) + include_or_extend(:include, *modules_and_options) + end + + # :call-seq: + # extend(Some::Helpers) + # extend(Some::Helpers, More::Helpers) + # extend(My::Helpers, :type => :key) + # + # Works just like #include, but extends the example groups + # with the modules rather than including them. + def extend(*modules_and_options) + include_or_extend(:extend, *modules_and_options) + end + + # Appends a global before block to all example groups. + # scope can be any of :each (default), :all, or + # :suite. When :each, the block is executed before each + # example. When :all, the block is executed once per example + # group, before any of its examples are run. When :suite the + # block is run once before the entire suite is run. + def append_before(scope = :each, options={}, &proc) + add_callback(:append_before, scope, options, &proc) + end + alias_method :before, :append_before + + # Prepends a global before block to all example groups. + # + # See append_before for scoping semantics. + def prepend_before(scope = :each, options={}, &proc) + add_callback(:prepend_before, scope, options, &proc) + end + + # Prepends a global after block to all example groups. + # + # See append_before for scoping semantics. + def prepend_after(scope = :each, options={}, &proc) + add_callback(:prepend_after, scope, options, &proc) + end + alias_method :after, :prepend_after + + # Appends a global after block to all example groups. + # + # See append_before for scoping semantics. + def append_after(scope = :each, options={}, &proc) + add_callback(:append_after, scope, options, &proc) + end + + # DEPRECATED - use Spec::Matchers::DSL instead + # + # Defines global predicate matchers. Example: + # + # config.predicate_matchers[:swim] = :can_swim? + # + # This makes it possible to say: + # + # person.should swim # passes if person.can_swim? returns true + # + def predicate_matchers + @predicate_matchers ||= Spec::HashWithDeprecationNotice.new("predicate_matchers", "the new Matcher DSL") + end + + # Adds patterns to the list of patterns ignored in the backtrace when a + # failure is output by rspec. Example: + # + # config.ignore_backtrace_patterns /spork/, /shoulda/, "/some/weird/path/" + # + # When quiet backtraces are turned on (default), this will exclude any + # lines that match any of the Regexps and Strings passed. + # + def ignore_backtrace_patterns(*patterns) + @ignored_backtrace_patterns ||= [] + @ignored_backtrace_patterns += patterns + end + + def ignored_backtrace_patterns # :nodoc: + @ignored_backtrace_patterns ||= [] + end + + private + + def include_or_extend(action, *args) + modules, options = args_and_options(*args) + [get_type_from_options(options)].flatten.each do |required_example_group| + required_example_group = required_example_group.to_sym if required_example_group + modules.each do |mod| + Spec::Example::ExampleGroupFactory[required_example_group].__send__(action, mod) + end + end + end + + def add_callback(sym, *args, &proc) + scope, options = scope_and_options(*args) + example_group = Spec::Example::ExampleGroupFactory[get_type_from_options(options)] + example_group.__send__(sym, scope, &proc) + end + + def get_type_from_options(options) + options[:type] || options[:behaviour_type] + end + + def mock_framework_path(framework_name) + "spec/adapters/mock_frameworks/#{framework_name}" + end + + def scope_and_options(*args) # :nodoc: + args, options = args_and_options(*args) + return scope_from(*args), options + end + + def scope_from(*args) # :nodoc: + args[0] || :each + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/differs/default.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/differs/default.rb new file mode 100644 index 0000000..7f0a7e6 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/differs/default.rb @@ -0,0 +1,93 @@ +require 'spec/runner/differs/load-diff-lcs' +require 'pp' + +module Spec + module Expectations + module Differs + unless defined?(Default) + class Default + def initialize(options) + @options = options + end + + # This is snagged from diff/lcs/ldiff.rb (which is a commandline tool) + def diff_as_string(data_new, data_old) + data_old = data_old.split(/\n/).map! { |e| e.chomp } + data_new = data_new.split(/\n/).map! { |e| e.chomp } + output = "" + diffs = Diff::LCS.diff(data_old, data_new) + return output if diffs.empty? + oldhunk = hunk = nil + file_length_difference = 0 + diffs.each do |piece| + begin + hunk = Diff::LCS::Hunk.new(data_old, data_new, piece, context_lines, + file_length_difference) + file_length_difference = hunk.file_length_difference + next unless oldhunk + # Hunks may overlap, which is why we need to be careful when our + # diff includes lines of context. Otherwise, we might print + # redundant lines. + if (context_lines > 0) and hunk.overlaps?(oldhunk) + hunk.unshift(oldhunk) + else + output << oldhunk.diff(format) + end + ensure + oldhunk = hunk + output << "\n" + end + end + #Handle the last remaining hunk + output << oldhunk.diff(format) << "\n" + end + + def diff_as_object(target,expected) + diff_as_string(PP.pp(target,""), PP.pp(expected,"")) + end + + def diff_as_hash(target, expected) + contains_hash = false + contains_array = false + + extra_expected_keys = expected.keys - target.keys + extra_target_keys = target.keys - expected.keys + + o = "\n" + + o << "Expected hash contains keys that target hash does not: " << extra_expected_keys.inspect << "\n" if !extra_expected_keys.empty? + o << "Target hash contains keys that expected hash does not: " << extra_target_keys.inspect << "\n" if !extra_target_keys.empty? + + expected.delete_if do |key, value| + contains_hash = true if value.is_a?(Hash) + contains_array = true if value.is_a?(Array) + target[key] == value + end + + expected.keys.sort { |a,b| a.to_s <=> b.to_s }.each do |key| + o << "Expected the key #{key.inspect} to be #{expected[key].inspect}, but was #{target[key].inspect}\n" + end + + o << "\n" + + if contains_hash || contains_array + o << diff_as_object(target, expected) + else + o + end + end + + protected + def format + @options.diff_format + end + + def context_lines + @options.context_lines + end + end + + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/differs/load-diff-lcs.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/differs/load-diff-lcs.rb new file mode 100644 index 0000000..f708bc9 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/differs/load-diff-lcs.rb @@ -0,0 +1,12 @@ +begin + require 'diff/lcs' +rescue LoadError + begin + require 'rubygems' unless ENV['NO_RUBYGEMS'] + require 'diff/lcs' + rescue LoadError + raise "You must gem install diff-lcs to use diffing" + end +end + +require 'diff/lcs/hunk' diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/drb_command_line.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/drb_command_line.rb new file mode 100644 index 0000000..058a8e1 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/drb_command_line.rb @@ -0,0 +1,26 @@ +require "drb/drb" + +module Spec + module Runner + # Facade to run specs by connecting to a DRB server + class DrbCommandLine + # Runs specs on a DRB server. Note that this API is similar to that of + # CommandLine - making it possible for clients to use both interchangeably. + def self.run(options) + begin + begin; \ + DRb.start_service("druby://localhost:0"); \ + rescue SocketError; \ + DRb.start_service("druby://:0"); \ + end + spec_server = DRbObject.new_with_uri("druby://127.0.0.1:8989") + spec_server.run(options.argv, options.error_stream, options.output_stream) + true + rescue DRb::DRbConnError + options.error_stream.puts "No server is running" + false + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/example_group_runner.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/example_group_runner.rb new file mode 100644 index 0000000..67dc995 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/example_group_runner.rb @@ -0,0 +1,59 @@ +module Spec + module Runner + class ExampleGroupRunner + def initialize(options) + @options = options + end + + def load_files(files) + $KCODE = 'u' if RUBY_VERSION.to_f < 1.9 + # It's important that loading files (or choosing not to) stays the + # responsibility of the ExampleGroupRunner. Some implementations (like) + # the one using DRb may choose *not* to load files, but instead tell + # someone else to do it over the wire. + files.each do |file| + load file + end + end + + def run + prepare + success = true + example_groups.each do |example_group| + success = success & example_group.run(@options) + end + return success + ensure + finish + end + + protected + + def prepare + reporter.start(number_of_examples) + example_groups.reverse! if reverse + end + + def finish + reporter.end + reporter.dump + end + + def reporter + @options.reporter + end + + def reverse + @options.reverse + end + + def example_groups + @options.example_groups + end + + def number_of_examples + @options.number_of_examples + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/extensions/kernel.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/extensions/kernel.rb new file mode 100644 index 0000000..4e23cdf --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/extensions/kernel.rb @@ -0,0 +1,9 @@ +module Kernel + unless respond_to?(:debugger) + # Start a debugging session if ruby-debug is loaded with the -u/--debugger option + def debugger(steps=1) + # If not then just comment and proceed + $stderr.puts "debugger statement ignored, use -u or --debugger option on rspec to enable debugging" + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/base_formatter.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/base_formatter.rb new file mode 100644 index 0000000..0fbc12c --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/base_formatter.rb @@ -0,0 +1,139 @@ +module Spec + module Runner + module Formatter + # Formatter base-class, which implements all required methods as no-ops, with the exception + class BaseFormatter + # Formatters are initialized with options and output + # arguments. RSpec's built-in formatters already expect this, and any + # custom formatters should as well. + # + # ==== Parameters + # options:: + # A struct containing boolean values for colour, autospec, + # and dry_run + # output:: + # Used by RSpec's built-in formatters to determine where to + # write the output. Default is STDOUT, otherwise a + # filename is expected. + # + # === Example + # If you invoke the spec command with: + # + # --format progress:progress_report.txt + # + # ... the value of output will be progress_report.txt. If you + # don't identify an output destination, the default is STDOUT. + def initialize(options, output) + end + + # This method is invoked before any examples are run, right after + # they have all been collected. This can be useful for special + # formatters that need to provide progress on feedback (graphical ones) + # + # This method will only be invoked once, and the next one to be invoked + # is #example_group_started + # + # ==== Parameters + # example_count:: the total number of examples to be run + def start(example_count) + end + + # This method is invoked at the beginning of the execution of each + # example_group. The next method to be invoked after this is + # #example_started + # + # ==== Parameters + # example_group_proxy:: instance of Spec::Example::ExampleGroupProxy + def example_group_started(example_group_proxy) + end + + # Deprecated - use example_group_started instead + def add_example_group(example_group_proxy) + Spec.deprecate("BaseFormatter#add_example_group", "BaseFormatter#example_group_started") + example_group_started(example_group_proxy) + end + + # This method is invoked when an +example+ starts. The next method to be + # invoked after this is #example_passed, #example_failed, or + # #example_pending + # + # ==== Parameters + # example_proxy:: instance of Spec::Example::ExampleProxy + def example_started(example_proxy) + end + + # This method is invoked when an +example+ passes. + # +example_proxy+ is the same instance of Spec::Example::ExampleProxy + # that was passed to example_started + # + # ==== Parameters + # example_proxy:: instance of Spec::Example::ExampleProxy + def example_passed(example_proxy) + end + + # This method is invoked when an +example+ fails, i.e. an exception occurred + # inside it (such as a failed should or other exception). + # + # ==== Parameters + # example_proxy:: + # The same instance of Spec::Example::ExampleProxy that was passed + # to example_started + # + # counter:: the sequential number of this failure + # + # failure:: instance of Spec::Runner::Reporter::Failure + def example_failed(example_proxy, counter, failure) + end + + # This method is invoked when an example is not yet implemented (i.e. has not + # been provided a block), or when an ExamplePendingError is raised. + # +message+ is the message from the ExamplePendingError, if it exists, or the + # default value of "Not Yet Implemented". +deprecated_pending_location+ is + # deprecated - use example_proxy.location instead + # + # ==== Parameters + # example_proxy:: instance of Spec::Example::ExampleProxy + # message:: + # the message passed to the pending message, or an internal + # default + # + def example_pending(example_proxy, message, deprecated_pending_location=nil) + end + + # This method is invoked after all of the examples have executed. The next method + # to be invoked after this one is #dump_failure (once for each failed example) + def start_dump + end + + # Dumps detailed information about an example failure. + # This method is invoked for each failed example after all examples have run. +counter+ is the sequence number + # of the associated example. +failure+ is a Failure object, which contains detailed + # information about the failure. + # + # ==== Parameters + # counter:: the sequential number of this failure + # failure:: instance of Spec::Runner::Reporter::Failure + def dump_failure(counter, failure) + end + + # This method is invoked after the dumping of examples and failures. + # + # ==== Parameters + # duration:: the total time for the entire run + # example_count:: the number of examples run + # failure_count:: the number of examples that failed + # pending_count:: the number of examples that are pending + def dump_summary(duration, example_count, failure_count, pending_count) + end + + # This gets invoked after the summary + def dump_pending + end + + # This method is invoked at the very end. Allows the formatter to clean up, like closing open streams. + def close + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/base_text_formatter.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/base_text_formatter.rb new file mode 100644 index 0000000..ee8db75 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/base_text_formatter.rb @@ -0,0 +1,142 @@ +require 'spec/runner/formatter/base_formatter' +require 'fileutils' + +module Spec + module Runner + module Formatter + # Baseclass for text-based formatters. Can in fact be used for + # non-text based ones too - just ignore the +output+ constructor + # argument. + class BaseTextFormatter < BaseFormatter + attr_reader :output, :example_group + # Creates a new instance that will write to +output+. If +output+ is a + # String, output will be written to the File with that name, otherwise + # +output+ is exected to be an IO (or an object that responds to #puts + # and #write). + def initialize(options, output) + @options = options + if String === output + FileUtils.mkdir_p(File.dirname(output)) + @output = File.open(output, 'w') + else + @output = output + end + @pending_examples = [] + end + + def example_group_started(example_group_proxy) + @example_group = example_group_proxy + end + + def example_pending(example, message, deprecated_pending_location=nil) + @pending_examples << ["#{@example_group.description} #{example.description}", message, example.location] + end + + def dump_failure(counter, failure) + @output.puts + @output.puts "#{counter.to_s})" + @output.puts colorize_failure("#{failure.header}\n#{failure.exception.message}", failure) + @output.puts format_backtrace(failure.exception.backtrace) + @output.flush + end + + def colorize_failure(message, failure) + failure.pending_fixed? ? blue(message) : red(message) + end + + def colourise(message, failure) + Spec::deprecate("BaseTextFormatter#colourise", "colorize_failure") + colorize_failure(message, failure) + end + + def dump_summary(duration, example_count, failure_count, pending_count) + return if dry_run? + @output.puts + @output.puts "Finished in #{duration} seconds" + @output.puts + + summary = "#{example_count} example#{'s' unless example_count == 1}, #{failure_count} failure#{'s' unless failure_count == 1}" + summary << ", #{pending_count} pending" if pending_count > 0 + + if failure_count == 0 + if pending_count > 0 + @output.puts yellow(summary) + else + @output.puts green(summary) + end + else + @output.puts red(summary) + end + @output.flush + end + + def dump_pending + unless @pending_examples.empty? + @output.puts + @output.puts "Pending:" + @pending_examples.each do |pending_example| + @output.puts "\n#{pending_example[0]} (#{pending_example[1]})" + @output.puts "#{pending_example[2]}\n" + end + end + @output.flush + end + + def close + @output.close if (IO === @output) & (@output != $stdout) + end + + def format_backtrace(backtrace) + return "" if backtrace.nil? + backtrace.map { |line| backtrace_line(line) }.join("\n") + end + + protected + + def colour? + !!@options.colour + end + + def dry_run? + !!@options.dry_run + end + + def autospec? + !!@options.autospec || ENV.has_key?("AUTOTEST") + end + + def backtrace_line(line) + line.sub(/\A([^:]+:\d+)$/, '\\1:') + end + + def colour(text, colour_code) + return text if output_to_file? + return text unless ENV['RSPEC_COLOR'] || (colour? & (autospec? || output_to_tty?)) + "#{colour_code}#{text}\e[0m" + end + + def output_to_file? + File === @output + end + + def output_to_tty? + begin + @output.tty? + rescue NoMethodError + false + end + end + + def green(text); colour(text, "\e[32m"); end + def red(text); colour(text, "\e[31m"); end + def yellow(text); colour(text, "\e[33m"); end + def blue(text); colour(text, "\e[34m"); end + + def magenta(text) + Spec::deprecate("BaseTextFormatter#magenta") + red(text) + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/failing_example_groups_formatter.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/failing_example_groups_formatter.rb new file mode 100644 index 0000000..3172943 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/failing_example_groups_formatter.rb @@ -0,0 +1,25 @@ +require 'spec/runner/formatter/base_text_formatter' + +module Spec + module Runner + module Formatter + class FailingExampleGroupsFormatter < BaseTextFormatter + def example_failed(example, counter, failure) + if @example_group + @output.puts @example_group.description.gsub(/ \(druby.*\)/,"") + + @output.flush + @example_group = nil + end + end + + def dump_failure(counter, failure) + end + + def dump_summary(duration, example_count, failure_count, pending_count) + end + + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/failing_examples_formatter.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/failing_examples_formatter.rb new file mode 100644 index 0000000..e3a271c --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/failing_examples_formatter.rb @@ -0,0 +1,20 @@ +require 'spec/runner/formatter/base_text_formatter' + +module Spec + module Runner + module Formatter + class FailingExamplesFormatter < BaseTextFormatter + def example_failed(example, counter, failure) + @output.puts "#{example_group.description} #{example.description}" + @output.flush + end + + def dump_failure(counter, failure) + end + + def dump_summary(duration, example_count, failure_count, pending_count) + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/html_formatter.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/html_formatter.rb new file mode 100644 index 0000000..2d0c65d --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/html_formatter.rb @@ -0,0 +1,338 @@ +require 'erb' +require 'spec/runner/formatter/base_text_formatter' +require 'spec/runner/formatter/no_op_method_missing' + +module Spec + module Runner + module Formatter + class HtmlFormatter < BaseTextFormatter + include ERB::Util # for the #h method + include NOOPMethodMissing + + def initialize(options, output) + super + @example_group_number = 0 + @example_number = 0 + @header_red = nil + end + + # The number of the currently running example_group + def example_group_number + @example_group_number + end + + # The number of the currently running example (a global counter) + def example_number + @example_number + end + + def start(example_count) + @example_count = example_count + + @output.puts html_header + @output.puts report_header + @output.flush + end + + def example_group_started(example_group) + super + @example_group_red = false + @example_group_number += 1 + unless example_group_number == 1 + @output.puts " " + @output.puts "" + end + @output.puts "
    " + @output.puts "
    " + @output.puts "
    #{h(example_group.description)}
    " + @output.flush + end + + def start_dump + @output.puts "
    " + @output.puts "
    " + @output.flush + end + + def example_started(example) + @example_number += 1 + end + + def example_passed(example) + move_progress + @output.puts "
    #{h(example.description)}
    " + @output.flush + end + + def example_failed(example, counter, failure) + extra = extra_failure_content(failure) + failure_style = failure.pending_fixed? ? 'pending_fixed' : 'failed' + @output.puts " " unless @header_red + @header_red = true + @output.puts " " unless @example_group_red + @example_group_red = true + move_progress + @output.puts "
    " + @output.puts " #{h(example.description)}" + @output.puts "
    " + @output.puts "
    #{h(failure.exception.message)}
    " unless failure.exception.nil? + @output.puts "
    #{format_backtrace(failure.exception.backtrace)}
    " unless failure.exception.nil? + @output.puts extra unless extra == "" + @output.puts "
    " + @output.puts "
    " + @output.flush + end + + def example_pending(example, message, deprecated_pending_location=nil) + @output.puts " " unless @header_red + @output.puts " " unless @example_group_red + move_progress + @output.puts "
    #{h(example.description)} (PENDING: #{h(message)})
    " + @output.flush + end + + # Override this method if you wish to output extra HTML for a failed spec. For example, you + # could output links to images or other files produced during the specs. + # + def extra_failure_content(failure) + require 'spec/runner/formatter/snippet_extractor' + @snippet_extractor ||= SnippetExtractor.new + "
    #{@snippet_extractor.snippet(failure.exception)}
    " + end + + def move_progress + @output.puts " " + @output.flush + end + + def percent_done + result = 100.0 + if @example_count != 0 + result = ((example_number).to_f / @example_count.to_f * 1000).to_i / 10.0 + end + result + end + + def dump_failure(counter, failure) + end + + def dump_summary(duration, example_count, failure_count, pending_count) + if dry_run? + totals = "This was a dry-run" + else + totals = "#{example_count} example#{'s' unless example_count == 1}, #{failure_count} failure#{'s' unless failure_count == 1}" + totals << ", #{pending_count} pending" if pending_count > 0 + end + @output.puts "" + @output.puts "" + @output.puts "" + @output.puts "" + @output.puts "" + @output.puts "" + @output.flush + end + + def html_header + <<-EOF + + + + + RSpec results + + + + + + + + +EOF + end + + def report_header + <<-EOF +
    + +
    +
    +

    RSpec Code Examples

    +
    + +
    +

     

    +

     

    +
    +
    + +
    +EOF + end + + def global_scripts + <<-EOF +function moveProgressBar(percentDone) { + document.getElementById("rspec-header").style.width = percentDone +"%"; +} +function makeRed(element_id) { + document.getElementById(element_id).style.background = '#C40D0D'; + document.getElementById(element_id).style.color = '#FFFFFF'; +} + +function makeYellow(element_id) { + if (element_id == "rspec-header" && document.getElementById(element_id).style.background != '#C40D0D') + { + document.getElementById(element_id).style.background = '#FAF834'; + document.getElementById(element_id).style.color = '#000000'; + } + else + { + document.getElementById(element_id).style.background = '#FAF834'; + document.getElementById(element_id).style.color = '#000000'; + } +} +EOF + end + + def global_styles + <<-EOF +#rspec-header { + background: #65C400; color: #fff; height: 4em; +} + +.rspec-report h1 { + margin: 0px 10px 0px 10px; + padding: 10px; + font-family: "Lucida Grande", Helvetica, sans-serif; + font-size: 1.8em; + position: absolute; +} + +#summary { + margin: 0; padding: 5px 10px; + font-family: "Lucida Grande", Helvetica, sans-serif; + text-align: right; + top: 0px; + right: 0px; + float:right; +} + +#summary p { + margin: 0 0 0 2px; +} + +#summary #totals { + font-size: 1.2em; +} + +.example_group { + margin: 0 10px 5px; + background: #fff; +} + +dl { + margin: 0; padding: 0 0 5px; + font: normal 11px "Lucida Grande", Helvetica, sans-serif; +} + +dt { + padding: 3px; + background: #65C400; + color: #fff; + font-weight: bold; +} + +dd { + margin: 5px 0 5px 5px; + padding: 3px 3px 3px 18px; +} + +dd.spec.passed { + border-left: 5px solid #65C400; + border-bottom: 1px solid #65C400; + background: #DBFFB4; color: #3D7700; +} + +dd.spec.failed { + border-left: 5px solid #C20000; + border-bottom: 1px solid #C20000; + color: #C20000; background: #FFFBD3; +} + +dd.spec.not_implemented { + border-left: 5px solid #FAF834; + border-bottom: 1px solid #FAF834; + background: #FCFB98; color: #131313; +} + +dd.spec.pending_fixed { + border-left: 5px solid #0000C2; + border-bottom: 1px solid #0000C2; + color: #0000C2; background: #D3FBFF; +} + +.backtrace { + color: #000; + font-size: 12px; +} + +a { + color: #BE5C00; +} + +/* Ruby code, style similar to vibrant ink */ +.ruby { + font-size: 12px; + font-family: monospace; + color: white; + background-color: black; + padding: 0.1em 0 0.2em 0; +} + +.ruby .keyword { color: #FF6600; } +.ruby .constant { color: #339999; } +.ruby .attribute { color: white; } +.ruby .global { color: white; } +.ruby .module { color: white; } +.ruby .class { color: white; } +.ruby .string { color: #66FF00; } +.ruby .ident { color: white; } +.ruby .method { color: #FFCC00; } +.ruby .number { color: white; } +.ruby .char { color: white; } +.ruby .comment { color: #9933CC; } +.ruby .symbol { color: white; } +.ruby .regex { color: #44B4CC; } +.ruby .punct { color: white; } +.ruby .escape { color: white; } +.ruby .interp { color: white; } +.ruby .expr { color: white; } + +.ruby .offending { background-color: gray; } +.ruby .linenum { + width: 75px; + padding: 0.1em 1em 0.2em 0; + color: #000000; + background-color: #FFFBD3; +} +EOF + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/nested_text_formatter.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/nested_text_formatter.rb new file mode 100644 index 0000000..5caec5a --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/nested_text_formatter.rb @@ -0,0 +1,47 @@ +require 'spec/runner/formatter/base_text_formatter' + +module Spec + module Runner + module Formatter + class NestedTextFormatter < BaseTextFormatter + def initialize(options, where) + super + @last_nested_descriptions = [] + end + + def example_group_started(example_group) + super + + example_group.nested_descriptions.each_with_index do |nested_description, i| + unless nested_description == @last_nested_descriptions[i] + output.puts "#{' ' * i}#{nested_description}" + end + end + + @last_nested_descriptions = example_group.nested_descriptions + end + + def example_failed(example, counter, failure) + output.puts(red("#{current_indentation}#{example.description} (FAILED - #{counter})")) + output.flush + end + + def example_passed(example) + message = "#{current_indentation}#{example.description}" + output.puts green(message) + output.flush + end + + def example_pending(example, message, deprecated_pending_location=nil) + super + output.puts yellow("#{current_indentation}#{example.description} (PENDING: #{message})") + output.flush + end + + def current_indentation + ' ' * @last_nested_descriptions.length + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/no_op_method_missing.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/no_op_method_missing.rb new file mode 100644 index 0000000..350e29f --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/no_op_method_missing.rb @@ -0,0 +1,21 @@ +module Spec + module Runner + module Formatter + module NOOPMethodMissing + def respond_to?(message, include_private = false) + if include_private + true + else + !private_methods.any? {|m| [message.to_s, message.to_sym].include?(m)} + end + end + + private + + def method_missing(sym, *args) + # a no-op + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/profile_formatter.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/profile_formatter.rb new file mode 100644 index 0000000..3784f3a --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/profile_formatter.rb @@ -0,0 +1,47 @@ +require 'spec/runner/formatter/progress_bar_formatter' + +module Spec + module Runner + module Formatter + class ProfileFormatter < ProgressBarFormatter + + def initialize(options, where) + super + @example_times = [] + end + + def start(count) + @output.puts "Profiling enabled." + end + + def example_started(example) + @time = Time.now + end + + def example_passed(example) + super + @example_times << [ + example_group.description, + example.description, + Time.now - @time + ] + end + + def start_dump + super + @output.puts "\n\nTop 10 slowest examples:\n" + + @example_times = @example_times.sort_by do |description, example, time| + time + end.reverse + + @example_times[0..9].each do |description, example, time| + @output.print red(sprintf("%.7f", time)) + @output.puts " #{description} #{example}" + end + @output.flush + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/progress_bar_formatter.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/progress_bar_formatter.rb new file mode 100644 index 0000000..862f87a --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/progress_bar_formatter.rb @@ -0,0 +1,33 @@ +require 'spec/runner/formatter/base_text_formatter' +require 'spec/runner/formatter/no_op_method_missing' + +module Spec + module Runner + module Formatter + class ProgressBarFormatter < BaseTextFormatter + include NOOPMethodMissing + + def example_failed(example, counter, failure) + @output.print colorize_failure('F', failure) + @output.flush + end + + def example_passed(example) + @output.print green('.') + @output.flush + end + + def example_pending(example, message, deprecated_pending_location=nil) + super + @output.print yellow('*') + @output.flush + end + + def start_dump + @output.puts + @output.flush + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/silent_formatter.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/silent_formatter.rb new file mode 100644 index 0000000..43cce33 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/silent_formatter.rb @@ -0,0 +1,10 @@ +require 'spec/runner/formatter/base_formatter' + +module Spec + module Runner + module Formatter + class SilentFormatter < BaseFormatter + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/snippet_extractor.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/snippet_extractor.rb new file mode 100644 index 0000000..4f34e5f --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/snippet_extractor.rb @@ -0,0 +1,52 @@ +module Spec + module Runner + module Formatter + # This class extracts code snippets by looking at the backtrace of the passed error + class SnippetExtractor #:nodoc: + class NullConverter; def convert(code, pre); code; end; end #:nodoc: + begin; require 'syntax/convertors/html'; @@converter = Syntax::Convertors::HTML.for_syntax "ruby"; rescue LoadError => e; @@converter = NullConverter.new; end + + def snippet(error) + raw_code, line = snippet_for(error.backtrace[0]) + highlighted = @@converter.convert(raw_code, false) + highlighted << "\n# gem install syntax to get syntax highlighting" if @@converter.is_a?(NullConverter) + post_process(highlighted, line) + end + + def snippet_for(error_line) + if error_line =~ /(.*):(\d+)/ + file = $1 + line = $2.to_i + [lines_around(file, line), line] + else + ["# Couldn't get snippet for #{error_line}", 1] + end + end + + def lines_around(file, line) + if File.file?(file) + lines = File.open(file).read.split("\n") + min = [0, line-3].max + max = [line+1, lines.length-1].min + selected_lines = [] + selected_lines.join("\n") + lines[min..max].join("\n") + else + "# Couldn't get snippet for #{file}" + end + end + + def post_process(highlighted, offending_line) + new_lines = [] + highlighted.split("\n").each_with_index do |line, i| + new_line = "#{offending_line+i-2}#{line}" + new_line = "#{new_line}" if i == 2 + new_lines << new_line + end + new_lines.join("\n") + end + + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/specdoc_formatter.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/specdoc_formatter.rb new file mode 100644 index 0000000..7204f21 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/specdoc_formatter.rb @@ -0,0 +1,33 @@ +require 'spec/runner/formatter/base_text_formatter' + +module Spec + module Runner + module Formatter + class SpecdocFormatter < BaseTextFormatter + def example_group_started(example_group) + super + output.puts + output.puts example_group.description + output.flush + end + + def example_failed(example, counter, failure) + output.puts(red("- #{example.description} (FAILED - #{counter})")) + output.flush + end + + def example_passed(example) + message = "- #{example.description}" + output.puts green(message) + output.flush + end + + def example_pending(example, message, deprecated_pending_location=nil) + super + output.puts yellow("- #{example.description} (PENDING: #{message})") + output.flush + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/text_mate_formatter.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/text_mate_formatter.rb new file mode 100644 index 0000000..4c0a9c7 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/formatter/text_mate_formatter.rb @@ -0,0 +1,16 @@ +require 'spec/runner/formatter/html_formatter' + +module Spec + module Runner + module Formatter + # Formats backtraces so they're clickable by TextMate + class TextMateFormatter < HtmlFormatter + def backtrace_line(line) + line.gsub(/([^:]*\.rb):(\d*)/) do + "#{$1}:#{$2} " + end + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/heckle_runner.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/heckle_runner.rb new file mode 100644 index 0000000..5c81ea8 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/heckle_runner.rb @@ -0,0 +1,72 @@ +if Spec::Ruby.version.to_f < 1.9 + begin + require 'rubygems' unless ENV['NO_RUBYGEMS'] + require 'heckle' + rescue LoadError ; raise "You must gem install heckle to use --heckle" ; end + + module Spec + module Runner + # Creates a new Heckler configured to heckle all methods in the classes + # whose name matches +filter+ + class HeckleRunner + def initialize(filter, heckle_class=Heckler) + @filter = filter + @heckle_class = heckle_class + end + + # Runs all the example groups held by +rspec_options+ once for each of the + # methods in the matched classes. + def heckle_with + if @filter =~ /(.*)[#\.](.*)/ + heckle_method($1, $2) + else + heckle_class_or_module(@filter) + end + end + + def heckle_method(class_name, method_name) + verify_constant(class_name) + heckle = @heckle_class.new(class_name, method_name, Spec::Runner.options) + heckle.validate + end + + def heckle_class_or_module(class_or_module_name) + verify_constant(class_or_module_name) + pattern = /^#{class_or_module_name}/ + classes = [] + ObjectSpace.each_object(Class) do |klass| + classes << klass if klass.name =~ pattern + end + + classes.each do |klass| + klass.instance_methods(false).each do |method_name| + heckle = @heckle_class.new(klass.name, method_name, Spec::Runner.options) + heckle.validate + end + end + end + + def verify_constant(name) + begin + # This is defined in Heckle + name.to_class + rescue + raise "Heckling failed - \"#{name}\" is not a known class or module" + end + end + end + + class Heckler < Heckle + def initialize(klass_name, method_name, rspec_options) + super(klass_name, method_name) + @rspec_options = rspec_options + end + + def tests_pass? + @rspec_options.run_examples + end + + end + end + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/heckle_runner_unsupported.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/heckle_runner_unsupported.rb new file mode 100644 index 0000000..35ff86e --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/heckle_runner_unsupported.rb @@ -0,0 +1,10 @@ +module Spec + module Runner + # Dummy implementation for Windows that just fails (Heckle is not supported on Windows) + class HeckleRunner + def initialize(filter) + raise "Heckle is not supported on Windows or Ruby 1.9" + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/line_number_query.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/line_number_query.rb new file mode 100644 index 0000000..0a907d3 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/line_number_query.rb @@ -0,0 +1,78 @@ +module Spec + module Runner + # Parses a spec file and finds the nearest example for a given line number. + class LineNumberQuery + attr_reader :best_match + + def initialize(run_options) + @best_match = {} + @run_options = run_options + end + + def spec_name_for(file, line_number) + best_match.clear + file = File.expand_path(file) + determine_best_match(file, line_number) + if best_match[:example_group] + if best_match[:example] + "#{best_match[:example_group].description} #{best_match[:example].description}" + else + best_match[:example_group].description + end + else + nil + end + end + + def example_line_for(file, line_number) + determine_best_match(file, line_number) + best_match[:line] + end + + protected + + def determine_best_match(file, line_number) + best_match.clear + file = File.expand_path(file) + @run_options.example_groups.each do |example_group| + next unless example_group.location + consider_example_group_for_best_match(example_group, file, line_number) + + example_group.examples.each do |example| + consider_example_for_best_match(example, example_group, file, line_number) + end + end + end + + def consider_example_group_for_best_match(example_group, file, line_number) + example_group_file, example_group_line = parse_location(example_group.location) + if is_best_match?(file, line_number, example_group_file, example_group_line) + best_match.clear + best_match[:example_group] = example_group + best_match[:line] = example_group_line + end + end + + def consider_example_for_best_match(example, example_group, file, line_number) + example_file, example_line = parse_location(example.location) + if is_best_match?(file, line_number, example_file, example_line) + best_match.clear + best_match[:example_group] = example_group + best_match[:example] = example + best_match[:line] = example_line + end + end + + def is_best_match?(file, line_number, example_file, example_line) + file == File.expand_path(example_file) && + example_line <= line_number && + example_line > best_match[:line].to_i + end + + def parse_location(location) + location =~ /(.*)\:(\d*)(\:|$)/ + return $1, Integer($2) + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/option_parser.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/option_parser.rb new file mode 100644 index 0000000..fbbf444 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/option_parser.rb @@ -0,0 +1,223 @@ +require 'optparse' +require 'stringio' + +module Spec + module Runner + class OptionParser < ::OptionParser + class << self + def parse(args, err, out) + parser = new(err, out) + parser.parse(args) + parser.options + end + + def spec_command? + $0.split('/').last == 'spec' + end + end + + attr_reader :options + + OPTIONS = { + :pattern => ["-p", "--pattern [PATTERN]","Limit files loaded to those matching this pattern. Defaults to '**/*_spec.rb'", + "Separate multiple patterns with commas.", + "Applies only to directories named on the command line (files", + "named explicitly on the command line will be loaded regardless)."], + :diff => ["-D", "--diff [FORMAT]","Show diff of objects that are expected to be equal when they are not", + "Builtin formats: unified|u|context|c", + "You can also specify a custom differ class", + "(in which case you should also specify --require)"], + :colour => ["-c", "--colour", "--color", "Show coloured (red/green) output"], + :example => ["-e", "--example [NAME|FILE_NAME]", "Execute example(s) with matching name(s). If the argument is", + "the path to an existing file (typically generated by a previous", + "run using --format failing_examples:file.txt), then the examples", + "on each line of that file will be executed. If the file is empty,", + "all examples will be run (as if --example was not specified).", + " ", + "If the argument is not an existing file, then it is treated as", + "an example name directly, causing RSpec to run just the example", + "matching that name"], + :specification => ["-s", "--specification [NAME]", "DEPRECATED - use -e instead", "(This will be removed when autotest works with -e)"], + :line => ["-l", "--line LINE_NUMBER", Integer, "Execute example group or example at given line.", + "(does not work for dynamically generated examples)"], + :format => ["-f", "--format FORMAT[:WHERE]","Specifies what format to use for output. Specify WHERE to tell", + "the formatter where to write the output. All built-in formats", + "expect WHERE to be a file name, and will write to $stdout if it's", + "not specified. The --format option may be specified several times", + "if you want several outputs", + " ", + "Builtin formats:", + "silent|l : No output", "progress|p : Text-based progress bar", + "profile|o : Text-based progress bar with profiling of 10 slowest examples", + "specdoc|s : Code example doc strings", + "nested|n : Code example doc strings with nested groups indented", + "html|h : A nice HTML report", + "failing_examples|e : Write all failing examples - input for --example", + "failing_example_groups|g : Write all failing example groups - input for --example", + " ", + "FORMAT can also be the name of a custom formatter class", + "(in which case you should also specify --require to load it)"], + :require => ["-r", "--require FILE", "Require FILE before running specs", + "Useful for loading custom formatters or other extensions.", + "If this option is used it must come before the others"], + :backtrace => ["-b", "--backtrace", "Output full backtrace"], + :loadby => ["-L", "--loadby STRATEGY", "Specify the strategy by which spec files should be loaded.", + "STRATEGY can currently only be 'mtime' (File modification time)", + "By default, spec files are loaded in alphabetical order if --loadby", + "is not specified."], + :reverse => ["-R", "--reverse", "Run examples in reverse order"], + :timeout => ["-t", "--timeout FLOAT", "Interrupt and fail each example that doesn't complete in the", + "specified time"], + :heckle => ["-H", "--heckle CODE", "If all examples pass, this will mutate the classes and methods", + "identified by CODE little by little and run all the examples again", + "for each mutation. The intent is that for each mutation, at least", + "one example *should* fail, and RSpec will tell you if this is not the", + "case. CODE should be either Some::Module, Some::Class or", + "Some::Fabulous#method}"], + :dry_run => ["-d", "--dry-run", "Invokes formatters without executing the examples."], + :options_file => ["-O", "--options PATH", "Read options from a file"], + :generate_options => ["-G", "--generate-options PATH", "Generate an options file for --options"], + :runner => ["-U", "--runner RUNNER", "Use a custom Runner."], + :debug => ["-u", "--debugger", "Enable ruby-debugging."], + :drb => ["-X", "--drb", "Run examples via DRb. (For example against script/spec_server)"], + :version => ["-v", "--version", "Show version"], + :help => ["-h", "--help", "You're looking at it"] + } + + def initialize(err, out) + super() + @error_stream = err + @out_stream = out + @options = Options.new(@error_stream, @out_stream) + + @file_factory = File + + self.banner = "Usage: spec (FILE(:LINE)?|DIRECTORY|GLOB)+ [options]" + self.separator "" + on(*OPTIONS[:pattern]) {|pattern| @options.filename_pattern = pattern} + on(*OPTIONS[:diff]) {|diff| @options.parse_diff(diff)} + on(*OPTIONS[:colour]) {@options.colour = true} + on(*OPTIONS[:example]) {|example| @options.parse_example(example)} + on(*OPTIONS[:specification]) {|example| @options.parse_example(example)} + on(*OPTIONS[:line]) {|line_number| @options.line_number = line_number.to_i} + on(*OPTIONS[:format]) {|format| @options.parse_format(format)} + on(*OPTIONS[:require]) {|requires| invoke_requires(requires)} + on(*OPTIONS[:backtrace]) {@options.backtrace_tweaker = NoisyBacktraceTweaker.new} + on(*OPTIONS[:loadby]) {|loadby| @options.loadby = loadby} + on(*OPTIONS[:reverse]) {@options.reverse = true} + on(*OPTIONS[:timeout]) {|timeout| @options.timeout = timeout.to_f} + on(*OPTIONS[:heckle]) {|heckle| @options.load_heckle_runner(heckle)} + on(*OPTIONS[:dry_run]) {@options.dry_run = true} + on(*OPTIONS[:options_file]) {|options_file|} + on(*OPTIONS[:generate_options]) {|options_file|} + on(*OPTIONS[:runner]) {|runner| @options.user_input_for_runner = runner} + on(*OPTIONS[:debug]) {@options.debug = true} + on(*OPTIONS[:drb]) {} + on(*OPTIONS[:version]) {parse_version} + on("--autospec") {@options.autospec = true} + on_tail(*OPTIONS[:help]) {parse_help} + end + + def order!(argv, &blk) + @argv = argv.dup + @argv = (@argv.empty? & self.class.spec_command?) ? ['--help'] : @argv + + # Parse options file first + parse_file_options(:options_file, :parse_options_file) + + @options.argv = @argv.dup + return if parse_file_options(:generate_options, :write_options_file) + return if parse_drb + + super(@argv) do |file| + if file =~ /^(.+):(\d+)$/ + file = $1 + @options.line_number = $2.to_i + end + + @options.files << file + blk.call(file) if blk + end + + @options + end + + protected + + def invoke_requires(requires) + requires.split(",").each do |file| + require file + end + end + + def parse_file_options(option_name, action) + # Remove the file option and the argument before handling the file + options_file = nil + options_list = OPTIONS[option_name][0..1] + options_list[1].gsub!(" PATH", "") + options_list.each do |option| + if index = @argv.index(option) + @argv.delete_at(index) + options_file = @argv.delete_at(index) + end + end + + if options_file.nil? && + File.exist?('spec/spec.opts') && + !@argv.any?{|a| a =~ /^\-/ } + options_file = 'spec/spec.opts' + end + + if options_file + send(action, options_file) + return true + else + return false + end + end + + def parse_options_file(options_file) + option_file_args = File.readlines(options_file).map {|l| l.chomp.split " "}.flatten + @argv.push(*option_file_args) + end + + def write_options_file(options_file) + File.open(options_file, 'w') do |io| + io.puts @argv.join("\n") + end + @out_stream.puts "\nOptions written to #{options_file}. You can now use these options with:" + @out_stream.puts "spec --options #{options_file}" + @options.examples_should_not_be_run + end + + def parse_drb + argv = @options.argv + is_drb = false + is_drb ||= argv.delete(OPTIONS[:drb][0]) + is_drb ||= argv.delete(OPTIONS[:drb][1]) + return false unless is_drb + if DrbCommandLine.run(self.class.parse(argv, @error_stream, @out_stream)) + @options.examples_should_not_be_run + true + else + @error_stream.puts "Running specs locally:" + false + end + end + + def parse_version + @out_stream.puts ::Spec::VERSION::SUMMARY + exit if stdout? + end + + def parse_help + @out_stream.puts self + exit if stdout? + end + + def stdout? + @out_stream == $stdout + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/options.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/options.rb new file mode 100644 index 0000000..e0179e8 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/options.rb @@ -0,0 +1,400 @@ +require 'ostruct' + +module Spec + module Runner + class Options + FILE_SORTERS = { + 'mtime' => lambda {|file_a, file_b| File.mtime(file_b) <=> File.mtime(file_a)} + } + + EXAMPLE_FORMATTERS = { # Load these lazily for better speed + 'silent' => ['spec/runner/formatter/silent_formatter', 'Formatter::SilentFormatter'], + 'l' => ['spec/runner/formatter/silent_formatter', 'Formatter::SilentFormatter'], + 'specdoc' => ['spec/runner/formatter/specdoc_formatter', 'Formatter::SpecdocFormatter'], + 's' => ['spec/runner/formatter/specdoc_formatter', 'Formatter::SpecdocFormatter'], + 'nested' => ['spec/runner/formatter/nested_text_formatter', 'Formatter::NestedTextFormatter'], + 'n' => ['spec/runner/formatter/nested_text_formatter', 'Formatter::NestedTextFormatter'], + 'html' => ['spec/runner/formatter/html_formatter', 'Formatter::HtmlFormatter'], + 'h' => ['spec/runner/formatter/html_formatter', 'Formatter::HtmlFormatter'], + 'progress' => ['spec/runner/formatter/progress_bar_formatter', 'Formatter::ProgressBarFormatter'], + 'p' => ['spec/runner/formatter/progress_bar_formatter', 'Formatter::ProgressBarFormatter'], + 'failing_examples' => ['spec/runner/formatter/failing_examples_formatter', 'Formatter::FailingExamplesFormatter'], + 'e' => ['spec/runner/formatter/failing_examples_formatter', 'Formatter::FailingExamplesFormatter'], +'failing_example_groups' => ['spec/runner/formatter/failing_example_groups_formatter', 'Formatter::FailingExampleGroupsFormatter'], + 'g' => ['spec/runner/formatter/failing_example_groups_formatter', 'Formatter::FailingExampleGroupsFormatter'], + 'profile' => ['spec/runner/formatter/profile_formatter', 'Formatter::ProfileFormatter'], + 'o' => ['spec/runner/formatter/profile_formatter', 'Formatter::ProfileFormatter'], + 'textmate' => ['spec/runner/formatter/text_mate_formatter', 'Formatter::TextMateFormatter'] + } + + attr_accessor( + :autospec, # hack to tell + :filename_pattern, + :backtrace_tweaker, + :context_lines, + :diff_format, + :dry_run, + :profile, + :heckle_runner, + :debug, + :line_number, + :loadby, + :reporter, + :reverse, + :timeout, + :verbose, + :user_input_for_runner, + :error_stream, + :output_stream, + # TODO: BT - Figure out a better name + :argv + ) + attr_reader :colour, :differ_class, :files, :examples, :example_groups + + def initialize(error_stream, output_stream) + @error_stream = error_stream + @output_stream = output_stream + @filename_pattern = "**/*_spec.rb" + @backtrace_tweaker = QuietBacktraceTweaker.new + @examples = [] + @colour = false + @profile = false + @dry_run = false + @debug = false + @reporter = Reporter.new(self) + @context_lines = 3 + @diff_format = :unified + @files = [] + @example_groups = [] + @result = nil + @examples_run = false + @examples_should_be_run = nil + @user_input_for_runner = nil + @after_suite_parts = [] + @files_loaded = false + @out_used = nil + end + + def add_example_group(example_group) + @example_groups << example_group + end + + def line_number_requested? + !!line_number + end + + def example_line + Spec::Runner::LineNumberQuery.new(self).example_line_for(files.first, line_number) + end + + def remove_example_group(example_group) + @example_groups.delete(example_group) + end + + def require_ruby_debug + require 'rubygems' unless ENV['NO_RUBYGEMS'] + require 'ruby-debug' + end + + def project_root # :nodoc: + require 'pathname' + @project_root ||= determine_project_root + end + + def determine_project_root # :nodoc: + # This is borrowed (slightly modified) from Scott Taylors + # project_path project: + # http://github.com/smtlaissezfaire/project_path + Pathname(File.expand_path('.')).ascend do |path| + if File.exists?(File.join(path, "spec")) + return path + end + end + end + + def add_dir_from_project_root_to_load_path(dir, load_path=$LOAD_PATH) # :nodoc: + return if project_root.nil? + full_dir = File.join(project_root, dir) + load_path.unshift full_dir unless load_path.include?(full_dir) + end + + def run_examples + require_ruby_debug if debug + return true unless examples_should_be_run? + success = true + begin + runner = custom_runner || ExampleGroupRunner.new(self) + + unless @files_loaded + ['spec','lib'].each do |dir| + add_dir_from_project_root_to_load_path(dir) + end + runner.load_files(files_to_load) + @files_loaded = true + end + + define_predicate_matchers + plugin_mock_framework + ignore_backtrace_patterns + + # TODO - this has to happen after the files get loaded, + # otherwise the before_suite_parts are not populated + # from the configuration. There is no spec for this + # directly, but features/before_and_after_blocks/before_and_after_blocks.story + # will fail if this happens before the files are loaded. + before_suite_parts.each { |part| part.call } + + if example_groups.empty? + true + else + set_spec_from_line_number if line_number + success = runner.run + @examples_run = true + heckle if heckle_runner + success + end + ensure + after_suite_parts.each do |part| + part.arity < 1 ? part.call : part.call(success) + end + end + end + + def before_suite_parts + Spec::Example::BeforeAndAfterHooks.before_suite_parts + end + + def after_suite_parts + Spec::Example::BeforeAndAfterHooks.after_suite_parts + end + + def examples_run? + @examples_run + end + + def examples_should_not_be_run + @examples_should_be_run = false + end + + def mock_framework + # TODO - don't like this dependency - perhaps store this in here instead? + Spec::Runner.configuration.mock_framework + end + + def colour=(colour) + @colour = colour + if @colour && RUBY_PLATFORM =~ /mswin|mingw/ ;\ + begin ;\ + replace_output = @output_stream.equal?($stdout) ;\ + require 'rubygems' unless ENV['NO_RUBYGEMS'] ;\ + require 'Win32/Console/ANSI' ;\ + @output_stream = $stdout if replace_output ;\ + rescue LoadError ;\ + warn "You must 'gem install win32console' to use colour on Windows" ;\ + @colour = false ;\ + end + end + end + + def parse_diff(format) + case format + when :context, 'context', 'c' + @diff_format = :context + default_differ + when :unified, 'unified', 'u', '', nil + @diff_format = :unified + default_differ + else + @diff_format = :custom + self.differ_class = load_class(format, 'differ', '--diff') + end + end + + def parse_example(example) + if(File.file?(example)) + @examples = [File.open(example).read.split("\n")].flatten + else + @examples = [example] + end + end + + def parse_format(format_arg) + format, where = ClassAndArgumentsParser.parse(format_arg) + unless where + raise "When using several --format options only one of them can be without a file" if @out_used + where = @output_stream + @out_used = true + end + @format_options ||= [] + @format_options << [format, where] + end + + def formatters + @format_options ||= [['progress', @output_stream]] + @formatters ||= load_formatters(@format_options, EXAMPLE_FORMATTERS) + end + + def load_formatters(format_options, formatters) + format_options.map do |format, where| + formatter_type = if formatters[format] + require formatters[format][0] + eval(formatters[format][1], binding, __FILE__, __LINE__) + else + load_class(format, 'formatter', '--format') + end + formatter_type.new(formatter_options, where) + end + end + + def formatter_options + @formatter_options ||= OpenStruct.new( + :colour => colour, + :autospec => autospec, + :dry_run => dry_run + ) + end + + def which_heckle_runner + ([/mswin/, /java/].detect{|p| p =~ RUBY_PLATFORM} || Spec::Ruby.version.to_f == 1.9) ? "spec/runner/heckle_runner_unsupported" : "spec/runner/heckle_runner" + end + + def load_heckle_runner(heckle) + @format_options ||= [['silent', @output_stream]] + require which_heckle_runner + @heckle_runner = ::Spec::Runner::HeckleRunner.new(heckle) + end + + def number_of_examples + return examples.size unless examples.empty? + @example_groups.inject(0) {|sum, group| sum + group.number_of_examples} + end + + def files_to_load + result = [] + sorted_files.each do |file| + if File.directory?(file) + filename_pattern.split(",").each do |pattern| + result += Dir[File.expand_path("#{file}/#{pattern.strip}")] + end + elsif File.file?(file) + result << file + else + raise "File or directory not found: #{file}" + end + end + result + end + + def dry_run? + @dry_run == true + end + + protected + + def define_predicate_matchers + Spec::Runner.configuration.predicate_matchers.each_pair do |matcher_method, method_on_object| + Spec::Example::ExampleMethods::__send__ :define_method, matcher_method do |*args| + eval("be_#{method_on_object.to_s.gsub('?','')}(*args)") + end + end + end + + def plugin_mock_framework + case mock_framework + when Module + Spec::Example::ExampleMethods.__send__ :include, mock_framework + else + require mock_framework + Spec::Example::ExampleMethods.__send__ :include, Spec::Adapters::MockFramework + end + end + + def ignore_backtrace_patterns + @backtrace_tweaker.ignore_patterns Spec::Runner.configuration.ignored_backtrace_patterns + end + + def examples_should_be_run? + return @examples_should_be_run unless @examples_should_be_run.nil? + @examples_should_be_run = true + end + + def differ_class=(klass) + return unless klass + @differ_class = klass + Spec::Expectations.differ = self.differ_class.new(self) + end + + def load_class(name, kind, option) + if name =~ /\A(?:::)?([A-Z]\w*(?:::[A-Z]\w*)*)\z/ + arg = $2 == "" ? nil : $2 + [$1, arg] + else + m = "#{name.inspect} is not a valid class name" + @error_stream.puts m + raise m + end + begin + eval(name, binding, __FILE__, __LINE__) + rescue NameError => e + @error_stream.puts "Couldn't find #{kind} class #{name}" + @error_stream.puts "Make sure the --require option is specified *before* #{option}" + if $_spec_spec ; raise e ; else exit(1) ; end + end + end + + def custom_runner + return nil unless custom_runner? + klass_name, arg = ClassAndArgumentsParser.parse(user_input_for_runner) + runner_type = load_class(klass_name, 'example group runner', '--runner') + return runner_type.new(self, arg) + end + + def custom_runner? + return user_input_for_runner ? true : false + end + + def heckle + heckle_runner = self.heckle_runner + self.heckle_runner = nil + heckle_runner.heckle_with + end + + def sorted_files + return sorter ? files.sort(&sorter) : files + end + + def sorter + FILE_SORTERS[loadby] + end + + def default_differ + require 'spec/runner/differs/default' + self.differ_class = ::Spec::Expectations::Differs::Default + end + + def set_spec_from_line_number + if examples.empty? + if files.length == 1 + if File.directory?(files[0]) + error_stream.puts "You must specify one file, not a directory when providing a line number" + exit(1) if stderr? + else + example = LineNumberQuery.new(self).spec_name_for(files[0], line_number) + @examples = [example] + end + else + error_stream.puts "Only one file can be specified when providing a line number: #{files.inspect}" + exit(3) if stderr? + end + else + error_stream.puts "You cannot use --example and specify a line number" + exit(4) if stderr? + end + end + + def stderr? + @error_stream == $stderr + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/reporter.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/reporter.rb new file mode 100644 index 0000000..0fae7d1 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/runner/reporter.rb @@ -0,0 +1,171 @@ +module Spec + module Runner + class Reporter + attr_reader :options + + def initialize(options) + @options = options + @options.reporter = self + @failures = [] + @pending_count = 0 + @example_count = 0 + @start_time = nil + @end_time = nil + end + + def example_group_started(example_group) + @example_group = example_group + formatters.each do |f| + f.example_group_started(example_group) + end + end + + def example_started(example) + formatters.each{|f| f.example_started(example)} + end + + def example_finished(example, error=nil) + @example_count += 1 + + if error.nil? + example_passed(example) + elsif Spec::Example::ExamplePendingError === error + example_pending(example, example.location, error.message) + else + example_failed(example, error) + end + end + + def example_failed(example, error) + backtrace_tweaker.tweak_backtrace(error) + failure = Failure.new(@example_group.description, example.description, error) + @failures << failure + formatters.each do |f| + f.example_failed(example, @failures.length, failure) + end + end + + def start(number_of_examples) + @start_time = Time.new + formatters.each{|f| f.start(number_of_examples)} + end + + def end + @end_time = Time.new + end + + # Dumps the summary and returns the total number of failures + def dump + formatters.each{|f| f.start_dump} + dump_pending + dump_failures + formatters.each do |f| + f.dump_summary(duration, @example_count, @failures.length, @pending_count) + f.close + end + @failures.length + end + + class Failure + def initialize(group_description, example_description, exception) # :nodoc: + @example_name = "#{group_description} #{example_description}" + @exception = exception + end + + # The Exception object raised + attr_reader :exception + + # Header messsage for reporting this failure, including the name of the + # example and an indicator of the type of failure. FAILED indicates a + # failed expectation. FIXED indicates a pending example that passes, and + # no longer needs to be pending. RuntimeError indicates that a + # RuntimeError occured. + # + # == Examples + # + # 'A new account should have a zero balance' FAILED + # 'A new account should have a zero balance' FIXED + # RuntimeError in 'A new account should have a zero balance' + def header + if expectation_not_met? + "'#{@example_name}' FAILED" + elsif pending_fixed? + "'#{@example_name}' FIXED" + else + "#{@exception.class.name} in '#{@example_name}'" + end + end + + def pending_fixed? # :nodoc: + @exception.is_a?(Spec::Example::PendingExampleFixedError) + end + + def expectation_not_met? # :nodoc: + @exception.is_a?(Spec::Expectations::ExpectationNotMetError) + end + end + + private + + def formatters + @options.formatters + end + + def backtrace_tweaker + @options.backtrace_tweaker + end + + def dump_failures + return if @failures.empty? + @failures.inject(1) do |index, failure| + formatters.each{|f| f.dump_failure(index, failure)} + index + 1 + end + end + + def dump_pending + formatters.each{|f| f.dump_pending} + end + + def duration + return @end_time - @start_time unless (@end_time.nil? or @start_time.nil?) + return "0.0" + end + + def example_passed(example) + formatters.each{|f| f.example_passed(example)} + end + + EXAMPLE_PENDING_DEPRECATION_WARNING = <<-WARNING + +********************************************************************* +DEPRECATION WARNING: RSpec's formatters have changed example_pending +to accept two arguments instead of three. Please see the rdoc +for Spec::Runner::Formatter::BaseFormatter#example_pending +for more information. + +Please update any custom formatters to accept only two arguments +to example_pending. Support for example_pending with two arguments +and this warning message will be removed after the RSpec 2.0 release. +********************************************************************* +WARNING + + def example_pending(example, ignore, message="Not Yet Implemented") + @pending_count += 1 + formatters.each do |formatter| + if formatter_uses_deprecated_example_pending_method?(formatter) + Spec.warn EXAMPLE_PENDING_DEPRECATION_WARNING + formatter.example_pending(example, message, example.location) + else + formatter.example_pending(example, message) + end + end + end + + def formatter_uses_deprecated_example_pending_method?(formatter) + formatter.method(:example_pending).arity == 3 + end + + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/stubs/cucumber.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/stubs/cucumber.rb new file mode 100644 index 0000000..b801ef4 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/stubs/cucumber.rb @@ -0,0 +1,5 @@ +# This plugs RSpec's mocking/stubbing framework into cucumber +require 'spec/mocks' +Before {$rspec_stubs ||= Spec::Mocks::Space.new} +After {$rspec_stubs.reset_all} +World(Spec::Mocks::ExampleMethods) diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/test/unit.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/test/unit.rb new file mode 100644 index 0000000..fb4eb49 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/test/unit.rb @@ -0,0 +1,10 @@ +require 'spec/interop/test' + +# Hack to stop active_support/dependencies from complaining about +# 'spec/test/unit' not defining Spec::Test::Unit +module Spec + module Test + module Unit + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/lib/spec/version.rb b/presidents/vendor/gems/rspec-1.2.9/lib/spec/version.rb new file mode 100644 index 0000000..b1088cd --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/lib/spec/version.rb @@ -0,0 +1,14 @@ +module Spec # :nodoc: + module VERSION # :nodoc: + unless defined? MAJOR + MAJOR = 1 + MINOR = 2 + TINY = 9 + PRE = nil + + STRING = [MAJOR, MINOR, TINY, PRE].compact.join('.') + + SUMMARY = "rspec #{STRING}" + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/resources/helpers/cmdline.rb b/presidents/vendor/gems/rspec-1.2.9/resources/helpers/cmdline.rb new file mode 100644 index 0000000..0e33757 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/resources/helpers/cmdline.rb @@ -0,0 +1,8 @@ +require 'spec' + +# Uncommenting next line will break the output feature (no output!!) +# rspec_options +options = Spec::Runner::OptionParser.parse( + ARGV, $stderr, $stdout +) +Spec::Runner::CommandLine.run(options) diff --git a/presidents/vendor/gems/rspec-1.2.9/resources/rake/examples.rake b/presidents/vendor/gems/rspec-1.2.9/resources/rake/examples.rake new file mode 100644 index 0000000..32d0ad0 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/resources/rake/examples.rake @@ -0,0 +1,7 @@ +require 'rake' +require 'spec/rake/spectask' + +desc "Run all examples" +Spec::Rake::SpecTask.new('examples') do |t| + t.spec_files = FileList['examples/**/*.rb'] +end diff --git a/presidents/vendor/gems/rspec-1.2.9/resources/rake/examples_with_rcov.rake b/presidents/vendor/gems/rspec-1.2.9/resources/rake/examples_with_rcov.rake new file mode 100644 index 0000000..4bf35c6 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/resources/rake/examples_with_rcov.rake @@ -0,0 +1,9 @@ +require 'rake' +require 'spec/rake/spectask' + +desc "Run all examples with RCov" +Spec::Rake::SpecTask.new('examples_with_rcov') do |t| + t.spec_files = FileList['examples/**/*.rb'] + t.rcov = true + t.rcov_opts = ['--exclude', 'examples'] +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/resources/rake/failing_examples_with_html.rake b/presidents/vendor/gems/rspec-1.2.9/resources/rake/failing_examples_with_html.rake new file mode 100644 index 0000000..6e53551 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/resources/rake/failing_examples_with_html.rake @@ -0,0 +1,9 @@ +require 'rake' +require 'spec/rake/spectask' + +desc "Generate HTML report for failing examples" +Spec::Rake::SpecTask.new('failing_examples_with_html') do |t| + t.spec_files = FileList['failing_examples/**/*.rb'] + t.spec_opts = ["--format", "html:doc/reports/tools/failing_examples.html", "--diff"] + t.fail_on_error = false +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/resources/rake/verify_rcov.rake b/presidents/vendor/gems/rspec-1.2.9/resources/rake/verify_rcov.rake new file mode 100644 index 0000000..a2fab00 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/resources/rake/verify_rcov.rake @@ -0,0 +1,7 @@ +require 'rake' +require 'spec/rake/verify_rcov' + +RCov::VerifyTask.new(:verify_rcov => 'spec:rcov') do |t| + t.threshold = 100.0 + t.index_html = 'coverage/index.html' +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/README.jruby b/presidents/vendor/gems/rspec-1.2.9/spec/README.jruby new file mode 100644 index 0000000..7eddb56 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/README.jruby @@ -0,0 +1,15 @@ += Running specs on JRuby = + +svn co http://svn.codehaus.org/jruby/trunk jruby +cd jruby/jruby +ant clean +ant +# put JRuby's bin dir on your PATH +jruby -S gem install rake --no-ri --no-rdoc +jruby -S gem install diff-lcs +jruby -S gem install syntax +cd ../testsuites/rspec +mkdir target +jruby -S rake checkout_code +cd target/rspec +jruby bin/spec spec -c diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/autotest/autotest_helper.rb b/presidents/vendor/gems/rspec-1.2.9/spec/autotest/autotest_helper.rb new file mode 100644 index 0000000..b7b873d --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/autotest/autotest_helper.rb @@ -0,0 +1,8 @@ +require 'spec_helper' +begin + require 'autotest' +rescue LoadError + raise "You must install ZenTest to use autotest" +end +require 'autotest/rspec' +require 'spec/autotest/autotest_matchers' diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/autotest/autotest_matchers.rb b/presidents/vendor/gems/rspec-1.2.9/spec/autotest/autotest_matchers.rb new file mode 100644 index 0000000..2bfca4a --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/autotest/autotest_matchers.rb @@ -0,0 +1,38 @@ +module Spec + module Matchers + class AutotestMappingMatcher + def initialize(specs) + @specs = specs + end + + def to(file) + @file = file + self + end + + def matches?(autotest) + @autotest = prepare(autotest) + @actual = autotest.test_files_for(@file) + @actual == @specs + end + + def failure_message + "expected #{@autotest.class} to map #{@specs.inspect} to #{@file.inspect}\ngot #{@actual.inspect}" + end + + private + + def prepare(autotest) + find_order = @specs.dup << @file + autotest.instance_eval { @find_order = find_order } + autotest + end + + end + + def map_specs(specs) + AutotestMappingMatcher.new(specs) + end + + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/autotest/discover_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/autotest/discover_spec.rb new file mode 100644 index 0000000..fc8d483 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/autotest/discover_spec.rb @@ -0,0 +1,8 @@ +require 'spec/autotest/autotest_helper' + +describe Autotest::Rspec, "discovery" do + it "adds the rspec autotest plugin" do + Autotest.should_receive(:add_discovery) + load File.expand_path(File.dirname(__FILE__) + "/../../lib/autotest/discover.rb") + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/autotest/failed_results_re_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/autotest/failed_results_re_spec.rb new file mode 100644 index 0000000..f4a1488 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/autotest/failed_results_re_spec.rb @@ -0,0 +1,31 @@ +require 'spec/autotest/autotest_helper' + +describe "failed_results_re" do + it "should match a failure" do + re = Autotest::Rspec.new.failed_results_re + re =~ "1)\n'this example' FAILED\nreason\n/path.rb:37:\n\n" + $1.should == "this example" + $2.should == "reason\n/path.rb:37:" + end + + it "should match a failure when matcher outputs multiple lines" do + re = Autotest::Rspec.new.failed_results_re + re =~ "1)\n'other example' FAILED\n\nreason line 1\nreason line 2\n\n(additional info)\n/path.rb:37:\n\n" + $1.should == "other example" + $2.should == "reason line 1\nreason line 2\n\n(additional info)\n/path.rb:37:" + end + + it "should match an Error" do + re = Autotest::Rspec.new.failed_results_re + re =~ "1)\nRuntimeError in 'this example'\nreason\n/path.rb:37:\n\n" + $1.should == "this example" + $2.should == "reason\n/path.rb:37:" + end + + it "should match an Error that doesn't end in Error" do + re = Autotest::Rspec.new.failed_results_re + re =~ "1)\nInvalidArgument in 'this example'\nreason\n/path.rb:37:\n\n" + $1.should == "this example" + $2.should == "reason\n/path.rb:37:" + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/autotest/rspec_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/autotest/rspec_spec.rb new file mode 100644 index 0000000..6dea29d --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/autotest/rspec_spec.rb @@ -0,0 +1,111 @@ +require 'spec/autotest/autotest_helper' + +describe Autotest::Rspec do + describe "adding spec.opts --options" do + before(:each) do + @rspec_autotest = Autotest::Rspec.new + end + + it "should return the command line option to add spec.opts if the options file exists" do + File.stub!(:exist?).and_return true + @rspec_autotest.add_options_if_present.should == "-O spec/spec.opts " + end + + it "should return an empty string if no spec.opts exists" do + File.stub!(:exist?).and_return false + Autotest::Rspec.new.add_options_if_present.should == "" + end + end + + describe "commands" do + before(:each) do + @rspec_autotest = Autotest::Rspec.new + @rspec_autotest.stub!(:ruby).and_return "ruby" + @rspec_autotest.stub!(:add_options_if_present).and_return "-O spec/spec.opts" + + @ruby = @rspec_autotest.ruby + @spec_cmd = File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'bin', 'spec')) + @options = @rspec_autotest.add_options_if_present + @files_to_test = { + :spec => ["file_one", "file_two"] + } + # this is not the inner representation of Autotest! + @rspec_autotest.stub!(:files_to_test).and_return @files_to_test + @files_to_test.stub!(:keys).and_return @files_to_test[:spec] + @to_test = @files_to_test.keys.flatten.join ' ' + end + + it "should make the appropriate test command" do + @rspec_autotest.make_test_cmd(@files_to_test).should == "#{@ruby} #{@spec_cmd} --autospec #{@to_test} #{@options}" + end + + it "should return a blank command for no files" do + @rspec_autotest.make_test_cmd({}).should == '' + end + end + + describe "mappings" do + + before(:each) do + @lib_file = "lib/something.rb" + @spec_file = "spec/something_spec.rb" + @rspec_autotest = Autotest::Rspec.new + @rspec_autotest.hook :initialize + end + + it "should find the spec file for a given lib file" do + @rspec_autotest.should map_specs([@spec_file]).to(@lib_file) + end + + it "should find the spec file if given a spec file" do + @rspec_autotest.should map_specs([@spec_file]).to(@spec_file) + end + + it "should ignore files in spec dir that aren't specs" do + @rspec_autotest.should map_specs([]).to("spec/spec_helper.rb") + end + + it "should ignore untracked files (in @file)" do + @rspec_autotest.should map_specs([]).to("lib/untracked_file") + end + end + + describe "consolidating failures" do + before(:each) do + @rspec_autotest = Autotest::Rspec.new + + @spec_file = "spec/autotest/some_spec.rb" + @rspec_autotest.instance_variable_set("@files", {@spec_file => Time.now}) + @rspec_autotest.stub!(:find_files_to_test).and_return true + end + + it "should return no failures if no failures were given in the output" do + @rspec_autotest.consolidate_failures([[]]).should == {} + end + + it "should return a hash with the spec filename => spec name for each failure or error" do + @rspec_autotest.stub!(:test_files_for).and_return "spec/autotest/some_spec.rb" + failures = [ + [ + "false should be false", + "expected: true,\n got: false (using ==)\n#{@spec_file}:203:" + ] + ] + @rspec_autotest.consolidate_failures(failures).should == { + @spec_file => ["false should be false"] + } + end + + it "should not include the subject file" do + subject_file = "lib/autotest/some.rb" + @rspec_autotest.stub!(:test_files_for).and_return "spec/autotest/some_spec.rb" + failures = [ + [ + "false should be false", + "expected: true,\n got: false (using ==)\n#{subject_file}:143:\n#{@spec_file}:203:" + ] + ] + @rspec_autotest.consolidate_failures(failures).keys.should_not include(subject_file) + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/ruby_forker.rb b/presidents/vendor/gems/rspec-1.2.9/spec/ruby_forker.rb new file mode 100644 index 0000000..6ab0387 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/ruby_forker.rb @@ -0,0 +1,13 @@ +require 'rbconfig' + +module RubyForker + # Forks a ruby interpreter with same type as ourself. + # juby will fork jruby, ruby will fork ruby etc. + def ruby(args, stderr=nil) + config = ::Config::CONFIG + interpreter = File::join(config['bindir'], config['ruby_install_name']) + config['EXEEXT'] + cmd = "#{interpreter} #{args}" + cmd << " 2> #{stderr}" unless stderr.nil? + `#{cmd}` + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec.opts b/presidents/vendor/gems/rspec-1.2.9/spec/spec.opts new file mode 100644 index 0000000..48e51f9 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec.opts @@ -0,0 +1,6 @@ +--colour +--format +profile +--timeout +20 +--diff \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/dsl/main_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/dsl/main_spec.rb new file mode 100644 index 0000000..752b07f --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/dsl/main_spec.rb @@ -0,0 +1,95 @@ +require 'spec_helper' + +module Spec + module DSL + describe Main do + before(:each) do + @main = Class.new do; include Spec::DSL::Main; end + end + + [:describe, :context].each do |method| + describe "##{method}" do + it "should delegate to Spec::Example::ExampleGroupFactory.create_example_group" do + block = lambda {|a,b|} + Spec::Example::ExampleGroupFactory.should_receive(:create_example_group).with( + "The ExampleGroup", hash_including(:location), &block + ) + @main.__send__ method, "The ExampleGroup", &block + end + + it "raises with no description" do + block = lambda {|a,b|} + lambda do + @main.__send__ method, &block + end.should raise_error(ArgumentError, /No description supplied for example group declared on #{__FILE__}:#{__LINE__ - 1}/) + end + end + end + + [:share_examples_for, :shared_examples_for].each do |method| + describe "##{method}" do + it "should create a shared ExampleGroup" do + block = lambda {|a,b|} + Spec::Example::ExampleGroupFactory.should_receive(:create_shared_example_group).with( + "shared group", hash_including(:location), &block + ) + @main.__send__ method, "shared group", &block + end + end + end + + describe "#describe; with RUBY_VERSION = 1.9" do + it "includes an enclosing module into the block's scope" do + Spec::Ruby.stub!(:version).and_return("1.9") + + module Foo; module Bar; end; end + + Foo::Bar.should_receive(:included).with do |*args| + included_by = args.last + included_by.description.should == "this example group" + end + + module Foo + module Bar + describe("this example group") do; end + end + end + end + end + + + describe "#share_as" do + def self.next_group_name + @group_number ||= 0 + @group_number += 1 + "Group#{@group_number}" + end + + def group_name + @group_name ||= self.class.next_group_name + end + + it "registers a shared ExampleGroup" do + block = lambda {|a,b|} + Spec::Example::ExampleGroupFactory.should_receive(:create_shared_example_group).with( + group_name, hash_including(:location), &block + ) + @main.share_as group_name, &block + end + + it "creates a constant that points to a Module" do + group = @main.share_as group_name do end + Object.const_get(group_name).should equal(group) + end + + it "complains if you pass it a not-constantizable name" do + lambda do + @group = @main.share_as "Non Constant" do end + end.should raise_error(NameError, /The first argument to share_as must be a legal name for a constant/) + end + + end + end + end +end + \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/example/example_group_class_definition_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/example/example_group_class_definition_spec.rb new file mode 100644 index 0000000..96bd211 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/example/example_group_class_definition_spec.rb @@ -0,0 +1,51 @@ +require 'spec_helper' + +module Spec + module Example + class ExampleGroupSubclass < ExampleGroup + class << self + attr_accessor :examples_ran + end + + @@class_variable = :class_variable + CONSTANT = :constant + + before(:each) do + @instance_variable = :instance_variable + end + + after(:all) do + self.class.examples_ran = true + end + + def a_method + 22 + end + + it "can access instance variables defined before(:each)" do + @instance_variable.should == :instance_variable + end + + it "can access class variables (Ruby 1.8 only)" do + with_ruby 1.8 do + @@class_variable.should == :class_variable + end + end + + it "can access constants" do + CONSTANT.should == :constant + end + + it "can access methods defined in the Example Group" do + a_method.should == 22 + end + + end + + describe ExampleGroupSubclass do + it "should run" do + ExampleGroupSubclass.examples_ran.should be_true + end + end + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/example/example_group_factory_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/example/example_group_factory_spec.rb new file mode 100644 index 0000000..0819d3a --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/example/example_group_factory_spec.rb @@ -0,0 +1,180 @@ +require 'spec_helper' + +module Spec + module Example + describe ExampleGroupFactory do + describe "#get" do + attr_reader :example_group + before(:each) do + @example_group_class = Class.new(ExampleGroupDouble) + ExampleGroupFactory.register(:registered_type, @example_group_class) + end + + after(:each) do + ExampleGroupFactory.reset + end + + it "should return the default ExampleGroup type for nil" do + ExampleGroupFactory[nil].should == ExampleGroup + end + + it "should return the default ExampleGroup for an unregistered non-nil value" do + ExampleGroupFactory[:does_not_exist].should == ExampleGroup + end + + it "should return custom type if registered" do + ExampleGroupFactory[:registered_type].should == @example_group_class + end + + it "should get the custom type after setting the default" do + @alternate_example_group_class = Class.new(ExampleGroupDouble) + ExampleGroupFactory.default(@alternate_example_group_class) + ExampleGroupFactory[:registered_type].should == @example_group_class + end + end + + describe "#create_example_group" do + attr_reader :parent_example_group + before do + @parent_example_group = Class.new(ExampleGroupDouble) do + def initialize(*args, &block) + ; + end + end + end + + it "should create a uniquely named class" do + example_group = Spec::Example::ExampleGroupFactory.create_example_group("example_group") {} + example_group.name.should =~ /Spec::Example::ExampleGroup::Subclass_\d+/ + end + + it "should create a Spec::Example::Example subclass by default" do + example_group = Spec::Example::ExampleGroupFactory.create_example_group("example_group") {} + example_group.superclass.should == Spec::Example::ExampleGroup + end + + it "should raise when no description is given" do + lambda { + Spec::Example::ExampleGroupFactory.create_example_group do; end + }.should raise_error(ArgumentError) + end + + it "should raise when no block is given" do + lambda { Spec::Example::ExampleGroupFactory.create_example_group "foo" }.should raise_error(ArgumentError) + end + + it "should run registered ExampleGroups" do + example_group = Spec::Example::ExampleGroupFactory.create_example_group "The ExampleGroup" do end + Spec::Runner.options.example_groups.should include(example_group) + end + + it "should not run unregistered ExampleGroups" do + example_group = Spec::Example::ExampleGroupFactory.create_example_group "The ExampleGroup" do Spec::Runner.options.remove_example_group self; end + Spec::Runner.options.example_groups.should_not include(example_group) + end + + describe "with :type => :default" do + it "should create a Spec::Example::ExampleGroup" do + example_group = Spec::Example::ExampleGroupFactory.create_example_group( + "example_group", :type => :default + ) {} + example_group.superclass.should == Spec::Example::ExampleGroup + end + end + + describe "with :type => :something_other_than_default" do + it "should create the specified type" do + Spec::Example::ExampleGroupFactory.register(:something_other_than_default, parent_example_group) + non_default_example_group = Spec::Example::ExampleGroupFactory.create_example_group( + "example_group", :type => :something_other_than_default + ) {} + non_default_example_group.superclass.should == parent_example_group + end + end + + it "should create a type indicated by :location" do + Spec::Example::ExampleGroupFactory.register(:something_other_than_default, parent_example_group) + custom_example_group = Spec::Example::ExampleGroupFactory.create_example_group( + "example_group", :location => "./spec/something_other_than_default/some_spec.rb" + ) {} + custom_example_group.superclass.should == parent_example_group + end + + it "should create a type indicated by :location (with location generated by caller on windows)" do + Spec::Example::ExampleGroupFactory.register(:something_other_than_default, parent_example_group) + custom_example_group = Spec::Example::ExampleGroupFactory.create_example_group( + "example_group", + :location => "./spec\\something_other_than_default\\some_spec.rb" + ) {} + custom_example_group.superclass.should == parent_example_group + end + + it "should create a type indicated by location for a path-like key" do + Spec::Example::ExampleGroupFactory.register('path/to/custom/', parent_example_group) + custom_example_group = Spec::Example::ExampleGroupFactory.create_example_group( + "example_group", :location => "./spec/path/to/custom/some_spec.rb" + ) {} + custom_example_group.superclass.should == parent_example_group + end + + it "should use the longest key that matches when creating a type indicated by location" do + longer = Class.new parent_example_group + Spec::Example::ExampleGroupFactory.register(:longer, longer) + long = Class.new parent_example_group + Spec::Example::ExampleGroupFactory.register(:long, long) + custom_example_group = Spec::Example::ExampleGroupFactory.create_example_group( + "example_group", :location => "./spec/longer/some_spec.rb" + ) {} + custom_example_group.superclass.should == longer + end + + describe "with :shared => true" do + def shared_example_group + @shared_example_group ||= Spec::Example::ExampleGroupFactory.create_example_group( + "name", :location => '/blah/spec/models/blah.rb', :type => :controller, :shared => true + ) {} + end + + it "should create and register a Spec::Example::SharedExampleGroup" do + shared_example_group.should be_an_instance_of(Spec::Example::SharedExampleGroup) + SharedExampleGroup.should include(shared_example_group) + end + end + + it "should favor the :type over the :location" do + Spec::Example::ExampleGroupFactory.register(:something_other_than_default, parent_example_group) + custom_example_group = Spec::Example::ExampleGroupFactory.create_example_group( + "name", :location => '/blah/spec/models/blah.rb', :type => :something_other_than_default + ) {} + custom_example_group.superclass.should == parent_example_group + end + + it "should register ExampleGroup by default" do + example_group = Spec::Example::ExampleGroupFactory.create_example_group("The ExampleGroup") do + end + Spec::Runner.options.example_groups.should include(example_group) + end + + it "should enable unregistering of ExampleGroups" do + example_group = Spec::Example::ExampleGroupFactory.create_example_group("The ExampleGroup") do + Spec::Runner.options.remove_example_group self + end + Spec::Runner.options.example_groups.should_not include(example_group) + end + + after(:each) do + Spec::Example::ExampleGroupFactory.reset + end + end + + describe "#create_shared_example_group" do + it "registers a new shared example group" do + shared_example_group = Spec::Example::ExampleGroupFactory.create_shared_example_group("something shared") {} + shared_example_group.should be_an_instance_of(Spec::Example::SharedExampleGroup) + SharedExampleGroup.should include(shared_example_group) + end + end + + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/example/example_group_methods_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/example/example_group_methods_spec.rb new file mode 100644 index 0000000..c9f10b8 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/example/example_group_methods_spec.rb @@ -0,0 +1,758 @@ +require 'spec_helper' + +module Spec + module Example + describe 'ExampleGroupMethods' do + with_sandboxed_options do + attr_reader :example_group, :result, :reporter + before(:each) do + # See http://rspec.lighthouseapp.com/projects/5645-rspec/tickets/525-arity-changed-on-partial-mocks#ticket-525-2 + method_with_three_args = lambda { |arg1, arg2, arg3| } + options.formatters << mock("formatter", :null_object => true, :example_pending => method_with_three_args) + options.backtrace_tweaker = mock("backtrace_tweaker", :null_object => true) + @reporter = FakeReporter.new(@options) + options.reporter = reporter + @example_group = Class.new(ExampleGroupDouble) do + describe("ExampleGroup") + it "does nothing" + end + end + + after(:each) do + ExampleGroupDouble.reset + end + + ["describe","context"].each do |method| + describe "##{method}" do + describe "when creating an ExampleGroup" do + before(:each) do + @parent_example_group = Class.new(ExampleGroupDouble) do + example "first example" do; end + end + @child_example_group = @parent_example_group.__send__ method, "Child" do + example "second example" do; end + end + end + + it "should create a subclass of the ExampleGroup when passed a block" do + @child_example_group.superclass.should == @parent_example_group + options.example_groups.should include(@child_example_group) + end + + it "should not inherit examples" do + @child_example_group.should have(1).examples + end + + it "records the spec path" do + @child_example_group.location.should =~ /#{__FILE__}:#{__LINE__ - 15}/ + end + end + + describe "when creating an example group with no description" do + it "raises an ArgumentError" do + lambda do + Class.new(ExampleGroupDouble).describe + end.should raise_error(Spec::Example::NoDescriptionError, /No description supplied for example group declared on #{__FILE__}:#{__LINE__ - 1}/) + end + end + + describe "when creating a SharedExampleGroup" do + before(:each) do + @shared_example_group = @example_group.__send__ method, "A Shared ExampleGroup", :shared => true do; end + end + + after(:each) do + SharedExampleGroup.instance_eval{@shared_example_groups}.delete @shared_example_group + end + + it "should create a SharedExampleGroup" do + @shared_example_group.should_not be_nil + SharedExampleGroup.find("A Shared ExampleGroup").should == @shared_example_group + end + end + + end + end + + [:example, :specify, :it].each do |method| + describe "##{method.to_s}" do + it "should add an example" do + lambda { + @example_group.__send__(method, "") + }.should change { @example_group.examples.length }.by(1) + end + + describe "with no location supplied" do + describe "creates an ExampleProxy" do + before(:all) do + @example_group = Class.new(ExampleGroupDouble).describe("bar") + @example_proxy = @example_group.__send__(method, "foo", {:this => :that}) {} + @location = "#{__FILE__}:#{__LINE__ - 1}" + end + + specify "with a description" do + @example_proxy.description.should == "foo" + end + + specify "with options" do + @example_proxy.options.should == {:this => :that} + end + + specify "with a default backtrace (DEPRECATED)" do + Spec.stub!(:deprecate) + @example_proxy.backtrace.should =~ /#{@location}/ + end + + specify "with a default location" do + @example_proxy.location.should =~ /#{@location}/ + end + end + end + + describe "with a location supplied" do + describe "creates an ExampleProxy" do + before(:all) do + @example_group = Class.new(ExampleGroupDouble).describe("bar") + @example_proxy = @example_group.__send__(method, "foo", {:this => :that}, "the location") {} + end + + specify "with the supplied location as #backtrace (DEPRECATED)" do + Spec.stub!(:deprecate) + @example_proxy.backtrace.should == "the location" + end + + specify "with the supplied location as #location" do + @example_proxy.location.should == "the location" + end + end + end + + + end + end + + [:xexample, :xit, :xspecify].each do |method| + describe "##{method.to_s}" do + before(:each) do + Kernel.stub!(:warn) + end + + it "should NOT create an example" do + lambda { + @example_group.__send__(method,"") + }.should_not change(@example_group.examples, :length) + end + + it "should warn that the example is disabled" do + Kernel.should_receive(:warn).with("Example disabled: foo") + @example_group.__send__(method,"foo") + end + end + end + + describe "#examples" do + it "should have Examples" do + example_group = Class.new(ExampleGroupDouble) do + it "should exist" do; end + end + example_group.examples.length.should == 1 + example_group.examples.first.description.should == "should exist" + end + + it "should not include methods that begin with test (only when TU interop is loaded)" do + example_group = Class.new(ExampleGroupDouble) do + def test_any_args(*args) + true.should be_true + end + def test_something + 1.should == 1 + end + def test + raise "This is not a real test" + end + def testify + raise "This is not a real test" + end + def should_something + # forces the run + end + end + + example_group.examples.length.should == 1 + example_group.run(options).should be_true + end + + it "should include methods that begin with should and has an arity of 0 in suite" do + example_group = Class.new(ExampleGroupDouble) do + def shouldCamelCase + true.should be_true + end + def should_any_args(*args) + true.should be_true + end + def should_something + 1.should == 1 + end + def should_not_something + 1.should_not == 2 + end + def should + raise "This is not a real example" + end + def should_not + raise "This is not a real example" + end + end + example_group.should have(4).examples + descriptions = example_group.examples.collect {|e| e.description} + descriptions.should include( + "shouldCamelCase", + "should_any_args", + "should_something", + "should_not_something") + descriptions.should_not include( + "should", + "should_not" + ) + end + + it "should not include methods that begin with test_ and has an arity > 0 in suite" do + example_group = Class.new(ExampleGroupDouble) do + def test_invalid(foo) + 1.should == 1 + end + def testInvalidCamelCase(foo) + 1.should == 1 + end + end + example_group.should have(:no).examples + end + + it "should not include methods that begin with should_ and has an arity > 0 in suite" do + example_group = Class.new(ExampleGroupDouble) do + def should_invalid(foo) + 1.should == 2 + end + def shouldInvalidCamelCase(foo) + 1.should == 3 + end + def should_not_invalid(foo) + 1.should == 4 + end + def should_valid + 1.should == 1 + end + end + example_group.should have(1).examples + example_group.run(options).should be_true + end + + it "should run should_methods" do + example_group = Class.new(ExampleGroupDouble) do + def should_valid + 1.should == 2 + end + end + example_group.should have(1).examples + example_group.run(options).should be_false + end + end + + describe "#set_description" do + attr_reader :example_group + before do + class << example_group + public :set_description + end + end + + describe "given a String" do + before(:each) do + example_group.set_description("abc") + end + + specify ".description should return the String passed into .set_description" do + example_group.description.should == "abc" + end + + specify ".described_type should provide nil as its type" do + example_group.described_type.should be_nil + end + end + + describe "given a Class" do + before(:each) do + example_group.set_description(ExampleGroup) + end + + specify ".description should return a String representation of that type (fully qualified) as its name" do + example_group.description.should == "Spec::Example::ExampleGroup" + end + + specify ".described_type should return the passed in type" do + example_group.described_type.should == Spec::Example::ExampleGroup + end + end + + describe "given a String and a Class" do + before(:each) do + example_group.set_description("behaving", ExampleGroup) + end + + specify ".description should return String then space then Type" do + example_group.description.should == "behaving Spec::Example::ExampleGroup" + end + + specify ".described_type should return the passed in type" do + example_group.described_type.should == Spec::Example::ExampleGroup + end + end + + describe "given a Class and a String (starting with an alpha char)" do + before(:each) do + example_group.set_description(ExampleGroup, "behaving") + end + + specify ".description should return the Type then space then String" do + example_group.description.should == "Spec::Example::ExampleGroup behaving" + end + end + + describe "given a Class and a String (starting with a '.')" do + before(:each) do + example_group.set_description(ExampleGroup, ".behaving") + end + + specify ".description should return the Type then String" do + example_group.description.should == "Spec::Example::ExampleGroup.behaving" + end + end + + describe "#set_description(Class, String starting with #)" do + before(:each) do + example_group.set_description(ExampleGroup, "#behaving") + end + + specify "should return the Class then String" do + example_group.description.should == "Spec::Example::ExampleGroup#behaving" + end + end + + describe "#set_description(Class, String containing .)" do + before(:each) do + example_group.set_description(ExampleGroup, "calling a.b") + end + + specify ".description should return the Type then space then String" do + example_group.description.should == "Spec::Example::ExampleGroup calling a.b" + end + end + + describe "#set_description(Class, String containing #)" do + before(:each) do + example_group.set_description(ExampleGroup, "is #1") + end + + specify ".description should return the Type then space then String" do + example_group.description.should == "Spec::Example::ExampleGroup is #1" + end + end + + describe "#set_description(String, Type, String)" do + before(:each) do + example_group.set_description("A", Hash, "with one entry") + end + + specify ".description should return the first String then space then Type then second String" do + example_group.description.should == "A Hash with one entry" + end + end + + describe "#set_description(Hash representing options)" do + before(:each) do + example_group.set_description(:a => "b", :location => "blah") + end + + it ".location should expand the passed in :location option passed into the constructor" do + example_group.location.should == File.expand_path("blah") + end + + it ".options should return all the options passed in" do + example_group.options.should == {:a => "b", :location => "blah"} + end + + end + end + + describe "#description" do + it "should return the same description instance for each call" do + example_group.description.should eql(example_group.description) + end + + it "should not add a space when description begins with #" do + child_example_group = Class.new(example_group) do + describe("#foobar", "Does something") + end + child_example_group.description.should == "ExampleGroup#foobar Does something" + end + + it "should not add a space when description begins with ." do + child_example_group = Class.new(example_group) do + describe(".foobar", "Does something") + end + child_example_group.description.should == "ExampleGroup.foobar Does something" + end + + it "should return the class name if nil" do + example_group.set_description(nil) + example_group.description.should =~ /Class:/ + end + + it "should return the class name if nil" do + example_group.set_description("") + example_group.description.should =~ /Class:/ + end + + it "is cached" do + example_group.set_description("describe me") + example_group.description.should be(example_group.description) + end + end + + describe "#description_parts" do + it "should return an Array of the current class description args" do + example_group.description_parts.should == [example_group.description] + end + + it "should return an Array of the description args from each class in the hierarchy" do + parent_example_group = Class.new(ExampleGroupDouble) do + describe("Parent") + end + + child_example_group = Class.new(parent_example_group) + child_example_group.describe("Child", ExampleGroup) + child_example_group.description.should_not be_empty + + grand_child_example_group = Class.new(child_example_group) + grand_child_example_group.describe("GrandChild", ExampleGroup) + grand_child_example_group.description.should_not be_empty + + grand_child_example_group.description_parts.should == [ + "Parent", + "Child", + Spec::Example::ExampleGroup, + "GrandChild", + Spec::Example::ExampleGroup + ] + end + + it "caches the description parts" do + example_group.description_parts.should equal(example_group.description_parts) + end + end + + describe "#described_type" do + it "should return passed in type" do + child_example_group = Class.new(example_group) do + describe Object + end + child_example_group.described_type.should == Object + end + + it "should return #described_type of superclass when no passed in type" do + parent_example_group = Class.new(ExampleGroupDouble) do + describe Object, "#foobar" + end + child_example_group = Class.new(parent_example_group) do + describe "not a type" + end + child_example_group.described_type.should == Object + end + + it "is cached per example group" do + klass = Class.new + group = Class.new(ExampleGroupDouble) do + describe(klass) + end + group.should_receive(:description_parts).once.and_return([klass]) + group.described_type + group.described_type + end + end + + describe "#include" do + it "should have accessible class methods from included module" do + mod_method_called = false + mod = Module.new do + class_methods = Module.new do + define_method :mod_method do + mod_method_called = true + end + end + + self.class.class_eval do + define_method(:included) do |receiver| + receiver.extend class_methods + end + end + end + + @example_group.__send__ :include, mod + + @example_group.mod_method + mod_method_called.should be_true + end + end + + describe "#number_of_examples" do + it "should count number of examples" do + proc do + @example_group.it("one") {} + @example_group.it("two") {} + @example_group.it("three") {} + @example_group.it("four") {} + end.should change {@example_group.number_of_examples}.by(4) + end + end + + describe "#class_eval" do + it "should allow constants to be defined" do + example_group = Class.new(ExampleGroupDouble) do + FOO = 1 + it "should reference FOO" do + FOO.should == 1 + end + end + success = example_group.run(options) + success.should be_true + Object.const_defined?(:FOO).should == false + end + end + + describe '#register' do + after(:each) do + Spec::Runner.options.remove_example_group example_group + end + it "should add ExampleGroup to set of ExampleGroups to be run" do + Spec::Runner.options.add_example_group example_group + options.example_groups.should include(example_group) + end + end + + describe '#remove_example_group' do + before(:each) do + Spec::Runner.options.add_example_group example_group + end + it "should remove ExampleGroup from set of ExampleGroups to be run" do + Spec::Runner.options.remove_example_group example_group + options.example_groups.should_not include(example_group) + end + end + + describe "#run" do + describe "given an example group with at least one example" do + it "should call add_example_group" do + example_group = Class.new(ExampleGroupDouble) do + example("anything") {} + end + reporter.should_receive(:add_example_group) + example_group.run(options) + end + end + + describe "given an example group with no examples" do + it "should NOT call add_example_group" do + example_group = Class.new(ExampleGroupDouble) do end + reporter.should_not_receive(:add_example_group) + example_group.run(options) + end + end + end + + describe "#matcher_class=" do + it "should call new and matches? on the class used for matching examples" do + example_group = Class.new(ExampleGroupDouble) do + it "should do something" do end + def self.specified_examples + ["something"] + end + def self.to_s + "TestMatcher" + end + end + + matcher = mock("matcher") + matcher.should_receive(:matches?).with(["something"]).any_number_of_times + + matcher_class = Class.new + matcher_class.should_receive(:new).with("TestMatcher", "should do something").and_return(matcher) + + begin + ExampleGroupMethods.matcher_class = matcher_class + + example_group.run(options) + ensure + ExampleGroupMethods.matcher_class = ExampleMatcher + end + end + end + + describe "#options" do + it "should expose the options hash" do + group = describe("group", :this => 'hash') {} + group.options[:this].should == 'hash' + end + end + + describe "#before" do + it "stores before(:each) blocks" do + example_group = Class.new(ExampleGroupDouble) {} + block = lambda {} + example_group.before(:each, &block) + example_group.before_each_parts.should include(block) + end + + it "stores before(:all) blocks" do + example_group = Class.new(ExampleGroupDouble) {} + block = lambda {} + example_group.before(:all, &block) + example_group.before_all_parts.should include(block) + end + + it "stores before(:suite) blocks" do + example_group = Class.new(ExampleGroupDouble) {} + parts = [] + ExampleGroupMethods.stub!(:before_suite_parts).and_return(parts) + block = lambda {} + example_group.before(:suite, &block) + example_group.before_suite_parts.should include(block) + end + end + + + describe "#after" do + it "stores after(:each) blocks" do + example_group = Class.new(ExampleGroupDouble) {} + block = lambda {} + example_group.after(:each, &block) + example_group.after_each_parts.should include(block) + end + + it "stores after(:all) blocks" do + example_group = Class.new(ExampleGroupDouble) {} + block = lambda {} + example_group.after(:all, &block) + example_group.after_all_parts.should include(block) + end + + it "stores after(:suite) blocks" do + example_group = Class.new(ExampleGroupDouble) {} + parts = [] + ExampleGroupMethods.stub!(:after_suite_parts).and_return(parts) + block = lambda {} + example_group.after(:suite, &block) + example_group.after_suite_parts.should include(block) + end + end + + describe "#run_before_all" do + it "does not create an instance if before_all_parts are empty" do + example_group = Class.new(ExampleGroupDouble) { example("one example") {} } + example_group.should_not_receive(:new) + example_group.__send__ :run_before_all, nil + end + end + + describe "#run_after_all" do + it "does not create an instance if after_all_parts are empty" do + example_group = Class.new(ExampleGroupDouble) { example("one example") {} } + example_group.should_not_receive(:new) + example_group.__send__ :run_after_all, true, {}, nil + end + end + + describe "#examples_to_run" do + it "runs only the example identified by a line number" do + example_group = Class.new(ExampleGroupDouble).describe("this") do + it { 3.should == 3 } + it "has another example which raises" do + raise "this shouldn't have run" + end + end + options.examples << :ignore + options.line_number = __LINE__ - 6 + options.files << __FILE__ + example_group.run(options).should be_true + end + + it "runs the example identified by a line number even if it's not the example line number" do + example_group = Class.new(ExampleGroupDouble).describe("this") do + + it { raise "foo" } + + end + options.examples << :ignore + options.line_number = __LINE__ - 3 + options.files << __FILE__ + example_group.run(options).should be_false + end + + it "runs all the examples in the group " do + first_example_ran = false + second_example_ran = false + example_group = Class.new(ExampleGroupDouble).describe("this") do + + it { first_example_ran = true } + it { second_example_ran = true } + + end + options.line_number = __LINE__ - 6 + options.files << __FILE__ + options.examples << :ignore + example_group.run(options) + first_example_ran.should be_true + second_example_ran.should be_true + end + + it "doesn't run any examples in another group" do + example_ran = false + example_group_1 = Class.new(ExampleGroupDouble).describe("this") do + it "ignore" do + example_ran = true + end + end + example_group_2 = Class.new(ExampleGroupDouble).describe("that") do + end + options.examples << :ignore + options.line_number = __LINE__ - 3 + options.files << __FILE__ + example_group_1.run(options) + example_group_2.run(options) + example_ran.should be_false + end + end + + describe "#define" do + let(:counter) do + Class.new do + def initialize + @count = 0 + end + def count + @count += 1 + end + end.new + end + it "generates an instance method" do + counter.count.should == 1 + end + + it "caches the value" do + counter.count.should == 1 + counter.count.should == 2 + end + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/example/example_group_proxy_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/example/example_group_proxy_spec.rb new file mode 100644 index 0000000..6af4ef1 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/example/example_group_proxy_spec.rb @@ -0,0 +1,107 @@ +require 'spec_helper' + +module Spec + module Example + describe ExampleGroupProxy do + before(:each) do + @group = stub("example group").as_null_object + end + + attr_reader :group + def proxy + @proxy ||= ExampleGroupProxy.new(@group) + end + + describe "#description" do + it "provides the example group's description" do + group.stub!(:description => "the description") + proxy.description.should == "the description" + end + end + + describe "#nested_descriptions" do + it "provides the example group's nested_descriptions" do + group.stub!(:nested_descriptions => ["the description"]) + proxy.nested_descriptions.should == ["the description"] + end + end + + describe "#filtered_description (DEPRECATED)" do + before(:each) do + Spec.stub!(:deprecate) + end + + it "is deprecated" do + Spec.should_receive(:deprecate) + proxy.filtered_description(/(ignore)/) + end + + it "builds the description from the group's nested_descriptions" do + group.stub!(:nested_descriptions => ["ignore","the","description"]) + proxy.filtered_description(/(ignore)/).should == "the description" + end + + it "filters out description parts that match the supplied regexp" do + group.stub!(:nested_descriptions => ["ignore the","description"]) + proxy.filtered_description(/(ignore )/).should == "the description" + end + end + + describe "#examples" do + it "provides a collection of example group proxies" do + group.stub!(:example_proxies => ["array","of","proxies"]) + proxy.examples.should == ["array","of","proxies"] + end + end + + describe "#backtrace (deprecated - use #location)" do + before(:each) do + Spec.stub!(:deprecate) + end + + it "provides the location of the declaration of this group" do + group.stub!(:location => "path/to/location:37") + proxy.backtrace.should == "path/to/location:37" + end + + it "warns deprecation" do + Spec.should_receive(:deprecate) + group.stub!(:location => "path/to/location:37") + proxy.backtrace + end + end + + describe "#location" do + it "provides the location of the declaration of this group" do + group.stub!(:location => "path/to/location:37") + proxy.location.should == "path/to/location:37" + end + end + + describe "#options" do + it "provides the options passed to the example group declaration" do + group.stub!(:options => {:a => 'b'}) + proxy.options.should == {:a => 'b'} + end + + it "excludes :location" do + group.stub!(:options => {:location => 'b'}) + proxy.options.should == {} + end + + it "excludes :scope" do + group.stub!(:options => {:scope => 'b'}) + proxy.options.should == {} + end + + it "preserves the original hash" do + hash = {:a => 'b', :location => 'here', :scope => 'tiny'} + group.stub!(:options => hash) + proxy.options.should == {:a => 'b'} + hash.should == {:a => 'b', :location => 'here', :scope => 'tiny'} + end + end + + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/example/example_group_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/example/example_group_spec.rb new file mode 100644 index 0000000..086c166 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/example/example_group_spec.rb @@ -0,0 +1,643 @@ +require 'spec_helper' + +module Spec + module Example + class ExampleModuleScopingSpec < ExampleGroup + describe ExampleGroup, "via a class definition" + + module Foo + module Bar + def self.loaded?; true; end + end + end + include Foo + + it "should understand module scoping" do + Bar.should be_loaded + end + + @@class_variable = "a class variable" + + it "can access class variables in examples in Ruby 1.8" do + with_ruby 1.8 do + @@class_variable.should == "a class variable" + end + end + + it "can NOT access class variables in examples in Ruby 1.9" do + with_ruby 1.9 do + lambda do + @@class_variable.should == "a class variable" + end.should raise_error(NameError) + end + end + + + end + + class ExampleClassVariablePollutionSpec < ExampleGroup + describe ExampleGroup, "via a class definition without a class variable" + + it "should not retain class variables from other Example classes" do + proc do + @@class_variable + end.should raise_error + end + end + + describe ExampleGroup, "#pending" do + it "should raise a Pending error when its block fails" do + block_ran = false + lambda { + pending("something") do + block_ran = true + raise "something wrong with my example" + end + }.should raise_error(Spec::Example::ExamplePendingError, "something") + block_ran.should == true + end + + it "should raise Spec::Example::PendingExampleFixedError when its block does not fail" do + block_ran = false + lambda { + pending("something") do + block_ran = true + end + }.should raise_error(Spec::Example::PendingExampleFixedError, "Expected pending 'something' to fail. No Error was raised.") + block_ran.should == true + end + end + + describe ExampleGroup, "#run with failure in example", :shared => true do + it "should add an example failure to the TestResult" do + example_group.run(options).should be_false + end + end + + describe ExampleGroup, "#run" do + with_sandboxed_options do + attr_reader :example_group, :formatter, :reporter + before :each do + method_with_three_args = lambda { |arg1, arg2, arg3| } + @formatter = mock("formatter", :null_object => true, :example_pending => method_with_three_args) + options.formatters << formatter + options.backtrace_tweaker = mock("backtrace_tweaker", :null_object => true) + @reporter = FakeReporter.new(options) + options.reporter = reporter + @example_group = Class.new(ExampleGroupDouble) do + describe("example") + it "does nothing" do + end + end + class << example_group + public :include + end + end + + after :each do + ExampleGroup.reset + end + + it "should not run when there are no examples" do + example_group = Class.new(ExampleGroupDouble) do + describe("Foobar") + end + example_group.examples.should be_empty + + reporter = mock("Reporter") + reporter.should_not_receive(:add_example_group) + example_group.run(options) + end + + it "should report the start of an example run" do + reporter.should_receive(:example_started) do |example| + example.should equal(example_group.examples[0]) + end + example_group.run(options) + end + + it "should report the end of an example run" do + reporter.should_receive(:example_finished) do |example, execution_error| + example.should equal(example_group.examples[0]) + execution_error.should be_nil + end + example_group.run(options) + end + + describe "when before_each fails" do + before(:each) do + $example_ran = $after_each_ran = false + @example_group = describe("Foobar") do + before(:each) {raise} + it "should not be run" do + $example_ran = true + end + after(:each) do + $after_each_ran = true + end + end + end + + it "should not run example block" do + example_group.run(options) + $example_ran.should be_false + end + + it "should run after_each" do + example_group.run(options) + $after_each_ran.should be_true + end + + it "should report failure location when in before_each" do + reporter.should_receive(:example_finished) do |example_group, error| + error.message.should eql("in before_each") + end + example_group.run(options) + end + end + + describe ExampleGroup, "#run on dry run" do + before do + @options.dry_run = true + end + + it "should not run before(:all) or after(:all)" do + before_all_ran = false + after_all_ran = false + ExampleGroup.before(:all) { before_all_ran = true } + ExampleGroup.after(:all) { after_all_ran = true } + example_group.it("should") {} + example_group.run(options) + before_all_ran.should be_false + after_all_ran.should be_false + end + + it "should not run example" do + example_ran = false + example_group.it("should") {example_ran = true} + example_group.run(options) + example_ran.should be_false + end + end + + describe ExampleGroup, "#run with specified examples" do + attr_reader :examples_that_were_run + before do + @examples_that_were_run = [] + end + + describe "when specified_examples matches entire ExampleGroup" do + before do + examples_that_were_run = @examples_that_were_run + @example_group = Class.new(ExampleGroupDouble) do + describe("the ExampleGroup") + it("should be run") do + examples_that_were_run << 'should be run' + end + + it("should also be run") do + examples_that_were_run << 'should also be run' + end + end + options.parse_example "the ExampleGroup" + end + + it "should not run the Examples in the ExampleGroup" do + example_group.run(options) + examples_that_were_run.should == ['should be run', 'should also be run'] + end + end + + describe ExampleGroup, "#run when specified_examples matches only Example description" do + before do + examples_that_were_run = @examples_that_were_run + @example_group = Class.new(ExampleGroupDouble) do + describe("example") + it("should be run") do + examples_that_were_run << 'should be run' + end + end + options.parse_example "should be run" + end + + it "should not run the example" do + example_group.run(options) + examples_that_were_run.should == ['should be run'] + end + end + + describe ExampleGroup, "#run when specified_examples does not match an Example description" do + before do + examples_that_were_run = @examples_that_were_run + @example_group = Class.new(ExampleGroupDouble) do + describe("example") + it("should be something else") do + examples_that_were_run << 'should be something else' + end + end + options.parse_example "does not match anything" + end + + it "should not run the example" do + example_group.run(options) + examples_that_were_run.should == [] + end + end + + describe ExampleGroup, "#run when specified_examples matches an Example description" do + before do + examples_that_were_run = @examples_that_were_run + @example_group = Class.new(ExampleGroupDouble) do + describe("example") + it("should be run") do + examples_that_were_run << 'should be run' + end + it("should not be run") do + examples_that_were_run << 'should not be run' + end + end + options.parse_example "should be run" + end + + it "should run only the example" do + example_group.run(options) + examples_that_were_run.should == ["should be run"] + end + end + end + + describe ExampleGroup, "#run with success" do + before do + @special_example_group = Class.new(ExampleGroupDouble) + ExampleGroupFactory.register(:special, @special_example_group) + @not_special_example_group = Class.new(ExampleGroupDouble) + ExampleGroupFactory.register(:not_special, @not_special_example_group) + end + + after do + ExampleGroupFactory.reset + end + + it "should send reporter example_group_started" do + reporter.should_receive(:example_group_started) + example_group.run(options) + end + + it "should run example on run" do + example_ran = false + example_group.it("should") {example_ran = true} + example_group.run(options) + example_ran.should be_true + end + + it "should run before(:all) block only once" do + before_all_run_count_run_count = 0 + example_group.before(:all) {before_all_run_count_run_count += 1} + example_group.it("test") {true} + example_group.it("test2") {true} + example_group.run(options) + before_all_run_count_run_count.should == 1 + end + + it "should run after(:all) block only once" do + after_all_run_count = 0 + example_group.after(:all) {after_all_run_count += 1} + example_group.it("test") {true} + example_group.it("test2") {true} + example_group.run(options) + after_all_run_count.should == 1 + @reporter.rspec_verify + end + + it "after(:all) should have access to all instance variables defined in before(:all)" do + context_instance_value_in = "Hello there" + context_instance_value_out = "" + example_group.before(:all) { @instance_var = context_instance_value_in } + example_group.after(:all) { context_instance_value_out = @instance_var } + example_group.it("test") {true} + example_group.run(options) + context_instance_value_in.should == context_instance_value_out + end + + it "should copy instance variables from before(:all)'s execution context into spec's execution context" do + context_instance_value_in = "Hello there" + context_instance_value_out = "" + example_group.before(:all) { @instance_var = context_instance_value_in } + example_group.it("test") {context_instance_value_out = @instance_var} + example_group.run(options) + context_instance_value_in.should == context_instance_value_out + end + + it "should not add global before callbacks for untargetted example_group" do + fiddle = [] + + ExampleGroup.before(:all) { fiddle << "Example.before(:all)" } + ExampleGroup.prepend_before(:all) { fiddle << "Example.prepend_before(:all)" } + @special_example_group.before(:each) { fiddle << "Example.before(:each, :type => :special)" } + @special_example_group.prepend_before(:each) { fiddle << "Example.prepend_before(:each, :type => :special)" } + @special_example_group.before(:all) { fiddle << "Example.before(:all, :type => :special)" } + @special_example_group.prepend_before(:all) { fiddle << "Example.prepend_before(:all, :type => :special)" } + + example_group = Class.new(ExampleGroupDouble) do + describe("I'm not special", :type => :not_special) + it "does nothing" + end + example_group.run(options) + fiddle.should == [ + 'Example.prepend_before(:all)', + 'Example.before(:all)', + ] + end + + it "should add global before callbacks for targetted example_groups" do + fiddle = [] + + ExampleGroup.before(:all) { fiddle << "Example.before(:all)" } + ExampleGroup.prepend_before(:all) { fiddle << "Example.prepend_before(:all)" } + @special_example_group.before(:each) { fiddle << "special.before(:each, :type => :special)" } + @special_example_group.prepend_before(:each) { fiddle << "special.prepend_before(:each, :type => :special)" } + @special_example_group.before(:all) { fiddle << "special.before(:all, :type => :special)" } + @special_example_group.prepend_before(:all) { fiddle << "special.prepend_before(:all, :type => :special)" } + @special_example_group.append_before(:each) { fiddle << "special.append_before(:each, :type => :special)" } + + example_group = Class.new(@special_example_group).describe("I'm a special example_group") {} + example_group.it("test") {true} + example_group.run(options) + fiddle.should == [ + 'Example.prepend_before(:all)', + 'Example.before(:all)', + 'special.prepend_before(:all, :type => :special)', + 'special.before(:all, :type => :special)', + 'special.prepend_before(:each, :type => :special)', + 'special.before(:each, :type => :special)', + 'special.append_before(:each, :type => :special)', + ] + end + + it "should order before callbacks from global to local" do + fiddle = [] + ExampleGroup.prepend_before(:all) { fiddle << "Example.prepend_before(:all)" } + ExampleGroup.before(:all) { fiddle << "Example.before(:all)" } + example_group.prepend_before(:all) { fiddle << "prepend_before(:all)" } + example_group.before(:all) { fiddle << "before(:all)" } + example_group.prepend_before(:each) { fiddle << "prepend_before(:each)" } + example_group.before(:each) { fiddle << "before(:each)" } + example_group.run(options) + fiddle.should == [ + 'Example.prepend_before(:all)', + 'Example.before(:all)', + 'prepend_before(:all)', + 'before(:all)', + 'prepend_before(:each)', + 'before(:each)' + ] + end + + it "should order after callbacks from local to global" do + fiddle = [] + example_group.after(:each) { fiddle << "after(:each)" } + example_group.append_after(:each) { fiddle << "append_after(:each)" } + example_group.after(:all) { fiddle << "after(:all)" } + example_group.append_after(:all) { fiddle << "append_after(:all)" } + ExampleGroup.after(:all) { fiddle << "Example.after(:all)" } + ExampleGroup.append_after(:all) { fiddle << "Example.append_after(:all)" } + example_group.run(options) + fiddle.should == [ + 'after(:each)', + 'append_after(:each)', + 'after(:all)', + 'append_after(:all)', + 'Example.after(:all)', + 'Example.append_after(:all)' + ] + end + + it "should have accessible instance methods from included module" do + mod1_method_called = false + mod1 = Module.new do + define_method :mod1_method do + mod1_method_called = true + end + end + + mod2_method_called = false + mod2 = Module.new do + define_method :mod2_method do + mod2_method_called = true + end + end + + example_group.include mod1, mod2 + + example_group.it("test") do + mod1_method + mod2_method + end + example_group.run(options) + mod1_method_called.should be_true + mod2_method_called.should be_true + end + + it "should include targetted modules included using configuration" do + mod1 = Module.new + mod2 = Module.new + mod3 = Module.new + Spec::Runner.configuration.include(mod1, mod2) + Spec::Runner.configuration.include(mod3, :type => :not_special) + + example_group = Class.new(@special_example_group).describe("I'm special", :type => :special) do + it "does nothing" + end + example_group.run(options) + + example_group.included_modules.should include(mod1) + example_group.included_modules.should include(mod2) + example_group.included_modules.should_not include(mod3) + end + + end + + describe ExampleGroup, "#run with pending example that has a failing assertion" do + before do + example_group.it("should be pending") do + pending("Example fails") {false.should be_true} + end + end + + it "should send example_pending to formatter" do + @formatter.should_receive(:example_pending).with("example", "should be pending", "Example fails") + example_group.run(options) + end + end + + describe ExampleGroup, "#run with pending example that does not have a failing assertion" do + it_should_behave_like "Spec::Example::ExampleGroup#run with failure in example" + + before do + example_group.it("should be pending") do + pending("Example passes") {true.should be_true} + end + end + + it "should send example_pending to formatter" do + @formatter.should_receive(:example_pending).with("example", "should be pending", "Example passes") + example_group.run(options) + end + end + + describe ExampleGroup, "#run when before(:all) fails" do + it_should_behave_like "Spec::Example::ExampleGroup#run with failure in example" + + before do + ExampleGroup.before(:all) { raise NonStandardError, "before(:all) failure" } + end + + it "should not run any example" do + spec_ran = false + example_group.it("test") {spec_ran = true} + example_group.run(options) + spec_ran.should be_false + end + + it "should run ExampleGroup after(:all)" do + after_all_ran = false + ExampleGroup.after(:all) { after_all_ran = true } + example_group.run(options) + after_all_ran.should be_true + end + + it "should run example_group after(:all)" do + after_all_ran = false + example_group.after(:all) { after_all_ran = true } + example_group.run(options) + after_all_ran.should be_true + end + + it "should supply before(:all) as description" do + @reporter.should_receive(:example_failed) do |example, error| + example.description.should eql("before(:all)") + error.message.should eql("before(:all) failure") + end + + example_group.it("test") {true} + example_group.run(options) + end + end + + describe ExampleGroup, "#run when before(:each) fails" do + it_should_behave_like "Spec::Example::ExampleGroup#run with failure in example" + + before do + ExampleGroup.before(:each) { raise NonStandardError } + end + + it "should run after(:all)" do + after_all_ran = false + ExampleGroup.after(:all) { after_all_ran = true } + example_group.run(options) + after_all_ran.should be_true + end + end + + describe ExampleGroup, "#run when any example fails" do + it_should_behave_like "Spec::Example::ExampleGroup#run with failure in example" + + before do + example_group.it("should") { raise NonStandardError } + end + + it "should run after(:all)" do + after_all_ran = false + ExampleGroup.after(:all) { after_all_ran = true } + example_group.run(options) + after_all_ran.should be_true + end + end + + describe ExampleGroup, "#run when first after(:each) block fails" do + it_should_behave_like "Spec::Example::ExampleGroup#run with failure in example" + + before do + class << example_group + attr_accessor :first_after_ran, :second_after_ran + end + example_group.first_after_ran = false + example_group.second_after_ran = false + + example_group.after(:each) do + self.class.second_after_ran = true + end + example_group.after(:each) do + self.class.first_after_ran = true + raise "first" + end + end + + it "should run second after(:each) block" do + reporter.should_receive(:example_finished) do |example, error| + example.should equal(example) + error.message.should eql("first") + end + example_group.run(options) + example_group.first_after_ran.should be_true + example_group.second_after_ran.should be_true + end + end + + describe ExampleGroup, "#run when first before(:each) block fails" do + it_should_behave_like "Spec::Example::ExampleGroup#run with failure in example" + + before do + class << example_group + attr_accessor :first_before_ran, :second_before_ran + end + example_group.first_before_ran = false + example_group.second_before_ran = false + + example_group.before(:each) do + self.class.first_before_ran = true + raise "first" + end + example_group.before(:each) do + self.class.second_before_ran = true + end + end + + it "should not run second before(:each)" do + reporter.should_receive(:example_finished) do |name, error| + error.message.should eql("first") + end + example_group.run(options) + example_group.first_before_ran.should be_true + example_group.second_before_ran.should be_false + end + end + + describe ExampleGroup, "#run when failure in after(:all)" do + it_should_behave_like "Spec::Example::ExampleGroup#run with failure in example" + + before do + ExampleGroup.after(:all) { raise NonStandardError, "in after(:all)" } + end + + it "should return false" do + example_group.run(options).should be_false + end + end + end + end + + describe ExampleGroup, "subclasses" do + it "should have access to the described_type" do + example_group = Class.new(ExampleGroupDouble).describe(Array) + example_group.__send__(:described_type).should == Array + end + + it "should concat descriptions when nested" do + example_group = Class.new(ExampleGroupDouble).describe(Array) + nested_group = example_group.describe("when empty") do; end + nested_group.description.to_s.should == "Array when empty" + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/example/example_matcher_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/example/example_matcher_spec.rb new file mode 100644 index 0000000..1a7e5da --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/example/example_matcher_spec.rb @@ -0,0 +1,86 @@ +require 'spec_helper' + +module Spec + module Example + describe ExampleMatcher, "#matches?" do + def match_examples(examples) + simple_matcher do |actual, matcher| + matcher.failure_message = "expected matcher.matches?(#{description.inspect}) to return true, got false" + matcher.negative_failure_message = "expected matcher.matches?(#{description.inspect}) to return false, got true" + actual.matches?(examples) + end + end + + it "should match correct example_group and example" do + matcher = ExampleMatcher.new("example_group", "example") + matcher.should match_examples(["example_group example"]) + end + + it "should not match wrong example" do + matcher = ExampleMatcher.new("example_group", "other example") + matcher.should_not match_examples(["example_group example"]) + end + + it "should not match wrong example_group" do + matcher = ExampleMatcher.new("other example_group", "example") + matcher.should_not match_examples(["example_group example"]) + end + + it "should match example only" do + matcher = ExampleMatcher.new("example_group", "example") + matcher.should match_examples(["example"]) + end + + it "should match example_group only" do + matcher = ExampleMatcher.new("example_group", "example") + matcher.should match_examples(["example_group"]) + end + + it "should match example_group ending with before(:all)" do + matcher = ExampleMatcher.new("example_group", "example") + matcher.should match_examples(["example_group before(:all)"]) + end + + it "should escape regexp chars" do + matcher = ExampleMatcher.new("(con|text)", "[example]") + matcher.should_not match_examples(["con p"]) + end + + it "should match when example_group is modularized" do + matcher = ExampleMatcher.new("MyModule::MyClass", "example") + matcher.should match_examples(["MyClass example"]) + end + end + + describe ExampleMatcher, "#matches? normal case" do + it "matches when passed in example matches" do + matcher = ExampleMatcher.new("Foo", "bar") + matcher.matches?(["no match", "Foo bar"]).should == true + end + + it "does not match when no passed in examples match" do + matcher = ExampleMatcher.new("Foo", "bar") + matcher.matches?(["no match1", "no match2"]).should == false + end + end + + describe ExampleMatcher, "#matches? where description has '::' in it" do + it "matches when passed in example matches" do + matcher = ExampleMatcher.new("Foo::Bar", "baz") + matcher.matches?(["no match", "Foo::Bar baz"]).should == true + end + + it "does not match when no passed in examples match" do + matcher = ExampleMatcher.new("Foo::Bar", "baz") + matcher.matches?(["no match1", "no match2"]).should == false + end + end + + describe ExampleMatcher, "called with nil example" do + it "does not puke" do + matcher = ExampleMatcher.new("Foo::Bar", nil) + matcher.matches?(["anything"]).should == false + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/example/example_methods_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/example/example_methods_spec.rb new file mode 100644 index 0000000..9a68109 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/example/example_methods_spec.rb @@ -0,0 +1,162 @@ +require 'spec_helper' + +class Thing + attr_reader :arg + def initialize(arg=nil) + @arg = arg || :default + end + def ==(other) + @arg == other.arg + end + def eql?(other) + @arg == other.arg + end +end + +module Spec + module Example + describe ExampleMethods do + module ModuleThatIsReopened; end + + module Spec::Example::ExampleMethods + include ModuleThatIsReopened + end + + module ModuleThatIsReopened + def module_that_is_reopened_method; end + end + + describe "with an included module that is reopened" do + it "should have reopened methods" do + method(:module_that_is_reopened_method).should_not be_nil + end + end + + describe "#should" do + before(:each) do + @example_group = Class.new(ExampleGroupDouble) + @options = ::Spec::Runner::Options.new(StringIO.new, StringIO.new) + end + + context "in an ExampleGroup with an implicit subject" do + it "delegates matcher to the implied subject" do + @example_group.describe(::Thing) + @example_group.example { should == ::Thing.new(:default) } + @example_group.example { should eql(::Thing.new(:default)) } + @example_group.run(@options).should be_true + end + end + + context "in an ExampleGroup using an explicit subject" do + it "delegates matcher to the declared subject" do + @example_group.describe(::Thing) + @example_group.subject { ::Thing.new(:other) } + @example_group.example { should == ::Thing.new(:other) } + @example_group.example { should eql(::Thing.new(:other)) } + @example_group.run(@options).should be_true + end + end + + context "in an ExampleGroup using 'self' as an explicit subject" do + it "delegates matcher to the ExampleGroup" do + @example_group.describe(::Thing) + @example_group.subject { self } + @example_group.example { should == self } + @example_group.example { should eql(self) } + @example_group.example do + self.instance_eval("def method_ok?; true end") + should be_method_ok + end + @example_group.run(@options).should be_true + end + end + end + + describe "#should_not" do + before(:each) do + @example_group = Class.new(ExampleGroupDouble) + @options = ::Spec::Runner::Options.new(StringIO.new, StringIO.new) + end + + context "in an ExampleGroup with an implicit subject" do + it "delegates matcher to the implied subject" do + @example_group.describe(::Thing) + @example_group.example { should_not == ::Thing.new(:other) } + @example_group.example { should_not eql(::Thing.new(:other)) } + @example_group.run(@options).should be_true + end + end + + context "in an ExampleGroup using an explicit subject" do + it "delegates matcher to the declared subject" do + @example_group.describe(::Thing) + @example_group.subject { ::Thing.new(:other) } + @example_group.example { should_not == ::Thing.new(:default) } + @example_group.example { should_not eql(::Thing.new(:default)) } + @example_group.run(@options).should be_true + end + end + + context "in an ExampleGroup using 'self' as an explicit subject" do + it "delegates matcher to the ExampleGroup" do + @example_group.describe(::Thing) + @example_group.subject { self } + @example_group.example { should_not == ::Thing.new(:default) } + @example_group.example { should_not eql(::Thing.new(:default)) } + @example_group.example do + self.instance_eval("def method_ok?; false end") + should_not be_method_ok + end + @example_group.run(@options).should be_true + end + end + end + end + + describe "#options" do + it "should expose the options hash" do + example = ExampleGroupDouble.new ExampleProxy.new("name", :this => 'that') do; end + example.options[:this].should == 'that' + end + end + + describe "#set_instance_variables_from_hash" do + it "preserves the options" do + example = ExampleGroupDouble.new ExampleProxy.new("name", :this => 'that') do; end + example.set_instance_variables_from_hash({:@_options => {}}) + example.options[:this].should == 'that' + end + end + + describe "#description" do + it "returns the supplied description" do + example = ExampleGroupDouble.new ExampleProxy.new("name") do; end + example.description.should == "name" + end + it "returns the generated description if there is no description supplied" do + example = ExampleGroupDouble.new ExampleProxy.new do; end + Spec::Matchers.stub!(:generated_description).and_return('this message') + example.description.should == "this message" + end + it "warns if there is no supplied or generated description" do + example = ExampleGroupDouble.new ExampleProxy.new(nil, {}, "this backtrace") do; end + Spec::Matchers.stub!(:generated_description).and_return(nil) + Spec.should_receive(:warn).with("No description supplied for example declared on this backtrace") + example.description + end + end + + describe "#expect" do + it "aliases #should with #to on the proc" do + a = 3 + expect { a += 1 }.to change{a}.from(3).to(4) + end + + it "aliases #should_not with #to_not on the proc" do + a = 3 + expect { nil }.to_not change{a} + end + end + + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/example/example_proxy_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/example/example_proxy_spec.rb new file mode 100644 index 0000000..de845c9 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/example/example_proxy_spec.rb @@ -0,0 +1,57 @@ +require 'spec_helper' + +module Spec + module Example + + describe ExampleProxy do + + describe "#description" do + it "provides the submitted description" do + proxy = ExampleProxy.new("the description") + proxy.description.should == "the description" + end + end + + describe "#update" do + it "updates the description" do + proxy = ExampleProxy.new("old description") + proxy.update("new description") + proxy.description.should == "new description" + end + end + + describe "#options" do + it "provides the submitted options" do + proxy = ExampleProxy.new(:ignore, {:these => :options}) + proxy.options.should == {:these => :options} + end + end + + describe "#backtrace (DEPRECATED - use #location)" do + before(:each) do + Spec.stub!(:deprecate) + end + + it "is deprecated" do + Spec.should_receive(:deprecate) + proxy = ExampleProxy.new(:ignore, {}, "path/to/location:37") + proxy.backtrace + end + + it "provides the location of the declaration of this group" do + proxy = ExampleProxy.new(:ignore, {}, "path/to/location:37") + proxy.backtrace.should == "path/to/location:37" + end + end + + describe "#location" do + it "provides the location of the declaration of this group" do + proxy = ExampleProxy.new(:ignore, {}, "path/to/location:37") + proxy.location.should == "path/to/location:37" + end + end + + end + + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/example/helper_method_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/example/helper_method_spec.rb new file mode 100644 index 0000000..3653aec --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/example/helper_method_spec.rb @@ -0,0 +1,24 @@ +require 'spec_helper' + +# This was added to prove that http://rspec.lighthouseapp.com/projects/5645/tickets/211 +# was fixed in ruby 1.9.1 + +module HelperMethodExample + describe "a helper method" do + def helper_method + "received call" + end + + it "is available to examples in the same group" do + helper_method.should == "received call" + end + + describe "from a nested group" do + it "is available to examples in a nested group" do + helper_method.should == "received call" + end + end + + end +end + diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/example/nested_example_group_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/example/nested_example_group_spec.rb new file mode 100644 index 0000000..83e4a9d --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/example/nested_example_group_spec.rb @@ -0,0 +1,71 @@ +require 'spec_helper' + +module Spec + module Example + describe 'Nested Example Groups' do + parent = self + + def count + @count ||= 0 + @count = @count + 1 + @count + end + + before(:all) do + count.should == 1 + end + + before(:all) do + count.should == 2 + end + + before(:each) do + count.should == 3 + end + + before(:each) do + count.should == 4 + end + + it "should run before(:all), before(:each), example, after(:each), after(:all) in order" do + count.should == 5 + end + + after(:each) do + count.should == 7 + end + + after(:each) do + count.should == 6 + end + + after(:all) do + count.should == 9 + end + + after(:all) do + count.should == 8 + end + + describe 'nested example group' do + self.superclass.should == parent + + it "should run all before and after callbacks" do + count.should == 5 + end + end + end + + describe "Nested Example Groups" do + describe "description options", :other_options => "other options" do + it "includes :location" do + self.class.options[:location].should match(/#{__FILE__}/) + end + + it "includes any other options" do + self.class.options[:other_options].should == "other options" + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/example/pending_module_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/example/pending_module_spec.rb new file mode 100644 index 0000000..275abc7 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/example/pending_module_spec.rb @@ -0,0 +1,58 @@ +module Spec + module Example + describe Pending do + + context "when no block is supplied" do + it "raises an ExamplePendingError if no block is supplied" do + lambda { + pending "TODO" + }.should raise_error(ExamplePendingError, /TODO/) + end + end + + context "when the supplied block fails" do + it "raises an ExamplePendingError if a supplied block fails as expected" do + lambda { + pending "TODO" do + raise "oops" + end + }.should raise_error(ExamplePendingError, /TODO/) + end + end + + context "when the supplied block fails with a mock" do + it "raises an ExamplePendingError if a supplied block fails as expected with a mock" do + lambda { + pending "TODO" do + m = mock("thing") + m.should_receive(:foo) + m.rspec_verify + end + }.should raise_error(ExamplePendingError, /TODO/) + end + end + + context "when the supplied block passes" do + it "raises a PendingExampleFixedError" do + lambda { + pending "TODO" do + # success! + end + }.should raise_error(PendingExampleFixedError, /TODO/) + end + end + end + + describe ExamplePendingError do + it "should have the message provided" do + ExamplePendingError.new("a message").message.should == "a message" + end + end + + describe NotYetImplementedError do + it "should have the message 'Not Yet Implemented'" do + NotYetImplementedError.new.message.should == "Not Yet Implemented" + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/example/predicate_matcher_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/example/predicate_matcher_spec.rb new file mode 100644 index 0000000..a018585 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/example/predicate_matcher_spec.rb @@ -0,0 +1,41 @@ +require 'spec_helper' + +module Spec + module Example + class Fish + def can_swim?(distance_in_yards) + distance_in_yards < 1000 + end + end + + describe "predicate_matcher[method_on_object] = matcher_method" do + before(:each) do + Spec.stub!(:deprecate) + end + + it "is deprecated" do + Spec.should_receive(:deprecate) + group = ExampleGroupDouble.describe("foo") do + predicate_matchers[:swim] = :can_swim? + end + group.run(Spec::Runner::Options.new(StringIO.new, StringIO.new)) + end + + it "should match matcher_method if method_on_object returns true" do + group = ExampleGroupDouble.describe(Fish) do + predicate_matchers[:swim] = :can_swim? + it { should swim(100) } + end + group.run(Spec::Runner::Options.new(StringIO.new, StringIO.new)) + end + + it "should not match matcher_method if method_on_object returns false" do + group = ExampleGroupDouble.describe(Fish) do + predicate_matchers[:swim] = :can_swim? + it { should_not swim(1000) } + end + group.run(Spec::Runner::Options.new(StringIO.new, StringIO.new)) + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/example/shared_example_group_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/example/shared_example_group_spec.rb new file mode 100644 index 0000000..bbebbf1 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/example/shared_example_group_spec.rb @@ -0,0 +1,257 @@ +require 'spec_helper' + +module Spec + module Example + describe ExampleGroup, "with :shared => true" do + with_sandboxed_options do + attr_reader :formatter, :example_group + before(:each) do + @formatter = Spec::Mocks::Mock.new("formatter", :null_object => true) + options.formatters << formatter + @example_group = Class.new(ExampleGroupDouble).describe("example_group") + class << example_group + public :include + end + end + + after(:each) do + @formatter.rspec_verify + @example_group = nil + Spec::Example::SharedExampleGroup.clear + end + + describe "#register" do + it "creates a new shared example group with the submitted args" do + block = lambda {|a|} + group = SharedExampleGroup.new("shared group") do end + Spec::Example::SharedExampleGroup.should_receive(:new).with("share me", &block).and_return(group) + Spec::Example::SharedExampleGroup.register("share me", &block) + end + + it "registers the shared example group" do + lambda do + Spec::Example::SharedExampleGroup.register "share me" do end + end.should change {Spec::Example::SharedExampleGroup.count}.by(1) + end + end + + it "complains when adding a second shared example_group with the same description" do + describe "shared example_group", :shared => true do + end + lambda do + describe "shared example_group", :shared => true do + end + end.should raise_error(ArgumentError) + end + + it "does NOT add the same group twice" do + lambda do + 2.times do + describe "shared example_group which gets loaded twice", :shared => true do + end + end + end.should change {Spec::Example::SharedExampleGroup.count}.by(1) + end + + it "does NOT complain when adding the same shared example_group again (i.e. file gets reloaded)" do + lambda do + 2.times do + describe "shared example_group which gets loaded twice", :shared => true do + end + end + end.should_not raise_error(ArgumentError) + end + + it "does NOT complain when adding the same shared example_group in same file with different absolute path" do + SharedExampleGroup.register( + "shared example_group", + :shared => true, + :location => "/my/spec/a/../shared.rb" + ) + SharedExampleGroup.register( + "shared example_group", + :shared => true, + :location => "/my/spec/b/../shared.rb" + ) + end + + it "complains when adding a different shared example_group with the same name in a different file with the same basename" do + SharedExampleGroup.register( + "shared example_group", + :shared => true, + :location => "/my/spec/a/shared.rb" + ) + lambda do + SharedExampleGroup.register( + "shared example_group", + :shared => true, + :location => "/my/spec/b/shared.rb" + ) + end.should raise_error(ArgumentError, /already exists/) + end + + it "adds examples to current example_group using it_should_behave_like" do + shared_example_group = SharedExampleGroup.register("shared example_group") do + it("shared example") {} + it("shared example 2") {} + end + + example_group.it("example") {} + example_group.number_of_examples.should == 1 + example_group.it_should_behave_like("shared example_group") + example_group.number_of_examples.should == 3 + end + + it "adds examples to from two shared groups" do + shared_example_group_1 = SharedExampleGroup.register("shared example_group 1") do + it("shared example 1") {} + end + + shared_example_group_1 = SharedExampleGroup.register("shared example_group 2") do + it("shared example 2") {} + end + + example_group.it("example") {} + example_group.number_of_examples.should == 1 + example_group.it_should_behave_like("shared example_group 1", "shared example_group 2") + example_group.number_of_examples.should == 3 + end + + it "adds examples to current example_group using include" do + shared_example_group = describe "all things", :shared => true do + it "should do stuff" do end + end + + example_group = describe "one thing" do + include shared_example_group + end + + example_group.number_of_examples.should == 1 + end + + it "adds examples to current example_group using it_should_behave_like with a module" do + ::AllThings = describe "all things", :shared => true do + it "should do stuff" do end + end + + example_group = describe "one thing" do + it_should_behave_like ::AllThings + end + + example_group.number_of_examples.should == 1 + end + + it "runs shared examples" do + shared_example_ran = false + shared_example_group = SharedExampleGroup.register("shared example_group") do + it("shared example") { shared_example_ran = true } + end + + example_ran = false + + example_group.it_should_behave_like("shared example_group") + example_group.it("example") {example_ran = true} + example_group.run(options) + example_ran.should be_true + shared_example_ran.should be_true + end + + it "runs before(:each) and after(:each) from shared example_group" do + shared_setup_ran = false + shared_teardown_ran = false + shared_example_group = SharedExampleGroup.register("shared example_group") do + before(:each) { shared_setup_ran = true } + after(:each) { shared_teardown_ran = true } + it("shared example") { shared_example_ran = true } + end + + example_ran = false + + example_group.it_should_behave_like("shared example_group") + example_group.it("example") {example_ran = true} + example_group.run(options) + example_ran.should be_true + shared_setup_ran.should be_true + shared_teardown_ran.should be_true + end + + it "should run before(:all) and after(:all) only once from shared example_group" do + shared_before_all_run_count = 0 + shared_after_all_run_count = 0 + shared_example_group = SharedExampleGroup.register("shared example_group") do + before(:all) { shared_before_all_run_count += 1} + after(:all) { shared_after_all_run_count += 1} + it("shared example") { shared_example_ran = true } + end + + example_ran = false + + example_group.it_should_behave_like("shared example_group") + example_group.it("example") {example_ran = true} + example_group.run(options) + example_ran.should be_true + shared_before_all_run_count.should == 1 + shared_after_all_run_count.should == 1 + end + + it "should include modules, included into shared example_group, into current example_group" do + @formatter.should_receive(:add_example_group).with(any_args) + + shared_example_group = SharedExampleGroup.register("shared example_group") do + it("shared example") { shared_example_ran = true } + end + + mod1_method_called = false + mod1 = Module.new do + define_method :mod1_method do + mod1_method_called = true + end + end + + mod2_method_called = false + mod2 = Module.new do + define_method :mod2_method do + mod2_method_called = true + end + end + + shared_example_group.__send__ :include, mod2 + + example_group.it_should_behave_like("shared example_group") + example_group.include mod1 + + example_group.it("test") do + mod1_method + mod2_method + end + example_group.run(options) + mod1_method_called.should be_true + mod2_method_called.should be_true + end + + it "should make methods defined in the shared example_group available in consuming example_group" do + shared_example_group = SharedExampleGroup.register("shared example_group xyz") do + def a_shared_helper_method + "this got defined in a shared example_group" + end + end + example_group.it_should_behave_like("shared example_group xyz") + success = false + example_group.it("should access a_shared_helper_method") do + a_shared_helper_method + success = true + end + example_group.run(options) + success.should be_true + end + + it "should raise when named shared example_group can not be found" do + lambda { + example_group.it_should_behave_like("non-existent shared example group") + violated + }.should raise_error("Shared Example Group 'non-existent shared example group' can not be found") + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/example/subclassing_example_group_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/example/subclassing_example_group_spec.rb new file mode 100644 index 0000000..969014a --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/example/subclassing_example_group_spec.rb @@ -0,0 +1,25 @@ +require 'spec_helper' + +module Spec + module Example + class GrandParentExampleGroup < Spec::Example::ExampleGroup + describe "Grandparent ExampleGroup" + end + + class ParentExampleGroup < GrandParentExampleGroup + describe "Parent ExampleGroup" + it "should bar" do + end + end + + class ChildExampleGroup < ParentExampleGroup + describe "Child ExampleGroup" + it "should bam" do + end + end + + describe ChildExampleGroup do + + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/example/subject_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/example/subject_spec.rb new file mode 100644 index 0000000..c0e4fd8 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/example/subject_spec.rb @@ -0,0 +1,103 @@ +require 'spec_helper' + +module Spec + module Example + describe "implicit subject" do + describe "with a class" do + it "returns an instance of the class" do + group = Class.new(ExampleGroupDouble).describe(Array) + example = group.new(ExampleProxy.new) + example.subject.should == [] + end + end + + describe "with a Module" do + it "returns the Module" do + group = Class.new(ExampleGroupDouble).describe(Enumerable) + example = group.new(ExampleProxy.new) + example.subject.should == Enumerable + end + end + + describe "with a string" do + it "return the string" do + group = Class.new(ExampleGroupDouble).describe('foo') + example = group.new(ExampleProxy.new) + example.subject.should == 'foo' + end + end + + describe "with a number" do + it "returns the number" do + group = Class.new(ExampleGroupDouble).describe(15) + example = group.new(ExampleProxy.new) + example.subject.should == 15 + end + end + + end + + describe "explicit subject" do + describe "defined in a top level group" do + it "replaces the implicit subject in that group" do + group = Class.new(ExampleGroupDouble).describe(Array) + group.subject { [1,2,3] } + example = group.new(ExampleProxy.new) + example.subject.should == [1,2,3] + end + end + + describe "defined in a top level group" do + before(:each) do + @group = Class.new do + extend Spec::Example::Subject::ExampleGroupMethods + include Spec::Example::Subject::ExampleMethods + class << self + def described_class + Array + end + end + def described_class + self.class.described_class + end + + subject { + [1,2,3] + } + end + end + + it "is available in a nested group (subclass)" do + nested_group = Class.new(@group) + + example = nested_group.new + example.subject.should == [1,2,3] + end + + it "is available in a doubly nested group (subclass)" do + nested_group = Class.new(@group) + doubly_nested_group = Class.new(nested_group) + + example = doubly_nested_group.new + example.subject.should == [1,2,3] + end + end + end + + describe ".its (to access subject's attributes)" do + with_sandboxed_options do + it "passes when expectation should pass" do + group = Class.new(ExampleGroupDouble).describe(Array) + child = group.its(:length) { should == 0 } + child.run(options).should == true + end + + it "fails when expectation should fail" do + group = Class.new(ExampleGroupDouble).describe(Array) + child = group.its(:length) { should == 1 } + child.run(options).should == false + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/expectations/differs/default_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/expectations/differs/default_spec.rb new file mode 100644 index 0000000..3bc3c45 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/expectations/differs/default_spec.rb @@ -0,0 +1,194 @@ +require 'spec_helper' + +module Spec + module Fixtures + class Animal + def initialize(name,species) + @name,@species = name,species + end + + def inspect + <<-EOA + + EOA + end + end + end +end + +describe "Diff" do + before(:each) do + @options = ::Spec::Runner::Options.new(StringIO.new, StringIO.new) + @differ = Spec::Expectations::Differs::Default.new(@options) + end + + it "should output unified diff of two strings" do + expected="foo\nbar\nzap\nthis\nis\nsoo\nvery\nvery\nequal\ninsert\na\nline\n" + actual="foo\nzap\nbar\nthis\nis\nsoo\nvery\nvery\nequal\ninsert\na\nanother\nline\n" + expected_diff= <<'EOD' + + +@@ -1,6 +1,6 @@ + foo +-zap + bar ++zap + this + is + soo +@@ -9,6 +9,5 @@ + equal + insert + a +-another + line +EOD + + diff = @differ.diff_as_string(expected, actual) + diff.should eql(expected_diff) + end + + it "should output unified diff message of two arrays" do + expected = [ :foo, 'bar', :baz, 'quux', :metasyntactic, 'variable', :delta, 'charlie', :width, 'quite wide' ] + actual = [ :foo, 'bar', :baz, 'quux', :metasyntactic, 'variable', :delta, 'tango' , :width, 'very wide' ] + + expected_diff = <<'EOD' + + +@@ -5,7 +5,7 @@ + :metasyntactic, + "variable", + :delta, +- "tango", ++ "charlie", + :width, +- "very wide"] ++ "quite wide"] +EOD + + + diff = @differ.diff_as_object(expected,actual) + diff.should == expected_diff + end + + it "should output a friendly message if comparing simple hashes" do + expected = { "foo" => "bar" } + actual = { "foo" => "baz" } + + expected_diff = <<'EOD' + +Expected the key "foo" to be "bar", but was "baz" + +EOD + + + diff = @differ.diff_as_hash(actual, expected) + diff.should == expected_diff + end + + + it "should output a friendly message if comparing simple hashes that contain different keys" do + expected = { "bar" => "foo" } + actual = { "foo" => "baz" } + + expected_diff = <<'EOD' + +Expected hash contains keys that target hash does not: ["bar"] +Target hash contains keys that expected hash does not: ["foo"] +Expected the key "bar" to be "foo", but was nil + +EOD + + + diff = @differ.diff_as_hash(actual, expected) + diff.should == expected_diff + end + + it "should output diff message if the hash is complex (containing Array or Hash)" do + expected = { "foo" => "bar", "fizz" => [1, 2, 3] } + actual = { "foo" => "baz", "fizz" => [1, 2] } + + # UGH - 1.8.7 seems to order hash keys differently than the others + if RUBY_VERSION =~ /^1.8.7/ + expected_diff = <<'EOD' + +Expected the key "fizz" to be [1, 2, 3], but was [1, 2] +Expected the key "foo" to be "bar", but was "baz" + + +@@ -1,2 +1,2 @@ +-{"fizz"=>[1, 2, 3], "foo"=>"bar"} ++{"fizz"=>[1, 2], "foo"=>"baz"} +EOD + else + expected_diff = <<'EOD' + +Expected the key "fizz" to be [1, 2, 3], but was [1, 2] +Expected the key "foo" to be "bar", but was "baz" + + +@@ -1,2 +1,2 @@ +-{"foo"=>"bar", "fizz"=>[1, 2, 3]} ++{"foo"=>"baz", "fizz"=>[1, 2]} +EOD + end + + diff = @differ.diff_as_hash(actual, expected) + diff.should == expected_diff + end + + + it "should output unified diff message of two objects" do + expected = Spec::Fixtures::Animal.new "bob", "giraffe" + actual = Spec::Fixtures::Animal.new "bob", "tortoise" + + expected_diff = <<'EOD' + +@@ -1,5 +1,5 @@ + +EOD + + diff = @differ.diff_as_object(expected,actual) + diff.should == expected_diff + end + +end + + +describe "Diff in context format" do + before(:each) do + @options = Spec::Runner::Options.new(StringIO.new, StringIO.new) + @options.diff_format = :context + @differ = Spec::Expectations::Differs::Default.new(@options) + end + + it "should output unified diff message of two objects" do + expected = Spec::Fixtures::Animal.new "bob", "giraffe" + actual = Spec::Fixtures::Animal.new "bob", "tortoise" + + expected_diff = <<'EOD' + +*************** +*** 1,5 **** + +--- 1,5 ---- + +EOD + + diff = @differ.diff_as_object(expected,actual) + diff.should == expected_diff + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/expectations/extensions/kernel_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/expectations/extensions/kernel_spec.rb new file mode 100644 index 0000000..9a0ed3c --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/expectations/extensions/kernel_spec.rb @@ -0,0 +1,45 @@ +require 'spec_helper' + +describe Object, "#should" do + before(:each) do + @target = "target" + @matcher = mock("matcher") + @matcher.stub!(:matches?).and_return(true) + @matcher.stub!(:failure_message_for_should) + end + + it "accepts and interacts with a matcher" do + @matcher.should_receive(:matches?).with(@target).and_return(true) + @target.should @matcher + end + + it "asks for a failure_message_for_should when matches? returns false" do + @matcher.should_receive(:matches?).with(@target).and_return(false) + @matcher.should_receive(:failure_message_for_should).and_return("the failure message") + lambda { + @target.should @matcher + }.should fail_with("the failure message") + end +end + +describe Object, "#should_not" do + before(:each) do + @target = "target" + @matcher = mock("matcher") + end + + it "accepts and interacts with a matcher" do + @matcher.should_receive(:matches?).with(@target).and_return(false) + @matcher.stub!(:failure_message_for_should_not) + + @target.should_not @matcher + end + + it "asks for a failure_message_for_should_not when matches? returns true" do + @matcher.should_receive(:matches?).with(@target).and_return(true) + @matcher.should_receive(:failure_message_for_should_not).and_return("the failure message for should not") + lambda { + @target.should_not @matcher + }.should fail_with("the failure message for should not") + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/expectations/fail_with_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/expectations/fail_with_spec.rb new file mode 100644 index 0000000..639b7f9 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/expectations/fail_with_spec.rb @@ -0,0 +1,96 @@ +require 'spec_helper' + +describe Spec::Expectations, "#fail_with with no diff" do + before(:each) do + @old_differ = Spec::Expectations.differ + Spec::Expectations.differ = nil + end + + it "should handle just a message" do + lambda { + Spec::Expectations.fail_with "the message" + }.should fail_with("the message") + end + + after(:each) do + Spec::Expectations.differ = @old_differ + end +end + +describe Spec::Expectations, "#fail_with with Array" do + before(:each) do + Spec.stub!(:warn) + end + + it "is deprecated" do + Spec.should_receive(:warn) + lambda { + Spec::Expectations.fail_with ["message", "expected", "actual"] + }.should raise_error + end +end + +describe Spec::Expectations, "#fail_with with diff" do + before(:each) do + @old_differ = Spec::Expectations.differ + @differ = mock("differ") + Spec::Expectations.differ = @differ + end + + it "should not call differ if no expected/actual" do + lambda { + Spec::Expectations.fail_with "the message" + }.should fail_with("the message") + end + + it "should call differ if expected/actual are presented separately" do + @differ.should_receive(:diff_as_string).and_return("diff") + lambda { + Spec::Expectations.fail_with "the message", "expected", "actual" + }.should fail_with("the message\n\n Diff:diff") + end + + it "should call differ if expected/actual are not strings" do + @differ.should_receive(:diff_as_object).and_return("diff") + lambda { + Spec::Expectations.fail_with "the message", :expected, :actual + }.should fail_with("the message\n\n Diff:diff") + end + + it "should call differ if expected/actual are both hashes" do + @differ.should_receive(:diff_as_hash).and_return("diff") + lambda { + Spec::Expectations.fail_with "the message", {:a => :b}, {:a => 'b'} + }.should fail_with("the message\n\n Diff:diff") + end + + it "should not call differ if expected or actual are procs" do + @differ.should_not_receive(:diff_as_string) + @differ.should_not_receive(:diff_as_object) + @differ.should_not_receive(:diff_as_hash) + lambda { + Spec::Expectations.fail_with "the message", lambda {}, lambda {} + }.should fail_with("the message") + end + + after(:each) do + Spec::Expectations.differ = @old_differ + end +end + +describe Spec::Expectations, "#fail_with with a nil message" do + before(:each) do + @old_differ = Spec::Expectations.differ + Spec::Expectations.differ = nil + end + + it "should handle just a message" do + lambda { + Spec::Expectations.fail_with nil + }.should raise_error(ArgumentError, /Failure message is nil\. Does your matcher define the appropriate failure_message_for_\* method to return a string\?/) + end + + after(:each) do + Spec::Expectations.differ = @old_differ + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/expectations/handler_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/expectations/handler_spec.rb new file mode 100644 index 0000000..e7d6a6e --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/expectations/handler_spec.rb @@ -0,0 +1,206 @@ +require 'spec_helper' + +module ExampleExpectations + + class ArbitraryMatcher + def initialize(*args, &block) + if args.last.is_a? Hash + @expected = args.last[:expected] + end + @expected = block.call if block + @block = block + end + + def matches?(target) + @target = target + return @expected == target + end + + def with(new_value) + @expected = new_value + self + end + + def failure_message + "expected #{@expected}, got #{@target}" + end + + def negative_failure_message + "expected not #{@expected}, got #{@target}" + end + end + + class PositiveOnlyMatcher < ArbitraryMatcher + undef negative_failure_message rescue nil + end + + def arbitrary_matcher(*args, &block) + ArbitraryMatcher.new(*args, &block) + end + + def positive_only_matcher(*args, &block) + PositiveOnlyMatcher.new(*args, &block) + end + +end + +module Spec + module Expectations + describe PositiveExpectationHandler do + describe "#handle_matcher" do + it "asks the matcher if it matches" do + matcher = mock("matcher") + actual = Object.new + matcher.should_receive(:matches?).with(actual).and_return(true) + Spec::Expectations::PositiveExpectationHandler.handle_matcher(actual, matcher) + end + + it "returns the match value" do + matcher = mock("matcher") + actual = Object.new + matcher.should_receive(:matches?).with(actual).and_return(:this_value) + Spec::Expectations::PositiveExpectationHandler.handle_matcher(actual, matcher).should == :this_value + end + + it "calls failure_message_for_should if the matcher implements it" do + matcher = mock("matcher", :failure_message_for_should => "message", :matches? => false) + actual = Object.new + + ::Spec::Expectations.should_receive(:fail_with).with("message") + + Spec::Expectations::PositiveExpectationHandler.handle_matcher(actual, matcher) + end + + it "calls fail if matcher.diffable?" do + matcher = mock("matcher", + :diffable? => true, + :failure_message_for_should => "message", + :matches? => false, + :expected => [1], + :actual => 2 + ) + actual = Object.new + + ::Spec::Expectations.should_receive(:fail_with).with("message", 1, 2) + + Spec::Expectations::PositiveExpectationHandler.handle_matcher(actual, matcher) + end + + it "calls failure_message if the matcher does not implement failure_message_for_should" do + matcher = mock("matcher", :failure_message => "message", :matches? => false) + actual = Object.new + + ::Spec::Expectations.should_receive(:fail_with).with("message") + + Spec::Expectations::PositiveExpectationHandler.handle_matcher(actual, matcher) + + end + + it "appends the :or message in the options hash passed to should" do + matcher = mock("matcher", :failure_message_for_should => "message", :matches? => false) + actual = Object.new + + ::Spec::Expectations.should_receive(:fail_with).with("custom") + + Spec::Expectations::PositiveExpectationHandler.handle_matcher(actual, matcher, "custom") + end + end + end + + describe NegativeExpectationHandler do + describe "#handle_matcher" do + it "asks the matcher if it doesn't match when the matcher responds to #does_not_match?" do + matcher = mock("matcher", :does_not_match? => true, :negative_failure_message => nil) + actual = Object.new + matcher.should_receive(:does_not_match?).with(actual).and_return(true) + Spec::Expectations::NegativeExpectationHandler.handle_matcher(actual, matcher) + end + + it "asks the matcher if it matches when the matcher doesn't respond to #does_not_match?" do + matcher = mock("matcher") + actual = Object.new + matcher.stub!(:negative_failure_message) + matcher.should_receive(:matches?).with(actual).and_return(false) + Spec::Expectations::NegativeExpectationHandler.handle_matcher(actual, matcher) + end + + it "returns the match value" do + matcher = mock("matcher") + actual = Object.new + matcher.should_receive(:matches?).with(actual).and_return(false) + matcher.stub!(:negative_failure_message).and_return("ignore") + Spec::Expectations::NegativeExpectationHandler.handle_matcher(actual, matcher).should be_false + end + + + it "calls failure_message_for_should_not if the matcher implements it" do + matcher = mock("matcher", :failure_message_for_should_not => "message", :matches? => true) + actual = Object.new + + ::Spec::Expectations.should_receive(:fail_with).with("message") + + Spec::Expectations::NegativeExpectationHandler.handle_matcher(actual, matcher) + + end + + it "calls negative_failure_message if the matcher does not implement failure_message_for_should_not" do + matcher = mock("matcher", :negative_failure_message => "message", :matches? => true) + actual = Object.new + + ::Spec::Expectations.should_receive(:fail_with).with("message") + + Spec::Expectations::NegativeExpectationHandler.handle_matcher(actual, matcher) + + end + + + it "calls fail if matcher.diffable?" do + matcher = mock("matcher", + :diffable? => true, + :failure_message_for_should_not => "message", + :matches? => true, + :expected => [1], + :actual => 2 + ) + actual = Object.new + + ::Spec::Expectations.should_receive(:fail_with).with("message", 1, 2) + + Spec::Expectations::NegativeExpectationHandler.handle_matcher(actual, matcher) + end + + it "appends the :or message in the options hash passed to should" do + matcher = mock("matcher", :failure_message_for_should_not => "message", :matches? => true) + actual = Object.new + + ::Spec::Expectations.should_receive(:fail_with).with("custom") + + Spec::Expectations::NegativeExpectationHandler.handle_matcher(actual, matcher, "custom") + end + + end + end + + describe PositiveExpectationHandler do + include ExampleExpectations + + it "should handle submitted args" do + 5.should arbitrary_matcher(:expected => 5) + 5.should arbitrary_matcher(:expected => "wrong").with(5) + lambda { 5.should arbitrary_matcher(:expected => 4) }.should fail_with("expected 4, got 5") + lambda { 5.should arbitrary_matcher(:expected => 5).with(4) }.should fail_with("expected 4, got 5") + 5.should_not arbitrary_matcher(:expected => 4) + 5.should_not arbitrary_matcher(:expected => 5).with(4) + lambda { 5.should_not arbitrary_matcher(:expected => 5) }.should fail_with("expected not 5, got 5") + lambda { 5.should_not arbitrary_matcher(:expected => 4).with(5) }.should fail_with("expected not 5, got 5") + end + + it "should handle the submitted block" do + 5.should arbitrary_matcher { 5 } + 5.should arbitrary_matcher(:expected => 4) { 5 } + 5.should arbitrary_matcher(:expected => 4).with(5) { 3 } + end + + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/expectations/wrap_expectation_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/expectations/wrap_expectation_spec.rb new file mode 100644 index 0000000..9ef7d00 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/expectations/wrap_expectation_spec.rb @@ -0,0 +1,30 @@ +require 'spec_helper' + +module Spec + module Matchers + describe "wrap_expectation" do + + def stub_matcher + @_stub_matcher ||= simple_matcher do + end + end + + def failing_matcher + @_failing_matcher ||= simple_matcher do + 1.should == 2 + end + end + + it "should return true if there is no error" do + wrap_expectation stub_matcher do + end.should be_true + end + + it "should return false if there is an error" do + wrap_expectation failing_matcher do + raise "error" + end.should be_false + end + end + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/spec_that_fails.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/spec_that_fails.rb new file mode 100644 index 0000000..b2c4841 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/spec_that_fails.rb @@ -0,0 +1,10 @@ +rspec_lib = File.dirname(__FILE__) + "/../../../../../../lib" +$:.unshift rspec_lib unless $:.include?(rspec_lib) +require 'spec/autorun' +require 'spec/test/unit' + +describe "example group with failures" do + it "should fail" do + false.should be_true + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/spec_that_passes.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/spec_that_passes.rb new file mode 100644 index 0000000..4203af3 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/spec_that_passes.rb @@ -0,0 +1,10 @@ +rspec_lib = File.dirname(__FILE__) + "/../../../../../../lib" +$:.unshift rspec_lib unless $:.include?(rspec_lib) +require 'spec/autorun' +require 'spec/test/unit' + +describe "example group with passing examples" do + it "should pass" do + true.should be_true + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/spec_with_errors.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/spec_with_errors.rb new file mode 100644 index 0000000..a18ce72 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/spec_with_errors.rb @@ -0,0 +1,10 @@ +rspec_lib = File.dirname(__FILE__) + "/../../../../../../lib" +$:.unshift rspec_lib unless $:.include?(rspec_lib) +require 'spec/autorun' +require 'spec/test/unit' + +describe "example group with errors" do + it "should raise errors" do + raise "error raised in example group with errors" + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/spec_with_options_hash.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/spec_with_options_hash.rb new file mode 100644 index 0000000..7dc344b --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/spec_with_options_hash.rb @@ -0,0 +1,13 @@ +rspec_lib = File.dirname(__FILE__) + "/../../../../../../lib" +$:.unshift rspec_lib unless $:.include?(rspec_lib) +require 'spec/autorun' +require 'spec/test/unit' + +describe "options hash" do + describe "#options" do + it "should expose the options hash" do + group = describe("group", :this => 'hash') {} + group.options[:this].should == 'hash' + end + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/test_case_that_fails.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/test_case_that_fails.rb new file mode 100644 index 0000000..0a977cb --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/test_case_that_fails.rb @@ -0,0 +1,10 @@ +rspec_lib = File.dirname(__FILE__) + "/../../../../../../lib" +$:.unshift rspec_lib unless $:.include?(rspec_lib) +require 'spec/autorun' +require 'spec/test/unit' + +class TestCaseThatFails < Test::Unit::TestCase + def test_that_fails + false.should be_true + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/test_case_that_passes.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/test_case_that_passes.rb new file mode 100644 index 0000000..078a5f7 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/test_case_that_passes.rb @@ -0,0 +1,10 @@ +rspec_lib = File.dirname(__FILE__) + "/../../../../../../lib" +$:.unshift rspec_lib unless $:.include?(rspec_lib) +require 'spec/autorun' +require 'spec/test/unit' + +class TestCaseThatPasses < Test::Unit::TestCase + def test_that_passes + true.should be_true + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/test_case_with_errors.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/test_case_with_errors.rb new file mode 100644 index 0000000..dc5f52e --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/test_case_with_errors.rb @@ -0,0 +1,10 @@ +rspec_lib = File.dirname(__FILE__) + "/../../../../../../lib" +$:.unshift rspec_lib unless $:.include?(rspec_lib) +require 'spec/autorun' +require 'spec/test/unit' + +class TestCaseWithErrors < Test::Unit::TestCase + def test_with_error + raise "error raised in TestCaseWithErrors" + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/test_case_with_various_names.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/test_case_with_various_names.rb new file mode 100644 index 0000000..186db49 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/test_case_with_various_names.rb @@ -0,0 +1,22 @@ +rspec_lib = File.dirname(__FILE__) + "/../../../../../../lib" +$:.unshift rspec_lib unless $:.include?(rspec_lib) +require 'spec/autorun' +require 'spec/test/unit' + +class TestCaseThatPasses < Test::Unit::TestCase + def test_should_allow_underscore + assert true + end + + def testShouldAllowUppercaseLetter + assert true + end + + def testshouldallowlowercaseletter + assert true + end + + define_method :"test: should allow punctuation" do + assert true + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/testsuite_adapter_spec_with_test_unit.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/testsuite_adapter_spec_with_test_unit.rb new file mode 100644 index 0000000..5182b82 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/resources/testsuite_adapter_spec_with_test_unit.rb @@ -0,0 +1,38 @@ +rspec_lib = File.dirname(__FILE__) + "/../../../../../../lib" +$:.unshift rspec_lib unless $:.include?(rspec_lib) +require 'spec/autorun' +require 'spec/test/unit' + +module Test + module Unit + describe TestSuiteAdapter do + def create_adapter(group) + TestSuiteAdapter.new(group) + end + + describe "#size" do + it "should return the number of examples in the example group" do + group = Class.new(Spec::ExampleGroup) do + describe("some examples") + it("bar") {} + it("baz") {} + end + adapter = create_adapter(group) + adapter.size.should == 2 + end + end + + describe "#delete" do + it "should do nothing" do + group = Class.new(Spec::ExampleGroup) do + describe("Some Examples") + it("does something") {} + end + adapter = create_adapter(group) + adapter.delete(adapter.examples.first) + adapter.should be_empty + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/spec_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/spec_spec.rb new file mode 100644 index 0000000..83ff522 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/spec_spec.rb @@ -0,0 +1,48 @@ +require 'spec/interop/test/unit/test_unit_spec_helper' + +describe "ExampleGroup with test/unit/interop" do + include TestUnitSpecHelper + + describe "with passing examples" do + it "should output 0 failures" do + output = ruby("#{resources}/spec_that_passes.rb") + output.should include("1 example, 0 failures") + end + + it "should return an exit code of 0" do + ruby("#{resources}/spec_that_passes.rb") + $?.should == 0 + end + end + + describe "with failing examples" do + it "should output 1 failure" do + output = ruby("#{resources}/spec_that_fails.rb") + output.should include("1 example, 1 failure") + end + + it "should return an exit code of 256" do + ruby("#{resources}/spec_that_fails.rb") + $?.should == 256 + end + end + + describe "with example that raises an error" do + it "should output 1 failure" do + output = ruby("#{resources}/spec_with_errors.rb") + output.should include("1 example, 1 failure") + end + + it "should return an exit code of 256" do + ruby("#{resources}/spec_with_errors.rb") + $?.should == 256 + end + end + + describe "options hash" do + it "should be exposed" do + output = ruby("#{resources}/spec_with_options_hash.rb") + output.should include("1 example, 0 failures") + end + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/test_unit_spec_helper.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/test_unit_spec_helper.rb new file mode 100644 index 0000000..1f6c223 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/test_unit_spec_helper.rb @@ -0,0 +1,18 @@ +require 'spec_helper' +require 'ruby_forker' + +module TestUnitSpecHelper + include RubyForker + + def resources + File.dirname(__FILE__) + "/resources" + end + + def run_script(file_name) + output = ruby(file_name) + if !$?.success? || output.include?("FAILED") || output.include?("Error") + raise output + end + output + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/testcase_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/testcase_spec.rb new file mode 100644 index 0000000..c1b2526 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/testcase_spec.rb @@ -0,0 +1,50 @@ +require 'spec/interop/test/unit/test_unit_spec_helper' + +describe "Test::Unit::TestCase" do + include TestUnitSpecHelper + + before(:each) do + @dir = File.dirname(__FILE__) + "/resources" + end + + describe "with passing test case" do + it "should output 0 failures" do + output = ruby("#{@dir}/test_case_that_passes.rb") + output.should include("1 example, 0 failures") + end + + it "should return an exit code of 0" do + ruby("#{@dir}/test_case_that_passes.rb") + $?.should == 0 + end + end + + describe "with failing test case" do + it "should output 1 failure" do + output = ruby("#{@dir}/test_case_that_fails.rb") + output.should include("1 example, 1 failure") + end + + it "should return an exit code of 256" do + ruby("#{@dir}/test_case_that_fails.rb") + $?.should == 256 + end + end + + describe "with test case that raises an error" do + it "should output 1 failure" do + output = ruby("#{@dir}/test_case_with_errors.rb") + output.should include("1 example, 1 failure") + end + + it "should return an exit code of 256" do + ruby("#{@dir}/test_case_with_errors.rb") + $?.should == 256 + end + end + + it "should find all Test::Unit test methods" do + output = ruby("#{@dir}/test_case_with_various_names.rb") + output.should include("4 examples, 0 failures") + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/testsuite_adapter_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/testsuite_adapter_spec.rb new file mode 100644 index 0000000..5974303 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/interop/test/unit/testsuite_adapter_spec.rb @@ -0,0 +1,9 @@ +require 'spec/interop/test/unit/test_unit_spec_helper' + +describe "TestSuiteAdapter" do + include TestUnitSpecHelper + it "should pass" do + dir = File.dirname(__FILE__) + run_script "#{dir}/resources/testsuite_adapter_spec_with_test_unit.rb" + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/be_close_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/be_close_spec.rb new file mode 100644 index 0000000..cc0e5bd --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/be_close_spec.rb @@ -0,0 +1,50 @@ +require 'spec_helper' +module Spec + module Matchers + describe "[actual.should] be_close(expected, delta)" do + it "matches when actual == expected" do + be_close(5.0, 0.5).matches?(5.0).should be_true + end + it "matches when actual < (expected + delta)" do + be_close(5.0, 0.5).matches?(5.49).should be_true + end + it "matches when actual > (expected - delta)" do + be_close(5.0, 0.5).matches?(4.51).should be_true + end + it "does not match when actual == (expected - delta)" do + be_close(5.0, 0.5).matches?(4.5).should be_false + end + it "does not match when actual < (expected - delta)" do + be_close(5.0, 0.5).matches?(4.49).should be_false + end + it "does not match when actual == (expected + delta)" do + be_close(5.0, 0.5).matches?(5.5).should be_false + end + it "does not match when actual > (expected + delta)" do + be_close(5.0, 0.5).matches?(5.51).should be_false + end + it "provides a failure message for should" do + #given + matcher = be_close(5.0, 0.5) + #when + matcher.matches?(5.51) + #then + matcher.failure_message_for_should.should == "expected 5.0 +/- (< 0.5), got 5.51" + end + + it "provides a failure message for should tno" do + #given + matcher = be_close(5.0, 0.5) + #when + matcher.matches?(5.49) + #then + matcher.failure_message_for_should_not.should == "expected 5.0 +/- (< 0.5), got 5.49" + end + it "provides a description" do + matcher = be_close(5.0, 0.5) + matcher.matches?(5.1) + matcher.description.should == "be close to 5.0 (within +- 0.5)" + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/be_instance_of_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/be_instance_of_spec.rb new file mode 100644 index 0000000..e6abd0b --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/be_instance_of_spec.rb @@ -0,0 +1,36 @@ +require 'spec_helper' + +module Spec + module Matchers + [:be_an_instance_of, :be_instance_of].each do |method| + describe "actual.should #{method}(expected)" do + it "passes if actual is instance of expected class" do + 5.should send(method, Fixnum) + end + + it "fails if actual is instance of subclass of expected class" do + lambda { 5.should send(method, Numeric) }.should fail_with(%Q{expected 5 to be an instance of Numeric}) + end + + it "fails with failure message for should unless actual is instance of expected class" do + lambda { "foo".should send(method, Array) }.should fail_with(%Q{expected "foo" to be an instance of Array}) + end + + it "provides a description" do + matcher = be_an_instance_of(Fixnum) + matcher.matches?(Numeric) + matcher.description.should == "be an instance of Fixnum" + end + end + + describe "actual.should_not #{method}(expected)" do + + it "fails with failure message for should_not if actual is instance of expected class" do + lambda { "foo".should_not send(method, String) }.should fail_with(%Q{expected "foo" not to be an instance of String}) + end + + end + + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/be_kind_of_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/be_kind_of_spec.rb new file mode 100644 index 0000000..d3f05e8 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/be_kind_of_spec.rb @@ -0,0 +1,33 @@ +require 'spec_helper' + +module Spec + module Matchers + [:be_a_kind_of, :be_kind_of].each do |method| + describe "actual.should #{method}(expected)" do + it "passes if actual is instance of expected class" do + 5.should send(method, Fixnum) + end + + it "passes if actual is instance of subclass of expected class" do + 5.should send(method, Numeric) + end + + it "fails with failure message for should unless actual is kind of expected class" do + lambda { "foo".should send(method, Array) }.should fail_with(%Q{expected "foo" to be a kind of Array}) + end + + it "provides a description" do + matcher = be_a_kind_of(String) + matcher.matches?("this") + matcher.description.should == "be a kind of String" + end + end + + describe "actual.should_not #{method}(expected)" do + it "fails with failure message for should_not if actual is kind of expected class" do + lambda { "foo".should_not send(method, String) }.should fail_with(%Q{expected "foo" not to be a kind of String}) + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/be_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/be_spec.rb new file mode 100644 index 0000000..db6258a --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/be_spec.rb @@ -0,0 +1,311 @@ +require 'spec_helper' + +describe "should be_predicate" do + it "should pass when actual returns true for :predicate?" do + actual = stub("actual", :happy? => true) + actual.should be_happy + end + + it "should pass when actual returns true for :predicates? (present tense)" do + actual = stub("actual", :exists? => true, :exist? => true) + actual.should be_exist + end + + it "should fail when actual returns false for :predicate?" do + actual = stub("actual", :happy? => false) + lambda { + actual.should be_happy + }.should fail_with("expected happy? to return true, got false") + end + + it "should fail when actual returns false for :predicate?" do + actual = stub("actual", :happy? => nil) + lambda { + actual.should be_happy + }.should fail_with("expected happy? to return true, got nil") + end + + it "should fail when actual does not respond to :predicate?" do + lambda { + Object.new.should be_happy + }.should raise_error(NameError, /happy\?/) + end + + it "should fail on error other than NameError" do + actual = stub("actual") + actual.should_receive(:foo?).and_raise("aaaah") + lambda { + actual.should be_foo + }.should raise_error(/aaaah/) + end + + it "should fail on error other than NameError (with the present tense predicate)" do + actual = Object.new + actual.should_receive(:foos?).and_raise("aaaah") + lambda { + actual.should be_foo + }.should raise_error(/aaaah/) + end +end + +describe "should_not be_predicate" do + it "should pass when actual returns false for :sym?" do + actual = stub("actual", :happy? => false) + actual.should_not be_happy + end + + it "should pass when actual returns nil for :sym?" do + actual = stub("actual", :happy? => nil) + actual.should_not be_happy + end + + it "should fail when actual returns true for :sym?" do + actual = stub("actual", :happy? => true) + lambda { + actual.should_not be_happy + }.should fail_with("expected happy? to return false, got true") + end + + it "should fail when actual does not respond to :sym?" do + lambda { + Object.new.should_not be_happy + }.should raise_error(NameError) + end +end + +describe "should be_predicate(*args)" do + it "should pass when actual returns true for :predicate?(*args)" do + actual = mock("actual") + actual.should_receive(:older_than?).with(3).and_return(true) + actual.should be_older_than(3) + end + + it "should fail when actual returns false for :predicate?(*args)" do + actual = mock("actual") + actual.should_receive(:older_than?).with(3).and_return(false) + lambda { + actual.should be_older_than(3) + }.should fail_with("expected older_than?(3) to return true, got false") + end + + it "should fail when actual does not respond to :predicate?" do + lambda { + Object.new.should be_older_than(3) + }.should raise_error(NameError) + end +end + +describe "should_not be_predicate(*args)" do + it "should pass when actual returns false for :predicate?(*args)" do + actual = mock("actual") + actual.should_receive(:older_than?).with(3).and_return(false) + actual.should_not be_older_than(3) + end + + it "should fail when actual returns true for :predicate?(*args)" do + actual = mock("actual") + actual.should_receive(:older_than?).with(3).and_return(true) + lambda { + actual.should_not be_older_than(3) + }.should fail_with("expected older_than?(3) to return false, got true") + end + + it "should fail when actual does not respond to :predicate?" do + lambda { + Object.new.should_not be_older_than(3) + }.should raise_error(NameError) + end +end + +describe "should be_true" do + it "should pass when actual equal(true)" do + true.should be_true + end + + it "should fail when actual equal(false)" do + lambda { + false.should be_true + }.should fail_with("expected true, got false") + end +end + +describe "should be_false" do + it "should pass when actual equal(false)" do + false.should be_false + end + + it "should fail when actual equal(true)" do + lambda { + true.should be_false + }.should fail_with("expected false, got true") + end +end + +describe "should be_nil" do + it "should pass when actual is nil" do + nil.should be_nil + end + + it "should fail when actual is not nil" do + lambda { + :not_nil.should be_nil + }.should fail_with("expected nil, got :not_nil") + end +end + +describe "should_not be_nil" do + it "should pass when actual is not nil" do + :not_nil.should_not be_nil + end + + it "should fail when actual is nil" do + lambda { + nil.should_not be_nil + }.should fail_with("expected not nil, got nil") + end +end + +describe "should be <" do + it "should pass when < operator returns true" do + 3.should be < 4 + end + + it "should fail when < operator returns false" do + lambda { 3.should be < 3 }.should fail_with("expected < 3, got 3") + end +end + +describe "should be <=" do + it "should pass when <= operator returns true" do + 3.should be <= 4 + 4.should be <= 4 + end + + it "should fail when <= operator returns false" do + lambda { 3.should be <= 2 }.should fail_with("expected <= 2, got 3") + end +end + +describe "should be >=" do + it "should pass when >= operator returns true" do + 4.should be >= 4 + 5.should be >= 4 + end + + it "should fail when >= operator returns false" do + lambda { 3.should be >= 4 }.should fail_with("expected >= 4, got 3") + end +end + +describe "should be >" do + it "should pass when > operator returns true" do + 5.should be > 4 + end + + it "should fail when > operator returns false" do + lambda { 3.should be > 4 }.should fail_with("expected > 4, got 3") + end +end + +describe "should be ==" do + it "should pass when == operator returns true" do + 5.should be == 5 + end + + it "should fail when == operator returns false" do + lambda { 3.should be == 4 }.should fail_with("expected == 4, got 3") + end +end + +describe "should be ===" do + it "should pass when === operator returns true" do + Hash.should be === Hash.new + end + + it "should fail when === operator returns false" do + lambda { Hash.should be === "not a hash" }.should fail_with(%[expected === not a hash, got Hash]) + end +end + +describe "should_not with operators" do + it "should coach user to stop using operators with should_not" do + lambda { + 5.should_not be < 6 + }.should raise_error(/not only FAILED,\nit is a bit confusing./m) + end +end + +describe "should be" do + it "should pass if actual is true or a set value" do + true.should be + 1.should be + end + + it "should fail if actual is false" do + lambda {false.should be}.should fail_with("expected true, got false") + end + + it "should fail if actual is nil" do + lambda {nil.should be}.should fail_with("expected true, got nil") + end +end + +describe "should be(value)" do + it "should pass if actual.equal?(value)" do + 5.should be(5) + end + it "should fail if !actual.equal?(value)" do + lambda { 5.should be(6) }.should fail_with("expected 6, got 5") + end +end + +describe "'should be' with operator" do + it "should include 'be' in the description" do + (be > 6).description.should =~ /be > 6/ + (be >= 6).description.should =~ /be >= 6/ + (be <= 6).description.should =~ /be <= 6/ + (be < 6).description.should =~ /be < 6/ + end +end + + +describe "arbitrary predicate with DelegateClass" do + it "should access methods defined in the delegating class (LH[#48])" do + require 'delegate' + class ArrayDelegate < DelegateClass(Array) + def initialize(array) + @internal_array = array + super(@internal_array) + end + + def large? + @internal_array.size >= 5 + end + end + + delegate = ArrayDelegate.new([1,2,3,4,5,6]) + delegate.should be_large + end +end + +describe "be_a, be_an" do + it "should pass when class matches" do + "foobar".should be_a(String) + [1,2,3].should be_an(Array) + end + + it "should fail when class does not match" do + "foobar".should_not be_a(Hash) + [1,2,3].should_not be_an(Integer) + end +end + +describe "be_an_instance_of" do + it "passes when direct class matches" do + 5.should be_an_instance_of(Fixnum) + end + + it "fails when class is higher up hierarchy" do + 5.should_not be_an_instance_of(Numeric) + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/change_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/change_spec.rb new file mode 100644 index 0000000..e70daf3 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/change_spec.rb @@ -0,0 +1,349 @@ +#Based on patch from Wilson Bilkovich + +require 'spec_helper' +class SomethingExpected + attr_accessor :some_value +end + +describe "should change(actual, message)" do + before(:each) do + @instance = SomethingExpected.new + @instance.some_value = 5 + end + + it "should pass when actual is modified by the block" do + expect {@instance.some_value = 6}.to change(@instance, :some_value) + end + + it "should fail when actual is not modified by the block" do + expect do + expect {}.to change(@instance, :some_value) + end.to fail_with("some_value should have changed, but is still 5") + end + + it "provides a #description" do + change(@instance, :some_value).description.should == "change #some_value" + end +end + +describe "should_not change(actual, message)" do + before(:each) do + @instance = SomethingExpected.new + @instance.some_value = 5 + end + + it "should pass when actual is not modified by the block" do + expect { }.to_not change(@instance, :some_value) + end + + it "should fail when actual is not modified by the block" do + expect do + expect {@instance.some_value = 6}.to_not change(@instance, :some_value) + end.to fail_with("some_value should not have changed, but did change from 5 to 6") + end +end + +describe "should change { block }" do + before(:each) do + @instance = SomethingExpected.new + @instance.some_value = 5 + end + + it "should pass when actual is modified by the block" do + expect {@instance.some_value = 6}.to change { @instance.some_value } + end + + it "should fail when actual is not modified by the block" do + expect do + expect {}.to change{ @instance.some_value } + end.to fail_with("result should have changed, but is still 5") + end + + it "should warn if passed a block using do/end instead of {}" do + expect do + expect {}.to change do; end + end.to raise_error(Spec::Matchers::MatcherError, /block passed to should or should_not/) + end + + it "provides a #description" do + change { @instance.some_value }.description.should == "change #result" + end +end + +describe "should_not change { block }" do + before(:each) do + @instance = SomethingExpected.new + @instance.some_value = 5 + end + + it "should pass when actual is modified by the block" do + expect {}.to_not change{ @instance.some_value } + end + + it "should fail when actual is not modified by the block" do + expect do + expect {@instance.some_value = 6}.to_not change { @instance.some_value } + end.to fail_with("result should not have changed, but did change from 5 to 6") + end + + it "should warn if passed a block using do/end instead of {}" do + expect do + expect {}.to_not change do; end + end.to raise_error(Spec::Matchers::MatcherError, /block passed to should or should_not/) + end +end + +describe "should change(actual, message).by(expected)" do + before(:each) do + @instance = SomethingExpected.new + @instance.some_value = 5 + end + + it "should pass when attribute is changed by expected amount" do + expect { @instance.some_value += 1 }.to change(@instance, :some_value).by(1) + end + + it "should fail when the attribute is changed by unexpected amount" do + expect do + expect { @instance.some_value += 2 }.to change(@instance, :some_value).by(1) + end.to fail_with("some_value should have been changed by 1, but was changed by 2") + end + + it "should fail when the attribute is changed by unexpected amount in the opposite direction" do + expect do + expect { @instance.some_value -= 1 }.to change(@instance, :some_value).by(1) + end.to fail_with("some_value should have been changed by 1, but was changed by -1") + end +end + +describe "should change{ block }.by(expected)" do + before(:each) do + @instance = SomethingExpected.new + @instance.some_value = 5 + end + + it "should pass when attribute is changed by expected amount" do + expect { @instance.some_value += 1 }.to change{@instance.some_value}.by(1) + end + + it "should fail when the attribute is changed by unexpected amount" do + expect do + expect { @instance.some_value += 2 }.to change{@instance.some_value}.by(1) + end.to fail_with("result should have been changed by 1, but was changed by 2") + end + + it "should fail when the attribute is changed by unexpected amount in the opposite direction" do + expect do + expect { @instance.some_value -= 1 }.to change{@instance.some_value}.by(1) + end.to fail_with("result should have been changed by 1, but was changed by -1") + end +end + +describe "should change(actual, message).by_at_least(expected)" do + before(:each) do + @instance = SomethingExpected.new + @instance.some_value = 5 + end + + it "should pass when attribute is changed by greater than the expected amount" do + expect { @instance.some_value += 2 }.to change(@instance, :some_value).by_at_least(1) + end + + it "should pass when attribute is changed by the expected amount" do + expect { @instance.some_value += 2 }.to change(@instance, :some_value).by_at_least(2) + end + + it "should fail when the attribute is changed by less than the expected amount" do + expect do + expect { @instance.some_value += 1 }.to change(@instance, :some_value).by_at_least(2) + end.to fail_with("some_value should have been changed by at least 2, but was changed by 1") + end + +end + +describe "should change{ block }.by_at_least(expected)" do + before(:each) do + @instance = SomethingExpected.new + @instance.some_value = 5 + end + + it "should pass when attribute is changed by greater than expected amount" do + expect { @instance.some_value += 2 }.to change{@instance.some_value}.by_at_least(1) + end + + it "should pass when attribute is changed by the expected amount" do + expect { @instance.some_value += 2 }.to change{@instance.some_value}.by_at_least(2) + end + + it "should fail when the attribute is changed by less than the unexpected amount" do + expect do + expect { @instance.some_value += 1 }.to change{@instance.some_value}.by_at_least(2) + end.to fail_with("result should have been changed by at least 2, but was changed by 1") + end +end + + +describe "should change(actual, message).by_at_most(expected)" do + before(:each) do + @instance = SomethingExpected.new + @instance.some_value = 5 + end + + it "should pass when attribute is changed by less than the expected amount" do + expect { @instance.some_value += 2 }.to change(@instance, :some_value).by_at_most(3) + end + + it "should pass when attribute is changed by the expected amount" do + expect { @instance.some_value += 2 }.to change(@instance, :some_value).by_at_most(2) + end + + it "should fail when the attribute is changed by greater than the expected amount" do + expect do + expect { @instance.some_value += 2 }.to change(@instance, :some_value).by_at_most(1) + end.to fail_with("some_value should have been changed by at most 1, but was changed by 2") + end + +end + +describe "should change{ block }.by_at_most(expected)" do + before(:each) do + @instance = SomethingExpected.new + @instance.some_value = 5 + end + + it "should pass when attribute is changed by less than expected amount" do + expect { @instance.some_value += 2 }.to change{@instance.some_value}.by_at_most(3) + end + + it "should pass when attribute is changed by the expected amount" do + expect { @instance.some_value += 2 }.to change{@instance.some_value}.by_at_most(2) + end + + it "should fail when the attribute is changed by greater than the unexpected amount" do + expect do + expect { @instance.some_value += 2 }.to change{@instance.some_value}.by_at_most(1) + end.to fail_with("result should have been changed by at most 1, but was changed by 2") + end +end + +describe "should change(actual, message).from(old)" do + before(:each) do + @instance = SomethingExpected.new + @instance.some_value = 'string' + end + + it "should pass when attribute is == to expected value before executing block" do + expect { @instance.some_value = "astring" }.to change(@instance, :some_value).from("string") + end + + it "should fail when attribute is not == to expected value before executing block" do + expect do + expect { @instance.some_value = "knot" }.to change(@instance, :some_value).from("cat") + end.to fail_with("some_value should have initially been \"cat\", but was \"string\"") + end +end + +describe "should change{ block }.from(old)" do + before(:each) do + @instance = SomethingExpected.new + @instance.some_value = 'string' + end + + it "should pass when attribute is == to expected value before executing block" do + expect { @instance.some_value = "astring" }.to change{@instance.some_value}.from("string") + end + + it "should fail when attribute is not == to expected value before executing block" do + expect do + expect { @instance.some_value = "knot" }.to change{@instance.some_value}.from("cat") + end.to fail_with("result should have initially been \"cat\", but was \"string\"") + end +end + +describe "should change(actual, message).to(new)" do + before(:each) do + @instance = SomethingExpected.new + @instance.some_value = 'string' + end + + it "should pass when attribute is == to expected value after executing block" do + expect { @instance.some_value = "cat" }.to change(@instance, :some_value).to("cat") + end + + it "should fail when attribute is not == to expected value after executing block" do + expect do + expect { @instance.some_value = "cat" }.to change(@instance, :some_value).from("string").to("dog") + end.to fail_with("some_value should have been changed to \"dog\", but is now \"cat\"") + end +end + +describe "should change{ block }.to(new)" do + before(:each) do + @instance = SomethingExpected.new + @instance.some_value = 'string' + end + + it "should pass when attribute is == to expected value after executing block" do + expect { @instance.some_value = "cat" }.to change{@instance.some_value}.to("cat") + end + + it "should fail when attribute is not == to expected value after executing block" do + expect do + expect { @instance.some_value = "cat" }.to change{@instance.some_value}.from("string").to("dog") + end.to fail_with("result should have been changed to \"dog\", but is now \"cat\"") + end +end + +describe "should change(actual, message).from(old).to(new)" do + before(:each) do + @instance = SomethingExpected.new + @instance.some_value = 'string' + end + + it "should pass when #to comes before #from" do + expect { @instance.some_value = "cat" }.to change(@instance, :some_value).to("cat").from("string") + end + + it "should pass when #from comes before #to" do + expect { @instance.some_value = "cat" }.to change(@instance, :some_value).from("string").to("cat") + end + + it "should show the correct messaging when #after and #to are different" do + expect do + expect { @instance.some_value = "cat" }.to change(@instance, :some_value).from("string").to("dog") + end.to fail_with("some_value should have been changed to \"dog\", but is now \"cat\"") + end + + it "should show the correct messaging when #before and #from are different" do + expect do + expect { @instance.some_value = "cat" }.to change(@instance, :some_value).from("not_string").to("cat") + end.to fail_with("some_value should have initially been \"not_string\", but was \"string\"") + end +end + +describe "should change{ block }.from(old).to(new)" do + before(:each) do + @instance = SomethingExpected.new + @instance.some_value = 'string' + end + + it "should pass when #to comes before #from" do + expect { @instance.some_value = "cat" }.to change{@instance.some_value}.to("cat").from("string") + end + + it "should pass when #from comes before #to" do + expect { @instance.some_value = "cat" }.to change{@instance.some_value}.from("string").to("cat") + end +end + +describe Spec::Matchers::Change do + it "should work when the receiver has implemented #send" do + @instance = SomethingExpected.new + @instance.some_value = "string" + def @instance.send(*args); raise "DOH! Library developers shouldn't use #send!" end + + expect { + expect { @instance.some_value = "cat" }.to change(@instance, :some_value) + }.to_not raise_error + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/compatibility_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/compatibility_spec.rb new file mode 100644 index 0000000..3987e59 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/compatibility_spec.rb @@ -0,0 +1,28 @@ +require 'spec_helper' + +Spec::Matchers.define :have_public_instance_method do |method| + match do |klass| + klass.public_instance_methods.any? {|m| [method, method.to_sym].include?(m)} + end +end + +(Spec::Matchers.constants.sort).each do |c| + if (Class === (klass = Spec::Matchers.const_get(c))) + describe klass do + if klass.public_instance_methods.any? {|m| ['failure_message_for_should',:failure_message_for_should].include?(m)} + describe "called with should" do + subject { klass } + it { should have_public_instance_method('failure_message_for_should')} + it { should have_public_instance_method('failure_message')} + end + end + if klass.public_instance_methods.any? {|m| ['failure_message_for_should_not',:failure_message_for_should_not].include?(m)} + describe "called with should not" do + subject { klass } + it { should have_public_instance_method('failure_message_for_should_not')} + it { should have_public_instance_method('negative_failure_message')} + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/description_generation_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/description_generation_spec.rb new file mode 100644 index 0000000..51b483c --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/description_generation_spec.rb @@ -0,0 +1,160 @@ +require 'spec_helper' + +describe "Matchers should be able to generate their own descriptions" do + after(:each) do + Spec::Matchers.clear_generated_description + end + + it "should == expected" do + "this".should == "this" + Spec::Matchers.generated_description.should == "should == \"this\"" + end + + it "should not == expected" do + "this".should_not == "that" + Spec::Matchers.generated_description.should == "should not == \"that\"" + end + + it "should be empty (arbitrary predicate)" do + [].should be_empty + Spec::Matchers.generated_description.should == "should be empty" + end + + it "should not be empty (arbitrary predicate)" do + [1].should_not be_empty + Spec::Matchers.generated_description.should == "should not be empty" + end + + it "should be true" do + true.should be_true + Spec::Matchers.generated_description.should == "should be true" + end + + it "should be false" do + false.should be_false + Spec::Matchers.generated_description.should == "should be false" + end + + it "should be nil" do + nil.should be_nil + Spec::Matchers.generated_description.should == "should be nil" + end + + it "should be > n" do + 5.should be > 3 + Spec::Matchers.generated_description.should == "should be > 3" + end + + it "should be predicate arg1, arg2 and arg3" do + 5.0.should be_between(0,10) + Spec::Matchers.generated_description.should == "should be between 0 and 10" + end + + it "should equal" do + expected = "expected" + expected.should equal(expected) + Spec::Matchers.generated_description.should == "should equal \"expected\"" + end + + it "should_not equal" do + 5.should_not equal(37) + Spec::Matchers.generated_description.should == "should not equal 37" + end + + it "should eql" do + "string".should eql("string") + Spec::Matchers.generated_description.should == "should eql \"string\"" + end + + it "should not eql" do + "a".should_not eql(:a) + Spec::Matchers.generated_description.should == "should not eql :a" + end + + it "should have_key" do + {:a => "a"}.should have_key(:a) + Spec::Matchers.generated_description.should == "should have key :a" + end + + it "should have n items" do + team.should have(3).players + Spec::Matchers.generated_description.should == "should have 3 players" + end + + it "should have at least n items" do + team.should have_at_least(2).players + Spec::Matchers.generated_description.should == "should have at least 2 players" + end + + it "should have at most n items" do + team.should have_at_most(4).players + Spec::Matchers.generated_description.should == "should have at most 4 players" + end + + it "should include" do + [1,2,3].should include(3) + Spec::Matchers.generated_description.should == "should include 3" + end + + it "array.should =~ [1,2,3]" do + [1,2,3].should =~ [1,2,3] + Spec::Matchers.generated_description.should == "should contain exactly 1, 2 and 3" + end + + it "should match" do + "this string".should match(/this string/) + Spec::Matchers.generated_description.should == "should match /this string/" + end + + it "should raise_error" do + lambda { raise }.should raise_error + Spec::Matchers.generated_description.should == "should raise Exception" + end + + it "should raise_error with type" do + lambda { raise }.should raise_error(RuntimeError) + Spec::Matchers.generated_description.should == "should raise RuntimeError" + end + + it "should raise_error with type and message" do + lambda { raise "there was an error" }.should raise_error(RuntimeError, "there was an error") + Spec::Matchers.generated_description.should == "should raise RuntimeError with \"there was an error\"" + end + + it "should respond_to" do + [].should respond_to(:insert) + Spec::Matchers.generated_description.should == "should respond to #insert" + end + + it "should throw symbol" do + lambda { throw :what_a_mess }.should throw_symbol + Spec::Matchers.generated_description.should == "should throw a Symbol" + end + + it "should throw symbol (with named symbol)" do + lambda { throw :what_a_mess }.should throw_symbol(:what_a_mess) + Spec::Matchers.generated_description.should == "should throw :what_a_mess" + end + + def team + Class.new do + def players + [1,2,3] + end + end.new + end +end + +describe "a Matcher with no description" do + def matcher + Class.new do + def matches?(ignore); true; end + def failure_message; ""; end + end.new + end + + it "should provide a helpful message when used in a string-less example block" do + 5.should matcher + Spec::Matchers.generated_description.should =~ /When you call.*description method/m + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/dsl_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/dsl_spec.rb new file mode 100644 index 0000000..9c280e5 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/dsl_spec.rb @@ -0,0 +1,34 @@ +require 'spec_helper' + +module Spec + module Matchers + module DSL + describe "#create" do + it "is deprecated" do + Spec.should_receive(:deprecate) + mod = Module.new + mod.extend Spec::Matchers::DSL + mod.create(:foo) + end + end + + describe "#define" do + it "creates a method that initializes a new matcher with the submitted name and expected arg" do + # FIXME - this expects new to be called, but we need something + # more robust - that expects new to be called with a specific + # block (lambda, proc, whatever) + mod = Module.new + mod.extend Spec::Matchers::DSL + mod.define(:foo) + + obj = Object.new + obj.extend mod + + Spec::Matchers::Matcher.should_receive(:new).with(:foo, 3) + + obj.foo(3) + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/eql_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/eql_spec.rb new file mode 100644 index 0000000..5cdf541 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/eql_spec.rb @@ -0,0 +1,33 @@ +require 'spec_helper' + +module Spec + module Matchers + describe "eql" do + it "should match when actual.eql?(expected)" do + 1.should eql(1) + end + + it "should not match when !actual.eql?(expected)" do + 1.should_not eql(2) + end + + it "should describe itself" do + matcher = eql(1) + matcher.matches?(1) + matcher.description.should == "eql 1" + end + + it "should provide message, expected and actual on #failure_message" do + matcher = eql("1") + matcher.matches?(1) + matcher.failure_message_for_should.should == "\nexpected \"1\"\n got 1\n\n(compared using eql?)\n" + end + + it "should provide message, expected and actual on #negative_failure_message" do + matcher = eql(1) + matcher.matches?(1) + matcher.failure_message_for_should_not.should == "\nexpected 1 not to equal 1\n\n(compared using eql?)\n" + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/equal_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/equal_spec.rb new file mode 100644 index 0000000..cb2fc1e --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/equal_spec.rb @@ -0,0 +1,57 @@ +require 'spec_helper' +module Spec + module Matchers + describe "equal" do + + def inspect_object(o) + "#<#{o.class}:#{o.object_id}> => #{o.inspect}" + end + + it "should match when actual.equal?(expected)" do + 1.should equal(1) + end + + it "should not match when !actual.equal?(expected)" do + 1.should_not equal("1") + end + + it "should describe itself" do + matcher = equal(1) + matcher.matches?(1) + matcher.description.should == "equal 1" + end + + it "should provide message on #failure_message" do + expected, actual = "1", "1" + matcher = equal(expected) + matcher.matches?(actual) + + matcher.failure_message_for_should.should == <<-MESSAGE + +expected #{inspect_object(expected)} + got #{inspect_object(actual)} + +Compared using equal?, which compares object identity, +but expected and actual are not the same object. Use +'actual.should == expected' if you don't care about +object identity in this example. + +MESSAGE + end + + it "should provide message on #negative_failure_message" do + expected = actual = "1" + matcher = equal(expected) + matcher.matches?(actual) + matcher.failure_message_for_should_not.should == <<-MESSAGE + +expected not #{inspect_object(expected)} + got #{inspect_object(actual)} + +Compared using equal?, which compares object identity. + +MESSAGE + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/exist_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/exist_spec.rb new file mode 100644 index 0000000..f95c86f --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/exist_spec.rb @@ -0,0 +1,65 @@ +require 'spec_helper' + +class Substance + def initialize exists, description + @exists = exists + @description = description + end + def exist?(arg=nil) + @exists + end + def inspect + @description + end +end + +class SubstanceTester + include Spec::Matchers + def initialize substance + @substance = substance + end + def should_exist + @substance.should exist + end +end + +describe "should exist" do + + before(:each) do + @real = Substance.new true, 'something real' + @imaginary = Substance.new false, 'something imaginary' + end + + describe "within an example group" do + + it "passes if target exists" do + @real.should exist + end + + it "passes if target exists with args" do + @real.should exist('this arg') + end + + it "fails if target does not exist" do + lambda { @imaginary.should exist }.should fail + end + + it "describes itself" do + exist.description.should == "exist" + end + + it "passes should_not exist if target doesn't exist" do + lambda { @real.should_not exist }.should fail + end + end + + describe "outside of an example group" do + + it "should pass if target exists" do + real_tester = SubstanceTester.new @real + real_tester.should_exist + end + + end + +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/has_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/has_spec.rb new file mode 100644 index 0000000..b6f2599 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/has_spec.rb @@ -0,0 +1,81 @@ +require 'spec_helper' + +describe "should have_sym(*args)" do + it "should pass if #has_sym?(*args) returns true" do + {:a => "A"}.should have_key(:a) + end + + it "should fail if #has_sym?(*args) returns false" do + lambda { + {:b => "B"}.should have_key(:a) + }.should fail_with("expected #has_key?(:a) to return true, got false") + end + + it "should fail if #has_sym?(*args) returns nil" do + klass = Class.new do + def has_foo? + end + end + lambda { + klass.new.should have_foo + }.should fail_with("expected #has_foo?(nil) to return true, got false") + end + + it "should fail if target does not respond to #has_sym?" do + lambda { + Object.new.should have_key(:a) + }.should raise_error(NoMethodError) + end + + it "should reraise an exception thrown in #has_sym?(*args)" do + o = Object.new + def o.has_sym?(*args) + raise "Funky exception" + end + lambda { o.should have_sym(:foo) }.should raise_error("Funky exception") + end +end + +describe "should_not have_sym(*args)" do + it "should pass if #has_sym?(*args) returns false" do + {:a => "A"}.should_not have_key(:b) + end + + it "should pass if #has_sym?(*args) returns nil" do + klass = Class.new do + def has_foo? + end + end + klass.new.should_not have_foo + end + + it "should fail if #has_sym?(*args) returns true" do + lambda { + {:a => "A"}.should_not have_key(:a) + }.should fail_with("expected #has_key?(:a) to return false, got true") + end + + it "should fail if target does not respond to #has_sym?" do + lambda { + Object.new.should have_key(:a) + }.should raise_error(NoMethodError) + end + + it "should reraise an exception thrown in #has_sym?(*args)" do + o = Object.new + def o.has_sym?(*args) + raise "Funky exception" + end + lambda { o.should_not have_sym(:foo) }.should raise_error("Funky exception") + end +end + +describe "has" do + it "should work when the target implements #send" do + o = {:a => "A"} + def o.send(*args); raise "DOH! Library developers shouldn't use #send!" end + lambda { + o.should have_key(:a) + }.should_not raise_error + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/have_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/have_spec.rb new file mode 100644 index 0000000..07c2949 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/have_spec.rb @@ -0,0 +1,396 @@ +require 'spec_helper' + +share_as :HaveSpecHelper do + def create_collection_owner_with(n) + owner = Spec::Expectations::Helper::CollectionOwner.new + (1..n).each do |number| + owner.add_to_collection_with_length_method(number) + owner.add_to_collection_with_size_method(number) + end + owner + end + before(:each) do + if defined?(::ActiveSupport::Inflector) + @active_support_was_defined = true + else + @active_support_was_defined = false + module ::ActiveSupport + class Inflector + def self.pluralize(string) + string.to_s + 's' + end + end + end + end + end +end + + +describe "should have(n).items" do + include HaveSpecHelper + + it "should pass if target has a collection of items with n members" do + owner = create_collection_owner_with(3) + owner.should have(3).items_in_collection_with_length_method + owner.should have(3).items_in_collection_with_size_method + end + + it "should convert :no to 0" do + owner = create_collection_owner_with(0) + owner.should have(:no).items_in_collection_with_length_method + owner.should have(:no).items_in_collection_with_size_method + end + + it "should fail if target has a collection of items with < n members" do + owner = create_collection_owner_with(3) + lambda { + owner.should have(4).items_in_collection_with_length_method + }.should fail_with("expected 4 items_in_collection_with_length_method, got 3") + lambda { + owner.should have(4).items_in_collection_with_size_method + }.should fail_with("expected 4 items_in_collection_with_size_method, got 3") + end + + it "should fail if target has a collection of items with > n members" do + owner = create_collection_owner_with(3) + lambda { + owner.should have(2).items_in_collection_with_length_method + }.should fail_with("expected 2 items_in_collection_with_length_method, got 3") + lambda { + owner.should have(2).items_in_collection_with_size_method + }.should fail_with("expected 2 items_in_collection_with_size_method, got 3") + end +end + +describe 'should have(1).item when ActiveSupport::Inflector is defined' do + include HaveSpecHelper + + it 'should pluralize the collection name' do + owner = create_collection_owner_with(1) + owner.should have(1).item + end + + after(:each) do + unless @active_support_was_defined + Object.__send__ :remove_const, :ActiveSupport + end + end +end + +describe 'should have(1).item when Inflector is defined' do + include HaveSpecHelper + + before(:each) do + if defined?(Inflector) + @inflector_was_defined = true + else + @inflector_was_defined = false + class ::Inflector + def self.pluralize(string) + string.to_s + 's' + end + end + end + end + + it 'should pluralize the collection name' do + owner = create_collection_owner_with(1) + owner.should have(1).item + end + + after(:each) do + unless @inflector_was_defined + Object.__send__ :remove_const, :Inflector + end + end +end + +describe "should have(n).items where result responds to items but returns something other than a collection" do + it "should provide a meaningful error" do + owner = Class.new do + def items + Object.new + end + end.new + lambda do + owner.should have(3).items + end.should raise_error("expected items to be a collection but it does not respond to #length or #size") + end +end + +describe "should_not have(n).items" do + include HaveSpecHelper + + it "should pass if target has a collection of items with < n members" do + owner = create_collection_owner_with(3) + owner.should_not have(4).items_in_collection_with_length_method + owner.should_not have(4).items_in_collection_with_size_method + end + + it "should pass if target has a collection of items with > n members" do + owner = create_collection_owner_with(3) + owner.should_not have(2).items_in_collection_with_length_method + owner.should_not have(2).items_in_collection_with_size_method + end + + it "should fail if target has a collection of items with n members" do + owner = create_collection_owner_with(3) + lambda { + owner.should_not have(3).items_in_collection_with_length_method + }.should fail_with("expected target not to have 3 items_in_collection_with_length_method, got 3") + lambda { + owner.should_not have(3).items_in_collection_with_size_method + }.should fail_with("expected target not to have 3 items_in_collection_with_size_method, got 3") + end +end + +describe "should have_exactly(n).items" do + include HaveSpecHelper + + it "should pass if target has a collection of items with n members" do + owner = create_collection_owner_with(3) + owner.should have_exactly(3).items_in_collection_with_length_method + owner.should have_exactly(3).items_in_collection_with_size_method + end + + it "should convert :no to 0" do + owner = create_collection_owner_with(0) + owner.should have_exactly(:no).items_in_collection_with_length_method + owner.should have_exactly(:no).items_in_collection_with_size_method + end + + it "should fail if target has a collection of items with < n members" do + owner = create_collection_owner_with(3) + lambda { + owner.should have_exactly(4).items_in_collection_with_length_method + }.should fail_with("expected 4 items_in_collection_with_length_method, got 3") + lambda { + owner.should have_exactly(4).items_in_collection_with_size_method + }.should fail_with("expected 4 items_in_collection_with_size_method, got 3") + end + + it "should fail if target has a collection of items with > n members" do + owner = create_collection_owner_with(3) + lambda { + owner.should have_exactly(2).items_in_collection_with_length_method + }.should fail_with("expected 2 items_in_collection_with_length_method, got 3") + lambda { + owner.should have_exactly(2).items_in_collection_with_size_method + }.should fail_with("expected 2 items_in_collection_with_size_method, got 3") + end +end + +describe "should have_at_least(n).items" do + include HaveSpecHelper + + it "should pass if target has a collection of items with n members" do + owner = create_collection_owner_with(3) + owner.should have_at_least(3).items_in_collection_with_length_method + owner.should have_at_least(3).items_in_collection_with_size_method + end + + it "should pass if target has a collection of items with > n members" do + owner = create_collection_owner_with(3) + owner.should have_at_least(2).items_in_collection_with_length_method + owner.should have_at_least(2).items_in_collection_with_size_method + end + + it "should fail if target has a collection of items with < n members" do + owner = create_collection_owner_with(3) + lambda { + owner.should have_at_least(4).items_in_collection_with_length_method + }.should fail_with("expected at least 4 items_in_collection_with_length_method, got 3") + lambda { + owner.should have_at_least(4).items_in_collection_with_size_method + }.should fail_with("expected at least 4 items_in_collection_with_size_method, got 3") + end + + it "should provide educational negative failure messages" do + #given + owner = create_collection_owner_with(3) + length_matcher = have_at_least(3).items_in_collection_with_length_method + size_matcher = have_at_least(3).items_in_collection_with_size_method + + #when + length_matcher.matches?(owner) + size_matcher.matches?(owner) + + #then + length_matcher.failure_message_for_should_not.should == <<-EOF +Isn't life confusing enough? +Instead of having to figure out the meaning of this: + should_not have_at_least(3).items_in_collection_with_length_method +We recommend that you use this instead: + should have_at_most(2).items_in_collection_with_length_method +EOF + + size_matcher.failure_message_for_should_not.should == <<-EOF +Isn't life confusing enough? +Instead of having to figure out the meaning of this: + should_not have_at_least(3).items_in_collection_with_size_method +We recommend that you use this instead: + should have_at_most(2).items_in_collection_with_size_method +EOF + end +end + +describe "should have_at_most(n).items" do + include HaveSpecHelper + + it "should pass if target has a collection of items with n members" do + owner = create_collection_owner_with(3) + owner.should have_at_most(3).items_in_collection_with_length_method + owner.should have_at_most(3).items_in_collection_with_size_method + end + + it "should fail if target has a collection of items with > n members" do + owner = create_collection_owner_with(3) + lambda { + owner.should have_at_most(2).items_in_collection_with_length_method + }.should fail_with("expected at most 2 items_in_collection_with_length_method, got 3") + lambda { + owner.should have_at_most(2).items_in_collection_with_size_method + }.should fail_with("expected at most 2 items_in_collection_with_size_method, got 3") + end + + it "should pass if target has a collection of items with < n members" do + owner = create_collection_owner_with(3) + owner.should have_at_most(4).items_in_collection_with_length_method + owner.should have_at_most(4).items_in_collection_with_size_method + end + + it "should provide educational negative failure messages" do + #given + owner = create_collection_owner_with(3) + length_matcher = have_at_most(3).items_in_collection_with_length_method + size_matcher = have_at_most(3).items_in_collection_with_size_method + + #when + length_matcher.matches?(owner) + size_matcher.matches?(owner) + + #then + length_matcher.failure_message_for_should_not.should == <<-EOF +Isn't life confusing enough? +Instead of having to figure out the meaning of this: + should_not have_at_most(3).items_in_collection_with_length_method +We recommend that you use this instead: + should have_at_least(4).items_in_collection_with_length_method +EOF + + size_matcher.failure_message_for_should_not.should == <<-EOF +Isn't life confusing enough? +Instead of having to figure out the meaning of this: + should_not have_at_most(3).items_in_collection_with_size_method +We recommend that you use this instead: + should have_at_least(4).items_in_collection_with_size_method +EOF + end +end + +describe "have(n).items(args, block)" do + it "should pass args to target" do + target = mock("target") + target.should_receive(:items).with("arg1","arg2").and_return([1,2,3]) + target.should have(3).items("arg1","arg2") + end + + it "should pass block to target" do + target = mock("target") + block = lambda { 5 } + target.should_receive(:items).with("arg1","arg2", block).and_return([1,2,3]) + target.should have(3).items("arg1","arg2", block) + end +end + +describe "have(n).items where target IS a collection" do + it "should reference the number of items IN the collection" do + [1,2,3].should have(3).items + end + + it "should fail when the number of items IN the collection is not as expected" do + lambda { [1,2,3].should have(7).items }.should fail_with("expected 7 items, got 3") + end +end + +describe "have(n).characters where target IS a String" do + it "should pass if the length is correct" do + "this string".should have(11).characters + end + + it "should fail if the length is incorrect" do + lambda { "this string".should have(12).characters }.should fail_with("expected 12 characters, got 11") + end +end + +describe "have(n).things on an object which is not a collection nor contains one" do + it "should fail" do + lambda { Object.new.should have(2).things }.should raise_error(NoMethodError, /undefined method `things' for # false + + describe "respond_to?" do + before :each do + @have = Have.new(:foo) + @a_method_which_have_defines = Have.instance_methods.first + @a_method_which_object_defines = Object.instance_methods.first + end + + it "should be true for a method which Have defines" do + @have.should respond_to(@a_method_which_have_defines) + end + + it "should be true for a method that it's superclass (Object) defines" do + @have.should respond_to(@a_method_which_object_defines) + end + + it "should be false for a method which neither Object nor nor Have defines" do + @have.should_not respond_to(:foo_bar_baz) + end + + it "should be false if the owner doesn't respond to the method" do + have = Have.new(99) + have.should_not respond_to(:problems) + end + + it "should be true if the owner responds to the method" do + have = Have.new(:a_symbol) + have.should respond_to(:to_sym) + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/include_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/include_spec.rb new file mode 100644 index 0000000..2b959b5 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/include_spec.rb @@ -0,0 +1,88 @@ +require 'spec_helper' + +describe "should include(expected)" do + it "should pass if target includes expected" do + [1,2,3].should include(3) + "abc".should include("a") + end + + it 'should pass if target is a Hash and has the expected as a key' do + {:key => 'value'}.should include(:key) + end + + it "should fail if target does not include expected" do + lambda { + [1,2,3].should include(4) + }.should fail_with("expected [1, 2, 3] to include 4") + lambda { + "abc".should include("d") + }.should fail_with("expected \"abc\" to include \"d\"") + lambda { + {:key => 'value'}.should include(:other) + }.should fail_with(%Q|expected {:key=>"value"} to include :other|) + end +end + +describe "should include(with, multiple, args)" do + it "should pass if target includes all items" do + [1,2,3].should include(1,2,3) + end + + it 'should pass if target is a Hash including all items as keys' do + {:key => 'value', :other => 'value'}.should include(:key, :other) + end + + it "should fail if target does not include any one of the items" do + lambda { + [1,2,3].should include(1,2,4) + }.should fail_with("expected [1, 2, 3] to include 1, 2, and 4") + end + + it 'should pass if target is a Hash missing any item as a key' do + lambda { + {:key => 'value'}.should include(:key, :other) + }.should fail_with(%Q|expected {:key=>"value"} to include :key and :other|) + end +end + +describe "should_not include(expected)" do + it "should pass if target does not include expected" do + [1,2,3].should_not include(4) + "abc".should_not include("d") + end + + it 'should pass if target is a Hash and does not have the expected as a key' do + {:other => 'value'}.should_not include(:key) + end + + it "should fail if target includes expected" do + lambda { + [1,2,3].should_not include(3) + }.should fail_with("expected [1, 2, 3] not to include 3") + lambda { + "abc".should_not include("c") + }.should fail_with("expected \"abc\" not to include \"c\"") + lambda { + {:key => 'value'}.should_not include(:key) + }.should fail_with(%Q|expected {:key=>"value"} not to include :key|) + end +end + +describe "should include(:key => value)" do + it "should pass if target is a Hash and includes the key/value pair" do + {:key => 'value'}.should include(:key => 'value') + end + it "should pass if target is a Hash and includes the key/value pair among others" do + {:key => 'value', :other => 'different'}.should include(:key => 'value') + end + it "should fail if target is a Hash and has a different value for key" do + lambda { + {:key => 'different'}.should include(:key => 'value') + }.should fail_with(%Q|expected {:key=>"different"} to include {:key=>"value"}|) + end + it "should fail if target is a Hash and has a different key" do + lambda { + {:other => 'value'}.should include(:key => 'value') + }.should fail_with(%Q|expected {:other=>"value"} to include {:key=>"value"}|) + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/match_array_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/match_array_spec.rb new file mode 100644 index 0000000..be75ec1 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/match_array_spec.rb @@ -0,0 +1,108 @@ +require 'spec_helper' + +class UnsortableObject + def initialize(id) + @id = id + end + + def inspect + @id.to_s + end + + def ==(other) + false + end +end + +describe "array.should =~ other_array" do + it "should pass if target contains all items" do + [1,2,3].should =~ [1,2,3] + end + + it "should pass if target contains all items out of order" do + [1,3,2].should =~ [1,2,3] + end + + it "should fail if target includes extra items" do + lambda { + [1,2,3,4].should =~ [1,2,3] + }.should fail_with(<<-MESSAGE) +expected collection contained: [1, 2, 3] +actual collection contained: [1, 2, 3, 4] +the extra elements were: [4] +MESSAGE + end + + it "should fail if target is missing items" do + lambda { + [1,2].should =~ [1,2,3] + }.should fail_with(<<-MESSAGE) +expected collection contained: [1, 2, 3] +actual collection contained: [1, 2] +the missing elements were: [3] +MESSAGE + end + + it "should fail if target is missing items and has extra items" do + + lambda { + [1,2,4].should =~ [1,2,3] + }.should fail_with(<<-MESSAGE) +expected collection contained: [1, 2, 3] +actual collection contained: [1, 2, 4] +the missing elements were: [3] +the extra elements were: [4] +MESSAGE + end + + it "should sort items in the error message if they all respond to <=>" do + lambda { + [6,2,1,5].should =~ [4,1,2,3] + }.should fail_with(<<-MESSAGE) +expected collection contained: [1, 2, 3, 4] +actual collection contained: [1, 2, 5, 6] +the missing elements were: [3, 4] +the extra elements were: [5, 6] +MESSAGE + end + + it "should not sort items in the error message if they don't all respond to <=>" do + lambda { + [UnsortableObject.new(2), UnsortableObject.new(1)].should =~ [UnsortableObject.new(4), UnsortableObject.new(3)] + }.should fail_with(<<-MESSAGE) +expected collection contained: [4, 3] +actual collection contained: [2, 1] +the missing elements were: [4, 3] +the extra elements were: [2, 1] +MESSAGE + end + + it "should accurately report extra elements when there are duplicates" do + lambda { + [1,1,1,5].should =~ [1,5] + }.should fail_with(<<-MESSAGE) +expected collection contained: [1, 5] +actual collection contained: [1, 1, 1, 5] +the extra elements were: [1, 1] +MESSAGE + end + + it "should accurately report missing elements when there are duplicates" do + lambda { + [1,5].should =~ [1,1,5] + }.should fail_with(<<-MESSAGE) +expected collection contained: [1, 1, 5] +actual collection contained: [1, 5] +the missing elements were: [1] +MESSAGE + end + +end + +describe "should_not =~ [:with, :multiple, :args]" do + it "should not be supported" do + lambda { + [1,2,3].should_not =~ [1,2,3] + }.should fail_with(/Matcher does not support should_not/) + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/match_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/match_spec.rb new file mode 100644 index 0000000..e5dc800 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/match_spec.rb @@ -0,0 +1,57 @@ +require 'spec_helper' + +describe "should match(expected)" do + it "should pass when target (String) matches expected (Regexp)" do + "string".should match(/tri/) + end + + it "should pass when target (String) matches expected (String)" do + "string".should match("tri") + end + + it "should fail when target (String) does not match expected (Regexp)" do + lambda { + "string".should match(/rings/) + }.should fail + end + + it "should fail when target (String) does not match expected (String)" do + lambda { + "string".should match("rings") + }.should fail + end + + it "should provide message, expected and actual on failure" do + matcher = match(/rings/) + matcher.matches?("string") + matcher.failure_message_for_should.should == "expected \"string\" to match /rings/" + end +end + +describe "should_not match(expected)" do + it "should pass when target (String) matches does not match (Regexp)" do + "string".should_not match(/rings/) + end + + it "should pass when target (String) matches does not match (String)" do + "string".should_not match("rings") + end + + it "should fail when target (String) matches expected (Regexp)" do + lambda { + "string".should_not match(/tri/) + }.should fail + end + + it "should fail when target (String) matches expected (String)" do + lambda { + "string".should_not match("tri") + }.should fail + end + + it "should provide message, expected and actual on failure" do + matcher = match(/tri/) + matcher.matches?("string") + matcher.failure_message_for_should_not.should == "expected \"string\" not to match /tri/" + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/matcher_methods_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/matcher_methods_spec.rb new file mode 100644 index 0000000..291a2af --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/matcher_methods_spec.rb @@ -0,0 +1,63 @@ +require 'spec_helper' + +module Spec + module Matchers + context %Q{The Spec::Matchers module gets included in the execution context of every spec. +This module should provide the following methods, each of which returns a Matcher object.} do + it "be_true" do + be_true.should be_an_instance_of(Be) + end + it "be_false" do + be_false.should be_an_instance_of(Be) + end + it "be_nil" do + be_nil.should be_an_instance_of(Be) + end + it "be_arbitrary_predicate" do + be_arbitrary_predicate.should be_an_instance_of(Be) + end + it "change" do + change("target", :message).should be_an_instance_of(Change) + end + it "have" do + have(0).should be_an_instance_of(Have) + end + it "have_exactly" do + have_exactly(0).should be_an_instance_of(Have) + end + it "have_at_least" do + have_at_least(0).should be_an_instance_of(Have) + end + it "have_at_most" do + have_at_most(0).should be_an_instance_of(Have) + end + it "raise_error" do + raise_error.should be_an_instance_of(RaiseError) + raise_error(NoMethodError).should be_an_instance_of(RaiseError) + raise_error(NoMethodError, "message").should be_an_instance_of(RaiseError) + end + it "satisfy" do + satisfy{}.should be_an_instance_of(Satisfy) + end + it "throw_symbol" do + throw_symbol.should be_an_instance_of(ThrowSymbol) + throw_symbol(:sym).should be_an_instance_of(ThrowSymbol) + end + it "respond_to" do + respond_to(:sym).should be_an_instance_of(RespondTo) + end + end + + describe "Spec::Matchers#method_missing" do + it "should convert be_xyz to Be(:be_xyz)" do + Be.should_receive(:new).with(:be_whatever) + be_whatever + end + + it "should convert have_xyz to Has(:have_xyz)" do + Has.should_receive(:new).with(:have_whatever) + have_whatever + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/matcher_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/matcher_spec.rb new file mode 100644 index 0000000..76b2e26 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/matcher_spec.rb @@ -0,0 +1,228 @@ +require 'spec_helper' + +module Spec + module Matchers + describe Matcher do + context "without overrides" do + before(:each) do + @matcher = Spec::Matchers::Matcher.new(:be_a_multiple_of, 3) do |multiple| + match do |actual| + actual % multiple == 0 + end + end + end + + it "provides a default description" do + @matcher.description.should == "be a multiple of 3" + end + + it "provides a default failure message for #should" do + @matcher.matches?(8) + @matcher.failure_message_for_should.should == "expected 8 to be a multiple of 3" + end + + it "provides a default failure message for #should_not" do + @matcher.matches?(9) + @matcher.failure_message_for_should_not.should == "expected 9 not to be a multiple of 3" + end + end + + it "is not diffable by default" do + matcher = Spec::Matchers::Matcher.new(:name) {} + matcher.should_not be_diffable + end + + it "is diffable when told to be" do + matcher = Spec::Matchers::Matcher.new(:name) { diffable } + matcher.should be_diffable + end + + it "provides expected" do + matcher = Spec::Matchers::Matcher.new(:name, 'expected string') {} + matcher.expected.should == ['expected string'] + end + + it "provides actual" do + matcher = Spec::Matchers::Matcher.new(:name, 'expected string') do + match {|actual|} + end + + matcher.matches?('actual string') + + matcher.actual.should == 'actual string' + end + + context "with overrides" do + before(:each) do + @matcher = Spec::Matchers::Matcher.new(:be_boolean, true) do |boolean| + match do |actual| + actual + end + description do + "be the boolean #{boolean}" + end + failure_message_for_should do |actual| + "expected #{actual} to be the boolean #{boolean}" + end + failure_message_for_should_not do |actual| + "expected #{actual} not to be the boolean #{boolean}" + end + end + end + + it "does not hide result of match block when true" do + @matcher.matches?(true).should be_true + end + + it "does not hide result of match block when false" do + @matcher.matches?(false).should be_false + end + + it "overrides the description" do + @matcher.description.should == "be the boolean true" + end + + it "overrides the failure message for #should" do + @matcher.matches?(false) + @matcher.failure_message_for_should.should == "expected false to be the boolean true" + end + + it "overrides the failure message for #should_not" do + @matcher.matches?(true) + @matcher.failure_message_for_should_not.should == "expected true not to be the boolean true" + end + end + + context "#new" do + it "passes matches? arg to match block" do + matcher = Spec::Matchers::Matcher.new(:ignore) do + match do |actual| + actual == 5 + end + end + matcher.matches?(5).should be_true + end + + it "exposes arg submitted through #new to matcher block" do + matcher = Spec::Matchers::Matcher.new(:ignore, 4) do |expected| + match do |actual| + actual > expected + end + end + matcher.matches?(5).should be_true + end + end + + context "with no args" do + before(:each) do + @matcher = Spec::Matchers::Matcher.new(:matcher_name) do + match do |actual| + actual == 5 + end + end + end + + it "matches" do + @matcher.matches?(5).should be_true + end + + it "describes" do + @matcher.description.should == "matcher name" + end + end + + context "with 1 arg" do + before(:each) do + @matcher = Spec::Matchers::Matcher.new(:matcher_name, 1) do |expected| + match do |actual| + actual == 5 && expected == 1 + end + end + end + + it "matches" do + @matcher.matches?(5).should be_true + end + + it "describes" do + @matcher.description.should == "matcher name 1" + end + end + + context "with multiple args" do + before(:each) do + @matcher = Spec::Matchers::Matcher.new(:matcher_name, 1, 2, 3, 4) do |a,b,c,d| + match do |sum| + a + b + c + d == sum + end + end + end + + it "matches" do + @matcher.matches?(10).should be_true + end + + it "describes" do + @matcher.description.should == "matcher name 1, 2, 3, and 4" + end + end + + it "supports helper methods" do + matcher = Spec::Matchers::Matcher.new(:be_similar_to, [1,2,3]) do |sample| + match do |actual| + similar?(sample, actual) + end + + def similar?(a, b) + a.sort == b.sort + end + end + + matcher.matches?([2,3,1]).should be_true + end + + it "supports fluent interface" do + matcher = Spec::Matchers::Matcher.new(:first_word) do + def second_word + self + end + end + + matcher.second_word.should == matcher + end + + it "treats method missing normally for undeclared methods" do + matcher = Spec::Matchers::Matcher.new(:ignore) { } + expect { matcher.non_existent_method }.to raise_error(NoMethodError) + end + + it "has access to other matchers" do + matcher = Spec::Matchers::Matcher.new(:ignore, 3) do |expected| + match do |actual| + extend Spec::Matchers + actual.should eql(5 + expected) + end + end + + matcher.matches?(8).should be_true + end + + it "lets you override the actual() in messages" do + matcher = Spec::Matchers::Matcher.new(:be_foo) do + match do |actual| + @submitted = actual + false + end + + def actual + "replaced" + end + end + + matcher.matches?("foo") + matcher.failure_message_for_should.should =~ /replaced/ + end + + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/matchers_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/matchers_spec.rb new file mode 100644 index 0000000..51f5efc --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/matchers_spec.rb @@ -0,0 +1,2 @@ +require 'spec_helper' + diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/operator_matcher_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/operator_matcher_spec.rb new file mode 100644 index 0000000..86e637e --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/operator_matcher_spec.rb @@ -0,0 +1,191 @@ +require 'spec_helper' + +require 'spec/runner/differs/default' + +describe "should ==" do + + it "should delegate message to target" do + subject = "apple" + subject.should_receive(:==).with("apple").and_return(true) + subject.should == "apple" + end + + it "should return true on success" do + subject = "apple" + (subject.should == "apple").should be_true + end + + it "should fail when target.==(actual) returns false" do + subject = "apple" + Spec::Expectations.should_receive(:fail_with).with(%[expected: "orange",\n got: "apple" (using ==)], "orange", "apple") + subject.should == "orange" + end + +end + +describe "should_not ==" do + + it "should delegate message to target" do + subject = "orange" + subject.should_receive(:==).with("apple").and_return(false) + subject.should_not == "apple" + end + + it "should return true on success" do + subject = "apple" + (subject.should_not == "orange").should be_false + end + + it "should fail when target.==(actual) returns false" do + subject = "apple" + Spec::Expectations.should_receive(:fail_with).with(%[expected not: == "apple",\n got: "apple"], "apple", "apple") + subject.should_not == "apple" + end + +end + +describe "should ===" do + + it "should delegate message to target" do + subject = "apple" + subject.should_receive(:===).with("apple").and_return(true) + subject.should === "apple" + end + + it "should fail when target.===(actual) returns false" do + subject = "apple" + subject.should_receive(:===).with("orange").and_return(false) + Spec::Expectations.should_receive(:fail_with).with(%[expected: "orange",\n got: "apple" (using ===)], "orange", "apple") + subject.should === "orange" + end + +end + +describe "should_not ===" do + + it "should delegate message to target" do + subject = "orange" + subject.should_receive(:===).with("apple").and_return(false) + subject.should_not === "apple" + end + + it "should fail when target.===(actual) returns false" do + subject = "apple" + subject.should_receive(:===).with("apple").and_return(true) + Spec::Expectations.should_receive(:fail_with).with(%[expected not: === "apple",\n got: "apple"], "apple", "apple") + subject.should_not === "apple" + end + +end + +describe "should =~" do + + it "should delegate message to target" do + subject = "foo" + subject.should_receive(:=~).with(/oo/).and_return(true) + subject.should =~ /oo/ + end + + it "should fail when target.=~(actual) returns false" do + subject = "fu" + subject.should_receive(:=~).with(/oo/).and_return(false) + Spec::Expectations.should_receive(:fail_with).with(%[expected: /oo/,\n got: "fu" (using =~)], /oo/, "fu") + subject.should =~ /oo/ + end + +end + +describe "should_not =~" do + + it "should delegate message to target" do + subject = "fu" + subject.should_receive(:=~).with(/oo/).and_return(false) + subject.should_not =~ /oo/ + end + + it "should fail when target.=~(actual) returns false" do + subject = "foo" + subject.should_receive(:=~).with(/oo/).and_return(true) + Spec::Expectations.should_receive(:fail_with).with(%[expected not: =~ /oo/,\n got: "foo"], /oo/, "foo") + subject.should_not =~ /oo/ + end + +end + +describe "should >" do + + it "should pass if > passes" do + 4.should > 3 + end + + it "should fail if > fails" do + Spec::Expectations.should_receive(:fail_with).with(%[expected: > 5,\n got: 4], 5, 4) + 4.should > 5 + end + +end + +describe "should >=" do + + it "should pass if >= passes" do + 4.should > 3 + 4.should >= 4 + end + + it "should fail if > fails" do + Spec::Expectations.should_receive(:fail_with).with(%[expected: >= 5,\n got: 4], 5, 4) + 4.should >= 5 + end + +end + +describe "should <" do + + it "should pass if < passes" do + 4.should < 5 + end + + it "should fail if > fails" do + Spec::Expectations.should_receive(:fail_with).with(%[expected: < 3,\n got: 4], 3, 4) + 4.should < 3 + end + +end + +describe "should <=" do + + it "should pass if <= passes" do + 4.should <= 5 + 4.should <= 4 + end + + it "should fail if > fails" do + Spec::Expectations.should_receive(:fail_with).with(%[expected: <= 3,\n got: 4], 3, 4) + 4.should <= 3 + end + +end + +describe Spec::Matchers::PositiveOperatorMatcher do + + it "should work when the target has implemented #send" do + o = Object.new + def o.send(*args); raise "DOH! Library developers shouldn't use #send!" end + lambda { + o.should == o + }.should_not raise_error + end + +end + +describe Spec::Matchers::NegativeOperatorMatcher do + + it "should work when the target has implemented #send" do + o = Object.new + def o.send(*args); raise "DOH! Library developers shouldn't use #send!" end + lambda { + o.should_not == :foo + }.should_not raise_error + end + +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/raise_error_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/raise_error_spec.rb new file mode 100644 index 0000000..785065a --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/raise_error_spec.rb @@ -0,0 +1,333 @@ +require 'spec_helper' + +describe "should raise_error" do + it "should pass if anything is raised" do + lambda {raise}.should raise_error + end + + it "should fail if nothing is raised" do + lambda { + lambda {}.should raise_error + }.should fail_with("expected Exception but nothing was raised") + end +end + +describe "should raise_error {|err| ... }" do + it "passes if there is an error" do + ran = false + lambda { non_existent_method }.should raise_error {|e| + ran = true + } + ran.should be_true + end + + it "passes the error to the block" do + error = nil + lambda { non_existent_method }.should raise_error {|e| + error = e + } + error.should be_kind_of(NameError) + end +end + +describe "should_not raise_error" do + it "should pass if nothing is raised" do + lambda {}.should_not raise_error + end + + it "should fail if anything is raised" do + lambda { + lambda {raise}.should_not raise_error + }.should fail_with("expected no Exception, got RuntimeError") + end +end + +describe "should raise_error(message)" do + it "should pass if RuntimeError is raised with the right message" do + lambda {raise 'blah'}.should raise_error('blah') + end + it "should pass if RuntimeError is raised with a matching message" do + lambda {raise 'blah'}.should raise_error(/blah/) + end + it "should pass if any other error is raised with the right message" do + lambda {raise NameError.new('blah')}.should raise_error('blah') + end + it "should fail if RuntimeError error is raised with the wrong message" do + lambda do + lambda {raise 'blarg'}.should raise_error('blah') + end.should fail_with("expected Exception with \"blah\", got #") + end + it "should fail if any other error is raised with the wrong message" do + lambda do + lambda {raise NameError.new('blarg')}.should raise_error('blah') + end.should fail_with("expected Exception with \"blah\", got #") + end +end + +describe "should_not raise_error(message)" do + it "should pass if RuntimeError error is raised with the different message" do + lambda {raise 'blarg'}.should_not raise_error('blah') + end + it "should pass if any other error is raised with the wrong message" do + lambda {raise NameError.new('blarg')}.should_not raise_error('blah') + end + it "should fail if RuntimeError is raised with message" do + lambda do + lambda {raise 'blah'}.should_not raise_error('blah') + end.should fail_with(%Q|expected no Exception with "blah", got #|) + end + it "should fail if any other error is raised with message" do + lambda do + lambda {raise NameError.new('blah')}.should_not raise_error('blah') + end.should fail_with(%Q|expected no Exception with "blah", got #|) + end +end + +describe "should raise_error(NamedError)" do + it "should pass if named error is raised" do + lambda { non_existent_method }.should raise_error(NameError) + end + + it "should fail if nothing is raised" do + lambda { + lambda { }.should raise_error(NameError) + }.should fail_with("expected NameError but nothing was raised") + end + + it "should fail if another error is raised (NameError)" do + lambda { + lambda { raise }.should raise_error(NameError) + }.should fail_with("expected NameError, got RuntimeError") + end + + it "should fail if another error is raised (NameError)" do + lambda { + lambda { load "non/existent/file" }.should raise_error(NameError) + }.should fail_with(/expected NameError, got #") + + ran.should == false + end + + it "should NOT yield exception if error message is not matched" do + ran = false + + lambda { + lambda { + raise "example message" + }.should raise_error(RuntimeError, "different message") { |err| + ran = true + } + }.should fail_with("expected RuntimeError with \"different message\", got #") + + ran.should == false + end +end + +describe "should_not raise_error(NamedError, error_message) { |err| ... }" do + it "should pass if nothing is raised" do + ran = false + + lambda {}.should_not raise_error(RuntimeError, "example message") { |err| + ran = true + } + + ran.should == false + end + + it "should pass if a different error is raised" do + ran = false + + lambda { raise }.should_not raise_error(NameError, "example message") { |err| + ran = true + } + + ran.should == false + end + + it "should pass if same error is raised with different message" do + ran = false + + lambda { + raise RuntimeError.new("not the example message") + }.should_not raise_error(RuntimeError, "example message") { |err| + ran = true + } + + ran.should == false + end + + it "should fail if named error is raised with same message" do + ran = false + + lambda { + lambda { + raise "example message" + }.should_not raise_error(RuntimeError, "example message") { |err| + ran = true + } + }.should fail_with("expected no RuntimeError with \"example message\", got #") + + ran.should == false + end +end + +describe "should_not raise_error(NamedError, error_message) with String" do + it "should pass if nothing is raised" do + lambda {}.should_not raise_error(RuntimeError, "example message") + end + + it "should pass if a different error is raised" do + lambda { raise }.should_not raise_error(NameError, "example message") + end + + it "should pass if same error is raised with different message" do + lambda { raise RuntimeError.new("not the example message") }.should_not raise_error(RuntimeError, "example message") + end + + it "should fail if named error is raised with same message" do + lambda { + lambda { raise "example message" }.should_not raise_error(RuntimeError, "example message") + }.should fail_with("expected no RuntimeError with \"example message\", got #") + end +end + +describe "should raise_error(NamedError, error_message) with Regexp" do + it "should pass if named error is raised with matching message" do + lambda { raise "example message" }.should raise_error(RuntimeError, /ample mess/) + end + + it "should fail if nothing is raised" do + lambda { + lambda {}.should raise_error(RuntimeError, /ample mess/) + }.should fail_with("expected RuntimeError with message matching /ample mess/ but nothing was raised") + end + + it "should fail if incorrect error is raised" do + lambda { + lambda { raise }.should raise_error(NameError, /ample mess/) + }.should fail_with("expected NameError with message matching /ample mess/, got RuntimeError") + end + + it "should fail if correct error is raised with incorrect message" do + lambda { + lambda { raise RuntimeError.new("not the example message") }.should raise_error(RuntimeError, /less than ample mess/) + }.should fail_with("expected RuntimeError with message matching /less than ample mess/, got #") + end +end + +describe "should_not raise_error(NamedError, error_message) with Regexp" do + it "should pass if nothing is raised" do + lambda {}.should_not raise_error(RuntimeError, /ample mess/) + end + + it "should pass if a different error is raised" do + lambda { raise }.should_not raise_error(NameError, /ample mess/) + end + + it "should pass if same error is raised with non-matching message" do + lambda { raise RuntimeError.new("non matching message") }.should_not raise_error(RuntimeError, /ample mess/) + end + + it "should fail if named error is raised with matching message" do + lambda { + lambda { raise "example message" }.should_not raise_error(RuntimeError, /ample mess/) + }.should fail_with("expected no RuntimeError with message matching /ample mess/, got #") + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/respond_to_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/respond_to_spec.rb new file mode 100644 index 0000000..8d8f3c1 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/respond_to_spec.rb @@ -0,0 +1,116 @@ +require 'spec_helper' + +describe "should respond_to(:sym)" do + + it "passes if target responds to :sym" do + Object.new.should respond_to(:methods) + end + + it "fails if target does not respond to :sym" do + lambda { + "this string".should respond_to(:some_method) + }.should fail_with(%q|expected "this string" to respond to :some_method|) + end + +end + +describe "should respond_to(:sym).with(1).argument" do + it "passes if target responds to :sym with 1 arg" do + obj = Object.new + def obj.foo(arg); end + obj.should respond_to(:foo).with(1).argument + end + + it "fails if target does not respond to :sym" do + obj = Object.new + lambda { + obj.should respond_to(:some_method).with(1).argument + }.should fail_with(/expected .* to respond to :some_method/) + end + + it "fails if :sym expects 0 args" do + obj = Object.new + def obj.foo; end + lambda { + obj.should respond_to(:foo).with(1).argument + }.should fail_with(/expected # to respond to :foo with 1 argument/) + end + + it "fails if :sym expects 2 args" do + obj = Object.new + def obj.foo(arg, arg2); end + lambda { + obj.should respond_to(:foo).with(1).argument + }.should fail_with(/expected # to respond to :foo with 1 argument/) + end +end + +describe "should respond_to(message1, message2)" do + + it "passes if target responds to both messages" do + Object.new.should respond_to('methods', 'inspect') + end + + it "fails if target does not respond to first message" do + lambda { + Object.new.should respond_to('method_one', 'inspect') + }.should fail_with(/expected # to respond to "method_one"/) + end + + it "fails if target does not respond to second message" do + lambda { + Object.new.should respond_to('inspect', 'method_one') + }.should fail_with(/expected # to respond to "method_one"/) + end + + it "fails if target does not respond to either message" do + lambda { + Object.new.should respond_to('method_one', 'method_two') + }.should fail_with(/expected # to respond to "method_one", "method_two"/) + end +end + +describe "should respond_to(:sym).with(2).arguments" do + it "passes if target responds to :sym with 2 args" do + obj = Object.new + def obj.foo(a1, a2); end + obj.should respond_to(:foo).with(2).arguments + end + + it "fails if target does not respond to :sym" do + obj = Object.new + lambda { + obj.should respond_to(:some_method).with(2).arguments + }.should fail_with(/expected .* to respond to :some_method/) + end + + it "fails if :sym expects 0 args" do + obj = Object.new + def obj.foo; end + lambda { + obj.should respond_to(:foo).with(2).arguments + }.should fail_with(/expected # to respond to :foo with 2 arguments/) + end + + it "fails if :sym expects 2 args" do + obj = Object.new + def obj.foo(arg); end + lambda { + obj.should respond_to(:foo).with(2).arguments + }.should fail_with(/expected # to respond to :foo with 2 arguments/) + end +end + +describe "should_not respond_to(:sym)" do + + it "passes if target does not respond to :sym" do + Object.new.should_not respond_to(:some_method) + end + + it "fails if target responds to :sym" do + lambda { + Object.new.should_not respond_to(:methods) + }.should fail_with(/expected # not to respond to :methods/) + end + +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/satisfy_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/satisfy_spec.rb new file mode 100644 index 0000000..e50c395 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/satisfy_spec.rb @@ -0,0 +1,36 @@ +require 'spec_helper' + +describe "should satisfy { block }" do + it "should pass if block returns true" do + true.should satisfy { |val| val } + true.should satisfy do |val| + val + end + end + + it "should fail if block returns false" do + lambda { + false.should satisfy { |val| val } + }.should fail_with("expected false to satisfy block") + lambda do + false.should satisfy do |val| + val + end + end.should fail_with("expected false to satisfy block") + end +end + +describe "should_not satisfy { block }" do + it "should pass if block returns false" do + false.should_not satisfy { |val| val } + false.should_not satisfy do |val| + val + end + end + + it "should fail if block returns true" do + lambda { + true.should_not satisfy { |val| val } + }.should fail_with("expected true not to satisfy block") + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/simple_matcher_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/simple_matcher_spec.rb new file mode 100644 index 0000000..8071a9f --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/simple_matcher_spec.rb @@ -0,0 +1,93 @@ +require 'spec_helper' + +module Spec + module Matchers + describe SimpleMatcher do + it "should pass match arg to block" do + actual = nil + matcher = simple_matcher("message") do |given| actual = given end + matcher.matches?("foo") + actual.should == "foo" + end + + it "should provide a stock failure message" do + matcher = simple_matcher("thing") do end + matcher.matches?("other") + matcher.failure_message.should =~ /expected \"thing\" but got \"other\"/ + end + + it "should provide a stock negative failure message" do + matcher = simple_matcher("thing") do end + matcher.matches?("other") + matcher.negative_failure_message.should =~ /expected not to get \"thing\", but got \"other\"/ + end + + it "should provide the given description" do + matcher = simple_matcher("thing") do end + matcher.description.should =="thing" + end + + it "should fail if a wrapped 'should' fails" do + matcher = simple_matcher("should fail") do + 2.should == 3 + end + lambda do + matcher.matches?("anything").should be_true + end.should fail_with(/expected: 3/) + end + end + + describe "with arity of 2" do + it "should provide the matcher so you can access its messages" do + provided_matcher = nil + matcher = simple_matcher("thing") do |given, matcher| + provided_matcher = matcher + end + matcher.matches?("anything") + provided_matcher.should equal(matcher) + end + + it "should support a custom failure message" do + matcher = simple_matcher("thing") do |given, matcher| + matcher.failure_message = "custom message" + end + matcher.matches?("other") + matcher.failure_message.should == "custom message" + end + + it "should complain when asked for a failure message if you don't give it a description or a message" do + matcher = simple_matcher do |given, matcher| end + matcher.matches?("other") + matcher.failure_message.should =~ /No description provided/ + end + + it "should support a custom negative failure message" do + matcher = simple_matcher("thing") do |given, matcher| + matcher.negative_failure_message = "custom message" + end + matcher.matches?("other") + matcher.negative_failure_message.should == "custom message" + end + + it "should complain when asked for a negative failure message if you don't give it a description or a message" do + matcher = simple_matcher do |given, matcher| end + matcher.matches?("other") + matcher.negative_failure_message.should =~ /No description provided/ + end + + it "should support a custom description" do + matcher = simple_matcher("thing") do |given, matcher| + matcher.description = "custom message" + end + matcher.matches?("description") + matcher.description.should == "custom message" + end + + it "should tell you no description was provided when it doesn't receive one" do + matcher = simple_matcher do end + matcher.description.should =~ /No description provided/ + end + end + + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/throw_symbol_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/throw_symbol_spec.rb new file mode 100644 index 0000000..402f812 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/matchers/throw_symbol_spec.rb @@ -0,0 +1,96 @@ +require 'spec_helper' + +module Spec + module Matchers + describe ThrowSymbol do + describe "with no args" do + before(:each) { @matcher = ThrowSymbol.new } + + it "should match if any Symbol is thrown" do + @matcher.matches?(lambda{ throw :sym }).should be_true + end + it "should match if any Symbol is thrown with an arg" do + @matcher.matches?(lambda{ throw :sym, "argument" }).should be_true + end + it "should not match if no Symbol is thrown" do + @matcher.matches?(lambda{ }).should be_false + end + it "should provide a failure message" do + @matcher.matches?(lambda{}) + @matcher.failure_message_for_should.should == "expected a Symbol but nothing was thrown" + end + it "should provide a negative failure message" do + @matcher.matches?(lambda{ throw :sym}) + @matcher.failure_message_for_should_not.should == "expected no Symbol, got :sym" + end + end + + describe "with a symbol" do + before(:each) { @matcher = ThrowSymbol.new(:sym) } + + it "should match if correct Symbol is thrown" do + @matcher.matches?(lambda{ throw :sym }).should be_true + end + it "should match if correct Symbol is thrown with an arg" do + @matcher.matches?(lambda{ throw :sym, "argument" }).should be_true + end + it "should not match if no Symbol is thrown" do + @matcher.matches?(lambda{ }).should be_false + end + it "should not match if correct Symbol is thrown" do + @matcher.matches?(lambda{ throw :other_sym }).should be_false + end + it "should provide a failure message when no Symbol is thrown" do + @matcher.matches?(lambda{}) + @matcher.failure_message_for_should.should == "expected :sym but nothing was thrown" + end + it "should provide a failure message when wrong Symbol is thrown" do + @matcher.matches?(lambda{ throw :other_sym }) + @matcher.failure_message_for_should.should == "expected :sym, got :other_sym" + end + it "should provide a negative failure message" do + @matcher.matches?(lambda{ throw :sym }) + @matcher.failure_message_for_should_not.should == "expected :sym not to be thrown" + end + it "should only match NameErrors raised by uncaught throws" do + @matcher.matches?(lambda{ sym }).should be_false + end + end + + describe "with a symbol and an arg" do + before(:each) { @matcher = ThrowSymbol.new(:sym, "a") } + + it "should match if correct Symbol and args are thrown" do + @matcher.matches?(lambda{ throw :sym, "a" }).should be_true + end + it "should not match if nothing is thrown" do + @matcher.matches?(lambda{ }).should be_false + end + it "should not match if other Symbol is thrown" do + @matcher.matches?(lambda{ throw :other_sym, "a" }).should be_false + end + it "should not match if no arg is thrown" do + @matcher.matches?(lambda{ throw :sym }).should be_false + end + it "should not match if wrong arg is thrown" do + @matcher.matches?(lambda{ throw :sym, "b" }).should be_false + end + it "should provide a failure message when no Symbol is thrown" do + @matcher.matches?(lambda{}) + @matcher.failure_message_for_should.should == %q[expected :sym with "a" but nothing was thrown] + end + it "should provide a failure message when wrong Symbol is thrown" do + @matcher.matches?(lambda{ throw :other_sym }) + @matcher.failure_message_for_should.should == %q[expected :sym with "a", got :other_sym] + end + it "should provide a negative failure message" do + @matcher.matches?(lambda{ throw :sym }) + @matcher.failure_message_for_should_not.should == %q[expected :sym with "a" not to be thrown] + end + it "should only match NameErrors raised by uncaught throws" do + @matcher.matches?(lambda{ sym }).should be_false + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/any_number_of_times_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/any_number_of_times_spec.rb new file mode 100644 index 0000000..9a3f6ed --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/any_number_of_times_spec.rb @@ -0,0 +1,36 @@ +require 'spec_helper' + +module Spec + module Mocks + + describe "AnyNumberOfTimes" do + before(:each) do + @mock = Mock.new("test mock") + end + + it "should pass if any number of times method is called many times" do + @mock.should_receive(:random_call).any_number_of_times + (1..10).each do + @mock.random_call + end + end + + it "should pass if any number of times method is called once" do + @mock.should_receive(:random_call).any_number_of_times + @mock.random_call + end + + it "should pass if any number of times method is not called" do + @mock.should_receive(:random_call).any_number_of_times + end + + it "should return the mocked value when called after a similar stub" do + @mock.stub!(:message).and_return :stub_value + @mock.should_receive(:message).any_number_of_times.and_return(:mock_value) + @mock.message.should == :mock_value + @mock.message.should == :mock_value + end + end + + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/argument_expectation_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/argument_expectation_spec.rb new file mode 100644 index 0000000..496f750 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/argument_expectation_spec.rb @@ -0,0 +1,23 @@ +require 'spec_helper' + +module Spec + module Mocks + describe ArgumentExpectation do + it "should consider an object that responds to #matches? and #description to be a matcher" do + argument_expecatation = Spec::Mocks::ArgumentExpectation.new([]) + obj = mock("matcher") + obj.should_receive(:respond_to?).with(:matches?).and_return(true) + obj.should_receive(:respond_to?).with(:description).and_return(true) + argument_expecatation.is_matcher?(obj).should be_true + end + + it "should NOT consider an object that only responds to #matches? to be a matcher" do + argument_expecatation = Spec::Mocks::ArgumentExpectation.new([]) + obj = mock("matcher") + obj.should_receive(:respond_to?).with(:matches?).and_return(true) + obj.should_receive(:respond_to?).with(:description).and_return(false) + argument_expecatation.is_matcher?(obj).should be_false + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/argument_matchers_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/argument_matchers_spec.rb new file mode 100644 index 0000000..fc81655 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/argument_matchers_spec.rb @@ -0,0 +1,19 @@ +require 'spec_helper' + +module Spec + module Mocks + module ArgumentMatchers + describe AnyArgsMatcher do + it "represents itself nicely for failure messages" do + AnyArgsMatcher.new.description.should == "any args" + end + end + + describe AnyArgMatcher do + it "represents itself nicely for failure messages" do + AnyArgMatcher.new(nil).description.should == "anything" + end + end + end + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/at_least_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/at_least_spec.rb new file mode 100644 index 0000000..0b76d32 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/at_least_spec.rb @@ -0,0 +1,97 @@ +require 'spec_helper' + +module Spec + module Mocks + describe "at_least" do + before(:each) do + @mock = Mock.new("test mock") + end + + it "should fail if method is never called" do + @mock.should_receive(:random_call).at_least(4).times + lambda do + @mock.rspec_verify + end.should raise_error(MockExpectationError) + end + + it "should fail when called less than n times" do + @mock.should_receive(:random_call).at_least(4).times + @mock.random_call + @mock.random_call + @mock.random_call + lambda do + @mock.rspec_verify + end.should raise_error(MockExpectationError) + end + + it "should fail when at least once method is never called" do + @mock.should_receive(:random_call).at_least(:once) + lambda do + @mock.rspec_verify + end.should raise_error(MockExpectationError) + end + + it "should fail when at least twice method is called once" do + @mock.should_receive(:random_call).at_least(:twice) + @mock.random_call + lambda do + @mock.rspec_verify + end.should raise_error(MockExpectationError) + end + + it "should fail when at least twice method is never called" do + @mock.should_receive(:random_call).at_least(:twice) + lambda do + @mock.rspec_verify + end.should raise_error(MockExpectationError) + end + + it "should pass when at least n times method is called exactly n times" do + @mock.should_receive(:random_call).at_least(4).times + @mock.random_call + @mock.random_call + @mock.random_call + @mock.random_call + @mock.rspec_verify + end + + it "should pass when at least n times method is called n plus 1 times" do + @mock.should_receive(:random_call).at_least(4).times + @mock.random_call + @mock.random_call + @mock.random_call + @mock.random_call + @mock.random_call + @mock.rspec_verify + end + + it "should pass when at least once method is called once" do + @mock.should_receive(:random_call).at_least(:once) + @mock.random_call + @mock.rspec_verify + end + + it "should pass when at least once method is called twice" do + @mock.should_receive(:random_call).at_least(:once) + @mock.random_call + @mock.random_call + @mock.rspec_verify + end + + it "should pass when at least twice method is called three times" do + @mock.should_receive(:random_call).at_least(:twice) + @mock.random_call + @mock.random_call + @mock.random_call + @mock.rspec_verify + end + + it "should pass when at least twice method is called twice" do + @mock.should_receive(:random_call).at_least(:twice) + @mock.random_call + @mock.random_call + @mock.rspec_verify + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/at_most_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/at_most_spec.rb new file mode 100644 index 0000000..744c9ff --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/at_most_spec.rb @@ -0,0 +1,93 @@ +require 'spec_helper' + +module Spec + module Mocks + describe "at_most" do + before(:each) do + @mock = Mock.new("test mock") + end + + it "should fail when at most n times method is called n plus 1 times" do + @mock.should_receive(:random_call).at_most(4).times + @mock.random_call + @mock.random_call + @mock.random_call + @mock.random_call + @mock.random_call + lambda do + @mock.rspec_verify + end.should raise_error(MockExpectationError) + end + + it "should fail when at most once method is called twice" do + @mock.should_receive(:random_call).at_most(:once) + @mock.random_call + @mock.random_call + lambda do + @mock.rspec_verify + end.should raise_error(MockExpectationError) + end + + it "should fail when at most twice method is called three times" do + @mock.should_receive(:random_call).at_most(:twice) + @mock.random_call + @mock.random_call + @mock.random_call + lambda do + @mock.rspec_verify + end.should raise_error(MockExpectationError) + end + + it "should pass when at most n times method is called exactly n times" do + @mock.should_receive(:random_call).at_most(4).times + @mock.random_call + @mock.random_call + @mock.random_call + @mock.random_call + @mock.rspec_verify + end + + it "should pass when at most n times method is called less than n times" do + @mock.should_receive(:random_call).at_most(4).times + @mock.random_call + @mock.random_call + @mock.random_call + @mock.rspec_verify + end + + it "should pass when at most n times method is never called" do + @mock.should_receive(:random_call).at_most(4).times + @mock.rspec_verify + end + + it "should pass when at most once method is called once" do + @mock.should_receive(:random_call).at_most(:once) + @mock.random_call + @mock.rspec_verify + end + + it "should pass when at most once method is never called" do + @mock.should_receive(:random_call).at_most(:once) + @mock.rspec_verify + end + + it "should pass when at most twice method is called once" do + @mock.should_receive(:random_call).at_most(:twice) + @mock.random_call + @mock.rspec_verify + end + + it "should pass when at most twice method is called twice" do + @mock.should_receive(:random_call).at_most(:twice) + @mock.random_call + @mock.random_call + @mock.rspec_verify + end + + it "should pass when at most twice method is never called" do + @mock.should_receive(:random_call).at_most(:twice) + @mock.rspec_verify + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/bug_report_10260_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/bug_report_10260_spec.rb new file mode 100644 index 0000000..783782f --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/bug_report_10260_spec.rb @@ -0,0 +1,8 @@ +require 'spec_helper' + +describe "An RSpec Mock" do + it "should hide internals in its inspect representation" do + m = mock('cup') + m.inspect.should =~ /#/ + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/bug_report_10263_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/bug_report_10263_spec.rb new file mode 100644 index 0000000..8a0bc50 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/bug_report_10263_spec.rb @@ -0,0 +1,27 @@ +describe "Mock" do + before do + @mock = mock("test mock") + end + + specify "when one example has an expectation (non-mock) inside the block passed to the mock" do + @mock.should_receive(:msg) do |b| + b.should be_true #this call exposes the problem + end + begin + @mock.msg(false) + rescue Exception + end + end + + specify "then the next example should behave as expected instead of saying" do + @mock.should_receive(:foobar) + @mock.foobar + @mock.rspec_verify + begin + @mock.foobar + rescue Exception => e + e.message.should == "Mock \"test mock\" received unexpected message :foobar with (no args)" + end + end +end + diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/bug_report_11545_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/bug_report_11545_spec.rb new file mode 100644 index 0000000..7eb7c6e --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/bug_report_11545_spec.rb @@ -0,0 +1,32 @@ +require 'spec_helper' + +class LiarLiarPantsOnFire + def respond_to?(sym, incl_private=false) + true + end + + def self.respond_to?(sym, incl_private=false) + true + end +end + +describe 'should_receive' do + before(:each) do + @liar = LiarLiarPantsOnFire.new + end + + it "should work when object lies about responding to a method" do + @liar.should_receive(:something) + @liar.something + end + + it 'should work when class lies about responding to a method' do + LiarLiarPantsOnFire.should_receive(:something) + LiarLiarPantsOnFire.something + end + + it 'should cleanup after itself' do + (class << LiarLiarPantsOnFire; self; end).instance_methods.should_not include("something") + end +end + diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/bug_report_15719_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/bug_report_15719_spec.rb new file mode 100644 index 0000000..efd7a78 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/bug_report_15719_spec.rb @@ -0,0 +1,30 @@ +require 'spec_helper' + +module Spec + module Mocks + describe "mock failure" do + + it "should tell you when it receives the right message with the wrong args" do + m = mock("foo") + m.should_receive(:bar).with("message") + lambda { + m.bar("different message") + }.should raise_error(Spec::Mocks::MockExpectationError, %Q{Mock "foo" received :bar with unexpected arguments\n expected: ("message")\n got: ("different message")}) + m.bar("message") # allows the spec to pass + end + + it "should tell you when it receives the right message with the wrong args if you stub the method" do + pending("fix bug 15719") + # NOTE - for whatever reason, if you use a the block style of pending here, + # rcov gets unhappy. Don't know why yet. + m = mock("foo") + m.stub!(:bar) + m.should_receive(:bar).with("message") + lambda { + m.bar("different message") + }.should raise_error(Spec::Mocks::MockExpectationError, %Q{Mock "foo" received :bar with unexpected arguments\n expected: ("message")\n got: ("different message")}) + m.bar("message") # allows the spec to pass + end + end + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/bug_report_496_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/bug_report_496_spec.rb new file mode 100644 index 0000000..fb172a6 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/bug_report_496_spec.rb @@ -0,0 +1,19 @@ +require 'spec_helper' + +module BugReport496 + class BaseClass + end + + class SubClass < BaseClass + end + + describe "a message expectation on a base class object" do + it "should correctly pick up message sent to it subclass" do + pending("fix for http://rspec.lighthouseapp.com/projects/5645/tickets/496") do + BaseClass.should_receive(:new).once + SubClass.new + end + end + end +end + diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/bug_report_600_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/bug_report_600_spec.rb new file mode 100644 index 0000000..c5c50d5 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/bug_report_600_spec.rb @@ -0,0 +1,22 @@ +require 'spec_helper' + +module BugReport600 + class ExampleClass + def self.method_that_uses_define_method + define_method "defined_method" do |attributes| + load_address(address, attributes) + end + end + end + + describe "stubbing a class method" do + it "should work" do + ExampleClass.should_receive(:define_method).with("defined_method") + ExampleClass.method_that_uses_define_method + end + + it "should restore the original method" do + ExampleClass.method_that_uses_define_method + end + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/bug_report_7611_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/bug_report_7611_spec.rb new file mode 100644 index 0000000..ff1ef87 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/bug_report_7611_spec.rb @@ -0,0 +1,19 @@ +require 'spec_helper' + +module Bug7611 + class Foo + end + + class Bar < Foo + end + + describe "A Partial Mock" do + it "should respect subclasses" do + Foo.stub!(:new).and_return(Object.new) + end + + it "should" do + Bar.new.class.should == Bar + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/bug_report_7805_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/bug_report_7805_spec.rb new file mode 100644 index 0000000..9a3d493 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/bug_report_7805_spec.rb @@ -0,0 +1,22 @@ +require 'spec_helper' + +module Bug7805 + #This is really a duplicate of 8302 + + describe "Stubs should correctly restore module methods" do + it "1 - stub the open method" do + File.stub!(:open).and_return("something") + File.open.should == "something" + end + it "2 - use File.open to create example.txt" do + filename = "#{File.dirname(__FILE__)}/example-#{Time.new.to_i}.txt" + File.exist?(filename).should be_false + file = File.open(filename,'w') + file.close + File.exist?(filename).should be_true + File.delete(filename) + File.exist?(filename).should be_false + end + end + +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/bug_report_8165_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/bug_report_8165_spec.rb new file mode 100644 index 0000000..8d8d017 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/bug_report_8165_spec.rb @@ -0,0 +1,31 @@ +require 'spec_helper' + +describe "An object where respond_to? is true and does not have method" do + # When should_receive(:sym) is sent to any object, the Proxy sends + # respond_to?(:sym) to that object to see if the method should be proxied. + # + # If respond_to? itself is proxied, then when the Proxy sends respond_to? + # to the object, the proxy is invoked and responds yes (if so set in the spec). + # When the object does NOT actually respond to :sym, an exception is thrown + # when trying to proxy it. + # + # The fix was to keep track of whether :respond_to? had been proxied and, if + # so, call the munged copy of :respond_to? on the object. + + it "should not raise an exception for Object" do + obj = Object.new + obj.should_receive(:respond_to?).with(:foobar).and_return(true) + obj.should_receive(:foobar).and_return(:baz) + obj.respond_to?(:foobar).should be_true + obj.foobar.should == :baz + end + + it "should not raise an exception for mock" do + obj = mock("obj") + obj.should_receive(:respond_to?).with(:foobar).and_return(true) + obj.should_receive(:foobar).and_return(:baz) + obj.respond_to?(:foobar).should be_true + obj.foobar.should == :baz + end + +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/bug_report_8302_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/bug_report_8302_spec.rb new file mode 100644 index 0000000..55d8d3a --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/bug_report_8302_spec.rb @@ -0,0 +1,26 @@ +require 'spec_helper' + +module Bug8302 + class Foo + def Foo.class_method(arg) + end + + def instance_bar(arg) + end + end + + describe "Bug report 8302:" do + it "class method is not restored correctly when proxied" do + Foo.should_not_receive(:class_method).with(Array.new) + Foo.rspec_verify + Foo.class_method(Array.new) + end + + it "instance method is not restored correctly when proxied" do + foo = Foo.new + foo.should_not_receive(:instance_bar).with(Array.new) + foo.rspec_verify + foo.instance_bar(Array.new) + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/bug_report_830_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/bug_report_830_spec.rb new file mode 100644 index 0000000..ed16f41 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/bug_report_830_spec.rb @@ -0,0 +1,21 @@ +require 'spec_helper' + +module Spec + module Mocks + describe 'Calling a method that catches StandardError' do + class Foo + def self.foo + bar + rescue StandardError + end + end + + it 'still reports mock failures' do + Foo.should_not_receive :bar + lambda do + Foo.foo + end.should raise_error(MockExpectationError) + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/double_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/double_spec.rb new file mode 100644 index 0000000..0d6ee98 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/double_spec.rb @@ -0,0 +1,12 @@ +require 'spec_helper' + +describe "double" do + it "is an alias for stub and mock" do + double().should be_a(Spec::Mocks::Mock) + end + + it "uses 'Double' in failure messages" do + double = double('name') + expect {double.foo}.to raise_error(/Double "name" received/) + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/failing_argument_matchers_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/failing_argument_matchers_spec.rb new file mode 100644 index 0000000..3074215 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/failing_argument_matchers_spec.rb @@ -0,0 +1,95 @@ +require 'spec_helper' + +module Spec + module Mocks + describe "failing MockArgumentMatchers" do + before(:each) do + @mock = mock("test mock") + @reporter = Mock.new("reporter", :null_object => true) + end + + after(:each) do + @mock.rspec_reset + end + + it "should reject non boolean" do + @mock.should_receive(:random_call).with(boolean()) + lambda do + @mock.random_call("false") + end.should raise_error(MockExpectationError) + end + + it "should reject non numeric" do + @mock.should_receive(:random_call).with(an_instance_of(Numeric)) + lambda do + @mock.random_call("1") + end.should raise_error(MockExpectationError) + end + + it "should reject non string" do + @mock.should_receive(:random_call).with(an_instance_of(String)) + lambda do + @mock.random_call(123) + end.should raise_error(MockExpectationError) + end + + it "should reject goose when expecting a duck" do + @mock.should_receive(:random_call).with(duck_type(:abs, :div)) + lambda { @mock.random_call("I don't respond to :abs or :div") }.should raise_error(MockExpectationError) + end + + it "should fail if regexp does not match submitted string" do + @mock.should_receive(:random_call).with(/bcd/) + lambda { @mock.random_call("abc") }.should raise_error(MockExpectationError) + end + + it "should fail if regexp does not match submitted regexp" do + @mock.should_receive(:random_call).with(/bcd/) + lambda { @mock.random_call(/bcde/) }.should raise_error(MockExpectationError) + end + + it "should fail for a hash w/ wrong values" do + @mock.should_receive(:random_call).with(:a => "b", :c => "d") + lambda do + @mock.random_call(:a => "b", :c => "e") + end.should raise_error(MockExpectationError, /Mock "test mock" received :random_call with unexpected arguments\n expected: \(\{(:a=>\"b\", :c=>\"d\"|:c=>\"d\", :a=>\"b\")\}\)\n got: \(\{(:a=>\"b\", :c=>\"e\"|:c=>\"e\", :a=>\"b\")\}\)/) + end + + it "should fail for a hash w/ wrong keys" do + @mock.should_receive(:random_call).with(:a => "b", :c => "d") + lambda do + @mock.random_call("a" => "b", "c" => "d") + end.should raise_error(MockExpectationError, /Mock "test mock" received :random_call with unexpected arguments\n expected: \(\{(:a=>\"b\", :c=>\"d\"|:c=>\"d\", :a=>\"b\")\}\)\n got: \(\{(\"a\"=>\"b\", \"c\"=>\"d\"|\"c\"=>\"d\", \"a\"=>\"b\")\}\)/) + end + + it "should match against a Matcher" do + lambda do + @mock.should_receive(:msg).with(equal(3)) + @mock.msg(37) + end.should raise_error(MockExpectationError, "Mock \"test mock\" received :msg with unexpected arguments\n expected: (equal 3)\n got: (37)") + end + + it "should fail no_args with one arg" do + lambda do + @mock.should_receive(:msg).with(no_args) + @mock.msg(37) + end.should raise_error(MockExpectationError, "Mock \"test mock\" received :msg with unexpected arguments\n expected: (no args)\n got: (37)") + end + + it "should fail hash_including with missing key" do + lambda do + @mock.should_receive(:msg).with(hash_including(:a => 1)) + @mock.msg({}) + end.should raise_error(MockExpectationError, "Mock \"test mock\" received :msg with unexpected arguments\n expected: (hash_including(:a=>1))\n got: ({})") + end + + it "should fail with block matchers" do + lambda do + @mock.should_receive(:msg).with {|arg| arg.should == :received } + @mock.msg :no_msg_for_you + end.should raise_error(Spec::Expectations::ExpectationNotMetError, /expected: :received.*\s*.*got: :no_msg_for_you/) + end + + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/hash_including_matcher_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/hash_including_matcher_spec.rb new file mode 100644 index 0000000..d757f61 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/hash_including_matcher_spec.rb @@ -0,0 +1,90 @@ +require 'spec_helper' + +module Spec + module Mocks + module ArgumentMatchers + describe HashIncludingMatcher do + + it "should describe itself properly" do + HashIncludingMatcher.new(:a => 1).description.should == "hash_including(:a=>1)" + end + + describe "passing" do + it "should match the same hash" do + hash_including(:a => 1).should == {:a => 1} + end + + it "should match a hash with extra stuff" do + hash_including(:a => 1).should == {:a => 1, :b => 2} + end + + describe "when matching against other matchers" do + it "should match an int against anything()" do + hash_including(:a => anything, :b => 2).should == {:a => 1, :b => 2} + end + + it "should match a string against anything()" do + hash_including(:a => anything, :b => 2).should == {:a => "1", :b => 2} + end + end + + describe "when passed only keys or keys mixed with key/value pairs" do + it "should match if the key is present" do + hash_including(:a).should == {:a => 1, :b => 2} + end + + it "should match if more keys are present" do + hash_including(:a, :b).should == {:a => 1, :b => 2, :c => 3} + end + + it "should match a string against a given key" do + hash_including(:a).should == {:a => "1", :b => 2} + end + + it "should match if passed one key and one key/value pair" do + hash_including(:a, :b => 2).should == {:a => 1, :b => 2} + end + + it "should match if passed many keys and one key/value pair" do + hash_including(:a, :b, :c => 3).should == {:a => 1, :b => 2, :c => 3, :d => 4} + end + + it "should match if passed many keys and many key/value pairs" do + hash_including(:a, :b, :c => 3, :e => 5).should == {:a => 1, :b => 2, :c => 3, :d => 4, :e => 5} + end + end + end + + describe "failing" do + it "should not match a non-hash" do + hash_including(:a => 1).should_not == 1 + end + + it "should not match a hash with a missing key" do + hash_including(:a => 1).should_not == {:b => 2} + end + + it "should not match a hash with a missing key" do + hash_including(:a).should_not == {:b => 2} + end + + it "should not match an empty hash with a given key" do + hash_including(:a).should_not == {} + end + + it "should not match a hash with a missing key when one pair is matching" do + hash_including(:a, :b => 2).should_not == {:b => 2} + end + + it "should not match a hash with an incorrect value" do + hash_including(:a => 1, :b => 2).should_not == {:a => 1, :b => 3} + end + + it "should not match when values are nil but keys are different" do + hash_including(:a => nil).should_not == {:b => nil} + end + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/hash_not_including_matcher_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/hash_not_including_matcher_spec.rb new file mode 100644 index 0000000..9df69fe --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/hash_not_including_matcher_spec.rb @@ -0,0 +1,67 @@ +require 'spec_helper' + +module Spec + module Mocks + module ArgumentMatchers + describe HashNotIncludingMatcher do + + it "should describe itself properly" do + HashNotIncludingMatcher.new(:a => 5).description.should == "hash_not_including(:a=>5)" + end + + describe "passing" do + it "should match a hash without the specified key" do + hash_not_including(:c).should == {:a => 1, :b => 2} + end + + it "should match a hash with the specified key, but different value" do + hash_not_including(:b => 3).should == {:a => 1, :b => 2} + end + + it "should match a hash without the specified key, given as anything()" do + hash_not_including(:c => anything).should == {:a => 1, :b => 2} + end + + it "should match an empty hash" do + hash_not_including(:a).should == {} + end + + it "should match a hash without any of the specified keys" do + hash_not_including(:a, :b, :c).should == { :d => 7} + end + + end + + describe "failing" do + it "should not match a non-hash" do + hash_not_including(:a => 1).should_not == 1 + end + + it "should not match a hash with a specified key" do + hash_not_including(:b).should_not == {:b => 2} + end + + it "should not match a hash with the specified key/value pair" do + hash_not_including(:b => 2).should_not == {:a => 1, :b => 2} + end + + it "should not match a hash with the specified key" do + hash_not_including(:a, :b => 3).should_not == {:a => 1, :b => 2} + end + + it "should not match a hash with one of the specified keys" do + hash_not_including(:a, :b).should_not == {:b => 2} + end + + it "should not match a hash with some of the specified keys" do + hash_not_including(:a, :b, :c).should_not == {:a => 1, :b => 2} + end + + it "should not match a hash with one key/value pair included" do + hash_not_including(:a, :b, :c, :d => 7).should_not == { :d => 7} + end + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/mock_ordering_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/mock_ordering_spec.rb new file mode 100644 index 0000000..4bd1547 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/mock_ordering_spec.rb @@ -0,0 +1,94 @@ +require 'spec_helper' + +module Spec + module Mocks + + describe "Mock ordering" do + + before do + @mock = mock("test mock") + end + + after do + @mock.rspec_reset + end + + it "should pass two calls in order" do + @mock.should_receive(:one).ordered + @mock.should_receive(:two).ordered + @mock.one + @mock.two + @mock.rspec_verify + end + + it "should pass three calls in order" do + @mock.should_receive(:one).ordered + @mock.should_receive(:two).ordered + @mock.should_receive(:three).ordered + @mock.one + @mock.two + @mock.three + @mock.rspec_verify + end + + it "should fail if second call comes first" do + @mock.should_receive(:one).ordered + @mock.should_receive(:two).ordered + lambda do + @mock.two + end.should raise_error(MockExpectationError, "Mock \"test mock\" received :two out of order") + end + + it "should fail if third call comes first" do + @mock.should_receive(:one).ordered + @mock.should_receive(:two).ordered + @mock.should_receive(:three).ordered + @mock.one + lambda do + @mock.three + end.should raise_error(MockExpectationError, "Mock \"test mock\" received :three out of order") + end + + it "should fail if third call comes second" do + @mock.should_receive(:one).ordered + @mock.should_receive(:two).ordered + @mock.should_receive(:three).ordered + @mock.one + lambda do + @mock.three + end.should raise_error(MockExpectationError, "Mock \"test mock\" received :three out of order") + end + + it "should ignore order of non ordered calls" do + @mock.should_receive(:ignored_0) + @mock.should_receive(:ordered_1).ordered + @mock.should_receive(:ignored_1) + @mock.should_receive(:ordered_2).ordered + @mock.should_receive(:ignored_2) + @mock.should_receive(:ignored_3) + @mock.should_receive(:ordered_3).ordered + @mock.should_receive(:ignored_4) + @mock.ignored_3 + @mock.ordered_1 + @mock.ignored_0 + @mock.ordered_2 + @mock.ignored_4 + @mock.ignored_2 + @mock.ordered_3 + @mock.ignored_1 + @mock.rspec_verify + end + + it "should pass when duplicates exist" do + @mock.should_receive(:a).ordered + @mock.should_receive(:b).ordered + @mock.should_receive(:a).ordered + + @mock.a + @mock.b + @mock.a + end + + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/mock_space_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/mock_space_spec.rb new file mode 100644 index 0000000..8782393 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/mock_space_spec.rb @@ -0,0 +1,54 @@ +require 'spec_helper' +require 'spec/mocks' + +module Spec + module Mocks + describe Space do + before :each do + @space = Space.new + klazz = Class.new do + def rspec_verify + @verified = true + end + def verified? + @verified + end + def rspec_reset + @reset = true + end + def reset? + @reset + end + end + @m1 = klazz.new + @m2 = klazz.new + end + it "should verify all mocks within" do + @space.add(@m1) + @space.add(@m2) + @space.verify_all + @m1.should be_verified + @m2.should be_verified + end + it "should reset all mocks within" do + @space.add(m1 = mock("mock1")) + @space.add(m2 = mock("mock2")) + m1.should_receive(:rspec_reset) + m2.should_receive(:rspec_reset) + @space.reset_all + end + it "should clear internal mocks on reset_all" do + @space.add(m = mock("mock")) + @space.reset_all + @space.instance_eval { mocks.empty? }.should be_true + end + it "should only add an instance once" do + @space.add(m1 = mock("mock1")) + @space.add(m1) + m1.should_receive(:rspec_verify) + @space.verify_all + end + end + end +end + diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/mock_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/mock_spec.rb new file mode 100644 index 0000000..9c636a3 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/mock_spec.rb @@ -0,0 +1,594 @@ +require 'spec_helper' + +module Spec + module Mocks + describe Mock do + treats_method_missing_as_private :subject => Mock.new, :noop => false + + before(:each) do + @mock = mock("test mock") + end + + after(:each) do + @mock.rspec_reset + end + + describe "deprecated #stub_everything method" do + before(:each) do + Kernel.stub!(:warn) + end + + it "creates a mock that behaves as a null object" do + stub_everything.should be_null_object + end + + it "provides deprecation warning" do + Kernel.should_receive(:warn).with(/DEPRECATION: stub_everything.* is deprecated./) + stub_everything + end + end + + it "should report line number of expectation of unreceived message" do + expected_error_line = __LINE__; @mock.should_receive(:wont_happen).with("x", 3) + begin + @mock.rspec_verify + violated + rescue MockExpectationError => e + # NOTE - this regexp ended w/ $, but jruby adds extra info at the end of the line + e.backtrace[0].should match(/#{File.basename(__FILE__)}:#{expected_error_line}/) + end + end + + it "should report line number of expectation of unreceived message after #should_receive after similar stub" do + @mock.stub!(:wont_happen) + expected_error_line = __LINE__; @mock.should_receive(:wont_happen).with("x", 3) + begin + @mock.rspec_verify + violated + rescue MockExpectationError => e + # NOTE - this regexp ended w/ $, but jruby adds extra info at the end of the line + e.backtrace[0].should match(/#{File.basename(__FILE__)}:#{expected_error_line}/) + end + end + + it "should pass when not receiving message specified as not to be received" do + @mock.should_not_receive(:not_expected) + @mock.rspec_verify + end + + it "should pass when receiving message specified as not to be received with different args" do + @mock.should_not_receive(:message).with("unwanted text") + @mock.should_receive(:message).with("other text") + @mock.message "other text" + @mock.rspec_verify + end + + it "should fail when receiving message specified as not to be received" do + @mock.should_not_receive(:not_expected) + lambda { + @mock.not_expected + violated + }.should raise_error(MockExpectationError, "Mock \"test mock\" expected :not_expected with (no args) 0 times, but received it once") + end + + it "should fail when receiving message specified as not to be received with args" do + @mock.should_not_receive(:not_expected).with("unexpected text") + lambda { + @mock.not_expected("unexpected text") + violated + }.should raise_error(MockExpectationError, "Mock \"test mock\" expected :not_expected with (\"unexpected text\") 0 times, but received it once") + end + + it "should pass when receiving message specified as not to be received with wrong args" do + @mock.should_not_receive(:not_expected).with("unexpected text") + @mock.not_expected "really unexpected text" + @mock.rspec_verify + end + + it "should allow block to calculate return values" do + @mock.should_receive(:something).with("a","b","c").and_return { |a,b,c| c+b+a } + @mock.something("a","b","c").should == "cba" + @mock.rspec_verify + end + + it "should allow parameter as return value" do + @mock.should_receive(:something).with("a","b","c").and_return("booh") + @mock.something("a","b","c").should == "booh" + @mock.rspec_verify + end + + it "should return nil if no return value set" do + @mock.should_receive(:something).with("a","b","c") + @mock.something("a","b","c").should be_nil + @mock.rspec_verify + end + + it "should raise exception if args don't match when method called" do + @mock.should_receive(:something).with("a","b","c").and_return("booh") + lambda { + @mock.something("a","d","c") + violated + }.should raise_error(MockExpectationError, "Mock \"test mock\" received :something with unexpected arguments\n expected: (\"a\", \"b\", \"c\")\n got: (\"a\", \"d\", \"c\")") + end + + it "should raise exception if args don't match when method called even when the method is stubbed" do + @mock.stub!(:something) + @mock.should_receive(:something).with("a","b","c") + lambda { + @mock.something("a","d","c") + @mock.rspec_verify + }.should raise_error(MockExpectationError, "Mock \"test mock\" received :something with unexpected arguments\n expected: (\"a\", \"b\", \"c\")\n got: ([\"a\", \"d\", \"c\"])") + end + + it "should raise exception if args don't match when method called even when using null_object" do + @mock = mock("test mock", :null_object => true) + @mock.should_receive(:something).with("a","b","c") + lambda { + @mock.something("a","d","c") + @mock.rspec_verify + }.should raise_error(MockExpectationError, "Mock \"test mock\" received :something with unexpected arguments\n expected: (\"a\", \"b\", \"c\")\n got: ([\"a\", \"d\", \"c\"])") + end + + it "should fail if unexpected method called" do + lambda { + @mock.something("a","b","c") + violated + }.should raise_error(MockExpectationError, "Mock \"test mock\" received unexpected message :something with (\"a\", \"b\", \"c\")") + end + + it "should use block for expectation if provided" do + @mock.should_receive(:something) do | a, b | + a.should == "a" + b.should == "b" + "booh" + end + @mock.something("a", "b").should == "booh" + @mock.rspec_verify + end + + it "should fail if expectation block fails" do + @mock.should_receive(:something) {| bool | bool.should be_true} + lambda { + @mock.something false + }.should raise_error(MockExpectationError, /Mock "test mock" received :something but passed block failed with: expected true, got false/) + end + + it "should fail right away when method defined as never is received" do + @mock.should_receive(:not_expected).never + lambda { + @mock.not_expected + }.should raise_error(MockExpectationError, "Mock \"test mock\" expected :not_expected with (no args) 0 times, but received it once") + end + + it "should eventually fail when method defined as never is received" do + @mock.should_receive(:not_expected).never + lambda { + @mock.not_expected + }.should raise_error(MockExpectationError, "Mock \"test mock\" expected :not_expected with (no args) 0 times, but received it once") + end + + it "should raise when told to" do + @mock.should_receive(:something).and_raise(RuntimeError) + lambda do + @mock.something + end.should raise_error(RuntimeError) + end + + it "should raise passed an Exception instance" do + error = RuntimeError.new("error message") + @mock.should_receive(:something).and_raise(error) + lambda { + @mock.something + }.should raise_error(RuntimeError, "error message") + end + + it "should raise RuntimeError with passed message" do + @mock.should_receive(:something).and_raise("error message") + lambda { + @mock.something + }.should raise_error(RuntimeError, "error message") + end + + it "should not raise when told to if args dont match" do + @mock.should_receive(:something).with(2).and_raise(RuntimeError) + lambda { + @mock.something 1 + }.should raise_error(MockExpectationError) + end + + it "should throw when told to" do + @mock.should_receive(:something).and_throw(:blech) + lambda { + @mock.something + }.should throw_symbol(:blech) + end + + it "should raise when explicit return and block constrained" do + lambda { + @mock.should_receive(:fruit) do |colour| + :strawberry + end.and_return :apple + }.should raise_error(AmbiguousReturnError) + end + + it "should ignore args on any args" do + @mock.should_receive(:something).at_least(:once).with(any_args) + @mock.something + @mock.something 1 + @mock.something "a", 2 + @mock.something [], {}, "joe", 7 + @mock.rspec_verify + end + + it "should fail on no args if any args received" do + @mock.should_receive(:something).with(no_args()) + lambda { + @mock.something 1 + }.should raise_error(MockExpectationError, "Mock \"test mock\" received :something with unexpected arguments\n expected: (no args)\n got: (1)") + end + + it "should fail when args are expected but none are received" do + @mock.should_receive(:something).with(1) + lambda { + @mock.something + }.should raise_error(MockExpectationError, "Mock \"test mock\" received :something with unexpected arguments\n expected: (1)\n got: (no args)") + end + + it "should return value from block by default" do + @mock.stub!(:method_that_yields).and_yield + @mock.method_that_yields { :returned_obj }.should == :returned_obj + @mock.rspec_verify + end + + it "should yield 0 args to blocks that take a variable number of arguments" do + @mock.should_receive(:yield_back).with(no_args()).once.and_yield + a = nil + @mock.yield_back {|*x| a = x} + a.should == [] + @mock.rspec_verify + end + + it "should yield 0 args multiple times to blocks that take a variable number of arguments" do + @mock.should_receive(:yield_back).once.with(no_args()).once.and_yield. + and_yield + a = nil + b = [] + @mock.yield_back {|*a| b << a} + b.should == [ [], [] ] + @mock.rspec_verify + end + + it "should yield one arg to blocks that take a variable number of arguments" do + @mock.should_receive(:yield_back).with(no_args()).once.and_yield(99) + a = nil + @mock.yield_back {|*x| a = x} + a.should == [99] + @mock.rspec_verify + end + + it "should yield one arg 3 times consecutively to blocks that take a variable number of arguments" do + @mock.should_receive(:yield_back).once.with(no_args()).once.and_yield(99). + and_yield(43). + and_yield("something fruity") + a = nil + b = [] + @mock.yield_back {|*a| b << a} + b.should == [[99], [43], ["something fruity"]] + @mock.rspec_verify + end + + it "should yield many args to blocks that take a variable number of arguments" do + @mock.should_receive(:yield_back).with(no_args()).once.and_yield(99, 27, "go") + a = nil + @mock.yield_back {|*x| a = x} + a.should == [99, 27, "go"] + @mock.rspec_verify + end + + it "should yield many args 3 times consecutively to blocks that take a variable number of arguments" do + @mock.should_receive(:yield_back).once.with(no_args()).once.and_yield(99, :green, "go"). + and_yield("wait", :amber). + and_yield("stop", 12, :red) + a = nil + b = [] + @mock.yield_back {|*a| b << a} + b.should == [[99, :green, "go"], ["wait", :amber], ["stop", 12, :red]] + @mock.rspec_verify + end + + it "should yield single value" do + @mock.should_receive(:yield_back).with(no_args()).once.and_yield(99) + a = nil + @mock.yield_back {|x| a = x} + a.should == 99 + @mock.rspec_verify + end + + it "should yield single value 3 times consecutively" do + @mock.should_receive(:yield_back).once.with(no_args()).once.and_yield(99). + and_yield(43). + and_yield("something fruity") + a = nil + b = [] + @mock.yield_back {|a| b << a} + b.should == [99, 43, "something fruity"] + @mock.rspec_verify + end + + it "should yield two values" do + @mock.should_receive(:yield_back).with(no_args()).once.and_yield('wha', 'zup') + a, b = nil + @mock.yield_back {|x,y| a=x; b=y} + a.should == 'wha' + b.should == 'zup' + @mock.rspec_verify + end + + it "should yield two values 3 times consecutively" do + @mock.should_receive(:yield_back).once.with(no_args()).once.and_yield('wha', 'zup'). + and_yield('not', 'down'). + and_yield(14, 65) + a, b = nil + c = [] + @mock.yield_back {|a,b| c << [a, b]} + c.should == [['wha', 'zup'], ['not', 'down'], [14, 65]] + @mock.rspec_verify + end + + it "should fail when calling yielding method with wrong arity" do + @mock.should_receive(:yield_back).with(no_args()).once.and_yield('wha', 'zup') + lambda { + @mock.yield_back {|a|} + }.should raise_error(MockExpectationError, "Mock \"test mock\" yielded |\"wha\", \"zup\"| to block with arity of 1") + end + + it "should fail when calling yielding method consecutively with wrong arity" do + @mock.should_receive(:yield_back).once.with(no_args()).once.and_yield('wha', 'zup'). + and_yield('down'). + and_yield(14, 65) + lambda { + a, b = nil + c = [] + @mock.yield_back {|a,b| c << [a, b]} + }.should raise_error(MockExpectationError, "Mock \"test mock\" yielded |\"down\"| to block with arity of 2") + end + + it "should fail when calling yielding method without block" do + @mock.should_receive(:yield_back).with(no_args()).once.and_yield('wha', 'zup') + lambda { + @mock.yield_back + }.should raise_error(MockExpectationError, "Mock \"test mock\" asked to yield |[\"wha\", \"zup\"]| but no block was passed") + end + + it "should be able to mock send" do + @mock.should_receive(:send).with(any_args) + @mock.send 'hi' + @mock.rspec_verify + end + + it "should be able to raise from method calling yielding mock" do + @mock.should_receive(:yield_me).and_yield 44 + + lambda { + @mock.yield_me do |x| + raise "Bang" + end + }.should raise_error(StandardError, "Bang") + + @mock.rspec_verify + end + + it "should clear expectations after verify" do + @mock.should_receive(:foobar) + @mock.foobar + @mock.rspec_verify + lambda { + @mock.foobar + }.should raise_error(MockExpectationError, "Mock \"test mock\" received unexpected message :foobar with (no args)") + end + + it "should restore objects to their original state on rspec_reset" do + mock = mock("this is a mock") + mock.should_receive(:blah) + mock.rspec_reset + mock.rspec_verify #should throw if reset didn't work + end + + it "should work even after method_missing starts raising NameErrors instead of NoMethodErrors" do + # Object#method_missing throws either NameErrors or NoMethodErrors. + # + # On a fresh ruby program Object#method_missing: + # * raises a NoMethodError when called directly + # * raises a NameError when called indirectly + # + # Once Object#method_missing has been called at least once (on any object) + # it starts behaving differently: + # * raises a NameError when called directly + # * raises a NameError when called indirectly + # + # There was a bug in Mock#method_missing that relied on the fact + # that calling Object#method_missing directly raises a NoMethodError. + # This example tests that the bug doesn't exist anymore. + + + # Ensures that method_missing always raises NameErrors. + a_method_that_doesnt_exist rescue + + + @mock.should_receive(:foobar) + @mock.foobar + @mock.rspec_verify + + lambda { @mock.foobar }.should_not raise_error(NameError) + lambda { @mock.foobar }.should raise_error(MockExpectationError) + end + + it "should temporarily replace a method stub on a mock" do + @mock.stub!(:msg).and_return(:stub_value) + @mock.should_receive(:msg).with(:arg).and_return(:mock_value) + @mock.msg(:arg).should equal(:mock_value) + @mock.msg.should equal(:stub_value) + @mock.msg.should equal(:stub_value) + @mock.rspec_verify + end + + it "should not require a different signature to replace a method stub" do + @mock.stub!(:msg).and_return(:stub_value) + @mock.should_receive(:msg).and_return(:mock_value) + @mock.msg(:arg).should equal(:mock_value) + @mock.msg.should equal(:stub_value) + @mock.msg.should equal(:stub_value) + @mock.rspec_verify + end + + it "should raise an error when a previously stubbed method has a negative expectation" do + @mock.stub!(:msg).and_return(:stub_value) + @mock.should_not_receive(:msg).and_return(:mock_value) + lambda {@mock.msg(:arg)}.should raise_error(MockExpectationError) + end + + it "should temporarily replace a method stub on a non-mock" do + non_mock = Object.new + non_mock.stub!(:msg).and_return(:stub_value) + non_mock.should_receive(:msg).with(:arg).and_return(:mock_value) + non_mock.msg(:arg).should equal(:mock_value) + non_mock.msg.should equal(:stub_value) + non_mock.msg.should equal(:stub_value) + non_mock.rspec_verify + end + + it "should return the stubbed value when no new value specified" do + @mock.stub!(:msg).and_return(:stub_value) + @mock.should_receive(:msg) + @mock.msg.should equal(:stub_value) + @mock.rspec_verify + end + + it "should not mess with the stub's yielded values when also mocked" do + @mock.stub!(:yield_back).and_yield(:stub_value) + @mock.should_receive(:yield_back).and_yield(:mock_value) + @mock.yield_back{|v| v.should == :mock_value } + @mock.yield_back{|v| v.should == :stub_value } + @mock.rspec_verify + end + + it "should yield multiple values after a similar stub" do + File.stub!(:open).and_yield(:stub_value) + File.should_receive(:open).and_yield(:first_call).and_yield(:second_call) + yielded_args = [] + File.open {|v| yielded_args << v } + yielded_args.should == [:first_call, :second_call] + File.open {|v| v.should == :stub_value } + File.rspec_verify + end + + it "should assign stub return values" do + mock = Mock.new('name', :message => :response) + mock.message.should == :response + end + + end + + describe "a mock message receiving a block" do + before(:each) do + @mock = mock("mock") + @calls = 0 + end + + def add_call + @calls = @calls + 1 + end + + it "should call the block after #should_receive" do + @mock.should_receive(:foo) { add_call } + + @mock.foo + + @calls.should == 1 + end + + it "should call the block after #should_receive after a similar stub" do + @mock.stub!(:foo).and_return(:bar) + @mock.should_receive(:foo) { add_call } + + @mock.foo + + @calls.should == 1 + end + + it "should call the block after #once" do + @mock.should_receive(:foo).once { add_call } + + @mock.foo + + @calls.should == 1 + end + + it "should call the block after #twice" do + @mock.should_receive(:foo).twice { add_call } + + @mock.foo + @mock.foo + + @calls.should == 2 + end + + it "should call the block after #times" do + @mock.should_receive(:foo).exactly(10).times { add_call } + + (1..10).each { @mock.foo } + + @calls.should == 10 + end + + it "should call the block after #any_number_of_times" do + @mock.should_receive(:foo).any_number_of_times { add_call } + + (1..7).each { @mock.foo } + + @calls.should == 7 + end + + it "should call the block after #ordered" do + @mock.should_receive(:foo).ordered { add_call } + @mock.should_receive(:bar).ordered { add_call } + + @mock.foo + @mock.bar + + @calls.should == 2 + end + end + + describe 'string representation generated by #to_s' do + it 'should not contain < because that might lead to invalid HTML in some situations' do + mock = mock("Dog") + valid_html_str = "#{mock}" + valid_html_str.should_not include('<') + end + end + + describe "mock created with no name" do + it "should not use a name in a failure message" do + mock = mock() + expect {mock.foo}.to raise_error(/Mock received/) + end + + it "should respond to initially stubbed methods" do + mock = mock(:foo => "woo", :bar => "car") + mock.foo.should == "woo" + mock.bar.should == "car" + end + end + + describe "==" do + it "sends '== self' to the comparison object" do + first = mock('first') + second = mock('second') + + first.should_receive(:==).with(second) + second == first + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/multiple_return_value_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/multiple_return_value_spec.rb new file mode 100644 index 0000000..08a6b06 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/multiple_return_value_spec.rb @@ -0,0 +1,113 @@ +require 'spec_helper' + +module Spec + module Mocks + describe "a Mock expectation with multiple return values and no specified count" do + before(:each) do + @mock = Mock.new("mock") + @return_values = ["1",2,Object.new] + @mock.should_receive(:message).and_return(@return_values[0],@return_values[1],@return_values[2]) + end + + it "should return values in order to consecutive calls" do + @mock.message.should == @return_values[0] + @mock.message.should == @return_values[1] + @mock.message.should == @return_values[2] + @mock.rspec_verify + end + + it "should complain when there are too few calls" do + third = Object.new + @mock.message.should == @return_values[0] + @mock.message.should == @return_values[1] + lambda { @mock.rspec_verify }.should raise_error(MockExpectationError, "Mock \"mock\" expected :message with (any args) 3 times, but received it twice") + end + + it "should complain when there are too many calls" do + third = Object.new + @mock.message.should == @return_values[0] + @mock.message.should == @return_values[1] + @mock.message.should == @return_values[2] + @mock.message.should == @return_values[2] + lambda { @mock.rspec_verify }.should raise_error(MockExpectationError, "Mock \"mock\" expected :message with (any args) 3 times, but received it 4 times") + end + end + + describe "a Mock expectation with multiple return values with a specified count equal to the number of values" do + before(:each) do + @mock = Mock.new("mock") + @return_values = ["1",2,Object.new] + @mock.should_receive(:message).exactly(3).times.and_return(@return_values[0],@return_values[1],@return_values[2]) + end + + it "should return values in order to consecutive calls" do + @mock.message.should == @return_values[0] + @mock.message.should == @return_values[1] + @mock.message.should == @return_values[2] + @mock.rspec_verify + end + + it "should complain when there are too few calls" do + third = Object.new + @mock.message.should == @return_values[0] + @mock.message.should == @return_values[1] + lambda { @mock.rspec_verify }.should raise_error(MockExpectationError, "Mock \"mock\" expected :message with (any args) 3 times, but received it twice") + end + + it "should complain when there are too many calls" do + third = Object.new + @mock.message.should == @return_values[0] + @mock.message.should == @return_values[1] + @mock.message.should == @return_values[2] + @mock.message.should == @return_values[2] + lambda { @mock.rspec_verify }.should raise_error(MockExpectationError, "Mock \"mock\" expected :message with (any args) 3 times, but received it 4 times") + end + end + + describe "a Mock expectation with multiple return values specifying at_least less than the number of values" do + before(:each) do + @mock = Mock.new("mock") + @mock.should_receive(:message).at_least(:twice).with(no_args).and_return(11, 22) + end + + it "should use last return value for subsequent calls" do + @mock.message.should equal(11) + @mock.message.should equal(22) + @mock.message.should equal(22) + @mock.rspec_verify + end + + it "should fail when called less than the specified number" do + @mock.message.should equal(11) + lambda { @mock.rspec_verify }.should raise_error(MockExpectationError, "Mock \"mock\" expected :message with (no args) twice, but received it once") + end + end + describe "a Mock expectation with multiple return values with a specified count larger than the number of values" do + before(:each) do + @mock = Mock.new("mock") + @mock.should_receive(:message).exactly(3).times.and_return(11, 22) + end + + it "should use last return value for subsequent calls" do + @mock.message.should equal(11) + @mock.message.should equal(22) + @mock.message.should equal(22) + @mock.rspec_verify + end + + it "should fail when called less than the specified number" do + @mock.message.should equal(11) + lambda { @mock.rspec_verify }.should raise_error(MockExpectationError, "Mock \"mock\" expected :message with (any args) 3 times, but received it once") + end + + it "should fail when called greater than the specified number" do + @mock.message.should equal(11) + @mock.message.should equal(22) + @mock.message.should equal(22) + @mock.message.should equal(22) + lambda { @mock.rspec_verify }.should raise_error(MockExpectationError, "Mock \"mock\" expected :message with (any args) 3 times, but received it 4 times") + end + end + end +end + diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/nil_expectation_warning_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/nil_expectation_warning_spec.rb new file mode 100644 index 0000000..f8f72ba --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/nil_expectation_warning_spec.rb @@ -0,0 +1,53 @@ +require 'spec_helper' + +module Spec + module Mocks + + describe "an expectation set on nil" do + + it "should issue a warning with file and line number information" do + expected_warning = %r%An expectation of :foo was set on nil. Called from #{__FILE__}:#{__LINE__+3}(:in `block \(2 levels\) in ')?. Use allow_message_expectations_on_nil to disable warnings.% + Kernel.should_receive(:warn).with(expected_warning) + + nil.should_receive(:foo) + nil.foo + end + + it "should issue a warning when the expectation is negative" do + Kernel.should_receive(:warn) + + nil.should_not_receive(:foo) + end + + it "should not issue a warning when expectations are set to be allowed" do + allow_message_expectations_on_nil + Kernel.should_not_receive(:warn) + + nil.should_receive(:foo) + nil.should_not_receive(:bar) + nil.foo + end + + end + + describe "#allow_message_expectations_on_nil" do + + it "should not effect subsequent examples" do + example_group = Class.new(::Spec::Example::ExampleGroupDouble) + example_group.it("when called in one example that doesn't end up setting an expectation on nil") do + allow_message_expectations_on_nil + end + example_group.it("should not effect the next exapmle ran") do + Kernel.should_receive(:warn) + nil.should_receive(:foo) + nil.foo + end + + example_group.run(Spec::Runner.options).should be_true + + end + + end + + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/null_object_mock_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/null_object_mock_spec.rb new file mode 100644 index 0000000..8af6b49 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/null_object_mock_spec.rb @@ -0,0 +1,54 @@ +require 'spec_helper' + +module Spec + module Mocks + describe "a mock acting as a NullObject" do + before(:each) do + @mock = Mock.new("null_object", :null_object => true) + end + + it "should allow explicit expectation" do + @mock.should_receive(:something) + @mock.something + end + + it "should fail verification when explicit exception not met" do + lambda do + @mock.should_receive(:something) + @mock.rspec_verify + end.should raise_error(MockExpectationError) + end + + it "should ignore unexpected methods" do + @mock.random_call("a", "d", "c") + @mock.rspec_verify + end + + it "should expected message with different args first" do + @mock.should_receive(:message).with(:expected_arg) + @mock.message(:unexpected_arg) + @mock.message(:expected_arg) + end + + it "should expected message with different args second" do + @mock.should_receive(:message).with(:expected_arg) + @mock.message(:expected_arg) + @mock.message(:unexpected_arg) + end + end + + describe "#null_object?" do + it "should default to false" do + obj = mock('anything') + obj.should_not be_null_object + end + end + + describe "#as_null_object" do + it "should set the object to null_object" do + obj = mock('anything').as_null_object + obj.should be_null_object + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/once_counts_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/once_counts_spec.rb new file mode 100644 index 0000000..9512983 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/once_counts_spec.rb @@ -0,0 +1,53 @@ +require 'spec_helper' + +module Spec + module Mocks + describe "OnceCounts" do + before(:each) do + @mock = mock("test mock") + end + + it "once should fail when called once with wrong args" do + @mock.should_receive(:random_call).once.with("a", "b", "c") + lambda do + @mock.random_call("d", "e", "f") + end.should raise_error(MockExpectationError) + @mock.rspec_reset + end + + it "once should fail when called twice" do + @mock.should_receive(:random_call).once + @mock.random_call + @mock.random_call + lambda do + @mock.rspec_verify + end.should raise_error(MockExpectationError) + end + + it "once should fail when not called" do + @mock.should_receive(:random_call).once + lambda do + @mock.rspec_verify + end.should raise_error(MockExpectationError) + end + + it "once should pass when called once" do + @mock.should_receive(:random_call).once + @mock.random_call + @mock.rspec_verify + end + + it "once should pass when called once with specified args" do + @mock.should_receive(:random_call).once.with("a", "b", "c") + @mock.random_call("a", "b", "c") + @mock.rspec_verify + end + + it "once should pass when called once with unspecified args" do + @mock.should_receive(:random_call).once + @mock.random_call("a", "b", "c") + @mock.rspec_verify + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/options_hash_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/options_hash_spec.rb new file mode 100644 index 0000000..f827578 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/options_hash_spec.rb @@ -0,0 +1,35 @@ +require 'spec_helper' + +module Spec + module Mocks + describe "calling :should_receive with an options hash" do + it "should report the file and line submitted with :expected_from" do + begin + mock = Spec::Mocks::Mock.new("a mock") + mock.should_receive(:message, :expected_from => "/path/to/blah.ext:37") + mock.rspec_verify + rescue Exception => e + ensure + e.backtrace.to_s.should =~ /\/path\/to\/blah.ext:37/m + end + end + + it "should use the message supplied with :message" do + lambda { + m = Spec::Mocks::Mock.new("a mock") + m.should_receive(:message, :message => "recebi nada") + m.rspec_verify + }.should raise_error("recebi nada") + end + + it "should use the message supplied with :message after a similar stub" do + lambda { + m = Spec::Mocks::Mock.new("a mock") + m.stub!(:message) + m.should_receive(:message, :message => "from mock") + m.rspec_verify + }.should raise_error("from mock") + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/partial_mock_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/partial_mock_spec.rb new file mode 100644 index 0000000..c19ecd3 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/partial_mock_spec.rb @@ -0,0 +1,164 @@ +require 'spec_helper' + +module Spec + module Mocks + describe "using a Partial Mock," do + before(:each) do + @object = Object.new + end + + it "should name the class in the failure message" do + @object.should_receive(:foo) + lambda do + @object.rspec_verify + end.should raise_error(Spec::Mocks::MockExpectationError, / expected/) + end + + it "should name the class in the failure message when expectation is on class" do + Object.should_receive(:foo) + lambda do + Object.rspec_verify + end.should raise_error(Spec::Mocks::MockExpectationError, //) + end + + it "should not conflict with @options in the object" do + @object.instance_eval { @options = Object.new } + @object.should_receive(:blah) + @object.blah + end + + it "should_not_receive should mock out the method" do + @object.should_not_receive(:fuhbar) + lambda do + @object.fuhbar + end.should raise_error(MockExpectationError, / expected :fuhbar with \(no args\) 0 times/) + end + + it "should_not_receive should return a negative message expectation" do + @object.should_not_receive(:foobar).should be_kind_of(NegativeMessageExpectation) + end + + it "should_receive should mock out the method" do + @object.should_receive(:foobar).with(:test_param).and_return(1) + @object.foobar(:test_param).should equal(1) + end + + it "should_receive should handle a hash" do + @object.should_receive(:foobar).with(:key => "value").and_return(1) + @object.foobar(:key => "value").should equal(1) + end + + it "should_receive should handle an inner hash" do + hash = {:a => {:key => "value"}} + @object.should_receive(:foobar).with(:key => "value").and_return(1) + @object.foobar(hash[:a]).should equal(1) + end + + it "should_receive should return a message expectation" do + @object.should_receive(:foobar).should be_kind_of(MessageExpectation) + @object.foobar + end + + it "should_receive should verify method was called" do + @object.should_receive(:foobar).with(:test_param).and_return(1) + lambda do + @object.rspec_verify + end.should raise_error(Spec::Mocks::MockExpectationError) + end + + it "should_receive should also take a String argument" do + @object.should_receive('foobar') + @object.foobar + end + + it "should_not_receive should also take a String argument" do + @object.should_not_receive('foobar') + lambda do + @object.foobar + end.should raise_error(Spec::Mocks::MockExpectationError) + end + + it "should use report nil in the error message" do + allow_message_expectations_on_nil + + @this_will_resolve_to_nil.should_receive(:foobar) + lambda do + @this_will_resolve_to_nil.rspec_verify + end.should raise_error(Spec::Mocks::MockExpectationError, /nil expected :foobar with/) + end + end + + describe "Partially mocking an object that defines ==, after another mock has been defined" do + before(:each) do + stub("existing mock", :foo => :foo) + end + + class PartiallyMockedEquals + attr_reader :val + def initialize(val) + @val = val + end + + def ==(other) + @val == other.val + end + end + + it "should not raise an error when stubbing the object" do + o = PartiallyMockedEquals.new :foo + lambda { o.stub!(:bar) }.should_not raise_error(NoMethodError) + end + end + + describe "Method visibility when using partial mocks" do + class MockableClass + def public_method + private_method + protected_method + end + protected + def protected_method; end + private + def private_method; end + end + + before(:each) do + @object = MockableClass.new + end + + it 'should keep public methods public' do + @object.should_receive(:public_method) + with_ruby('1.9') do + @object.public_methods.should include(:public_method) + end + with_ruby('1.8') do + @object.public_methods.should include('public_method') + end + @object.public_method + end + + it 'should keep private methods private' do + @object.should_receive(:private_method) + with_ruby('1.9') do + @object.private_methods.should include(:private_method) + end + with_ruby('1.8') do + @object.private_methods.should include('private_method') + end + @object.public_method + end + + it 'should keep protected methods protected' do + @object.should_receive(:protected_method) + with_ruby('1.9') do + @object.protected_methods.should include(:protected_method) + end + with_ruby('1.8') do + @object.protected_methods.should include('protected_method') + end + @object.public_method + end + + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb new file mode 100644 index 0000000..a69aa6a --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb @@ -0,0 +1,66 @@ +require 'spec_helper' + +module Spec +module Mocks +describe "PartialMockUsingMocksDirectly" do + before(:each) do + + klass=Class.new + klass.class_eval do + def existing_method + :original_value + end + end + @obj = klass.new + + end + + # See http://rubyforge.org/tracker/index.php?func=detail&aid=10263&group_id=797&atid=3149 + # specify "should clear expectations on verify" do + # @obj.should_receive(:msg) + # @obj.msg + # @obj.rspec_verify + # lambda do + # @obj.msg + # end.should raise_error(NoMethodError) + # + # end + it "should fail when expected message is not received" do + @obj.should_receive(:msg) + lambda do + @obj.rspec_verify + end.should raise_error(MockExpectationError) + + end + it "should fail when message is received with incorrect args" do + @obj.should_receive(:msg).with(:correct_arg) + lambda do + @obj.msg(:incorrect_arg) + end.should raise_error(MockExpectationError) + @obj.msg(:correct_arg) + + end + it "should pass when expected message is received" do + @obj.should_receive(:msg) + @obj.msg + @obj.rspec_verify + + end + it "should pass when message is received with correct args" do + @obj.should_receive(:msg).with(:correct_arg) + @obj.msg(:correct_arg) + @obj.rspec_verify + + end + it "should revert to original method if existed" do + @obj.existing_method.should equal(:original_value) + @obj.should_receive(:existing_method).and_return(:mock_value) + @obj.existing_method.should equal(:mock_value) + @obj.rspec_verify + @obj.existing_method.should equal(:original_value) + + end + +end +end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/passing_argument_matchers_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/passing_argument_matchers_spec.rb new file mode 100644 index 0000000..a364df0 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/passing_argument_matchers_spec.rb @@ -0,0 +1,145 @@ +require 'spec_helper' + +module Spec + module Mocks + describe "mock argument matchers", :shared => true do + before(:each) do + @mock = Mock.new("test mock") + Kernel.stub!(:warn) + end + + after(:each) do + @mock.rspec_verify + end + end + + describe Methods, "handling argument matchers" do + it_should_behave_like "mock argument matchers" + + it "should accept true as boolean()" do + @mock.should_receive(:random_call).with(boolean()) + @mock.random_call(true) + end + + it "should accept false as boolean()" do + @mock.should_receive(:random_call).with(boolean()) + @mock.random_call(false) + end + + it "should accept fixnum as kind_of(Numeric)" do + @mock.should_receive(:random_call).with(kind_of(Numeric)) + @mock.random_call(1) + end + + it "should accept float as an_instance_of(Numeric)" do + @mock.should_receive(:random_call).with(kind_of(Numeric)) + @mock.random_call(1.5) + end + + it "accepts fixnum as instance_of(Fixnum)" do + @mock.should_receive(:random_call).with(instance_of(Fixnum)) + @mock.random_call(1) + end + + it "should NOT accept fixnum as instance_of(Numeric)" do + @mock.should_not_receive(:random_call).with(instance_of(Numeric)) + @mock.random_call(1) + end + + it "should NOT accept float as instance_of(Numeric)" do + @mock.should_not_receive(:random_call).with(instance_of(Numeric)) + @mock.random_call(1.5) + end + + it "should accept string as anything()" do + @mock.should_receive(:random_call).with("a", anything(), "c") + @mock.random_call("a", "whatever", "c") + end + + it "should match duck type with one method" do + @mock.should_receive(:random_call).with(duck_type(:length)) + @mock.random_call([]) + end + + it "should match duck type with two methods" do + @mock.should_receive(:random_call).with(duck_type(:abs, :div)) + @mock.random_call(1) + end + + it "should match no args against any_args()" do + @mock.should_receive(:random_call).with(any_args) + @mock.random_call() + end + + it "should match one arg against any_args()" do + @mock.should_receive(:random_call).with(any_args) + @mock.random_call("a string") + end + + it "should match no args against no_args()" do + @mock.should_receive(:random_call).with(no_args) + @mock.random_call() + end + + it "should match hash with hash_including same hash" do + @mock.should_receive(:random_call).with(hash_including(:a => 1)) + @mock.random_call(:a => 1) + end + + end + + describe Methods, "handling block matchers" do + it_should_behave_like "mock argument matchers" + + it "should match arguments against RSpec expectations" do + @mock.should_receive(:random_call).with {|arg1, arg2, arr, *rest| + arg1.should == 5 + arg2.should have_at_least(3).characters + arg2.should have_at_most(10).characters + arr.map {|i| i * 2}.should == [2,4,6] + rest.should == [:fee, "fi", 4] + } + @mock.random_call 5, "hello", [1,2,3], :fee, "fi", 4 + end + end + + describe Methods, "handling non-matcher arguments" do + + before(:each) do + @mock = Mock.new("test mock") + end + + it "should match non special symbol (can be removed when deprecated symbols are removed)" do + @mock.should_receive(:random_call).with(:some_symbol) + @mock.random_call(:some_symbol) + end + + it "should match string against regexp" do + @mock.should_receive(:random_call).with(/bcd/) + @mock.random_call("abcde") + end + + it "should match regexp against regexp" do + @mock.should_receive(:random_call).with(/bcd/) + @mock.random_call(/bcd/) + end + + it "should match against a hash submitted and received by value" do + @mock.should_receive(:random_call).with(:a => "a", :b => "b") + @mock.random_call(:a => "a", :b => "b") + end + + it "should match against a hash submitted by reference and received by value" do + opts = {:a => "a", :b => "b"} + @mock.should_receive(:random_call).with(opts) + @mock.random_call(:a => "a", :b => "b") + end + + it "should match against a hash submitted by value and received by reference" do + opts = {:a => "a", :b => "b"} + @mock.should_receive(:random_call).with(:a => "a", :b => "b") + @mock.random_call(opts) + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/precise_counts_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/precise_counts_spec.rb new file mode 100644 index 0000000..5b64ef2 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/precise_counts_spec.rb @@ -0,0 +1,52 @@ +require 'spec_helper' + +module Spec + module Mocks + describe "PreciseCounts" do + before(:each) do + @mock = mock("test mock") + end + + it "should fail when exactly n times method is called less than n times" do + @mock.should_receive(:random_call).exactly(3).times + @mock.random_call + @mock.random_call + lambda do + @mock.rspec_verify + end.should raise_error(MockExpectationError) + end + + it "should fail when exactly n times method is never called" do + @mock.should_receive(:random_call).exactly(3).times + lambda do + @mock.rspec_verify + end.should raise_error(MockExpectationError) + end + + it "should pass if exactly n times method is called exactly n times" do + @mock.should_receive(:random_call).exactly(3).times + @mock.random_call + @mock.random_call + @mock.random_call + @mock.rspec_verify + end + + it "should pass multiple calls with different args and counts" do + @mock.should_receive(:random_call).twice.with(1) + @mock.should_receive(:random_call).once.with(2) + @mock.random_call(1) + @mock.random_call(2) + @mock.random_call(1) + @mock.rspec_verify + end + + it "should pass mutiple calls with different args" do + @mock.should_receive(:random_call).once.with(1) + @mock.should_receive(:random_call).once.with(2) + @mock.random_call(1) + @mock.random_call(2) + @mock.rspec_verify + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/record_messages_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/record_messages_spec.rb new file mode 100644 index 0000000..bed2fbf --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/record_messages_spec.rb @@ -0,0 +1,26 @@ +require 'spec_helper' + +module Spec + module Mocks + describe "a mock" do + before(:each) do + @mock = mock("mock", :null_object => true) + end + it "should answer false for received_message? when no messages received" do + @mock.received_message?(:message).should be_false + end + it "should answer true for received_message? when message received" do + @mock.message + @mock.received_message?(:message).should be_true + end + it "should answer true for received_message? when message received with correct args" do + @mock.message 1,2,3 + @mock.received_message?(:message, 1,2,3).should be_true + end + it "should answer false for received_message? when message received with incorrect args" do + @mock.message 1,2,3 + @mock.received_message?(:message, 1,2).should be_false + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/stub_chain_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/stub_chain_spec.rb new file mode 100644 index 0000000..3536e17 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/stub_chain_spec.rb @@ -0,0 +1,42 @@ +require 'spec_helper' + +module Spec + module Mocks + describe "A chained method stub" do + before(:each) do + @subject = Object.new + end + + it "returns expected value from chaining only one method call" do + @subject.stub_chain(:msg1).and_return(:return_value) + @subject.msg1.should equal(:return_value) + end + + it "returns expected value from chaining two method calls" do + @subject.stub_chain(:msg1, :msg2).and_return(:return_value) + @subject.msg1.msg2.should equal(:return_value) + end + + it "returns expected value from chaining four method calls" do + @subject.stub_chain(:msg1, :msg2, :msg3, :msg4).and_return(:return_value) + @subject.msg1.msg2.msg3.msg4.should equal(:return_value) + end + + it "returns expected value from two chains with shared messages at the end" do + @subject.stub_chain(:msg1, :msg2, :msg3, :msg4).and_return(:first) + @subject.stub_chain(:msg5, :msg2, :msg3, :msg4).and_return(:second) + + @subject.msg1.msg2.msg3.msg4.should equal(:first) + @subject.msg5.msg2.msg3.msg4.should equal(:second) + end + + it "returns expected value from two chains with shared messages at the beginning" do + @subject.stub_chain(:msg1, :msg2, :msg3, :msg4).and_return(:first) + @subject.stub_chain(:msg1, :msg2, :msg3, :msg5).and_return(:second) + + @subject.msg1.msg2.msg3.msg4.should equal(:first) + @subject.msg1.msg2.msg3.msg5.should equal(:second) + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/stub_implementation_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/stub_implementation_spec.rb new file mode 100644 index 0000000..1487277 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/stub_implementation_spec.rb @@ -0,0 +1,31 @@ +require 'spec_helper' + +module Spec + module Mocks + describe "stub implementation" do + context "with no args" do + it "execs the block when called" do + obj = stub() + obj.stub(:foo) { :bar } + obj.foo.should == :bar + end + end + + context "with one arg" do + it "execs the block with that arg when called" do + obj = stub() + obj.stub(:foo) {|given| given} + obj.foo(:bar).should == :bar + end + end + + context "with variable args" do + it "execs the block when called" do + obj = stub() + obj.stub(:foo) {|*given| given.first} + obj.foo(:bar).should == :bar + end + end + end + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/stub_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/stub_spec.rb new file mode 100644 index 0000000..e0b7b26 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/stub_spec.rb @@ -0,0 +1,203 @@ +require 'spec_helper' + +module Spec + module Mocks + describe "A method stub" do + before(:each) do + @class = Class.new do + def self.existing_class_method + :original_value + end + + def existing_instance_method + :original_value + end + end + @instance = @class.new + @stub = Object.new + end + + [:stub!, :stub].each do |method| + context "using #{method}" do + it "should return expected value when expected message is received" do + @instance.send(method, :msg).and_return(:return_value) + @instance.msg.should equal(:return_value) + @instance.rspec_verify + end + end + end + + it "should ignore when expected message is received" do + @instance.stub!(:msg) + @instance.msg + lambda do + @instance.rspec_verify + end.should_not raise_error + end + + it "should ignore when message is received with args" do + @instance.stub!(:msg) + @instance.msg(:an_arg) + lambda do + @instance.rspec_verify + end.should_not raise_error + end + + it "should ignore when expected message is not received" do + @instance.stub!(:msg) + lambda do + @instance.rspec_verify + end.should_not raise_error + end + + it "should handle multiple stubbed methods" do + @instance.stub!(:msg1 => 1, :msg2 => 2) + @instance.msg1.should == 1 + @instance.msg2.should == 2 + end + + it "should clear itself when verified" do + @instance.stub!(:this_should_go).and_return(:blah) + @instance.this_should_go.should == :blah + @instance.rspec_verify + lambda do + @instance.this_should_go + end.should raise_error(NameError) + end + + it "should return values in order to consecutive calls" do + return_values = ["1",2,Object.new] + @instance.stub!(:msg).and_return(return_values[0],return_values[1],return_values[2]) + @instance.msg.should == return_values[0] + @instance.msg.should == return_values[1] + @instance.msg.should == return_values[2] + end + + it "should keep returning last value in consecutive calls" do + return_values = ["1",2,Object.new] + @instance.stub!(:msg).and_return(return_values[0],return_values[1],return_values[2]) + @instance.msg.should == return_values[0] + @instance.msg.should == return_values[1] + @instance.msg.should == return_values[2] + @instance.msg.should == return_values[2] + @instance.msg.should == return_values[2] + end + + it "should revert to original instance method if there is one" do + @instance.existing_instance_method.should equal(:original_value) + @instance.stub!(:existing_instance_method).and_return(:mock_value) + @instance.existing_instance_method.should equal(:mock_value) + @instance.rspec_verify + @instance.existing_instance_method.should equal(:original_value) + end + + it "should revert to original class method if there is one" do + @class.existing_class_method.should equal(:original_value) + @class.stub!(:existing_class_method).and_return(:mock_value) + @class.existing_class_method.should equal(:mock_value) + @class.rspec_verify + @class.existing_class_method.should equal(:original_value) + end + + it "should yield a specified object" do + @instance.stub!(:method_that_yields).and_yield(:yielded_obj) + current_value = :value_before + @instance.method_that_yields {|val| current_value = val} + current_value.should == :yielded_obj + @instance.rspec_verify + end + + it "should yield multiple times with multiple calls to and_yield" do + @instance.stub!(:method_that_yields_multiple_times).and_yield(:yielded_value). + and_yield(:another_value) + current_value = [] + @instance.method_that_yields_multiple_times {|val| current_value << val} + current_value.should == [:yielded_value, :another_value] + @instance.rspec_verify + end + + it "should yield a specified object and return another specified object" do + yielded_obj = mock("my mock") + yielded_obj.should_receive(:foo).with(:bar) + @instance.stub!(:method_that_yields_and_returns).and_yield(yielded_obj).and_return(:baz) + @instance.method_that_yields_and_returns { |o| o.foo :bar }.should == :baz + end + + it "should throw when told to" do + @mock.stub!(:something).and_throw(:up) + lambda do + @mock.something + end.should throw_symbol(:up) + end + + it "should override a pre-existing stub" do + @stub.stub!(:existing_instance_method).and_return(:updated_stub_value) + @stub.existing_instance_method.should == :updated_stub_value + end + + it "should limit " do + @stub.stub!(:foo).with("bar") + @stub.should_receive(:foo).with("baz") + @stub.foo("bar") + @stub.foo("baz") + end + + it "calculates return value by executing block passed to #and_return" do + @mock.stub!(:something).with("a","b","c").and_return { |a,b,c| c+b+a } + @mock.something("a","b","c").should == "cba" + @mock.rspec_verify + end + end + + describe "A method stub with args" do + before(:each) do + @stub = Object.new + @stub.stub!(:foo).with("bar") + end + + it "should not complain if not called" do + end + + it "should not complain if called with arg" do + @stub.foo("bar") + end + + it "should complain if called with no arg" do + lambda do + @stub.foo + end.should raise_error + end + + it "should complain if called with other arg" do + lambda do + @stub.foo("other") + end.should raise_error + end + + it "should not complain if also mocked w/ different args" do + @stub.should_receive(:foo).with("baz") + @stub.foo("bar") + @stub.foo("baz") + end + + it "should complain if also mocked w/ different args AND called w/ a 3rd set of args" do + @stub.should_receive(:foo).with("baz") + @stub.foo("bar") + @stub.foo("baz") + lambda do + @stub.foo("other") + end.should raise_error + end + + it "should support options" do + @stub.stub!(:foo, :expected_from => "bar") + end + + it "should use 'Stub' in the failure message" do + stub = stub('name') + expect {stub.foo}.to raise_error(/Stub "name" received/) + end + end + + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/stubbed_message_expectations_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/stubbed_message_expectations_spec.rb new file mode 100644 index 0000000..03c8fec --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/stubbed_message_expectations_spec.rb @@ -0,0 +1,26 @@ +require 'spec_helper' + +module Spec + module Mocks + describe "Example with stubbed and then called message" do + it "fails if the message is expected and then subsequently not called again" do + mock_obj = mock("mock", :msg => nil) + mock_obj.msg + mock_obj.should_receive(:msg) + lambda { mock_obj.rspec_verify }.should raise_error(Spec::Mocks::MockExpectationError) + end + + it "outputs arguments of all similar calls" do + m = mock('mock', :foo => true) + m.should_receive(:foo).with('first') + m.foo('second') + m.foo('third') + lambda do + m.rspec_verify + end.should raise_error(%Q|Mock "mock" received :foo with unexpected arguments\n expected: ("first")\n got: (["second"], ["third"])|) + m.rspec_reset + end + end + + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/twice_counts_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/twice_counts_spec.rb new file mode 100644 index 0000000..4538eb8 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/twice_counts_spec.rb @@ -0,0 +1,67 @@ +require 'spec_helper' + +module Spec + module Mocks + describe "TwiceCounts" do + before(:each) do + @mock = mock("test mock") + end + + it "twice should fail when call count is higher than expected" do + @mock.should_receive(:random_call).twice + @mock.random_call + @mock.random_call + @mock.random_call + lambda do + @mock.rspec_verify + end.should raise_error(MockExpectationError) + end + + it "twice should fail when call count is lower than expected" do + @mock.should_receive(:random_call).twice + @mock.random_call + lambda do + @mock.rspec_verify + end.should raise_error(MockExpectationError) + end + + it "twice should fail when called twice with wrong args on the first call" do + @mock.should_receive(:random_call).twice.with("1", 1) + lambda do + @mock.random_call(1, "1") + end.should raise_error(MockExpectationError) + @mock.rspec_reset + end + + it "twice should fail when called twice with wrong args on the second call" do + @mock.should_receive(:random_call).twice.with("1", 1) + @mock.random_call("1", 1) + lambda do + @mock.random_call(1, "1") + end.should raise_error(MockExpectationError) + @mock.rspec_reset + end + + it "twice should pass when called twice" do + @mock.should_receive(:random_call).twice + @mock.random_call + @mock.random_call + @mock.rspec_verify + end + + it "twice should pass when called twice with specified args" do + @mock.should_receive(:random_call).twice.with("1", 1) + @mock.random_call("1", 1) + @mock.random_call("1", 1) + @mock.rspec_verify + end + + it "twice should pass when called twice with unspecified args" do + @mock.should_receive(:random_call).twice + @mock.random_call("1") + @mock.random_call(1) + @mock.rspec_verify + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/unstub_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/unstub_spec.rb new file mode 100644 index 0000000..89e5ac3 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/mocks/unstub_spec.rb @@ -0,0 +1,127 @@ +require 'spec_helper' + +module Spec + module Mocks + describe Mock do + context "unstubbing a mock object with a stub" do + it "should remove the stub" do + a_mock = mock 'an object', :foo => :bar + + a_mock.unstub! :foo + a_mock.should_not respond_to(:foo) + end + end + + context "unstubbing a real object with a stub" do + before do + @obj = Object.new + end + + it "should raise a NoMethodError if the message is called after unstubbing" do + @obj.stub!(:foo).and_return :bar + @obj.unstub!(:foo) + + lambda { + @obj.foo + }.should raise_error(NoMethodError) + end + + it "should only clear the stub specified" do + @obj.stub!(:foo).and_return :bar + @obj.stub!(:other).and_return :baz + + @obj.unstub!(:foo) + + @obj.other.should == :baz + end + + it "should no longer respond_to? the method" do + @obj.stub!(:foo).and_return :bar + @obj.unstub!(:foo) + + @obj.should_not respond_to(:foo) + end + + it "should unstub using a string (should convert the string to a symbol)" do + @obj.stub!(:foo) + + @obj.unstub!("foo") + + @obj.should_not respond_to(:foo) + end + + it "should restore a previous method definition" do + def @obj.foo + :a_result + end + + @obj.stub!(:foo).and_return :stubbed_result + @obj.unstub!(:foo) + + @obj.foo.should == :a_result + end + + it "should have unstub as an alias of unstub!" do + @obj.stub!(:foo).and_return :bar + + @obj.unstub(:foo) + + lambda { + @obj.foo + }.should raise_error(NoMethodError) + end + + it "should raise a MockExpectationError if it is not stubbed" do + lambda { + @obj.unstub!(:foo) + }.should raise_error(MockExpectationError, "The method `foo` was not stubbed or was already unstubbed") + end + + it "should raise a MockExpectationError if it was already unstubbed" do + @obj.stub!(:foo) + @obj.unstub!(:foo) + + lambda { + @obj.unstub!(:foo) + }.should raise_error(MockExpectationError, "The method `foo` was not stubbed or was already unstubbed") + end + + it "should use the correct message name in the error" do + @obj.stub!(:bar) + @obj.unstub!(:bar) + + lambda { + @obj.unstub!(:bar) + }.should raise_error(MockExpectationError, "The method `bar` was not stubbed or was already unstubbed") + end + + it "should raise a MockExpectationError if the method is defined, but not stubbed" do + def @obj.meth; end + + lambda { + @obj.unstub!(:meth) + }.should raise_error(MockExpectationError) + end + + it "should be able to restub a after unstubbing" do + @obj.stub!(:foo).and_return :bar + + @obj.unstub!(:foo) + + @obj.stub!(:foo).and_return :baz + + @obj.foo.should == :baz + end + + it "should remove only the first stub if multiple stubs have been defined" do + @obj.stub!(:foo).and_return :first + @obj.stub!(:foo).and_return :second + + @obj.unstub!(:foo) + + @obj.foo.should == :first + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/package/bin_spec_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/package/bin_spec_spec.rb new file mode 100644 index 0000000..6628fad --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/package/bin_spec_spec.rb @@ -0,0 +1,16 @@ +require 'spec_helper' +require 'ruby_forker' + +describe "The bin/spec script" do + include RubyForker + + it "should have no warnings" do + output = ruby "-w -Ilib bin/spec --help" + output.should_not =~ /warning/n + end + + it "should show the help w/ no args" do + output = ruby "-w -Ilib bin/spec" + output.should =~ /^Usage: spec/ + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/rake/spectask_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/rake/spectask_spec.rb new file mode 100644 index 0000000..ea834ba --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/rake/spectask_spec.rb @@ -0,0 +1,150 @@ +require 'spec_helper' +require 'spec/rake/spectask' + +module Spec + module Rake + + class MockTask + class << self + attr_accessor :last_instance, :last_cmd + end + + def self.tasks + @tasks ||= {} + end + + def self.reset_tasks + @tasks = {} + end + + def self.task(name) + tasks[name] + end + + def self.register_task(name, block) + tasks[name] = block + end + + def initialize(name, &block) + MockTask.register_task(name, block) + MockTask.last_instance = block + end + + def self.create_task(name, &block) + new(name, &block) + end + end + + class SpecTask + def task(name, &block) + MockTask.create_task(name, &block) + end + + def system(cmd) + MockTask.last_cmd = cmd + true + end + + def default_ruby_path + RUBY + end + end + + describe SpecTask do + + before(:each) do + MockTask.reset_tasks + end + + it "should execute rake's ruby path by default" do + task = SpecTask.new + MockTask.last_instance.call + MockTask.last_cmd.should match(/^#{task.default_ruby_path} /) + end + + it "should execute the command with system if ruby_cmd is specified" do + task = SpecTask.new {|t| t.ruby_cmd = "path_to_multiruby"} + task.should_receive(:system).and_return(true) + MockTask.last_instance.call + end + + it "should execute the ruby_cmd path if specified" do + SpecTask.new {|t| t.ruby_cmd = "path_to_multiruby"} + MockTask.last_instance.call + MockTask.last_cmd.should match(/^path_to_multiruby /) + end + + it "should produce a deprecation warning if the out option is used" do + SpecTask.new {|t| t.out = "somewhere_over_the_rainbow"} + STDERR.should_receive(:puts).with("The Spec::Rake::SpecTask#out attribute is DEPRECATED and will be removed in a future version. Use --format FORMAT:WHERE instead.") + MockTask.last_instance.call + end + + it "should produce an error if failure_message is set and the command fails" do + task = SpecTask.new {|t| t.failure_message = "oops"; t.fail_on_error = false} + STDERR.should_receive(:puts).with("oops") + task.stub(:system).and_return(false) + MockTask.last_instance.call + end + + it "should raise if fail_on_error is set and the command fails" do + task = SpecTask.new + task.stub(:system).and_return(false) + lambda {MockTask.last_instance.call}.should raise_error + end + + it "should not raise if fail_on_error is not set and the command fails" do + task = SpecTask.new {|t| t.fail_on_error = false} + task.stub(:system).and_return(false) + lambda {MockTask.last_instance.call}.should_not raise_error + end + + context "with ENV['SPEC'] set" do + before(:each) do + @orig_env_spec = ENV['SPEC'] + ENV['SPEC'] = 'foo.rb' + end + after(:each) do + ENV['SPEC'] = @orig_env_spec + end + it "should use the provided file list" do + task = SpecTask.new + task.spec_file_list.should == ["foo.rb"] + end + end + + context "with the rcov option" do + + it "should create a clobber_rcov task" do + MockTask.stub!(:create_task) + MockTask.should_receive(:create_task).with(:clobber_rcov) + SpecTask.new(:rcov) {|t| t.rcov = true} + end + + it "should setup the clobber_rcov task to remove the rcov directory" do + task = SpecTask.new(:rcov) {|t| t.rcov = true; t.rcov_dir = "path_to_rcov_directory"} + task.should_receive(:rm_r).with("path_to_rcov_directory") + MockTask.task(:clobber_rcov).call + end + + it "should make the clobber task depend on clobber_rcov" do + MockTask.stub!(:create_task) + MockTask.should_receive(:create_task).with(:clobber => [:clobber_rcov]) + SpecTask.new(:rcov) {|t| t.rcov = true} + end + + it "should make the rcov task depend on clobber_rcov" do + MockTask.stub!(:create_task) + MockTask.should_receive(:create_task).with(:rcov => :clobber_rcov) + SpecTask.new(:rcov) {|t| t.rcov = true} + end + + it "creates an rcov options list" do + MockTask.stub!(:create_task) + task = SpecTask.new(:rcov) {|t| t.rcov = true, t.rcov_opts = ['a','b']} + task.rcov_option_list.should == "a b" + end + end + end + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/class_and_argument_parser_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/class_and_argument_parser_spec.rb new file mode 100644 index 0000000..1168818 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/class_and_argument_parser_spec.rb @@ -0,0 +1,23 @@ +require 'spec_helper' + +module Spec + module Runner + describe ClassAndArgumentsParser, ".parse" do + + it "should use a single : to separate class names from arguments" do + ClassAndArgumentsParser.parse('Foo').should == ['Foo', nil] + ClassAndArgumentsParser.parse('Foo:arg').should == ['Foo', 'arg'] + ClassAndArgumentsParser.parse('Foo::Bar::Zap:arg').should == ['Foo::Bar::Zap', 'arg'] + ClassAndArgumentsParser.parse('Foo:arg1,arg2').should == ['Foo', 'arg1,arg2'] + ClassAndArgumentsParser.parse('Foo::Bar::Zap:arg1,arg2').should == ['Foo::Bar::Zap', 'arg1,arg2'] + ClassAndArgumentsParser.parse('Foo::Bar::Zap:drb://foo,drb://bar').should == ['Foo::Bar::Zap', 'drb://foo,drb://bar'] + end + + it "should raise an error when passed an empty string" do + lambda do + ClassAndArgumentsParser.parse('') + end.should raise_error("Couldn't parse \"\"") + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/command_line_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/command_line_spec.rb new file mode 100644 index 0000000..c22b306 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/command_line_spec.rb @@ -0,0 +1,141 @@ +require 'spec_helper' + +module Spec + module Runner + describe CommandLine, ".run" do + with_sandboxed_options do + attr_reader :err, :out + before do + @err = options.error_stream + @out = options.output_stream + end + + it "should run directory" do + file = File.dirname(__FILE__) + '/../../../examples/passing' + run_with(OptionParser.parse([file,"-p","**/*_spec.rb,**/*_example.rb"], @err, @out)) + + @out.rewind + @out.read.should =~ /\d+ examples, 0 failures, 3 pending/n + end + + it "should run file" do + file = File.dirname(__FILE__) + '/../../../examples/failing/predicate_example.rb' + run_with(OptionParser.parse([file], @err, @out)) + + @out.rewind + @out.read.should =~ /3 examples, 2 failures/n + end + + it "should raise when file does not exist" do + file = File.dirname(__FILE__) + '/doesntexist' + + lambda { + Spec::Runner::CommandLine.run(OptionParser.parse([file], @err, @out)) + }.should raise_error + end + + it "should return true when in --generate-options mode" do + # NOTE - this used to say /dev/null but jruby hangs on that for some reason + Spec::Runner::CommandLine.run( + OptionParser.parse(['--generate-options', '/tmp/foo'], @err, @out) + ).should be_true + end + + it "should dump even if Interrupt exception is occurred" do + example_group = Class.new(::Spec::Example::ExampleGroup) do + describe("example_group") + it "no error" do + end + + it "should interrupt" do + raise Interrupt, "I'm interrupting" + end + end + + options = ::Spec::Runner::Options.new(@err, @out) + ::Spec::Runner::Options.should_receive(:new).with(@err, @out).and_return(options) + options.reporter.should_receive(:dump) + options.add_example_group(example_group) + + Spec::Runner::CommandLine.run(OptionParser.parse([], @err, @out)) + end + + it "should heckle when options have heckle_runner" do + example_group = Class.new(::Spec::Example::ExampleGroup).describe("example_group") do + it "no error" do + end + end + options = ::Spec::Runner::Options.new(@err, @out) + ::Spec::Runner::Options.should_receive(:new).with(@err, @out).and_return(options) + options.add_example_group example_group + + heckle_runner = mock("heckle_runner") + heckle_runner.should_receive(:heckle_with) + $rspec_mocks.__send__(:mocks).delete(heckle_runner) + + options.heckle_runner = heckle_runner + options.add_example_group(example_group) + + Spec::Runner::CommandLine.run(OptionParser.parse([], @err, @out)) + heckle_runner.rspec_verify + end + + it "should run examples backwards if options.reverse is true" do + options = ::Spec::Runner::Options.new(@err, @out) + ::Spec::Runner::Options.should_receive(:new).with(@err, @out).and_return(options) + options.reverse = true + + b1 = Class.new(Spec::Example::ExampleGroup) + b2 = Class.new(Spec::Example::ExampleGroup) + + b2.should_receive(:run).ordered + b1.should_receive(:run).ordered + + options.add_example_group(b1) + options.add_example_group(b2) + + Spec::Runner::CommandLine.run(OptionParser.parse([], @err, @out)) + end + + it "should pass its ExampleGroup to the reporter" do + example_group = describe("example_group") do + it "should" do + end + end + options = ::Spec::Runner::Options.new(@err, @out) + options.add_example_group(example_group) + + ::Spec::Runner::Options.should_receive(:new).with(@err, @out).and_return(options) + options.reporter.should_receive(:add_example_group).with(Spec::Example::ExampleGroupProxy.new(example_group)) + + Spec::Runner::CommandLine.run(OptionParser.parse([], @err, @out)) + end + + it "runs only selected Examples when options.examples is set" do + options = ::Spec::Runner::Options.new(@err, @out) + ::Spec::Runner::Options.should_receive(:new).with(@err, @out).and_return(options) + + options.examples << "example group expected example" + expected_example_was_run = false + unexpected_example_was_run = false + example_group = describe("example group") do + it "expected example" do + expected_example_was_run = true + end + it "unexpected example" do + unexpected_example_was_run = true + end + end + + options.reporter.should_receive(:add_example_group).with(Spec::Example::ExampleGroupProxy.new(example_group)) + + options.add_example_group example_group + run_with(options) + + expected_example_was_run.should be_true + unexpected_example_was_run.should be_false + end + end + end + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/configuration_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/configuration_spec.rb new file mode 100644 index 0000000..ea545d6 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/configuration_spec.rb @@ -0,0 +1,320 @@ +require 'spec_helper' + +module Spec + module Runner + describe Configuration do + with_sandboxed_options do + with_sandboxed_config do + + describe "#mock_with" do + it "should default mock framework to rspec" do + config.mock_framework.should =~ /^spec\/adapters\/mock_frameworks\/rspec$/ + end + + it "should set rspec mocking explicitly" do + config.mock_with(:rspec) + config.mock_framework.should =~ /^spec\/adapters\/mock_frameworks\/rspec$/ + end + + it "should set mocha" do + config.mock_with(:mocha) + config.mock_framework.should =~ /^spec\/adapters\/mock_frameworks\/mocha$/ + end + + it "should set flexmock" do + config.mock_with(:flexmock) + config.mock_framework.should =~ /^spec\/adapters\/mock_frameworks\/flexmock$/ + end + + it "should set rr" do + config.mock_with(:rr) + config.mock_framework.should =~ /^spec\/adapters\/mock_frameworks\/rr$/ + end + + it "should set an arbitrary adapter module" do + adapter = Module.new + config.mock_with(adapter) + config.mock_framework.should == adapter + end + end + + describe "#include" do + + before(:each) do + @example_group_class = Class.new(::Spec::Example::ExampleGroupDouble) {} + Spec::Example::ExampleGroupFactory.register(:foobar, @example_group_class) + end + + it "should include the submitted module in ExampleGroup subclasses" do + mod = Module.new + config.include mod + Class.new(@example_group_class).included_modules.should include(mod) + end + + it "should scope modules to be included for a specific type" do + mod = Module.new + config.include mod, :type => :foobar + Class.new(@example_group_class).included_modules.should include(mod) + end + + it "should not include modules in a type they are not intended for" do + mod = Module.new + @other_example_group_class = Class.new(::Spec::Example::ExampleGroupDouble) + Spec::Example::ExampleGroupFactory.register(:baz, @other_example_group_class) + + config.include mod, :type => :foobar + + Class.new(@other_example_group_class).included_modules.should_not include(mod) + end + + it "accepts an Array of types" do + mod = Module.new + @other_example_group_class = Class.new(::Spec::Example::ExampleGroupDouble) + Spec::Example::ExampleGroupFactory.register(:baz, @other_example_group_class) + + config.include mod, :type => [:foobar, :baz] + + Class.new(@example_group_class).included_modules.should include(mod) + Class.new(@other_example_group_class).included_modules.should include(mod) + end + + end + + describe "#extend" do + + before(:each) do + @example_group_class = Class.new(::Spec::Example::ExampleGroupDouble) {} + Spec::Example::ExampleGroupFactory.register(:foobar, @example_group_class) + end + + it "should extend all groups" do + mod = Module.new + ExampleGroup.should_receive(:extend).with(mod) + Spec::Runner.configuration.extend mod + end + + it "should extend specified groups" do + mod = Module.new + @example_group_class.should_receive(:extend).with(mod) + Spec::Runner.configuration.extend mod, :type => :foobar + end + + it "should not extend non-specified groups" do + @other_example_group_class = Class.new(::Spec::Example::ExampleGroupDouble) + Spec::Example::ExampleGroupFactory.register(:baz, @other_example_group_class) + + mod = Module.new + @other_example_group_class.should_not_receive(:extend) + + Spec::Runner.configuration.extend mod, :type => :foobar + end + + end + end + + describe "ordering methods: " do + + before(:each) do + @special_example_group = Class.new(::Spec::Example::ExampleGroupDouble).describe("special_example_group") + @special_child_example_group = Class.new(@special_example_group).describe("special_child_example_group") + @nonspecial_example_group = Class.new(::Spec::Example::ExampleGroupDouble).describe("nonspecial_example_group") + Spec::Example::ExampleGroupFactory.register(:special, @special_example_group) + Spec::Example::ExampleGroupFactory.register(:special_child, @special_child_example_group) + Spec::Example::ExampleGroupFactory.register(:non_special, @nonspecial_example_group) + @example_group = @special_child_example_group.describe "Special Example Group" + @unselected_example_group = Class.new(@nonspecial_example_group).describe "Non Special Example Group" + end + + describe "#prepend_before" do + it "prepends the before block on all instances of the passed in type" do + order = [] + config.prepend_before(:all) do + order << :prepend__before_all + end + config.prepend_before(:all, :type => :special) do + order << :special_prepend__before_all + end + config.prepend_before(:all, :type => :special_child) do + order << :special_child_prepend__before_all + end + config.prepend_before(:each) do + order << :prepend__before_each + end + config.prepend_before(:each, :type => :special) do + order << :special_prepend__before_each + end + config.prepend_before(:each, :type => :special_child) do + order << :special_child_prepend__before_each + end + config.prepend_before(:all, :type => :non_special) do + order << :special_prepend__before_all + end + config.prepend_before(:each, :type => :non_special) do + order << :special_prepend__before_each + end + @example_group.it "calls prepend_before" do + end + + @example_group.run(options) + order.should == [ + :prepend__before_all, + :special_prepend__before_all, + :special_child_prepend__before_all, + :prepend__before_each, + :special_prepend__before_each, + :special_child_prepend__before_each + ] + end + end + + describe "#append_before" do + + it "calls append_before on the type" do + order = [] + config.append_before(:all) do + order << :append_before_all + end + config.append_before(:all, :type => :special) do + order << :special_append_before_all + end + config.append_before(:all, :type => :special_child) do + order << :special_child_append_before_all + end + config.append_before do # default is :each + order << :append_before_each + end + config.append_before(:each, :type => :special) do + order << :special_append_before_each + end + config.append_before(:each, :type => :special_child) do + order << :special_child_append_before_each + end + config.append_before(:all, :type => :non_special) do + order << :special_append_before_all + end + config.append_before(:each, :type => :non_special) do + order << :special_append_before_each + end + @example_group.it "calls append_before" do + end + + @example_group.run(options) + order.should == [ + :append_before_all, + :special_append_before_all, + :special_child_append_before_all, + :append_before_each, + :special_append_before_each, + :special_child_append_before_each + ] + end + end + + describe "#prepend_after" do + + it "prepends the after block on all instances of the passed in type" do + order = [] + config.prepend_after(:all) do + order << :prepend__after_all + end + config.prepend_after(:all, :type => :special) do + order << :special_prepend__after_all + end + config.prepend_after(:all, :type => :special) do + order << :special_child_prepend__after_all + end + config.prepend_after(:each) do + order << :prepend__after_each + end + config.prepend_after(:each, :type => :special) do + order << :special_prepend__after_each + end + config.prepend_after(:each, :type => :special) do + order << :special_child_prepend__after_each + end + config.prepend_after(:all, :type => :non_special) do + order << :special_prepend__after_all + end + config.prepend_after(:each, :type => :non_special) do + order << :special_prepend__after_each + end + @example_group.it "calls prepend_after" do + end + + @example_group.run(options) + order.should == [ + :special_child_prepend__after_each, + :special_prepend__after_each, + :prepend__after_each, + :special_child_prepend__after_all, + :special_prepend__after_all, + :prepend__after_all + ] + end + end + + describe "#append_after" do + + it "calls append_after on the type" do + order = [] + config.append_after(:all) do + order << :append__after_all + end + config.append_after(:all, :type => :special) do + order << :special_append__after_all + end + config.append_after(:all, :type => :special_child) do + order << :special_child_append__after_all + end + config.append_after(:each) do + order << :append__after_each + end + config.append_after(:each, :type => :special) do + order << :special_append__after_each + end + config.append_after(:each, :type => :special_child) do + order << :special_child_append__after_each + end + config.append_after(:all, :type => :non_special) do + order << :non_special_append_after_all + end + config.append_after(:each, :type => :non_special) do + order << :non_special_append_after_each + end + @example_group.it "calls append_after" do + end + + @example_group.run(options) + order.should == [ + :special_child_append__after_each, + :special_append__after_each, + :append__after_each, + :special_child_append__after_all, + :special_append__after_all, + :append__after_all + ] + end + + end + + describe "#ignore_backtrace_patterns" do + it "adds patterns to ignore in backtrace" do + config.ignore_backtrace_patterns /custom_pattern/, /shoulda/, /spork/ + config.ignored_backtrace_patterns.should include(/custom_pattern/) + config.ignored_backtrace_patterns.should include(/shoulda/) + config.ignored_backtrace_patterns.should include(/spork/) + end + end + + describe "#predicate_matchers (DEPRECATED)" do + it "is deprecated" do + Spec.should_receive(:deprecate) + config.predicate_matchers[:foo] = :bar? + end + end + + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/drb_command_line_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/drb_command_line_spec.rb new file mode 100644 index 0000000..0c17a7f --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/drb_command_line_spec.rb @@ -0,0 +1,107 @@ +require 'spec_helper' + +module Spec + module Runner + unless jruby? + describe DrbCommandLine do + + context "without server running" do + it "prints error" do + err = out = StringIO.new + DrbCommandLine.run(OptionParser.parse(['--version'], err, out)) + + err.rewind + err.read.should =~ /No server is running/ + end + + it "returns nil" do + err = out = StringIO.new + result = DrbCommandLine.run(OptionParser.parse(['--version'], err, out)) + result.should be_false + end + end + + context "with server running" do + class ::CommandLineForDrbSpec + def self.run(argv, stderr, stdout) + orig_options = Spec::Runner.options + tmp_options = Spec::Runner::OptionParser.parse(argv, stderr, stdout) + Spec::Runner.use tmp_options + Spec::Runner::CommandLine.run(tmp_options) + ensure + Spec::Runner.use orig_options + end + end + + before(:all) do + DRb.start_service("druby://127.0.0.1:8989", ::CommandLineForDrbSpec) + @@drb_example_file_counter = 0 + end + + before(:each) do + create_dummy_spec_file + @@drb_example_file_counter = @@drb_example_file_counter + 1 + end + + after(:each) do + File.delete(@dummy_spec_filename) + end + + after(:all) do + DRb.stop_service + end + + it "returns true" do + err = out = StringIO.new + result = DrbCommandLine.run(OptionParser.parse(['--version'], err, out)) + result.should be_true + end + + it "should run against local server" do + out = run_spec_via_druby(['--version']) + out.should =~ /rspec \d+\.\d+\.\d+.*/n + end + + it "should output green colorized text when running with --colour option" do + out = run_spec_via_druby(["--colour", @dummy_spec_filename]) + out.should =~ /\e\[32m/n + end + + it "should output red colorized text when running with -c option" do + out = run_spec_via_druby(["-c", @dummy_spec_filename]) + out.should =~ /\e\[31m/n + end + + def create_dummy_spec_file + @dummy_spec_filename = File.expand_path(File.dirname(__FILE__)) + "/_dummy_spec#{@@drb_example_file_counter}.rb" + File.open(@dummy_spec_filename, 'w') do |f| + f.write %{ + describe "DUMMY CONTEXT for 'DrbCommandLine with -c option'" do + it "should be output with green bar" do + true.should be_true + end + + it "should be output with red bar" do + violated("I want to see a red bar!") + end + end + } + end + end + + def run_spec_via_druby(argv) + err, out = StringIO.new, StringIO.new + out.instance_eval do + def tty?; true end + end + options = ::Spec::Runner::Options.new(err, out) + options.argv = argv + Spec::Runner::DrbCommandLine.run(options) + out.rewind; out.read + end + end + + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/empty_file.txt b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/empty_file.txt new file mode 100644 index 0000000..e69de29 diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/example_group_runner_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/example_group_runner_spec.rb new file mode 100644 index 0000000..2b1601a --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/example_group_runner_spec.rb @@ -0,0 +1,26 @@ +require 'spec_helper' + +module Spec + module Runner + describe ExampleGroupRunner do + before(:each) do + err = StringIO.new('') + out = StringIO.new('') + @options = Options.new(err, out) + @runner = Spec::Runner::ExampleGroupRunner.new(@options) + end + + after(:each) do + Spec::Expectations.differ = nil + end + + describe "#load_files" do + it "should load UTF-8 encoded files" do + file = File.expand_path(File.dirname(__FILE__) + "/resources/utf8_encoded.rb") + @options.files << file + @runner.load_files(@options.files_to_load).should == @options.files_to_load + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/examples.txt b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/examples.txt new file mode 100644 index 0000000..2fcbd35 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/examples.txt @@ -0,0 +1,2 @@ +Sir, if you were my husband, I would poison your drink. +Madam, if you were my wife, I would drink it. \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/failed.txt b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/failed.txt new file mode 100644 index 0000000..07c5442 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/failed.txt @@ -0,0 +1,3 @@ +heckler_spec.rb +command_line_spec.rb +reporter_spec.rb \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/base_formatter_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/base_formatter_spec.rb new file mode 100644 index 0000000..a904bf3 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/base_formatter_spec.rb @@ -0,0 +1,30 @@ +require 'spec_helper' + +module Spec + module Runner + module Formatter + describe BaseFormatter do + subject { BaseFormatter.new(nil,nil) } + it {should respond_to(:start ).with(1).argument } + it {should respond_to(:example_group_started).with(1).argument } + it {should respond_to(:example_started ).with(1).argument } + # -3 indicates that one of the arguments is optional, with a default + # value assigned. This is due to deprecated_pending_location. Once + # that is removed, this should be changed to 2. + it {should respond_to(:example_pending ).with(-3).arguments} + it {should respond_to(:example_passed ).with(1).argument } + it {should respond_to(:example_failed ).with(3).arguments} + it {should respond_to(:start_dump ).with(0).arguments} + it {should respond_to(:dump_failure ).with(2).arguments} + it {should respond_to(:dump_summary ).with(4).arguments} + it {should respond_to(:dump_pending ).with(0).arguments} + it {should respond_to(:close ).with(0).arguments} + + it "deprecates add_example_group" do + Spec.should_receive(:deprecate) + subject.add_example_group(stub('example group')) + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/base_text_formatter_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/base_text_formatter_spec.rb new file mode 100644 index 0000000..e3677ad --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/base_text_formatter_spec.rb @@ -0,0 +1,113 @@ +require 'spec_helper' +require 'spec/runner/formatter/base_text_formatter' + +module Spec + module Runner + module Formatter + describe BaseTextFormatter do + + before :all do + @sandbox = "spec/sandbox" + end + + it "should create the directory contained in WHERE if it does not exist" do + FileUtils.should_receive(:mkdir_p).with(@sandbox) + File.stub!(:open) + BaseTextFormatter.new({},"#{@sandbox}/temp.rb") + end + + context "(deprecations)" do + before(:each) do + Kernel.stub!(:warn) + @io = StringIO.new + @options = mock('options') + @options.stub!(:dry_run).and_return(false) + @options.stub!(:colour).and_return(false) + @options.stub!(:autospec).and_return(false) + @formatter = Class.new(BaseTextFormatter) do + def method_that_class_magenta(message) + magenta(message) + end + def method_that_class_colourise(message, failure) + colourise(message, failure) + end + end.new(@options, @io) + @failure = stub('failure', :pending_fixed? => false) + end + + context "#colourise" do + it "warns when subclasses call colourise" do + Spec.should_receive(:deprecate) + @formatter.method_that_class_colourise('this message', @failure) + end + + it "delegates to colorize_failure" do + @formatter.should_receive(:colorize_failure).with('this message', @failure) + @formatter.colourise('this message', @failure) + end + end + + context "#magenta" do + it "warns when subclasses call magenta" do + Spec.should_receive(:deprecate).with(/#magenta/) + @formatter.method_that_class_magenta('this message') + end + + it "delegates to red" do + @formatter.should_receive(:red).with('this message') + @formatter.method_that_class_magenta('this message') + end + end + + end + + describe "#colour (protected)" do + before(:each) do + @original_RSPEC_COLOR = ENV['RSPEC_COLOR'] + end + + it "does not colorize when output_to_file? returns true" do + out = StringIO.new + options = stub('options', :colour => true, :autospec => false) + formatter = BaseTextFormatter.new(options,out) + formatter.stub!(:output_to_tty?).and_return(true) + formatter.stub!(:output_to_file?).and_return(true) + formatter.__send__(:colour, 'foo', "\e[32m").should == "foo" + end + + it "colorizes when colour? and output_to_tty? return true" do + out = StringIO.new + options = stub('options', :colour => true, :autospec => false) + formatter = BaseTextFormatter.new(options,out) + formatter.stub!(:output_to_tty?).and_return(true) + formatter.__send__(:colour, 'foo', "\e[32m").should == "\e[32mfoo\e[0m" + end + + it "colorizes when ENV['RSPEC_COLOR'] is set even if colour? and output_to_tty? return false" do + out = StringIO.new + options = stub('options', :colour => false) + formatter = BaseTextFormatter.new(options,out) + formatter.stub!(:output_to_tty?).and_return(false) + + ENV['RSPEC_COLOR'] = 'true' + + formatter.__send__(:colour, 'foo', "\e[32m").should == "\e[32mfoo\e[0m" + end + + it "colorizes when autospec? is true even if colour? and output_to_tty? return false" do + out = StringIO.new + options = stub('options', :colour => true, :autospec => true) + formatter = BaseTextFormatter.new(options,out) + formatter.stub!(:output_to_tty?).and_return(false) + + formatter.__send__(:colour, 'foo', "\e[32m").should == "\e[32mfoo\e[0m" + end + + after(:each) do + ENV['RSPEC_COLOR'] = @original_RSPEC_COLOR + end + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb new file mode 100644 index 0000000..b390131 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb @@ -0,0 +1,45 @@ +require 'spec_helper' +require 'spec/runner/formatter/failing_example_groups_formatter' + +module Spec + module Runner + module Formatter + describe FailingExampleGroupsFormatter do + attr_reader :example_group, :formatter, :io + + before(:each) do + @io = StringIO.new + options = mock('options') + @formatter = FailingExampleGroupsFormatter.new(options, io) + @example_group = Class.new(::Spec::Example::ExampleGroup) + end + + it "should add example name for each failure" do + formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(Class.new(::Spec::Example::ExampleGroupDouble).describe("b 1"))) + formatter.example_failed("e 1", nil, Spec::Runner::Reporter::Failure.new("g", nil, RuntimeError.new)) + formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(Class.new(::Spec::Example::ExampleGroupDouble).describe("b 2"))) + formatter.example_failed("e 2", nil, Spec::Runner::Reporter::Failure.new("g", nil, RuntimeError.new)) + formatter.example_failed("e 3", nil, Spec::Runner::Reporter::Failure.new("g", nil, RuntimeError.new)) + io.string.should include("b 1") + io.string.should include("b 2") + end + + it "should delimit ExampleGroup superclass descriptions with :" do + parent_example_group = Class.new(example_group).describe("Parent") + child_example_group = Class.new(parent_example_group).describe("#child_method") + grand_child_example_group = Class.new(child_example_group).describe("GrandChild") + + formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(grand_child_example_group)) + formatter.example_failed("failure", nil, ::Spec::Runner::Reporter::Failure.new("g", nil, RuntimeError.new)) + io.string.should == "Parent#child_method GrandChild\n" + end + + it "should remove druby url, which is used by Spec::Distributed" do + @formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(Class.new(::Spec::Example::ExampleGroupDouble).describe("something something (druby://99.99.99.99:99)"))) + @formatter.example_failed("e 1", nil, ::Spec::Runner::Reporter::Failure.new("g", nil, RuntimeError.new)) + io.string.should == "something something\n" + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/failing_examples_formatter_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/failing_examples_formatter_spec.rb new file mode 100644 index 0000000..76d03fa --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/failing_examples_formatter_spec.rb @@ -0,0 +1,33 @@ +require 'spec_helper' +require 'spec/runner/formatter/failing_examples_formatter' + +module Spec + module Runner + module Formatter + describe FailingExamplesFormatter do + before(:each) do + @io = StringIO.new + options = mock('options') + @formatter = FailingExamplesFormatter.new(options, @io) + end + + it "should add example name for each failure" do + example_group_1 = Class.new(::Spec::Example::ExampleGroupDouble).describe("A") + example_group_2 = Class.new(example_group_1).describe("B") + + @formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(example_group_1)) + @formatter.example_failed(example_group_1.it("a1"){}, nil, ::Spec::Runner::Reporter::Failure.new("g", nil, RuntimeError.new)) + @formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(example_group_2)) + @formatter.example_failed(example_group_2.it("b2"){}, nil, ::Spec::Runner::Reporter::Failure.new("g", nil, RuntimeError.new)) + @formatter.example_failed(example_group_2.it("b3"){}, nil, ::Spec::Runner::Reporter::Failure.new("g", nil, RuntimeError.new)) + @io.string.should eql(<<-EOF +A a1 +A B b2 +A B b3 +EOF +) + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html new file mode 100644 index 0000000..029cee6 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html @@ -0,0 +1,377 @@ + + + + + RSpec results + + + + + + + + +
    + +
    +
    +

    RSpec Code Examples

    +
    + +
    +

     

    +

     

    +
    +
    + +
    +
    +
    +
    Mocker
    + +
    should be able to call mock()
    + + + +
    + should fail when expected message not received +
    +
    Mock "poke me" expected :poke with (any args) once, but received it 0 times
    +
    examples/failing/mocking_example.rb:11:
    +spec/spec_helper.rb:42:in `run_with'
    +./spec/spec/runner/formatter/html_formatter_spec.rb:41:
    +./spec/spec/runner/formatter/html_formatter_spec.rb:29:in `chdir'
    +./spec/spec/runner/formatter/html_formatter_spec.rb:29:
    +
    9  it "should fail when expected message not received" do
    +10    mock = mock("poke me")
    +11    mock.should_receive(:poke)
    +12  end
    +13  
    +
    +
    + +
    + should fail when messages are received out of order +
    +
    Mock "one two three" received :three out of order
    +
    examples/failing/mocking_example.rb:20:
    +spec/spec_helper.rb:42:in `run_with'
    +./spec/spec/runner/formatter/html_formatter_spec.rb:41:
    +./spec/spec/runner/formatter/html_formatter_spec.rb:29:in `chdir'
    +./spec/spec/runner/formatter/html_formatter_spec.rb:29:
    +
    18    mock.should_receive(:three).ordered
    +19    mock.one
    +20    mock.three
    +21    mock.two
    +22  end
    +
    +
    + +
    + should get yelled at when sending unexpected messages +
    +
    Mock "don't talk to me" expected :any_message_at_all with (no args) 0 times, but received it once
    +
    examples/failing/mocking_example.rb:27:
    +spec/spec_helper.rb:42:in `run_with'
    +./spec/spec/runner/formatter/html_formatter_spec.rb:41:
    +./spec/spec/runner/formatter/html_formatter_spec.rb:29:in `chdir'
    +./spec/spec/runner/formatter/html_formatter_spec.rb:29:
    +
    25    mock = mock("don't talk to me")
    +26    mock.should_not_receive(:any_message_at_all)
    +27    mock.any_message_at_all
    +28  end
    +
    +
    + +
    + has a bug we need to fix +
    +
    Expected pending 'here is the bug' to fail. No Error was raised.
    +
    examples/failing/mocking_example.rb:31:
    +spec/spec_helper.rb:42:in `run_with'
    +./spec/spec/runner/formatter/html_formatter_spec.rb:41:
    +./spec/spec/runner/formatter/html_formatter_spec.rb:29:in `chdir'
    +./spec/spec/runner/formatter/html_formatter_spec.rb:29:
    +
    29
    +30  it "has a bug we need to fix" do
    +31    pending "here is the bug" do
    +32      # Actually, no. It's fixed. This will fail because it passes :-)
    +33      mock = mock("Bug")
    +
    +
    +
    +
    +
    +
    +
    Running specs with --diff
    + + +
    + should print diff of different strings +
    +
    expected: "RSpec is a\nbehaviour driven development\nframework for Ruby\n",
    +     got: "RSpec is a\nbehavior driven development\nframework for Ruby\n" (using ==)
    +
    + Diff:
    +@@ -1,4 +1,4 @@
    + RSpec is a
    +-behaviour driven development
    ++behavior driven development
    + framework for Ruby
    +
    +
    examples/failing/diffing_spec.rb:13:
    +spec/spec_helper.rb:42:in `run_with'
    +./spec/spec/runner/formatter/html_formatter_spec.rb:41:
    +./spec/spec/runner/formatter/html_formatter_spec.rb:29:in `chdir'
    +./spec/spec/runner/formatter/html_formatter_spec.rb:29:
    +
    11framework for Ruby
    +12EOF
    +13    usa.should == uk
    +14  end
    +
    +
    + +
    + should print diff of different objects' pretty representation +
    +
    +expected <Animal
    +name=bob,
    +species=tortoise
    +>
    +
    +     got <Animal
    +name=bob,
    +species=giraffe
    +>
    +
    +
    +(compared using eql?)
    +
    +
    examples/failing/diffing_spec.rb:34:
    +spec/spec_helper.rb:42:in `run_with'
    +./spec/spec/runner/formatter/html_formatter_spec.rb:41:
    +./spec/spec/runner/formatter/html_formatter_spec.rb:29:in `chdir'
    +./spec/spec/runner/formatter/html_formatter_spec.rb:29:
    +
    32    expected = Animal.new "bob", "giraffe"
    +33    actual   = Animal.new "bob", "tortoise"
    +34    expected.should eql(actual)
    +35  end
    +36end
    +
    +
    +
    +
    +
    +
    +
    A consumer of a stub
    + +
    should be able to stub methods on any Object
    +
    +
    +
    +
    +
    A stubbed method on a class
    + +
    should return the stubbed value
    + +
    should revert to the original method after each spec
    + +
    can stub! and mock the same message
    +
    +
    +
    +
    +
    A mock
    + +
    can stub!
    + +
    can stub! and mock
    + +
    can stub! and mock the same message
    +
    +
    +
    +
    +
    pending example (using pending method)
    + + +
    should be reported as "PENDING: for some reason" (PENDING: for some reason)
    +
    +
    +
    +
    +
    pending example (with no block)
    + + +
    should be reported as "PENDING: Not Yet Implemented" (PENDING: Not Yet Implemented)
    +
    +
    +
    +
    +
    pending example (with block for pending)
    + + +
    should have a failing block, passed to pending, reported as "PENDING: for some reason" (PENDING: for some reason)
    +
    +
    + + +
    +
    + + diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/html_formatted-1.8.6.html b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/html_formatted-1.8.6.html new file mode 100644 index 0000000..1461d03 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/html_formatted-1.8.6.html @@ -0,0 +1,377 @@ + + + + + RSpec results + + + + + + + + +
    + +
    +
    +

    RSpec Code Examples

    +
    + +
    +

     

    +

     

    +
    +
    + +
    +
    +
    +
    Mocker
    + +
    should be able to call mock()
    + + + +
    + should fail when expected message not received +
    +
    Mock "poke me" expected :poke with (any args) once, but received it 0 times
    +
    ./examples/failing/mocking_example.rb:11:
    +./spec/spec_helper.rb:44:in `run_with'
    +./spec/spec/runner/formatter/html_formatter_spec.rb:41:
    +./spec/spec/runner/formatter/html_formatter_spec.rb:29:in `chdir'
    +./spec/spec/runner/formatter/html_formatter_spec.rb:29:
    +
    9  it "should fail when expected message not received" do
    +10    mock = mock("poke me")
    +11    mock.should_receive(:poke)
    +12  end
    +13  
    +
    +
    + +
    + should fail when messages are received out of order +
    +
    Mock "one two three" received :three out of order
    +
    ./examples/failing/mocking_example.rb:20:
    +./spec/spec_helper.rb:44:in `run_with'
    +./spec/spec/runner/formatter/html_formatter_spec.rb:41:
    +./spec/spec/runner/formatter/html_formatter_spec.rb:29:in `chdir'
    +./spec/spec/runner/formatter/html_formatter_spec.rb:29:
    +
    18    mock.should_receive(:three).ordered
    +19    mock.one
    +20    mock.three
    +21    mock.two
    +22  end
    +
    +
    + +
    + should get yelled at when sending unexpected messages +
    +
    Mock "don't talk to me" expected :any_message_at_all with (no args) 0 times, but received it once
    +
    ./examples/failing/mocking_example.rb:27:
    +./spec/spec_helper.rb:44:in `run_with'
    +./spec/spec/runner/formatter/html_formatter_spec.rb:41:
    +./spec/spec/runner/formatter/html_formatter_spec.rb:29:in `chdir'
    +./spec/spec/runner/formatter/html_formatter_spec.rb:29:
    +
    25    mock = mock("don't talk to me")
    +26    mock.should_not_receive(:any_message_at_all)
    +27    mock.any_message_at_all
    +28  end
    +
    +
    + +
    + has a bug we need to fix +
    +
    Expected pending 'here is the bug' to fail. No Error was raised.
    +
    ./examples/failing/mocking_example.rb:31:
    +./spec/spec_helper.rb:44:in `run_with'
    +./spec/spec/runner/formatter/html_formatter_spec.rb:41:
    +./spec/spec/runner/formatter/html_formatter_spec.rb:29:in `chdir'
    +./spec/spec/runner/formatter/html_formatter_spec.rb:29:
    +
    29
    +30  it "has a bug we need to fix" do
    +31    pending "here is the bug" do
    +32      # Actually, no. It's fixed. This will fail because it passes :-)
    +33      mock = mock("Bug")
    +
    +
    +
    +
    +
    +
    +
    Running specs with --diff
    + + +
    + should print diff of different strings +
    +
    expected: "RSpec is a\nbehaviour driven development\nframework for Ruby\n",
    +     got: "RSpec is a\nbehavior driven development\nframework for Ruby\n" (using ==)
    +
    + Diff:
    +@@ -1,4 +1,4 @@
    + RSpec is a
    +-behaviour driven development
    ++behavior driven development
    + framework for Ruby
    +
    +
    ./examples/failing/diffing_spec.rb:13:
    +./spec/spec_helper.rb:44:in `run_with'
    +./spec/spec/runner/formatter/html_formatter_spec.rb:41:
    +./spec/spec/runner/formatter/html_formatter_spec.rb:29:in `chdir'
    +./spec/spec/runner/formatter/html_formatter_spec.rb:29:
    +
    11framework for Ruby
    +12EOF
    +13    usa.should == uk
    +14  end
    +
    +
    + +
    + should print diff of different objects' pretty representation +
    +
    +expected <Animal
    +name=bob,
    +species=tortoise
    +>
    +
    +     got <Animal
    +name=bob,
    +species=giraffe
    +>
    +
    +
    +(compared using eql?)
    +
    +
    ./examples/failing/diffing_spec.rb:34:
    +./spec/spec_helper.rb:44:in `run_with'
    +./spec/spec/runner/formatter/html_formatter_spec.rb:41:
    +./spec/spec/runner/formatter/html_formatter_spec.rb:29:in `chdir'
    +./spec/spec/runner/formatter/html_formatter_spec.rb:29:
    +
    32    expected = Animal.new "bob", "giraffe"
    +33    actual   = Animal.new "bob", "tortoise"
    +34    expected.should eql(actual)
    +35  end
    +36end
    +
    +
    +
    +
    +
    +
    +
    A consumer of a stub
    + +
    should be able to stub methods on any Object
    +
    +
    +
    +
    +
    A stubbed method on a class
    + +
    should return the stubbed value
    + +
    should revert to the original method after each spec
    + +
    can stub! and mock the same message
    +
    +
    +
    +
    +
    A mock
    + +
    can stub!
    + +
    can stub! and mock
    + +
    can stub! and mock the same message
    +
    +
    +
    +
    +
    pending example (using pending method)
    + + +
    should be reported as "PENDING: for some reason" (PENDING: for some reason)
    +
    +
    +
    +
    +
    pending example (with no block)
    + + +
    should be reported as "PENDING: Not Yet Implemented" (PENDING: Not Yet Implemented)
    +
    +
    +
    +
    +
    pending example (with block for pending)
    + + +
    should have a failing block, passed to pending, reported as "PENDING: for some reason" (PENDING: for some reason)
    +
    +
    + + +
    +
    + + diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/html_formatted-1.8.7.html b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/html_formatted-1.8.7.html new file mode 100644 index 0000000..5e489bb --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/html_formatted-1.8.7.html @@ -0,0 +1,377 @@ + + + + + RSpec results + + + + + + + + +
    + +
    +
    +

    RSpec Code Examples

    +
    + +
    +

     

    +

     

    +
    +
    + +
    +
    +
    +
    Mocker
    + +
    should be able to call mock()
    + + + +
    + should fail when expected message not received +
    +
    Mock "poke me" expected :poke with (any args) once, but received it 0 times
    +
    ./examples/failing/mocking_example.rb:11:
    +./spec/spec_helper.rb:42:in `run_with'
    +./spec/spec/runner/formatter/html_formatter_spec.rb:41:
    +./spec/spec/runner/formatter/html_formatter_spec.rb:29:in `chdir'
    +./spec/spec/runner/formatter/html_formatter_spec.rb:29:
    +
    9  it "should fail when expected message not received" do
    +10    mock = mock("poke me")
    +11    mock.should_receive(:poke)
    +12  end
    +13  
    +
    +
    + +
    + should fail when messages are received out of order +
    +
    Mock "one two three" received :three out of order
    +
    ./examples/failing/mocking_example.rb:20:
    +./spec/spec_helper.rb:42:in `run_with'
    +./spec/spec/runner/formatter/html_formatter_spec.rb:41:
    +./spec/spec/runner/formatter/html_formatter_spec.rb:29:in `chdir'
    +./spec/spec/runner/formatter/html_formatter_spec.rb:29:
    +
    18    mock.should_receive(:three).ordered
    +19    mock.one
    +20    mock.three
    +21    mock.two
    +22  end
    +
    +
    + +
    + should get yelled at when sending unexpected messages +
    +
    Mock "don't talk to me" expected :any_message_at_all with (no args) 0 times, but received it once
    +
    ./examples/failing/mocking_example.rb:27:
    +./spec/spec_helper.rb:42:in `run_with'
    +./spec/spec/runner/formatter/html_formatter_spec.rb:41:
    +./spec/spec/runner/formatter/html_formatter_spec.rb:29:in `chdir'
    +./spec/spec/runner/formatter/html_formatter_spec.rb:29:
    +
    25    mock = mock("don't talk to me")
    +26    mock.should_not_receive(:any_message_at_all)
    +27    mock.any_message_at_all
    +28  end
    +
    +
    + +
    + has a bug we need to fix +
    +
    Expected pending 'here is the bug' to fail. No Error was raised.
    +
    ./examples/failing/mocking_example.rb:31:
    +./spec/spec_helper.rb:42:in `run_with'
    +./spec/spec/runner/formatter/html_formatter_spec.rb:41:
    +./spec/spec/runner/formatter/html_formatter_spec.rb:29:in `chdir'
    +./spec/spec/runner/formatter/html_formatter_spec.rb:29:
    +
    29
    +30  it "has a bug we need to fix" do
    +31    pending "here is the bug" do
    +32      # Actually, no. It's fixed. This will fail because it passes :-)
    +33      mock = mock("Bug")
    +
    +
    +
    +
    +
    +
    +
    Running specs with --diff
    + + +
    + should print diff of different strings +
    +
    expected: "RSpec is a\nbehaviour driven development\nframework for Ruby\n",
    +     got: "RSpec is a\nbehavior driven development\nframework for Ruby\n" (using ==)
    +
    + Diff:
    +@@ -1,4 +1,4 @@
    + RSpec is a
    +-behaviour driven development
    ++behavior driven development
    + framework for Ruby
    +
    +
    ./examples/failing/diffing_spec.rb:13:
    +./spec/spec_helper.rb:42:in `run_with'
    +./spec/spec/runner/formatter/html_formatter_spec.rb:41:
    +./spec/spec/runner/formatter/html_formatter_spec.rb:29:in `chdir'
    +./spec/spec/runner/formatter/html_formatter_spec.rb:29:
    +
    11framework for Ruby
    +12EOF
    +13    usa.should == uk
    +14  end
    +
    +
    + +
    + should print diff of different objects' pretty representation +
    +
    +expected <Animal
    +name=bob,
    +species=tortoise
    +>
    +
    +     got <Animal
    +name=bob,
    +species=giraffe
    +>
    +
    +
    +(compared using eql?)
    +
    +
    ./examples/failing/diffing_spec.rb:34:
    +./spec/spec_helper.rb:42:in `run_with'
    +./spec/spec/runner/formatter/html_formatter_spec.rb:41:
    +./spec/spec/runner/formatter/html_formatter_spec.rb:29:in `chdir'
    +./spec/spec/runner/formatter/html_formatter_spec.rb:29:
    +
    32    expected = Animal.new "bob", "giraffe"
    +33    actual   = Animal.new "bob", "tortoise"
    +34    expected.should eql(actual)
    +35  end
    +36end
    +
    +
    +
    +
    +
    +
    +
    A consumer of a stub
    + +
    should be able to stub methods on any Object
    +
    +
    +
    +
    +
    A stubbed method on a class
    + +
    should return the stubbed value
    + +
    should revert to the original method after each spec
    + +
    can stub! and mock the same message
    +
    +
    +
    +
    +
    A mock
    + +
    can stub!
    + +
    can stub! and mock
    + +
    can stub! and mock the same message
    +
    +
    +
    +
    +
    pending example (using pending method)
    + + +
    should be reported as "PENDING: for some reason" (PENDING: for some reason)
    +
    +
    +
    +
    +
    pending example (with no block)
    + + +
    should be reported as "PENDING: Not Yet Implemented" (PENDING: Not Yet Implemented)
    +
    +
    +
    +
    +
    pending example (with block for pending)
    + + +
    should have a failing block, passed to pending, reported as "PENDING: for some reason" (PENDING: for some reason)
    +
    +
    + + +
    +
    + + diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/html_formatted-1.9.1.html b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/html_formatted-1.9.1.html new file mode 100644 index 0000000..5d0be3b --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/html_formatted-1.9.1.html @@ -0,0 +1,377 @@ + + + + + RSpec results + + + + + + + + +
    + +
    +
    +

    RSpec Code Examples

    +
    + +
    +

     

    +

     

    +
    +
    + +
    +
    +
    +
    Mocker
    + +
    should be able to call mock()
    + + + +
    + should fail when expected message not received +
    +
    Mock "poke me" expected :poke with (any args) once, but received it 0 times
    +
    ./examples/failing/mocking_example.rb:11:in `block (2 levels) in '
    +./spec/spec_helper.rb:42:in `run_with'
    +./spec/spec/runner/formatter/html_formatter_spec.rb:41:in `block (4 levels) in '
    +./spec/spec/runner/formatter/html_formatter_spec.rb:29:in `chdir'
    +./spec/spec/runner/formatter/html_formatter_spec.rb:29:in `block (3 levels) in '
    +
    9  it "should fail when expected message not received" do
    +10    mock = mock("poke me")
    +11    mock.should_receive(:poke)
    +12  end
    +13  
    +
    +
    + +
    + should fail when messages are received out of order +
    +
    Mock "one two three" received :three out of order
    +
    ./examples/failing/mocking_example.rb:20:in `block (2 levels) in '
    +./spec/spec_helper.rb:42:in `run_with'
    +./spec/spec/runner/formatter/html_formatter_spec.rb:41:in `block (4 levels) in '
    +./spec/spec/runner/formatter/html_formatter_spec.rb:29:in `chdir'
    +./spec/spec/runner/formatter/html_formatter_spec.rb:29:in `block (3 levels) in '
    +
    18    mock.should_receive(:three).ordered
    +19    mock.one
    +20    mock.three
    +21    mock.two
    +22  end
    +
    +
    + +
    + should get yelled at when sending unexpected messages +
    +
    Mock "don't talk to me" expected :any_message_at_all with (no args) 0 times, but received it once
    +
    ./examples/failing/mocking_example.rb:27:in `block (2 levels) in '
    +./spec/spec_helper.rb:42:in `run_with'
    +./spec/spec/runner/formatter/html_formatter_spec.rb:41:in `block (4 levels) in '
    +./spec/spec/runner/formatter/html_formatter_spec.rb:29:in `chdir'
    +./spec/spec/runner/formatter/html_formatter_spec.rb:29:in `block (3 levels) in '
    +
    25    mock = mock("don't talk to me")
    +26    mock.should_not_receive(:any_message_at_all)
    +27    mock.any_message_at_all
    +28  end
    +
    +
    + +
    + has a bug we need to fix +
    +
    Expected pending 'here is the bug' to fail. No Error was raised.
    +
    ./examples/failing/mocking_example.rb:31:in `block (2 levels) in '
    +./spec/spec_helper.rb:42:in `run_with'
    +./spec/spec/runner/formatter/html_formatter_spec.rb:41:in `block (4 levels) in '
    +./spec/spec/runner/formatter/html_formatter_spec.rb:29:in `chdir'
    +./spec/spec/runner/formatter/html_formatter_spec.rb:29:in `block (3 levels) in '
    +
    29
    +30  it "has a bug we need to fix" do
    +31    pending "here is the bug" do
    +32      # Actually, no. It's fixed. This will fail because it passes :-)
    +33      mock = mock("Bug")
    +
    +
    +
    +
    +
    +
    +
    Running specs with --diff
    + + +
    + should print diff of different strings +
    +
    expected: "RSpec is a\nbehaviour driven development\nframework for Ruby\n",
    +     got: "RSpec is a\nbehavior driven development\nframework for Ruby\n" (using ==)
    +
    + Diff:
    +@@ -1,4 +1,4 @@
    + RSpec is a
    +-behaviour driven development
    ++behavior driven development
    + framework for Ruby
    +
    +
    ./examples/failing/diffing_spec.rb:13:in `block (2 levels) in '
    +./spec/spec_helper.rb:42:in `run_with'
    +./spec/spec/runner/formatter/html_formatter_spec.rb:41:in `block (4 levels) in '
    +./spec/spec/runner/formatter/html_formatter_spec.rb:29:in `chdir'
    +./spec/spec/runner/formatter/html_formatter_spec.rb:29:in `block (3 levels) in '
    +
    11framework for Ruby
    +12EOF
    +13    usa.should == uk
    +14  end
    +
    +
    + +
    + should print diff of different objects' pretty representation +
    +
    +expected <Animal
    +name=bob,
    +species=tortoise
    +>
    +
    +     got <Animal
    +name=bob,
    +species=giraffe
    +>
    +
    +
    +(compared using eql?)
    +
    +
    ./examples/failing/diffing_spec.rb:34:in `block (2 levels) in '
    +./spec/spec_helper.rb:42:in `run_with'
    +./spec/spec/runner/formatter/html_formatter_spec.rb:41:in `block (4 levels) in '
    +./spec/spec/runner/formatter/html_formatter_spec.rb:29:in `chdir'
    +./spec/spec/runner/formatter/html_formatter_spec.rb:29:in `block (3 levels) in '
    +
    32    expected = Animal.new "bob", "giraffe"
    +33    actual   = Animal.new "bob", "tortoise"
    +34    expected.should eql(actual)
    +35  end
    +36end
    +
    +
    +
    +
    +
    +
    +
    A consumer of a stub
    + +
    should be able to stub methods on any Object
    +
    +
    +
    +
    +
    A stubbed method on a class
    + +
    should return the stubbed value
    + +
    should revert to the original method after each spec
    + +
    can stub! and mock the same message
    +
    +
    +
    +
    +
    A mock
    + +
    can stub!
    + +
    can stub! and mock
    + +
    can stub! and mock the same message
    +
    +
    +
    +
    +
    pending example (using pending method)
    + + +
    should be reported as "PENDING: for some reason" (PENDING: for some reason)
    +
    +
    +
    +
    +
    pending example (with no block)
    + + +
    should be reported as "PENDING: Not Yet Implemented" (PENDING: Not Yet Implemented)
    +
    +
    +
    +
    +
    pending example (with block for pending)
    + + +
    should have a failing block, passed to pending, reported as "PENDING: for some reason" (PENDING: for some reason)
    +
    +
    + + +
    +
    + + diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/html_formatter_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/html_formatter_spec.rb new file mode 100644 index 0000000..bbff1ef --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/html_formatter_spec.rb @@ -0,0 +1,118 @@ +# require 'spec_helper' + +begin # See rescue all the way at the bottom + +require 'nokogiri' # Needed to compare generated with wanted HTML +require 'spec/runner/formatter/html_formatter' + +module Spec + module Runner + module Formatter + describe HtmlFormatter do + + treats_method_missing_as_private + + attr_reader :root, :expected_file, :expected_html + + before do + @root = File.expand_path("#{File.dirname(__FILE__)}/../../../..") + suffix = jruby? ? '-jruby' : '' + @expected_file = "#{File.dirname(__FILE__)}/html_formatted-#{::RUBY_VERSION}#{suffix}.html" + raise "There is no HTML file with expected content for this platform: #{expected_file}" unless File.file?(expected_file) + @expected_html = File.read(expected_file) + end + + # Uncomment this line temporarily in order to overwrite the expected with actual. + # Use with care!!! + # describe "file generator" do + # it "generates a new comparison file" do + # Dir.chdir(root) do + # args = [ + # 'examples/failing/mocking_example.rb', + # 'examples/failing/diffing_spec.rb', + # 'examples/passing/stubbing_example.rb', + # 'examples/passing/pending_example.rb', + # '--format', + # 'html', + # "--diff" + # ] + # err = StringIO.new + # out = StringIO.new + # run_with ::Spec::Runner::OptionParser.parse(args, err, out) + # + # seconds = /\d+\.\d+ seconds/ + # html = out.string.gsub seconds, 'x seconds' + # + # File.open(expected_file, 'w') {|io| io.write(html)} + # end + # end + # end + + it "should produce HTML identical to the one we designed manually with --diff" do + Dir.chdir(root) do + args = [ + 'examples/failing/mocking_example.rb', + 'examples/failing/diffing_spec.rb', + 'examples/passing/stubbing_example.rb', + 'examples/passing/pending_example.rb', + '--format', + 'html', + "--diff" + ] + err = StringIO.new + out = StringIO.new + run_with ::Spec::Runner::OptionParser.parse(args, err, out) + + seconds = /\d+\.\d+ seconds/ + html = out.string.gsub seconds, 'x seconds' + expected_html.gsub! seconds, 'x seconds' + + doc = Nokogiri::HTML(html) + backtraces = doc.search("div.backtrace").collect {|e| e.at("pre").inner_html} + doc.css("div.backtrace").remove + + expected_doc = Nokogiri::HTML(expected_html) + expected_backtraces = expected_doc.search("div.backtrace").collect {|e| e.at("pre").inner_html} + expected_doc.search("div.backtrace").remove + + doc.inner_html.should == expected_doc.inner_html + + expected_backtraces.each_with_index do |expected_line, i| + expected_path, expected_line_number, expected_suffix = expected_line.split(':') + actual_path, actual_line_number, actual_suffix = backtraces[i].split(':') + File.expand_path(actual_path).should == File.expand_path(expected_path) + actual_line_number.should == expected_line_number + end + end + end + + it "should produce HTML identical to the one we designed manually with --dry-run" do + Dir.chdir(root) do + args = [ + 'examples/failing/mocking_example.rb', + 'examples/failing/diffing_spec.rb', + 'examples/passing/stubbing_example.rb', + 'examples/passing/pending_example.rb', + '--format', + 'html', + "--dry-run" + ] + err = StringIO.new + out = StringIO.new + run_with ::Spec::Runner::OptionParser.parse(args, err, out) + + seconds = /\d+\.\d+ seconds/ + html = out.string.gsub seconds, 'x seconds' + expected_html.gsub! seconds, 'x seconds' + + html.should =~ /This was a dry-run/m + end + end + end + end + end +end + +rescue LoadError + warn "nokogiri not loaded -- skipping HtmlFormatter specs" +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/nested_text_formatter_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/nested_text_formatter_spec.rb new file mode 100644 index 0000000..29e96ff --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/nested_text_formatter_spec.rb @@ -0,0 +1,305 @@ +require 'spec_helper' +require 'spec/runner/formatter/nested_text_formatter' + +module Spec + module Runner + module Formatter + describe NestedTextFormatter do + with_sandboxed_options do + attr_reader :io, :options, :formatter, :example_group + before(:each) do + @io = StringIO.new + options.stub!(:dry_run).and_return(false) + options.stub!(:colour).and_return(false) + @formatter = NestedTextFormatter.new(options, io) + @example_group = Class.new(::Spec::Example::ExampleGroupDouble).describe("ExampleGroup") + @example_group.example("example") {} + end + + describe "where ExampleGroup has no superclass with a description" do + def example_group_started + formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(example_group)) + end + + before do + example_group_started + end + + describe "#dump_summary" do + it "should produce standard summary without pending when pending has a 0 count" do + formatter.dump_summary(3, 2, 1, 0) + io.string.should == <<-OUT +ExampleGroup + +Finished in 3 seconds + +2 examples, 1 failure +OUT + end + + it "should produce standard summary" do + formatter.dump_summary(3, 2, 1, 4) + io.string.should == <<-OUT +ExampleGroup + +Finished in 3 seconds + +2 examples, 1 failure, 4 pending +OUT + end + end + + describe "#example_group_started" do + describe "when ExampleGroup has a nested description" do + + describe "when ExampleGroup has no parents with nested description" do + it "should push ExampleGroup name" do + io.string.should eql("ExampleGroup\n") + end + end + + describe "when ExampleGroup has one parent with nested description" do + attr_reader :child_example_group + def example_group_started + @child_example_group = Class.new(example_group).describe("Child ExampleGroup") + end + + describe "and parent ExampleGroups have not been printed" do + before do + formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(child_example_group)) + end + + it "should push ExampleGroup name with two spaces of indentation" do + io.string.should == <<-OUT +ExampleGroup + Child ExampleGroup +OUT + end + end + + describe "and parent ExampleGroups have been printed" do + before do + formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(example_group)) + io.string = "" + formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(child_example_group)) + end + + it "should print only the indented ExampleGroup" do + io.string.should == <<-OUT + Child ExampleGroup +OUT + end + end + end + + describe "when ExampleGroup has two parents with nested description" do + attr_reader :child_example_group, :grand_child_example_group + def example_group_started + @child_example_group = Class.new(example_group).describe("Child ExampleGroup") + @grand_child_example_group = Class.new(child_example_group).describe("GrandChild ExampleGroup") + end + + describe "and parent ExampleGroups have not been printed" do + before do + formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(grand_child_example_group)) + + end + + it "should print the entire nested ExampleGroup heirarchy" do + io.string.should == <<-OUT +ExampleGroup + Child ExampleGroup + GrandChild ExampleGroup +OUT + end + end + + describe "and parent ExampleGroups have been printed" do + before do + formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(child_example_group)) + io.string = "" + formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(grand_child_example_group)) + end + + it "should print only the indented ExampleGroup" do + io.string.should == <<-OUT + GrandChild ExampleGroup +OUT + end + end + end + end + + describe "when ExampleGroup nested description is blank" do + attr_reader :child_example_group + + describe "and parent ExampleGroups have not been printed" do + def example_group_started + @child_example_group = Class.new(example_group) + formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(child_example_group)) + end + + it "should render only the parent ExampleGroup" do + io.string.should == <<-OUT +ExampleGroup +OUT + end + end + + describe "and parent ExampleGroups have been printed" do + def example_group_started + @child_example_group = Class.new(example_group) + formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(example_group)) + io.string = "" + formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(child_example_group)) + end + + it "should not render anything" do + io.string.should == "" + end + end + end + + describe "when ExampleGroup nested description is blank" do + def example_group_started + example_group.set_description + super + end + + it "should not render anything" do + io.string.should == "" + end + end + end + + describe "#example_failed" do + describe "where ExampleGroup has no superclasss with a description" do + describe "when having an error" do + it "should push failing spec name and failure number" do + formatter.example_failed( + example_group.it("spec"), + 98, + ::Spec::Runner::Reporter::Failure.new("g", "c s", RuntimeError.new) + ) + io.string.should == <<-OUT +ExampleGroup + spec (FAILED - 98) +OUT + end + end + + describe "when having an expectation failure" do + it "should push failing spec name and failure number" do + formatter.example_failed( + example_group.it("spec"), + 98, + ::Spec::Runner::Reporter::Failure.new("g", "c s", Spec::Expectations::ExpectationNotMetError.new) + ) + io.string.should == <<-OUT +ExampleGroup + spec (FAILED - 98) +OUT + end + end + end + + describe "where ExampleGroup has two superclasses with a description" do + attr_reader :child_example_group, :grand_child_example_group + + def example_group_started + @child_example_group = Class.new(example_group).describe("Child ExampleGroup") + @grand_child_example_group = Class.new(child_example_group).describe("GrandChild ExampleGroup") + formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(grand_child_example_group)) + end + + describe "when having an error" do + it "should push failing spec name and failure number" do + formatter.example_failed( + grand_child_example_group.it("spec"), + 98, + ::Spec::Runner::Reporter::Failure.new("g", "c s", RuntimeError.new) + ) + io.string.should == <<-OUT +ExampleGroup + Child ExampleGroup + GrandChild ExampleGroup + spec (FAILED - 98) +OUT + end + end + + describe "when having an expectation" do + it "should push failing spec name and failure number" do + formatter.example_failed( + grand_child_example_group.it("spec"), + 98, + ::Spec::Runner::Reporter::Failure.new("g", "c s", Spec::Expectations::ExpectationNotMetError.new) + ) + io.string.should == <<-OUT +ExampleGroup + Child ExampleGroup + GrandChild ExampleGroup + spec (FAILED - 98) +OUT + end + end + end + end + + describe "#start" do + it "should push nothing on start" do + formatter.start(5) + io.string.should == <<-OUT +ExampleGroup +OUT + end + end + + describe "#start_dump" do + it "should push nothing on start dump" do + formatter.start_dump + io.string.should == <<-OUT +ExampleGroup +OUT + end + end + + describe "#example_passed" do + it "should push passing spec name" do + formatter.example_passed(example_group.it("spec")) + io.string.should == <<-OUT +ExampleGroup + spec +OUT + end + end + + describe "#example_pending" do + it "should push pending example name and message" do + formatter.example_pending(example_group.examples.first, 'reason', "#{__FILE__}:#{__LINE__}") + io.string.should == <<-OUT +ExampleGroup + example (PENDING: reason) +OUT + end + + it "should dump pending" do + formatter.example_pending(example_group.examples.first, 'reason', "#{__FILE__}:#{__LINE__}") + io.rewind + formatter.dump_pending + io.string.should =~ /Pending\:\n\nExampleGroup example \(reason\)\n/ + end + end + + def have_single_level_example_group_output(expected_output) + expected = "ExampleGroup\n #{expected_output}" + ::Spec::Matchers::SimpleMatcher.new(expected) do |actual| + actual == expected + end + end + end + end + end + end + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/profile_formatter_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/profile_formatter_spec.rb new file mode 100644 index 0000000..338df70 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/profile_formatter_spec.rb @@ -0,0 +1,70 @@ +require 'spec_helper' +require 'spec/runner/formatter/profile_formatter' + +module Spec + module Runner + module Formatter + describe ProfileFormatter do + + treats_method_missing_as_private + + attr_reader :io, :formatter + before(:each) do + @io = StringIO.new + options = mock('options') + options.stub!(:colour).and_return(true) + options.stub!(:autospec).and_return(true) + @formatter = ProfileFormatter.new(options, io) + end + + it "should print a heading" do + formatter.start(0) + io.string.should eql("Profiling enabled.\n") + end + + it "should record the current time when starting a new example" do + now = Time.now + Time.stub!(:now).and_return(now) + formatter.example_started('should foo') + formatter.instance_variable_get("@time").should == now + end + + it "should correctly record a passed example" do + now = Time.now + Time.stub!(:now).and_return(now) + parent_example_group = Class.new(::Spec::Example::ExampleGroupDouble).describe('Parent') + child_example_group = Class.new(parent_example_group).describe('Child') + + formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(child_example_group)) + + formatter.example_started('when foo') + Time.stub!(:now).and_return(now+1) + formatter.example_passed(stub('foo', :description => 'i like ice cream')) + + formatter.start_dump + io.string.should include('Parent Child') + end + + it "should sort the results in descending order" do + formatter.instance_variable_set("@example_times", [['a', 'a', 0.1], ['b', 'b', 0.3], ['c', 'c', 0.2]]) + formatter.start_dump + formatter.instance_variable_get("@example_times").should == [ ['b', 'b', 0.3], ['c', 'c', 0.2], ['a', 'a', 0.1]] + end + + it "should print the top 10 results" do + example_group = Class.new(::Spec::Example::ExampleGroup).describe("ExampleGroup") + formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(example_group)) + formatter.instance_variable_set("@time", Time.now) + + 15.times do + formatter.example_passed(stub('foo', :description => 'i like ice cream')) + end + + io.should_receive(:print).exactly(10) + formatter.start_dump + end + + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/progress_bar_formatter_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/progress_bar_formatter_spec.rb new file mode 100644 index 0000000..ea96ca6 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/progress_bar_formatter_spec.rb @@ -0,0 +1,149 @@ +require 'spec_helper' +require 'spec/runner/formatter/progress_bar_formatter' + +module Spec + module Runner + module Formatter + describe ProgressBarFormatter do + + treats_method_missing_as_private + + before(:each) do + @io = StringIO.new + @options = mock('options') + @options.stub!(:dry_run).and_return(false) + @options.stub!(:colour).and_return(false) + @options.stub!(:autospec).and_return(false) + @formatter = ProgressBarFormatter.new(@options, @io) + end + + it "should produce line break on start dump" do + @formatter.start_dump + @io.string.should eql("\n") + end + + it "should produce standard summary without pending when pending has a 0 count" do + @formatter.dump_summary(3, 2, 1, 0) + @io.string.should eql("\nFinished in 3 seconds\n\n2 examples, 1 failure\n") + end + + it "should produce standard summary" do + example_group = ExampleGroup.describe("example_group") do + specify "example" do + end + end + example = example_group.examples.first + @formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(example_group)) + @formatter.example_pending(example, "message", "#{__FILE__}:#{__LINE__}") + @io.rewind + @formatter.dump_summary(3, 2, 1, 1) + @io.string.should eql(%Q| +Finished in 3 seconds + +2 examples, 1 failure, 1 pending +|) + end + + it "should push green dot for passing spec" do + @formatter.stub(:output_to_file?) {false} + @io.stub(:tty?) {true} + @options.stub(:colour) {true} + @formatter.example_passed("spec") + @io.string.should == "\e[32m.\e[0m" + end + + it "should push red F for failure spec" do + @formatter.stub(:output_to_file?) {false} + @io.stub(:tty?) {true} + @options.stub(:colour) {true} + @formatter.example_failed("spec", 98, Spec::Runner::Reporter::Failure.new("g", "c s", Spec::Expectations::ExpectationNotMetError.new)) + @io.string.should eql("\e[31mF\e[0m") + end + + it "should push red F for error spec" do + @formatter.stub(:output_to_file?) {false} + @io.stub(:tty?) {true} + @options.stub(:colour) {true} + @formatter.example_failed("spec", 98, Spec::Runner::Reporter::Failure.new("g", "c s", RuntimeError.new)) + @io.string.should eql("\e[31mF\e[0m") + end + + it "should push blue F for fixed pending spec" do + @formatter.stub(:output_to_file?) {false} + @io.stub(:tty?) {true} + @options.stub(:colour) {true} + @formatter.example_failed("spec", 98, Spec::Runner::Reporter::Failure.new("g", "c s", Spec::Example::PendingExampleFixedError.new)) + @io.string.should eql("\e[34mF\e[0m") + end + + it "should push nothing on start" do + @formatter.start(4) + @io.string.should eql("") + end + + it "should ensure two ':' in the first backtrace" do + backtrace = ["/tmp/x.rb:1", "/tmp/x.rb:2", "/tmp/x.rb:3"] + @formatter.format_backtrace(backtrace).should eql(<<-EOE.rstrip) +/tmp/x.rb:1: +/tmp/x.rb:2: +/tmp/x.rb:3: +EOE + + backtrace = ["/tmp/x.rb:1: message", "/tmp/x.rb:2", "/tmp/x.rb:3"] + @formatter.format_backtrace(backtrace).should eql(<<-EOE.rstrip) +/tmp/x.rb:1: message +/tmp/x.rb:2: +/tmp/x.rb:3: +EOE + end + + it "should dump pending with file and line number" do + example_group = ExampleGroup.describe("example_group") do + specify "example" do + end + end + example = example_group.examples.first + file = __FILE__ + line = __LINE__ - 5 + @formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(example_group)) + @formatter.example_pending(example, "message", "#{__FILE__}:#{__LINE__}") + @formatter.dump_pending + @io.string.should =~ /Pending:\n\nexample_group example \(message\)\n#{file}:#{line}/m + end + end + + describe "ProgressBarFormatter outputting to custom out" do + before(:each) do + @out = mock("out") + @options = mock('options') + @out.stub!(:puts) + @formatter = ProgressBarFormatter.new(@options, @out) + @formatter.class.__send__ :public, :output_to_tty? + end + + after(:each) do + @formatter.class.__send__ :protected, :output_to_tty? + end + + it "should not throw NoMethodError on output_to_tty?" do + @out.should_receive(:tty?).and_raise(NoMethodError) + @formatter.output_to_tty?.should be_false + end + end + + describe ProgressBarFormatter, "dry run" do + before(:each) do + @io = StringIO.new + options = mock('options') + options.stub!(:dry_run).and_return(true) + @formatter = ProgressBarFormatter.new(options, @io) + end + + it "should not produce summary on dry run" do + @formatter.dump_summary(3, 2, 1, 0) + @io.string.should eql("") + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/snippet_extractor_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/snippet_extractor_spec.rb new file mode 100644 index 0000000..c683c39 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/snippet_extractor_spec.rb @@ -0,0 +1,18 @@ +require 'spec_helper' +require 'spec/runner/formatter/snippet_extractor' + +module Spec + module Runner + module Formatter + describe SnippetExtractor do + it "should fall back on a default message when it doesn't understand a line" do + SnippetExtractor.new.snippet_for("blech").should == ["# Couldn't get snippet for blech", 1] + end + + it "should fall back on a default message when it doesn't find the file" do + SnippetExtractor.new.lines_around("blech", 8).should == "# Couldn't get snippet for blech" + end + end + end + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/specdoc_formatter_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/specdoc_formatter_spec.rb new file mode 100644 index 0000000..ac4e0ee --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/specdoc_formatter_spec.rb @@ -0,0 +1,159 @@ +require 'spec_helper' +require 'spec/runner/formatter/specdoc_formatter' + +module Spec + module Runner + module Formatter + describe SpecdocFormatter do + with_sandboxed_options do + attr_reader :io, :formatter, :example_group + before(:each) do + @io = StringIO.new + options.stub!(:dry_run).and_return(false) + options.stub!(:colour).and_return(false) + @formatter = SpecdocFormatter.new(options, io) + @example_group = ::Spec::Example::ExampleGroup.describe("ExampleGroup") do + specify "example" do + end + end + end + + describe "where ExampleGroup has no superclasss with a description" do + before do + example_group_started + end + + def example_group_started + formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(example_group)) + end + + describe "#dump_summary" do + it "should produce standard summary without pending when pending has a 0 count" do + formatter.dump_summary(3, 2, 1, 0) + io.string.should have_example_group_output("\nFinished in 3 seconds\n\n2 examples, 1 failure\n") + end + + it "should produce standard summary" do + formatter.dump_summary(3, 2, 1, 4) + io.string.should have_example_group_output("\nFinished in 3 seconds\n\n2 examples, 1 failure, 4 pending\n") + end + end + + describe "#example_group_started" do + it "should push ExampleGroup name" do + io.string.should eql("\nExampleGroup\n") + end + end + + describe "#example_failed" do + describe "where ExampleGroup has no superclasss with a description" do + describe "when having an error" do + it "should push failing spec name and failure number" do + formatter.example_failed( + example_group.it("spec"), + 98, + Spec::Runner::Reporter::Failure.new("g", "c s", RuntimeError.new) + ) + io.string.should have_example_group_output("- spec (FAILED - 98)\n") + end + end + + describe "when having an expectation failure" do + it "should push failing spec name and failure number" do + formatter.example_failed( + example_group.it("spec"), + 98, + Spec::Runner::Reporter::Failure.new("g", "c s", Spec::Expectations::ExpectationNotMetError.new) + ) + io.string.should have_example_group_output("- spec (FAILED - 98)\n") + end + end + end + + describe "where ExampleGroup has two superclasses with a description" do + attr_reader :child_example_group, :grand_child_example_group + + def example_group_started + @child_example_group = Class.new(example_group).describe("Child ExampleGroup") + @grand_child_example_group = Class.new(child_example_group).describe("GrandChild ExampleGroup") + formatter.example_group_started(Spec::Example::ExampleGroupProxy.new(grand_child_example_group)) + end + + describe "when having an error" do + it "should push failing spec name and failure number" do + formatter.example_failed( + example_group.it("spec"), + 98, + Spec::Runner::Reporter::Failure.new("g", "c s", RuntimeError.new) + ) + io.string.should have_nested_example_group_output("- spec (FAILED - 98)\n") + end + end + + describe "when having an expectation" do + it "should push failing spec name and failure number" do + formatter.example_failed( + example_group.it("spec"), + 98, + Spec::Runner::Reporter::Failure.new("g", "c s", Spec::Expectations::ExpectationNotMetError.new) + ) + io.string.should have_nested_example_group_output("- spec (FAILED - 98)\n") + end + end + + def have_nested_example_group_output(expected_output) + expected_full_output = "\nExampleGroup Child ExampleGroup GrandChild ExampleGroup\n#{expected_output}" + ::Spec::Matchers::SimpleMatcher.new(expected_full_output) do |actual| + actual == expected_full_output + end + end + end + end + + describe "#start" do + it "should push nothing on start" do + formatter.start(5) + io.string.should have_example_group_output("") + end + end + + describe "#start_dump" do + it "should push nothing on start dump" do + formatter.start_dump + io.string.should have_example_group_output("") + end + end + + describe "#example_passed" do + it "should push passing spec name" do + formatter.example_passed(example_group.it("spec")) + io.string.should have_example_group_output("- spec\n") + end + end + + describe "#example_pending" do + it "should push pending example name and message" do + formatter.example_pending(example_group.examples.first, 'reason', "#{__FILE__}:#{__LINE__}") + io.string.should have_example_group_output("- example (PENDING: reason)\n") + end + + it "should dump pending" do + formatter.example_pending(example_group.examples.first, 'reason', "#{__FILE__}:#{__LINE__}") + io.rewind + formatter.dump_pending + io.string.should =~ /Pending\:\n\nExampleGroup example \(reason\)\n/ + end + end + + def have_example_group_output(expected_output) + expected = "\nExampleGroup\n#{expected_output}" + ::Spec::Matchers::SimpleMatcher.new(expected) do |actual| + actual == expected + end + end + end + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/text_mate_formatted-1.8.6-jruby.html b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/text_mate_formatted-1.8.6-jruby.html new file mode 100644 index 0000000..bbef5eb --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/text_mate_formatted-1.8.6-jruby.html @@ -0,0 +1,371 @@ + + + + + RSpec results + + + + + + + + +
    + +
    +
    +

    RSpec Code Examples

    +
    + +
    +

     

    +

     

    +
    +
    + +
    +
    +
    +
    Mocker
    + +
    should be able to call mock()
    + + + +
    + should fail when expected message not received +
    +
    Mock "poke me" expected :poke with (any args) once, but received it 0 times
    + +
    9  it "should fail when expected message not received" do
    +10    mock = mock("poke me")
    +11    mock.should_receive(:poke)
    +12  end
    +13  
    +
    +
    + +
    + should fail when messages are received out of order +
    +
    Mock "one two three" received :three out of order
    + +
    18    mock.should_receive(:three).ordered
    +19    mock.one
    +20    mock.three
    +21    mock.two
    +22  end
    +
    +
    + +
    + should get yelled at when sending unexpected messages +
    +
    Mock "don't talk to me" expected :any_message_at_all with (no args) 0 times, but received it once
    + +
    25    mock = mock("don't talk to me")
    +26    mock.should_not_receive(:any_message_at_all)
    +27    mock.any_message_at_all
    +28  end
    +
    +
    + +
    + has a bug we need to fix +
    +
    Expected pending 'here is the bug' to fail. No Error was raised.
    + +
    29
    +30  it "has a bug we need to fix" do
    +31    pending "here is the bug" do
    +32      # Actually, no. It's fixed. This will fail because it passes :-)
    +33      mock = mock("Bug")
    +
    +
    +
    +
    +
    +
    +
    Running specs with --diff
    + + +
    + should print diff of different strings +
    +
    expected: "RSpec is a\nbehaviour driven development\nframework for Ruby\n",
    +     got: "RSpec is a\nbehavior driven development\nframework for Ruby\n" (using ==)
    +
    + Diff:
    +@@ -1,4 +1,4 @@
    + RSpec is a
    +-behaviour driven development
    ++behavior driven development
    + framework for Ruby
    +
    + +
    11framework for Ruby
    +12EOF
    +13    usa.should == uk
    +14  end
    +
    +
    + +
    + should print diff of different objects' pretty representation +
    +
    +expected <Animal
    +name=bob,
    +species=tortoise
    +>
    +
    +     got <Animal
    +name=bob,
    +species=giraffe
    +>
    +
    +
    +(compared using eql?)
    +
    + +
    32    expected = Animal.new "bob", "giraffe"
    +33    actual   = Animal.new "bob", "tortoise"
    +34    expected.should eql(actual)
    +35  end
    +36end
    +
    +
    +
    +
    +
    +
    +
    A consumer of a stub
    + +
    should be able to stub methods on any Object
    +
    +
    +
    +
    +
    A stubbed method on a class
    + +
    should return the stubbed value
    + +
    should revert to the original method after each spec
    + +
    can stub! and mock the same message
    +
    +
    +
    +
    +
    A mock
    + +
    can stub!
    + +
    can stub! and mock
    + +
    can stub! and mock the same message
    +
    +
    +
    +
    +
    pending example (using pending method)
    + + +
    should be reported as "PENDING: for some reason" (PENDING: for some reason)
    +
    +
    +
    +
    +
    pending example (with no block)
    + + +
    should be reported as "PENDING: Not Yet Implemented" (PENDING: Not Yet Implemented)
    +
    +
    +
    +
    +
    pending example (with block for pending)
    + + +
    should have a failing block, passed to pending, reported as "PENDING: for some reason" (PENDING: for some reason)
    +
    +
    + + +
    +
    + + diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html new file mode 100644 index 0000000..54d7619 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html @@ -0,0 +1,371 @@ + + + + + RSpec results + + + + + + + + +
    + +
    +
    +

    RSpec Code Examples

    +
    + +
    +

     

    +

     

    +
    +
    + +
    +
    +
    +
    Mocker
    + +
    should be able to call mock()
    + + + +
    + should fail when expected message not received +
    +
    Mock "poke me" expected :poke with (any args) once, but received it 0 times
    + +
    9  it "should fail when expected message not received" do
    +10    mock = mock("poke me")
    +11    mock.should_receive(:poke)
    +12  end
    +13  
    +
    +
    + +
    + should fail when messages are received out of order +
    +
    Mock "one two three" received :three out of order
    + +
    18    mock.should_receive(:three).ordered
    +19    mock.one
    +20    mock.three
    +21    mock.two
    +22  end
    +
    +
    + +
    + should get yelled at when sending unexpected messages +
    +
    Mock "don't talk to me" expected :any_message_at_all with (no args) 0 times, but received it once
    + +
    25    mock = mock("don't talk to me")
    +26    mock.should_not_receive(:any_message_at_all)
    +27    mock.any_message_at_all
    +28  end
    +
    +
    + +
    + has a bug we need to fix +
    +
    Expected pending 'here is the bug' to fail. No Error was raised.
    + +
    29
    +30  it "has a bug we need to fix" do
    +31    pending "here is the bug" do
    +32      # Actually, no. It's fixed. This will fail because it passes :-)
    +33      mock = mock("Bug")
    +
    +
    +
    +
    +
    +
    +
    Running specs with --diff
    + + +
    + should print diff of different strings +
    +
    expected: "RSpec is a\nbehaviour driven development\nframework for Ruby\n",
    +     got: "RSpec is a\nbehavior driven development\nframework for Ruby\n" (using ==)
    +
    + Diff:
    +@@ -1,4 +1,4 @@
    + RSpec is a
    +-behaviour driven development
    ++behavior driven development
    + framework for Ruby
    +
    + +
    11framework for Ruby
    +12EOF
    +13    usa.should == uk
    +14  end
    +
    +
    + +
    + should print diff of different objects' pretty representation +
    +
    +expected <Animal
    +name=bob,
    +species=tortoise
    +>
    +
    +     got <Animal
    +name=bob,
    +species=giraffe
    +>
    +
    +
    +(compared using eql?)
    +
    + +
    32    expected = Animal.new "bob", "giraffe"
    +33    actual   = Animal.new "bob", "tortoise"
    +34    expected.should eql(actual)
    +35  end
    +36end
    +
    +
    +
    +
    +
    +
    +
    A consumer of a stub
    + +
    should be able to stub methods on any Object
    +
    +
    +
    +
    +
    A stubbed method on a class
    + +
    should return the stubbed value
    + +
    should revert to the original method after each spec
    + +
    can stub! and mock the same message
    +
    +
    +
    +
    +
    A mock
    + +
    can stub!
    + +
    can stub! and mock
    + +
    can stub! and mock the same message
    +
    +
    +
    +
    +
    pending example (using pending method)
    + + +
    should be reported as "PENDING: for some reason" (PENDING: for some reason)
    +
    +
    +
    +
    +
    pending example (with no block)
    + + +
    should be reported as "PENDING: Not Yet Implemented" (PENDING: Not Yet Implemented)
    +
    +
    +
    +
    +
    pending example (with block for pending)
    + + +
    should have a failing block, passed to pending, reported as "PENDING: for some reason" (PENDING: for some reason)
    +
    +
    + + +
    +
    + + diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/text_mate_formatted-1.8.7.html b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/text_mate_formatted-1.8.7.html new file mode 100644 index 0000000..54d7619 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/text_mate_formatted-1.8.7.html @@ -0,0 +1,371 @@ + + + + + RSpec results + + + + + + + + +
    + +
    +
    +

    RSpec Code Examples

    +
    + +
    +

     

    +

     

    +
    +
    + +
    +
    +
    +
    Mocker
    + +
    should be able to call mock()
    + + + +
    + should fail when expected message not received +
    +
    Mock "poke me" expected :poke with (any args) once, but received it 0 times
    + +
    9  it "should fail when expected message not received" do
    +10    mock = mock("poke me")
    +11    mock.should_receive(:poke)
    +12  end
    +13  
    +
    +
    + +
    + should fail when messages are received out of order +
    +
    Mock "one two three" received :three out of order
    + +
    18    mock.should_receive(:three).ordered
    +19    mock.one
    +20    mock.three
    +21    mock.two
    +22  end
    +
    +
    + +
    + should get yelled at when sending unexpected messages +
    +
    Mock "don't talk to me" expected :any_message_at_all with (no args) 0 times, but received it once
    + +
    25    mock = mock("don't talk to me")
    +26    mock.should_not_receive(:any_message_at_all)
    +27    mock.any_message_at_all
    +28  end
    +
    +
    + +
    + has a bug we need to fix +
    +
    Expected pending 'here is the bug' to fail. No Error was raised.
    + +
    29
    +30  it "has a bug we need to fix" do
    +31    pending "here is the bug" do
    +32      # Actually, no. It's fixed. This will fail because it passes :-)
    +33      mock = mock("Bug")
    +
    +
    +
    +
    +
    +
    +
    Running specs with --diff
    + + +
    + should print diff of different strings +
    +
    expected: "RSpec is a\nbehaviour driven development\nframework for Ruby\n",
    +     got: "RSpec is a\nbehavior driven development\nframework for Ruby\n" (using ==)
    +
    + Diff:
    +@@ -1,4 +1,4 @@
    + RSpec is a
    +-behaviour driven development
    ++behavior driven development
    + framework for Ruby
    +
    + +
    11framework for Ruby
    +12EOF
    +13    usa.should == uk
    +14  end
    +
    +
    + +
    + should print diff of different objects' pretty representation +
    +
    +expected <Animal
    +name=bob,
    +species=tortoise
    +>
    +
    +     got <Animal
    +name=bob,
    +species=giraffe
    +>
    +
    +
    +(compared using eql?)
    +
    + +
    32    expected = Animal.new "bob", "giraffe"
    +33    actual   = Animal.new "bob", "tortoise"
    +34    expected.should eql(actual)
    +35  end
    +36end
    +
    +
    +
    +
    +
    +
    +
    A consumer of a stub
    + +
    should be able to stub methods on any Object
    +
    +
    +
    +
    +
    A stubbed method on a class
    + +
    should return the stubbed value
    + +
    should revert to the original method after each spec
    + +
    can stub! and mock the same message
    +
    +
    +
    +
    +
    A mock
    + +
    can stub!
    + +
    can stub! and mock
    + +
    can stub! and mock the same message
    +
    +
    +
    +
    +
    pending example (using pending method)
    + + +
    should be reported as "PENDING: for some reason" (PENDING: for some reason)
    +
    +
    +
    +
    +
    pending example (with no block)
    + + +
    should be reported as "PENDING: Not Yet Implemented" (PENDING: Not Yet Implemented)
    +
    +
    +
    +
    +
    pending example (with block for pending)
    + + +
    should have a failing block, passed to pending, reported as "PENDING: for some reason" (PENDING: for some reason)
    +
    +
    + + +
    +
    + + diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/text_mate_formatted-1.9.1.html b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/text_mate_formatted-1.9.1.html new file mode 100644 index 0000000..24c9804 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/text_mate_formatted-1.9.1.html @@ -0,0 +1,371 @@ + + + + + RSpec results + + + + + + + + +
    + +
    +
    +

    RSpec Code Examples

    +
    + +
    +

     

    +

     

    +
    +
    + +
    +
    +
    +
    Mocker
    + +
    should be able to call mock()
    + + + +
    + should fail when expected message not received +
    +
    Mock "poke me" expected :poke with (any args) once, but received it 0 times
    + +
    9  it "should fail when expected message not received" do
    +10    mock = mock("poke me")
    +11    mock.should_receive(:poke)
    +12  end
    +13  
    +
    +
    + +
    + should fail when messages are received out of order +
    +
    Mock "one two three" received :three out of order
    + +
    18    mock.should_receive(:three).ordered
    +19    mock.one
    +20    mock.three
    +21    mock.two
    +22  end
    +
    +
    + +
    + should get yelled at when sending unexpected messages +
    +
    Mock "don't talk to me" expected :any_message_at_all with (no args) 0 times, but received it once
    + +
    25    mock = mock("don't talk to me")
    +26    mock.should_not_receive(:any_message_at_all)
    +27    mock.any_message_at_all
    +28  end
    +
    +
    + +
    + has a bug we need to fix +
    +
    Expected pending 'here is the bug' to fail. No Error was raised.
    + +
    29
    +30  it "has a bug we need to fix" do
    +31    pending "here is the bug" do
    +32      # Actually, no. It's fixed. This will fail because it passes :-)
    +33      mock = mock("Bug")
    +
    +
    +
    +
    +
    +
    +
    Running specs with --diff
    + + +
    + should print diff of different strings +
    +
    expected: "RSpec is a\nbehaviour driven development\nframework for Ruby\n",
    +     got: "RSpec is a\nbehavior driven development\nframework for Ruby\n" (using ==)
    +
    + Diff:
    +@@ -1,4 +1,4 @@
    + RSpec is a
    +-behaviour driven development
    ++behavior driven development
    + framework for Ruby
    +
    + +
    11framework for Ruby
    +12EOF
    +13    usa.should == uk
    +14  end
    +
    +
    + +
    + should print diff of different objects' pretty representation +
    +
    +expected <Animal
    +name=bob,
    +species=tortoise
    +>
    +
    +     got <Animal
    +name=bob,
    +species=giraffe
    +>
    +
    +
    +(compared using eql?)
    +
    + +
    32    expected = Animal.new "bob", "giraffe"
    +33    actual   = Animal.new "bob", "tortoise"
    +34    expected.should eql(actual)
    +35  end
    +36end
    +
    +
    +
    +
    +
    +
    +
    A consumer of a stub
    + +
    should be able to stub methods on any Object
    +
    +
    +
    +
    +
    A stubbed method on a class
    + +
    should return the stubbed value
    + +
    should revert to the original method after each spec
    + +
    can stub! and mock the same message
    +
    +
    +
    +
    +
    A mock
    + +
    can stub!
    + +
    can stub! and mock
    + +
    can stub! and mock the same message
    +
    +
    +
    +
    +
    pending example (using pending method)
    + + +
    should be reported as "PENDING: for some reason" (PENDING: for some reason)
    +
    +
    +
    +
    +
    pending example (with no block)
    + + +
    should be reported as "PENDING: Not Yet Implemented" (PENDING: Not Yet Implemented)
    +
    +
    +
    +
    +
    pending example (with block for pending)
    + + +
    should have a failing block, passed to pending, reported as "PENDING: for some reason" (PENDING: for some reason)
    +
    +
    + + +
    +
    + + diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/text_mate_formatter_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/text_mate_formatter_spec.rb new file mode 100644 index 0000000..a35ad89 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/formatter/text_mate_formatter_spec.rb @@ -0,0 +1,106 @@ +require 'spec_helper' + +begin # See rescue all the way at the bottom + +require 'nokogiri' # Needed to compare generated with wanted HTML +require 'spec/runner/formatter/text_mate_formatter' + +module Spec + module Runner + module Formatter + describe TextMateFormatter do + attr_reader :root, :suffix, :expected_file + before do + @root = File.expand_path(File.dirname(__FILE__) + '/../../../..') + @suffix = jruby? ? '-jruby' : '' + @expected_file = File.dirname(__FILE__) + "/text_mate_formatted-#{::RUBY_VERSION}#{suffix}.html" + end + + def produces_html_identical_to_manually_designed_document(opt) + root = File.expand_path(File.dirname(__FILE__) + '/../../../..') + + Dir.chdir(root) do + args = [ + 'examples/failing/mocking_example.rb', + 'examples/failing/diffing_spec.rb', + 'examples/passing/stubbing_example.rb', + 'examples/passing/pending_example.rb', + '--format', + 'textmate', + opt + ] + err = StringIO.new + out = StringIO.new + + run_with ::Spec::Runner::OptionParser.parse(args, err, out) + + yield(out.string) + end + end + + # Uncomment this spec temporarily in order to overwrite the expected with actual. + # Use with care!!! + # describe "functional spec file generator" do + # it "generates a new comparison file" do + # Dir.chdir(root) do + # args = ['examples/failing/mocking_example.rb', 'examples/failing/diffing_spec.rb', 'examples/passing/stubbing_example.rb', 'examples/passing/pending_example.rb', '--format', 'textmate', '--diff'] + # err = StringIO.new + # out = StringIO.new + # Spec::Runner::CommandLine.run( + # ::Spec::Runner::OptionParser.parse(args, err, out) + # ) + # + # seconds = /\d+\.\d+ seconds/ + # html = out.string.gsub seconds, 'x seconds' + # + # File.open(expected_file, 'w') {|io| io.write(html)} + # end + # end + # end + + describe "functional spec using --diff" do + it "should produce HTML identical to the one we designed manually with --diff" do + produces_html_identical_to_manually_designed_document("--diff") do |html| + suffix = jruby? ? '-jruby' : '' + expected_file = File.dirname(__FILE__) + "/text_mate_formatted-#{::RUBY_VERSION}#{suffix}.html" + unless File.file?(expected_file) + raise "There is no HTML file with expected content for this platform: #{expected_file}" + end + expected_html = File.read(expected_file) + + seconds = /\d+\.\d+ seconds/ + html.gsub! seconds, 'x seconds' + expected_html.gsub! seconds, 'x seconds' + + doc = Nokogiri::HTML(html) + backtraces = doc.search("div.backtrace a") + doc.search("div.backtrace").remove + + expected_doc = Nokogiri::HTML(expected_html) + expected_doc.search("div.backtrace").remove + + doc.inner_html.should == expected_doc.inner_html + + backtraces.each do |backtrace_link| + backtrace_link['href'].should include("txmt://open?url=") + end + end + end + + end + + describe "functional spec using --dry-run" do + it "should produce HTML identical to the one we designed manually with --dry-run" do + produces_html_identical_to_manually_designed_document("--dry-run") do |html, expected_html| + html.should =~ /This was a dry-run/m + end + end + end + end + end + end +end + +rescue LoadError + warn "nokogiri not loaded -- skipping TextMateFormatter specs" +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/heckle_runner_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/heckle_runner_spec.rb new file mode 100644 index 0000000..287ff85 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/heckle_runner_spec.rb @@ -0,0 +1,78 @@ +require 'spec_helper' +unless [/mswin/, /java/].detect{|p| p =~ RUBY_PLATFORM} || Spec::Ruby.version.to_f == 1.9 + require 'spec/runner/heckle_runner' + + module Foo + class Bar + def one; end + def two; end + end + + class Zap + def three; end + def four; end + end + end + + describe "HeckleRunner" do + before(:each) do + @heckle = mock("heckle", :null_object => true) + @heckle_class = mock("heckle_class") + end + + it "should heckle all methods in all classes in a module" do + @heckle_class.should_receive(:new).with("Foo::Bar", "one", Spec::Runner.options).and_return(@heckle) + @heckle_class.should_receive(:new).with("Foo::Bar", "two", Spec::Runner.options).and_return(@heckle) + @heckle_class.should_receive(:new).with("Foo::Zap", "three", Spec::Runner.options).and_return(@heckle) + @heckle_class.should_receive(:new).with("Foo::Zap", "four", Spec::Runner.options).and_return(@heckle) + + heckle_runner = Spec::Runner::HeckleRunner.new("Foo", @heckle_class) + heckle_runner.heckle_with + end + + it "should heckle all methods in a class" do + @heckle_class.should_receive(:new).with("Foo::Bar", "one", Spec::Runner.options).and_return(@heckle) + @heckle_class.should_receive(:new).with("Foo::Bar", "two", Spec::Runner.options).and_return(@heckle) + + heckle_runner = Spec::Runner::HeckleRunner.new("Foo::Bar", @heckle_class) + heckle_runner.heckle_with + end + + it "should fail heckling when the class is not found" do + lambda do + heckle_runner = Spec::Runner::HeckleRunner.new("Foo::Bob", @heckle_class) + heckle_runner.heckle_with + end.should raise_error(StandardError, "Heckling failed - \"Foo::Bob\" is not a known class or module") + end + + it "should heckle specific method in a class (with #)" do + @heckle_class.should_receive(:new).with("Foo::Bar", "two", Spec::Runner.options).and_return(@heckle) + + heckle_runner = Spec::Runner::HeckleRunner.new("Foo::Bar#two", @heckle_class) + heckle_runner.heckle_with + end + + it "should heckle specific method in a class (with .)" do + @heckle_class.should_receive(:new).with("Foo::Bar", "two", Spec::Runner.options).and_return(@heckle) + + heckle_runner = Spec::Runner::HeckleRunner.new("Foo::Bar.two", @heckle_class) + heckle_runner.heckle_with + end + end + + describe "Heckler" do + it "should say yes to tests_pass? if specs pass" do + options = mock("options", :null_object => true) + options.should_receive(:run_examples).and_return(true) + heckler = Spec::Runner::Heckler.new("Foo", nil, options) + heckler.tests_pass?.should be_true + end + + it "should say no to tests_pass? if specs fail" do + options = mock("options", :null_object => true) + options.should_receive(:run_examples).and_return(false) + heckler = Spec::Runner::Heckler.new("Foo", nil, options) + heckler.tests_pass?.should be_false + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/heckler_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/heckler_spec.rb new file mode 100644 index 0000000..00869df --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/heckler_spec.rb @@ -0,0 +1,20 @@ +if Spec::Ruby.version.to_f < 1.9 + require 'spec_helper' + unless [/mswin/, /java/].detect{|p| p =~ RUBY_PLATFORM} + require 'spec/runner/heckle_runner' + + describe "Heckler" do + it "should run examples on tests_pass?" do + sub = Class.new(Spec::Runner::Heckler) do + def initialize(klass_name, method_name, rspec_options) + @rspec_options = rspec_options + end + end + opts = mock('options') + opts.should_receive(:run_examples).and_return(true) + heckler = sub.new('klass','method',opts) + heckler.tests_pass? + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/line_number_query/line_number_query_fixture.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/line_number_query/line_number_query_fixture.rb new file mode 100644 index 0000000..82a257d --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/line_number_query/line_number_query_fixture.rb @@ -0,0 +1,70 @@ +require 'spec_helper' + +describe "c" do + + it "1" do + end + + it "2" do + end + +end + +describe "d" do + + it "3" do + end + + it "4" do + end + +end + +class LineNumberQuerySubject +end + +describe LineNumberQuerySubject do + + it "5" do + end + +end + +describe LineNumberQuerySubject, "described" do + + it "6" do + end + +end + +describe LineNumberQuerySubject, "described", :something => :something_else do + + it "7" do + end + +end + +describe "described", :something => :something_else do + + it "8" do + end + +end + +describe "e" do + + it "9" do + end + + it "10" do + end + + describe "f" do + it "11" do + end + + it "12" do + end + end + +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/line_number_query_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/line_number_query_spec.rb new file mode 100644 index 0000000..e4e1105 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/line_number_query_spec.rb @@ -0,0 +1,129 @@ +require 'spec_helper' + +describe "LineNumberQuery" do + with_sandboxed_options do + attr_reader :parser, :file + + before do + @parser = Spec::Runner::LineNumberQuery.new(options) + @file = "#{File.dirname(__FILE__)}/line_number_query/line_number_query_fixture.rb" + load file + end + + it "should find spec name for 'specify' at same line" do + parser.spec_name_for(file, 5).should == "c 1" + end + + it "should find spec name for 'specify' at end of spec line" do + parser.spec_name_for(file, 6).should == "c 1" + end + + it "should find context for 'context' above all specs" do + parser.spec_name_for(file, 4).should == "c" + end + + it "should find spec name for 'it' at same line" do + parser.spec_name_for(file, 15).should == "d 3" + end + + it "should find spec name for 'it' at end of spec line" do + parser.spec_name_for(file, 16).should == "d 3" + end + + it "should find context for 'describe' above all specs" do + parser.spec_name_for(file, 14).should == "d" + end + + it "should find nearest example name between examples" do + parser.spec_name_for(file, 7).should == "c 1" + end + + it "should find nothing outside a context" do + parser.spec_name_for(file, 2).should be_nil + end + + it "should find context name for type" do + parser.spec_name_for(file, 26).should == "LineNumberQuerySubject" + end + + it "should find context and spec name for type" do + parser.spec_name_for(file, 28).should == "LineNumberQuerySubject 5" + end + + it "should find context and description for type" do + parser.spec_name_for(file, 33).should == "LineNumberQuerySubject described" + end + + it "should find context and description and example for type" do + parser.spec_name_for(file, 36).should == "LineNumberQuerySubject described 6" + end + + it "should find context and description for type with modifications" do + parser.spec_name_for(file, 40).should == "LineNumberQuerySubject described" + end + + it "should find context and described and example for type with modifications" do + parser.spec_name_for(file, 43).should == "LineNumberQuerySubject described 7" + end + + it "should find example group" do + parser.spec_name_for(file, 47).should == "described" + end + + it "should find example" do + parser.spec_name_for(file, 50).should == "described 8" + end + + it "should find nested example" do + parser.spec_name_for(file, 63).should == "e f 11" + end + + it "should handle paths which contain colons" do + fixture = + { "c:/somepath/somefile.rb:999:in 'method'" => "c:/somepath/somefile.rb", + "./somepath/somefile:999" => "./somepath/somefile" } + fixture.each_pair do |input, expected| + parser.send(:parse_location, input ).should == [expected, 999] + end + end + + it "should handle paths which contain colons and backslashes" do + fixture = + { "c:\\somepath\\somefile.rb:999:in 'method'" => "c:\\somepath\\somefile.rb", + ".\\somepath\\somefile:999" => ".\\somepath\\somefile" } + fixture.each_pair do |input, expected| + parser.send(:parse_location, input ).should == [expected, 999] + end + end + + it "ignores example group base classes which have no location" do + options = stub('options', :example_groups => [ + stub('example_group', :location => nil) + ]) + parser = Spec::Runner::LineNumberQuery.new(options) + parser.spec_name_for('foo',37).should == nil + end + + describe "#example_line_for" do + it "should find example declared on same line" do + parser.example_line_for(file, 5).should == 5 + end + + it "should find example declared on the line above, while still inside the example" do + parser.example_line_for(file, 6).should == 5 + end + + it "should find example declared from empty line below the example" do + parser.example_line_for(file, 7).should == 5 + end + + it "should find the group declared on the same line" do + parser.example_line_for(file, 3).should == 3 + end + + it "should find the group declared above the first example" do + parser.example_line_for(file, 4).should == 3 + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/noisy_backtrace_tweaker_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/noisy_backtrace_tweaker_spec.rb new file mode 100644 index 0000000..13b7943 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/noisy_backtrace_tweaker_spec.rb @@ -0,0 +1,51 @@ +require 'spec_helper' + +module Spec + module Runner + describe NoisyBacktraceTweaker do + before(:each) do + @error = RuntimeError.new + @tweaker = NoisyBacktraceTweaker.new + end + + it "gracefully handles nil backtrace" do + lambda do + @tweaker.tweak_backtrace(@error) + end.should_not raise_error + end + + it "cleans up double slashes" do + @error.set_backtrace(["/a//b/c//d.rb"]) + @tweaker.tweak_backtrace(@error) + @error.backtrace.should include("/a/b/c/d.rb") + end + + it "preserves lines in lib/spec" do + ["expectations", "mocks", "runner", "stubs"].each do |child| + @error.set_backtrace(["/lib/spec/#{child}/anything.rb"]) + @tweaker.tweak_backtrace(@error) + @error.backtrace.should_not be_empty + end + end + + it "preserves lines in spec/" do + @error.set_backtrace(["/lib/spec/expectations/anything.rb"]) + @tweaker.tweak_backtrace(@error) + @error.backtrace.should_not be_empty + end + + it "preserves lines in bin/spec" do + @error.set_backtrace(["bin/spec:"]) + @tweaker.tweak_backtrace(@error) + @error.backtrace.should_not be_empty + end + + it "ignores custom patterns" do + @tweaker.ignore_patterns(/custom_pattern/) + @error.set_backtrace(["custom_pattern"]) + @tweaker.tweak_backtrace(@error) + @error.backtrace.should_not be_empty + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/option_parser_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/option_parser_spec.rb new file mode 100644 index 0000000..a516bc6 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/option_parser_spec.rb @@ -0,0 +1,545 @@ +require 'spec_helper' +require 'spec/runner/resources/custom_example_group_runner' +require 'fakefs/safe' +require 'fakefs/spec_helpers' + +describe "OptionParser" do + before(:each) do + @out = StringIO.new + @err = StringIO.new + @parser = Spec::Runner::OptionParser.new(@err, @out) + end + + def parse(args) + @parser.parse(args) + @parser.options + end + + # FIXME - this entire file should run w/ fakefs + describe "with fakefs" do + extend FakeFS::SpecHelpers + use_fakefs + + it "should not use colour by default" do + options = parse([]) + options.colour.should == false + end + + it "should use progress bar formatter by default" do + options = parse([]) + options.formatters[0].class.should equal(Spec::Runner::Formatter::ProgressBarFormatter) + end + end + + it "should leave the submitted argv alone" do + args = ["--pattern", "foo"] + @parser.order!(args) + args.should == ["--pattern", "foo"] + end + + it "should accept files to include" do + options = parse(["--pattern", "foo"]) + options.filename_pattern.should == "foo" + end + + it "should accept debugger option" do + options = parse(["--debugger"]) + options.debug.should be_true + end + + it "should accept -u form of debugger option" do + options = parse(["-u"]) + options.debug.should be_true + end + + it "should turn off the debugger option if drb is specified later" do + @parser.stub!(:parse_drb).with(no_args).and_return(true) + options = parse(["-u", "--drb"]) + options.debug.should be_false + end + + it "should turn off the debugger option if drb is specified first" do + @parser.stub!(:parse_drb).with(no_args).and_return(true) + options = parse(["--drb", "-u"]) + options.debug.should be_false + end + + it "should accept dry run option" do + options = parse(["--dry-run"]) + options.dry_run.should be_true + end + + it "should eval and use custom formatter when none of the builtins" do + options = parse(["--format", "Custom::Formatter"]) + options.formatters[0].class.should be(Custom::Formatter) + end + + it "should support formatters with relative and absolute paths, even on windows" do + options = parse([ + "--format", "Custom::Formatter:C:\\foo\\bar", + "--format", "Custom::Formatter:foo/bar", + "--format", "Custom::Formatter:foo\\bar", + "--format", "Custom::Formatter:/foo/bar" + ]) + options.formatters[0].where.should eql("C:\\foo\\bar") + options.formatters[1].where.should eql("foo/bar") + options.formatters[2].where.should eql("foo\\bar") + options.formatters[3].where.should eql("/foo/bar") + end + + it "should not be verbose by default" do + options = parse([]) + options.verbose.should be_nil + end + + it "should print help to stdout if no args and spec_comand?" do + Spec::Runner::OptionParser.stub!(:spec_command?).and_return(true) + options = parse([]) + @out.rewind + @out.read.should match(/Usage: spec \(FILE\(:LINE\)\?\|DIRECTORY\|GLOB\)\+ \[options\]/m) + end + + it "should not print help to stdout if no args and NOT spec_command?" do + Spec::Runner::OptionParser.stub!(:spec_command?).and_return(false) + options = parse([]) + @out.rewind + @out.read.should == "" + end + + it "should print help to stdout" do + options = parse(["--help"]) + @out.rewind + @out.read.should match(/Usage: spec \(FILE\(:LINE\)\?\|DIRECTORY\|GLOB\)\+ \[options\]/m) + end + + it "should print instructions about how to require missing formatter" do + lambda do + options = parse(["--format", "Custom::MissingFormatter"]) + options.formatters + end.should raise_error(NameError) + @err.string.should match(/Couldn't find formatter class Custom::MissingFormatter/n) + end + + it "should print version to stdout" do + options = parse(["--version"]) + @out.rewind + @out.read.should match(/rspec \d+\.\d+\.\d+/n) + end + + it "should require file when require specified" do + lambda do + parse(["--require", "whatever"]) + end.should raise_error(LoadError) + end + + it "should support c option" do + options = parse(["-c"]) + options.colour.should be_true + end + + it "should support queens colour option" do + options = parse(["--colour"]) + options.colour.should be_true + end + + it "should support us color option" do + options = parse(["--color"]) + options.colour.should be_true + end + + it "should support single example with -e option" do + options = parse(["-e", "something or other"]) + options.examples.should eql(["something or other"]) + end + + it "should support single example with -s option (will be removed when autotest supports -e)" do + options = parse(["-s", "something or other"]) + options.examples.should eql(["something or other"]) + end + + it "should support single example with --example option" do + options = parse(["--example", "something or other"]) + options.examples.should eql(["something or other"]) + end + + it "should read several example names from file if --example is given an existing file name" do + options = parse(["--example", File.dirname(__FILE__) + '/examples.txt']) + options.examples.should eql([ + "Sir, if you were my husband, I would poison your drink.", + "Madam, if you were my wife, I would drink it."]) + end + + it "should read no examples if given an empty file" do + options = parse(["--example", File.dirname(__FILE__) + '/empty_file.txt']) + options.examples.should eql([]) + end + + it "should use html formatter when format is h" do + options = parse(["--format", "h"]) + options.formatters[0].class.should equal(Spec::Runner::Formatter::HtmlFormatter) + end + + it "should use html formatter when format is html" do + options = parse(["--format", "html"]) + options.formatters[0].class.should equal(Spec::Runner::Formatter::HtmlFormatter) + end + + it "should use silent formatter when format is s" do + options = parse(["--format", "l"]) + options.formatters[0].class.should equal(Spec::Runner::Formatter::SilentFormatter) + end + + it "should use silent formatter when format is silent" do + options = parse(["--format", "silent"]) + options.formatters[0].class.should equal(Spec::Runner::Formatter::SilentFormatter) + end + + it "should use html formatter with explicit output when format is html:test.html" do + FileUtils.rm 'test.html' if File.exist?('test.html') + options = parse(["--format", "html:test.html"]) + options.formatters # creates the file + File.should exist('test.html') + options.formatters[0].class.should equal(Spec::Runner::Formatter::HtmlFormatter) + options.formatters[0].close + FileUtils.rm 'test.html' + end + + it "should use noisy backtrace tweaker with b option" do + options = parse(["-b"]) + options.backtrace_tweaker.should be_instance_of(Spec::Runner::NoisyBacktraceTweaker) + end + + it "should use noisy backtrace tweaker with backtrace option" do + options = parse(["--backtrace"]) + options.backtrace_tweaker.should be_instance_of(Spec::Runner::NoisyBacktraceTweaker) + end + + it "should use quiet backtrace tweaker by default" do + options = parse([]) + options.backtrace_tweaker.should be_instance_of(Spec::Runner::QuietBacktraceTweaker) + end + + it "should use specdoc formatter when format is s" do + options = parse(["--format", "s"]) + options.formatters[0].class.should equal(Spec::Runner::Formatter::SpecdocFormatter) + end + + it "should use specdoc formatter when format is specdoc" do + options = parse(["--format", "specdoc"]) + options.formatters[0].class.should equal(Spec::Runner::Formatter::SpecdocFormatter) + end + + it "should use nested text formatter when format is s" do + options = parse(["--format", "n"]) + options.formatters[0].class.should equal(Spec::Runner::Formatter::NestedTextFormatter) + end + + it "should use nested text formatter when format is nested" do + options = parse(["--format", "nested"]) + options.formatters[0].class.should equal(Spec::Runner::Formatter::NestedTextFormatter) + end + + it "should support diff option when format is not specified" do + options = parse(["--diff"]) + options.diff_format.should == :unified + end + + it "should use unified diff format option when format is unified" do + options = parse(["--diff", "unified"]) + options.diff_format.should == :unified + options.differ_class.should equal(Spec::Expectations::Differs::Default) + end + + it "should use context diff format option when format is context" do + options = parse(["--diff", "context"]) + options.diff_format.should == :context + options.differ_class.should == Spec::Expectations::Differs::Default + end + + it "should use custom diff format option when format is a custom format" do + Spec::Expectations.differ.should_not be_instance_of(Custom::Differ) + + options = parse(["--diff", "Custom::Differ"]) + options.parse_diff "Custom::Differ" + options.diff_format.should == :custom + options.differ_class.should == Custom::Differ + Spec::Expectations.differ.should be_instance_of(Custom::Differ) + end + + it "should print instructions about how to fix missing differ" do + lambda { parse(["--diff", "Custom::MissingFormatter"]) }.should raise_error(NameError) + @err.string.should match(/Couldn't find differ class Custom::MissingFormatter/n) + end + + describe "when attempting a focussed spec" do + attr_reader :file, :dir + before(:each) do + @original_rspec_options = Spec::Runner.options + @file = "#{File.dirname(__FILE__)}/line_number_query/line_number_query_fixture.rb" + @dir = File.dirname(file) + end + + after(:each) do + Spec::Runner.use @original_rspec_options + end + + def parse(args) + options = super + Spec::Runner.use options + options.filename_pattern = "*_fixture.rb" + options + end + + describe 'with the --line flag' do + it "should correctly identify the spec" do + options = parse([file, "--line", "13"]) + options.line_number.should == 13 + options.examples.should be_empty + options.run_examples + options.examples.should eql(["d"]) + end + + it "should fail with error message if specified file is a dir" do + options = parse([dir, "--line", "169"]) + options.line_number.should == 169 + options.run_examples + @err.string.should match(/You must specify one file, not a directory when providing a line number/n) + end + + + it "should fail with error message if file does not exist" do + options = parse(["some file", "--line", "169"]) + proc do + options.run_examples + end.should raise_error + end + + it "should fail with error message if more than one files are specified" do + options = parse([file, file, "--line", "169"]) + options.run_examples + @err.string.should match(/Only one file can be specified when providing a line number/n) + end + + it "should fail with error message if using simultaneously with --example" do + options = parse([file, "--example", "some example", "--line", "169"]) + options.run_examples + @err.string.should match(/You cannot use --example and specify a line number/n) + end + end + + describe 'with the colon syntax (filename:LINE_NUMBER)' do + + it "should strip the line number from the file name" do + options = parse(["#{file}:13"]) + options.files.should include(file) + end + + it "should correctly identify the spec" do + options = parse(["#{file}:13"]) + options.line_number.should == 13 + options.examples.should be_empty + options.run_examples + options.examples.should eql(["d"]) + end + + it "should fail with error message if specified file is a dir" do + options = parse(["#{dir}:169"]) + options.line_number.should == 169 + options.run_examples + @err.string.should match(/You must specify one file, not a directory when providing a line number/n) + end + + + it "should fail with error message if file does not exist" do + options = parse(["some file:169"]) + proc do + options.run_examples + end.should raise_error + end + + it "should fail with error message if more than one files are specified" do + options = parse([file, "#{file}:169"]) + options.run_examples + @err.string.should match(/Only one file can be specified when providing a line number/n) + end + + it "should fail with error message if using simultaneously with --example" do + options = parse(["#{file}:169", "--example", "some example"]) + options.run_examples + @err.string.should match(/You cannot use --example and specify a line number/n) + end + end + + end + + if [/mswin/, /java/].detect{|p| p =~ RUBY_PLATFORM} + it "should barf when --heckle is specified (and platform is windows)" do + lambda do + options = parse(["--heckle", "Spec"]) + end.should raise_error(StandardError, /Heckle is not supported/) + end + elsif Spec::Ruby.version.to_f == 1.9 + it "should barf when --heckle is specified (and platform is Ruby 1.9)" do + lambda do + options = parse(["--heckle", "Spec"]) + end.should raise_error(StandardError, /Heckle is not supported/) + end + else + it "should heckle when --heckle is specified (and platform is not windows)" do + options = parse(["--heckle", "Spec"]) + options.heckle_runner.should be_instance_of(Spec::Runner::HeckleRunner) + end + end + + it "should read options from file when --options is specified" do + options = parse(["--options", File.dirname(__FILE__) + "/spec.opts"]) + options.diff_format.should_not be_nil + options.colour.should be_true + end + + it "should default the formatter to ProgressBarFormatter when using options file" do + options = parse(["--options", File.dirname(__FILE__) + "/spec.opts"]) + options.formatters.first.should be_instance_of(::Spec::Runner::Formatter::ProgressBarFormatter) + end + + it "should run parse drb after parsing options" do + @parser.should_receive(:parse_drb).with(no_args).and_return(true) + options = parse(["--options", File.dirname(__FILE__) + "/spec_drb.opts"]) + end + + it "should send all the arguments other than --drb back to the parser after parsing options" do + Spec::Runner::DrbCommandLine.should_receive(:run).and_return do |options| + options.argv.should == ["example_file.rb", "--colour"] + end + options = parse(["example_file.rb", "--options", File.dirname(__FILE__) + "/spec_drb.opts"]) + end + + it "runs specs locally if no drb is running when --drb is specified" do + Spec::Runner::DrbCommandLine.should_receive(:run).and_return(false) + options = parse(["example_file.rb", "--options", File.dirname(__FILE__) + "/spec_drb.opts"]) + options.__send__(:examples_should_be_run?).should be_true + end + + it "says its running specs locally if no drb is running when --drb is specified" do + Spec::Runner::DrbCommandLine.should_receive(:run).and_return(false) + options = parse(["example_file.rb", "--options", File.dirname(__FILE__) + "/spec_drb.opts"]) + options.error_stream.rewind + options.error_stream.string.should =~ /Running specs locally/ + end + + it "does not run specs locally if drb is running when --drb is specified" do + Spec::Runner::DrbCommandLine.should_receive(:run).and_return(true) + options = parse(["example_file.rb", "--options", File.dirname(__FILE__) + "/spec_drb.opts"]) + options.__send__(:examples_should_be_run?).should be_false + end + + it "should read spaced and multi-line options from file when --options is specified" do + options = parse(["--options", File.dirname(__FILE__) + "/spec_spaced.opts"]) + options.diff_format.should_not be_nil + options.colour.should be_true + options.formatters.first.should be_instance_of(::Spec::Runner::Formatter::SpecdocFormatter) + end + + it "should save config to file when --generate-options is specified" do + FileUtils.rm 'test.spec.opts' if File.exist?('test.spec.opts') + options = parse(["--colour", "--generate-options", "test.spec.opts", "--diff"]) + IO.read('test.spec.opts').should == "--colour\n--diff\n" + FileUtils.rm 'test.spec.opts' + end + + it "should save config to file when -G is specified" do + FileUtils.rm 'test.spec.opts' if File.exist?('test.spec.opts') + options = parse(["--colour", "-G", "test.spec.opts", "--diff"]) + IO.read('test.spec.opts').should == "--colour\n--diff\n" + FileUtils.rm 'test.spec.opts' + end + + it "when --drb is specified, calls DrbCommandLine all of the other ARGV arguments" do + options = Spec::Runner::OptionParser.parse([ + "some/spec.rb", "--diff", "--colour" + ], @err, @out) + Spec::Runner::DrbCommandLine.should_receive(:run).and_return do |options| + options.argv.should == ["some/spec.rb", "--diff", "--colour"] + end + parse(["some/spec.rb", "--diff", "--drb", "--colour"]) + end + + it "should reverse spec order when --reverse is specified" do + options = parse(["some/spec.rb", "--reverse"]) + end + + it "should set an mtime comparator when --loadby mtime" do + options = parse(["--loadby", 'mtime']) + runner = Spec::Runner::ExampleGroupRunner.new(options) + Spec::Runner::ExampleGroupRunner.should_receive(:new). + with(options). + and_return(runner) + runner.should_receive(:load_files).with(["most_recent_spec.rb", "command_line_spec.rb"]) + + Dir.chdir(File.dirname(__FILE__)) do + options.files << 'command_line_spec.rb' + options.files << 'most_recent_spec.rb' + FileUtils.touch "most_recent_spec.rb" + options.run_examples + FileUtils.rm "most_recent_spec.rb" + end + end + + it "should use the standard runner by default" do + runner = ::Spec::Runner::ExampleGroupRunner.new(@parser.options) + ::Spec::Runner::ExampleGroupRunner.should_receive(:new). + with(@parser.options). + and_return(runner) + options = parse([]) + options.run_examples + end + + it "should use a custom runner when given" do + runner = Custom::ExampleGroupRunner.new(@parser.options, nil) + Custom::ExampleGroupRunner.should_receive(:new). + with(@parser.options, nil). + and_return(runner) + options = parse(["--runner", "Custom::ExampleGroupRunner"]) + options.run_examples + end + + it "should use a custom runner with extra options" do + runner = Custom::ExampleGroupRunner.new(@parser.options, 'something') + Custom::ExampleGroupRunner.should_receive(:new). + with(@parser.options, 'something'). + and_return(runner) + options = parse(["--runner", "Custom::ExampleGroupRunner:something"]) + options.run_examples + end + + it "sets options.autospec to true with --autospec" do + options = parse(["--autospec"]) + options.autospec.should be(true) + end + + describe "implicitly loading spec/spec.opts" do + extend FakeFS::SpecHelpers + use_fakefs + it "uses spec/spec.opts if present" do + File.open('spec/spec.opts', 'w') { |f| f.write "--colour" } + options = parse(['ignore.rb']) + options.colour.should be(true) + end + + it "does not try to load spec/spec.opts if not present" do + FileUtils.rm 'spec/spec.opts' + options = parse(['ignore.rb']) + options.colour.should be(false) + end + + it "uses specified opts if supplied" do + options = nil + File.open("spec/spec.opts",'w') { |f| f.write "" } + File.open("spec/alternate.opts",'w') { |f| f.write "--colour" } + options = parse(['-O','spec/alternate.opts']) + options.colour.should be(true) + end + end + + +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/options_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/options_spec.rb new file mode 100644 index 0000000..bb1e0e8 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/options_spec.rb @@ -0,0 +1,547 @@ +require 'spec_helper' +require 'spec/runner/resources/custom_example_group_runner' + +module Spec + module Runner + describe Options do + before(:each) do + @err = StringIO.new('') + @out = StringIO.new('') + @options = Options.new(@err, @out) + + before_suite_parts = [] + after_suite_parts = [] + @options.stub!(:before_suite_parts).and_return(before_suite_parts) + @options.stub!(:after_suite_parts).and_return(after_suite_parts) + end + + after(:each) do + Spec::Expectations.differ = nil + end + + describe "#require_ruby_debug" do + it "should require ruby-debug" do + @options.stub!(:require) + @options.should_receive(:require).with("ruby-debug") + @options.require_ruby_debug + end + end + + describe "#examples" do + it "should default to empty array" do + @options.examples.should == [] + end + end + + describe "#include_pattern" do + it "should default to '**/*_spec.rb'" do + @options.filename_pattern.should == "**/*_spec.rb" + end + end + + describe "#files_to_load" do + + it "should load files not following pattern if named explicitly" do + file = File.expand_path(File.dirname(__FILE__) + "/resources/a_bar.rb") + @options.files << file + @options.files_to_load.should include(file) + end + + describe "with default --pattern" do + it "should load files named _spec.rb" do + dir = File.expand_path(File.dirname(__FILE__) + "/resources/") + @options.files << dir + @options.files_to_load.should == ["#{dir}/a_spec.rb"] + end + end + + describe "with explicit pattern (single)" do + before(:each) do + @options.filename_pattern = "**/*_foo.rb" + end + + it "should load files following pattern" do + file = File.expand_path(File.dirname(__FILE__) + "/resources/a_foo.rb") + @options.files << file + @options.files_to_load.should include(file) + end + + it "should load files in directories following pattern" do + dir = File.expand_path(File.dirname(__FILE__) + "/resources") + @options.files << dir + @options.files_to_load.should include("#{dir}/a_foo.rb") + end + + it "should not load files in directories not following pattern" do + dir = File.expand_path(File.dirname(__FILE__) + "/resources") + @options.files << dir + @options.files_to_load.should_not include("#{dir}/a_bar.rb") + end + end + + describe "with explicit pattern (comma,separated,values)" do + + before(:each) do + @options.filename_pattern = "**/*_foo.rb,**/*_bar.rb" + end + + it "should support comma separated values" do + dir = File.expand_path(File.dirname(__FILE__) + "/resources") + @options.files << dir + @options.files_to_load.should include("#{dir}/a_foo.rb") + @options.files_to_load.should include("#{dir}/a_bar.rb") + end + + it "should support comma separated values with spaces" do + dir = File.expand_path(File.dirname(__FILE__) + "/resources") + @options.files << dir + @options.files_to_load.should include("#{dir}/a_foo.rb") + @options.files_to_load.should include("#{dir}/a_bar.rb") + end + + end + + end + + describe "#backtrace_tweaker" do + it "should default to QuietBacktraceTweaker" do + @options.backtrace_tweaker.class.should == QuietBacktraceTweaker + end + + it "adds custom ignored backtrace patterns" do + Spec::Runner.configuration.stub!(:ignored_backtrace_patterns).and_return([/custom_pattern/]) + @options.run_examples + @options.backtrace_tweaker.ignored_patterns.should include(/custom_pattern/) + end + end + + describe "#dry_run" do + it "should default to false" do + @options.dry_run.should == false + end + end + + describe "#debug" do + it "should default to false" do + @options.debug.should == false + end + end + + describe "#context_lines" do + it "should default to 3" do + @options.context_lines.should == 3 + end + end + + describe "#parse_diff with nil" do + before(:each) do + @options.parse_diff nil + end + + it "should make diff_format unified" do + @options.diff_format.should == :unified + end + + it "should set Spec::Expectations.differ to be a default differ" do + Spec::Expectations.differ.class.should == + ::Spec::Expectations::Differs::Default + end + end + + describe "#parse_diff with 'unified'" do + before(:each) do + @options.parse_diff 'unified' + end + + it "should make diff_format unified and uses default differ_class" do + @options.diff_format.should == :unified + @options.differ_class.should equal(Spec::Expectations::Differs::Default) + end + + it "should set Spec::Expectations.differ to be a default differ" do + Spec::Expectations.differ.class.should == + ::Spec::Expectations::Differs::Default + end + end + + describe "#parse_diff with 'context'" do + before(:each) do + @options.parse_diff 'context' + end + + it "should make diff_format context and uses default differ_class" do + @options.diff_format.should == :context + @options.differ_class.should == Spec::Expectations::Differs::Default + end + + it "should set Spec::Expectations.differ to be a default differ" do + Spec::Expectations.differ.class.should == + ::Spec::Expectations::Differs::Default + end + end + + describe "#parse_diff with Custom::Differ" do + before(:each) do + @options.parse_diff 'Custom::Differ' + end + + it "should use custom differ_class" do + @options.diff_format.should == :custom + @options.differ_class.should == Custom::Differ + Spec::Expectations.differ.should be_instance_of(Custom::Differ) + end + + it "should set Spec::Expectations.differ to be a default differ" do + Spec::Expectations.differ.class.should == + ::Custom::Differ + end + end + + describe "#parse_diff with missing class name" do + it "should raise error" do + lambda { @options.parse_diff "Custom::MissingDiffer" }.should raise_error(NameError) + @err.string.should match(/Couldn't find differ class Custom::MissingDiffer/n) + end + end + + describe "#parse_example" do + it "with argument thats not a file path, sets argument as the example" do + example = "something or other" + File.file?(example).should == false + @options.parse_example example + @options.examples.should eql(["something or other"]) + end + + it "with argument that is a file path, sets examples to contents of the file" do + example = "#{File.dirname(__FILE__)}/examples.txt" + File.should_receive(:file?).with(example).and_return(true) + file = StringIO.new("Sir, if you were my husband, I would poison your drink.\nMadam, if you were my wife, I would drink it.") + File.should_receive(:open).with(example).and_return(file) + + @options.parse_example example + @options.examples.should eql([ + "Sir, if you were my husband, I would poison your drink.", + "Madam, if you were my wife, I would drink it." + ]) + end + end + + describe "#examples_should_not_be_run" do + it "should cause #run_examples to return true and do nothing" do + @options.examples_should_not_be_run + ExampleGroupRunner.should_not_receive(:new) + + @options.run_examples.should be_true + end + end + + describe "debug option specified" do + it "should cause ruby_debug to be required and do nothing" do + @options.debug = true + @options.should_receive(:require_ruby_debug) + @options.run_examples.should be_true + end + end + + describe "debug option not specified" do + it "should not cause ruby_debug to be required" do + @options.debug = false + @options.should_not_receive(:require_ruby_debug) + @options.run_examples.should be_true + end + end + + describe "#load_class" do + it "should raise error when not class name" do + lambda do + @options.__send__(:load_class, 'foo', 'fruit', '--food') + end.should raise_error('"foo" is not a valid class name') + end + end + + describe "#reporter" do + it "returns a Reporter" do + @options.reporter.should be_instance_of(Reporter) + @options.reporter.options.should === @options + end + end + + describe "#number_of_examples" do + context "when --example is parsed" do + it "provides the number of examples parsed instead of the total number of examples collected" do + @example_group = Class.new(::Spec::Example::ExampleGroup).describe("Some Examples") do + it "uses this example_group 1" do; end + it "uses this example_group 2" do; end + it "uses this example_group 3" do; end + end + @options.add_example_group @example_group + @options.parse_example("an example") + @options.number_of_examples.should == 1 + end + end + end + + describe "#add_example_group affecting passed in example_group" do + it "runs all examples when options.examples is empty" do + example_1_has_run = false + example_2_has_run = false + @example_group = Class.new(::Spec::Example::ExampleGroup).describe("Some Examples") do + it "runs 1" do + example_1_has_run = true + end + it "runs 2" do + example_2_has_run = true + end + end + + @options.examples.clear + + @options.add_example_group @example_group + @options.run_examples + example_1_has_run.should be_true + example_2_has_run.should be_true + end + + it "keeps all example_definitions when options.examples is empty" do + example_1_has_run = false + example_2_has_run = false + @example_group = Class.new(::Spec::Example::ExampleGroup).describe("Some Examples") do + it "runs 1" do + example_1_has_run = true + end + it "runs 2" do + example_2_has_run = true + end + end + + @options.add_example_group @example_group + @options.run_examples + example_1_has_run.should be_true + example_2_has_run.should be_true + end + end + + describe "#add_example_group affecting example_group" do + it "adds example_group when example_group has example_definitions and is not shared" do + @example_group = Class.new(::Spec::Example::ExampleGroup).describe("Some Examples") do + it "uses this example_group" do + end + end + + @options.number_of_examples.should == 0 + @options.add_example_group @example_group + @options.number_of_examples.should == 1 + @options.example_groups.length.should == 1 + end + end + + describe "#remove_example_group" do + it "should remove the ExampleGroup from the list of ExampleGroups" do + @example_group = Class.new(::Spec::Example::ExampleGroup).describe("Some Examples") do + end + @options.add_example_group @example_group + @options.example_groups.should include(@example_group) + + @options.remove_example_group @example_group + @options.example_groups.should_not include(@example_group) + end + end + + describe "#run_examples" do + describe "with global predicate matchers" do + it "defines global predicate matcher methods on ExampleMethods" do + Spec::Runner.configuration.stub!(:predicate_matchers).and_return({:this => :that?}) + group = Class.new(::Spec::Example::ExampleGroupDouble).describe("Some Examples") + example = group.new(::Spec::Example::ExampleProxy.new) + + @options.run_examples + example.this + end + + after(:each) do + Spec::Example::ExampleMethods.class_eval "undef :this" + end + end + + describe "with a mock framework defined as a Symbol" do + it "includes Spec::Adapters::MockFramework" do + Spec::Runner.configuration.stub!(:mock_framework).and_return('spec/adapters/mock_frameworks/rspec') + + Spec::Example::ExampleMethods.should_receive(:include).with(Spec::Adapters::MockFramework) + + @options.run_examples + end + end + + describe "with a mock framework defined as a Module" do + it "includes the module in ExampleMethods" do + mod = Module.new + Spec::Runner.configuration.stub!(:mock_framework).and_return(mod) + Spec::Example::ExampleMethods.should_receive(:include).with(mod) + @options.run_examples + end + end + + describe "when not given a custom runner" do + it "should use the standard" do + runner = ::Spec::Runner::ExampleGroupRunner.new(@options) + ::Spec::Runner::ExampleGroupRunner.should_receive(:new). + with(@options). + and_return(runner) + @options.user_input_for_runner = nil + + @options.run_examples + end + end + + describe "when given a custom runner" do + it "should use the custom runner" do + runner = Custom::ExampleGroupRunner.new(@options, nil) + Custom::ExampleGroupRunner.should_receive(:new). + with(@options, nil). + and_return(runner) + @options.user_input_for_runner = "Custom::ExampleGroupRunner" + + @options.run_examples + end + + it "should use the custom runner with extra options" do + runner = Custom::ExampleGroupRunner.new(@options, 'something') + Custom::ExampleGroupRunner.should_receive(:new). + with(@options, 'something'). + and_return(runner) + @options.user_input_for_runner = "Custom::ExampleGroupRunner:something" + + @options.run_examples + end + end + + describe "when there are examples" do + before(:each) do + @example_group = Class.new(::Spec::Example::ExampleGroup) + @options.add_example_group @example_group + @options.formatters << Formatter::BaseTextFormatter.new(@options, @out) + end + + it "runs the Examples and outputs the result" do + @options.run_examples + @out.string.should include("0 examples, 0 failures") + end + + it "sets #examples_run? to true" do + @options.examples_run?.should be_false + @options.run_examples + @options.examples_run?.should be_true + end + + describe "and the suite passes" do + before do + @example_group.should_receive(:run).and_return(true) + end + + it "invokes after_suite_parts with true" do + success_result = nil + @options.after_suite_parts << lambda do |success| + success_result = success + end + + @options.run_examples + success_result.should be_true + end + end + + describe "and the suite fails" do + before(:each) do + @example_group.should_receive(:run).and_return(false) + end + + it "invokes after_suite_parts with false" do + success_result = nil + @options.after_suite_parts << lambda do |success| + success_result = success + end + + @options.run_examples + success_result.should be_false + end + end + + describe "when using heckle runner" do + before(:each) do + @heckle_runner_mock = mock("HeckleRunner") + @options.heckle_runner = @heckle_runner_mock + end + + it "should heckle" do + @heckle_runner_mock.should_receive(:heckle_with) + @options.run_examples + end + + it "shouldn't heckle recursively" do + heckled = false + @heckle_runner_mock.should_receive(:heckle_with) { + heckled.should == false + heckled = true + @options.run_examples + } + @options.run_examples + end + + it "shouldn't load spec files twice" do + example_runner = mock("ExampleGroupRunner") + example_runner_inside_heckle = mock("ExampleGroupRunner inside Heckle") + + ExampleGroupRunner.should_receive(:new).twice.and_return( + example_runner, example_runner_inside_heckle + ) + + example_runner.stub!(:run) + example_runner.should_receive(:load_files) + @heckle_runner_mock.stub!(:heckle_with).and_return { @options.run_examples } + example_runner_inside_heckle.stub!(:run) + example_runner_inside_heckle.should_not_receive(:load_files) + + @options.run_examples + end + end + end + + describe "when there are no examples" do + before(:each) do + @options.formatters << Formatter::BaseTextFormatter.new(@options, @out) + end + + it "does not run Examples and does not output a result" do + @options.run_examples + @out.string.should_not include("examples") + @out.string.should_not include("failures") + end + + it "sets #examples_run? to false" do + @options.examples_run?.should be_false + @options.run_examples + @options.examples_run?.should be_false + end + + it "invokes after_suite_parts with true" do + success_result = nil + @options.after_suite_parts << lambda do |success| + success_result = success + end + + @options.run_examples + success_result.should be_true + end + end + end + + describe "#add_dir_from_project_root_to_load_path" do + it "handles nil gracefully" do + load_path = double().as_null_object + @options.stub(:project_root).and_return(nil) + @options.add_dir_from_project_root_to_load_path(nil,load_path) + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/output_one_time_fixture.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/output_one_time_fixture.rb new file mode 100644 index 0000000..8a3a9fc --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/output_one_time_fixture.rb @@ -0,0 +1,7 @@ +require 'spec_helper' + +describe "Running an Example" do + it "should not output twice" do + true.should be_true + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/output_one_time_fixture_runner.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/output_one_time_fixture_runner.rb new file mode 100644 index 0000000..b6b3761 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/output_one_time_fixture_runner.rb @@ -0,0 +1,7 @@ +require "spec_helper" + +triggering_double_output = Spec::Runner.options +options = Spec::Runner::OptionParser.parse( + [File.dirname(__FILE__) + "/output_one_time_fixture.rb"], $stderr, $stdout +) +Spec::Runner::CommandLine.run(options) diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/output_one_time_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/output_one_time_spec.rb new file mode 100644 index 0000000..c91bb0f --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/output_one_time_spec.rb @@ -0,0 +1,15 @@ +require 'spec_helper' +require 'ruby_forker' + +module Spec + module Runner + describe CommandLine do + include RubyForker + it "should not output twice" do + output = ruby "-Ilib bin/spec spec/spec/runner/output_one_time_fixture_runner.rb" + output.should include("1 example, 0 failures") + output.should_not include("0 examples, 0 failures") + end + end + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/quiet_backtrace_tweaker_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/quiet_backtrace_tweaker_spec.rb new file mode 100644 index 0000000..30eaa73 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/quiet_backtrace_tweaker_spec.rb @@ -0,0 +1,105 @@ +require 'spec_helper' + +module Spec + module Runner + describe QuietBacktraceTweaker do + before(:each) do + @error = RuntimeError.new + @tweaker = QuietBacktraceTweaker.new + end + + it "gracefully handles nil backtrace" do + lambda do + @tweaker.tweak_backtrace(@error) + end.should_not raise_error + end + + it "gracefully handle backtraces with newlines" do + @error.set_backtrace(["we like\nbin/spec:\nnewlines"]) + @tweaker.tweak_backtrace(@error) + @error.backtrace.should include("we like\nnewlines") + end + + it "cleans up double slashes" do + @error.set_backtrace(["/a//b/c//d.rb"]) + @tweaker.tweak_backtrace(@error) + @error.backtrace.should include("/a/b/c/d.rb") + end + + it "preserves lines from textmate ruby bundle" do + @error.set_backtrace(["/Applications/TextMate.app/Contents/SharedSupport/Bundles/Ruby.tmbundle/Support/tmruby.rb:147"]) + @tweaker.tweak_backtrace(@error) + @error.backtrace.should be_empty + end + + it "removes lines in lib/spec" do + ["expectations", "mocks", "runner"].each do |child| + element="/lib/spec/#{child}/anything.rb" + @error.set_backtrace([element]) + @tweaker.tweak_backtrace(@error) + @error.backtrace.should be_empty, "Should have removed line with '#{element}'" + end + end + + it "removes lines in bin/spec" do + @error.set_backtrace(["bin/spec:"]) + @tweaker.tweak_backtrace(@error) + @error.backtrace.should be_empty + end + + it "removes lines in mock_frameworks/rspec" do + element = "mock_frameworks/rspec" + @error.set_backtrace([element]) + @tweaker.tweak_backtrace(@error) + @error.backtrace.should be_empty, "Should have removed line with '#{element}'" + end + + it "removes custom patterns" do + element = "/vendor/lib/custom_pattern/" + @tweaker.ignore_patterns /custom_pattern/ + @error.set_backtrace([element]) + @tweaker.tweak_backtrace(@error) + @error.backtrace.should be_empty, "Should have removed line with '#{element}'" + end + + it "removes custom patterns added as a string" do + element = "/vendor/lib/custom_pattern/" + @tweaker.ignore_patterns "custom_pattern" + @error.set_backtrace([element]) + @tweaker.tweak_backtrace(@error) + @error.backtrace.should be_empty, "Should have removed line with '#{element}'" + end + + it "removes lines in mock_frameworks/rspec" do + element = "mock_frameworks/rspec" + @error.set_backtrace([element]) + @tweaker.tweak_backtrace(@error) + @error.backtrace.should be_empty, "Should have removed line with '#{element}'" + end + + it "removes lines in rspec gem" do + ["/rspec-1.2.3/lib/spec.rb","/rspec-1.2.3/lib/spec/anything.rb","bin/spec:123"].each do |element| + @error.set_backtrace([element]) + @tweaker.tweak_backtrace(@error) + @error.backtrace.should be_empty, "Should have removed line with '#{element}'" + end + end + + it "removes lines in pre-release rspec gems" do + ["/rspec-1.2.3.a1.gem/lib/spec.rb","/rspec-1.2.3.b1.gem/lib/spec.rb","/rspec-1.2.3.rc1.gem/lib/spec.rb"].each do |element| + @error.set_backtrace([element]) + @tweaker.tweak_backtrace(@error) + @error.backtrace.should be_empty, "Should have removed line with '#{element}'" + end + end + + it "removes lines in spork gem" do + ["/spork-1.2.3/lib/spec.rb","/spork-1.2.3/lib/spec/anything.rb","bin/spork:123"].each do |element| + @error.set_backtrace([element]) + @tweaker.tweak_backtrace(@error) + @error.backtrace.should be_empty, "Should have removed line with '#{element}'" + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/reporter_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/reporter_spec.rb new file mode 100644 index 0000000..556387d --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/reporter_spec.rb @@ -0,0 +1,244 @@ +require 'spec_helper' + +module Spec + module Runner + describe Reporter do + attr_reader :formatter_output, :options, :backtrace_tweaker, :formatter, :reporter, :example_group, :example_group_proxy, :example_proxy + before(:each) do + @formatter_output = StringIO.new + @options = Options.new(StringIO.new, StringIO.new) + @backtrace_tweaker = stub("backtrace tweaker", :tweak_backtrace => nil) + options.backtrace_tweaker = backtrace_tweaker + @formatter = ::Spec::Runner::Formatter::BaseTextFormatter.new(options, formatter_output) + options.formatters << formatter + @reporter = Reporter.new(options) + @example_group = create_example_group("example_group") + @example_group_proxy = Spec::Example::ExampleGroupProxy.new(@example_group) + @example_proxy = Spec::Example::ExampleProxy.new + example_group.notify(reporter) + end + + def failure + Mocks::ArgumentMatchers::DuckTypeMatcher.new(:header, :exception) + end + + def create_example_group(text) + example_group = Spec::Example::ExampleGroup.describe(text) do + it "should do something" do + end + end + example_group + end + + it "should assign itself as the reporter to options" do + options.reporter.should equal(@reporter) + end + + it "should tell formatter when example_group is added" do + formatter.should_receive(:example_group_started).with(example_group_proxy) + example_group.notify(reporter) + end + + it "should handle multiple example_groups with same name" do + formatter.should_receive(:example_group_started).exactly(3).times + formatter.should_receive(:example_started).exactly(3).times + formatter.should_receive(:example_passed).exactly(3).times + formatter.should_receive(:start_dump) + formatter.should_receive(:dump_pending) + formatter.should_receive(:close).with(no_args) + formatter.should_receive(:dump_summary).with(anything(), 3, 0, 0) + create_example_group("example_group").notify(reporter) + reporter.example_started(description_of("spec 1")) + reporter.example_finished(description_of("spec 1")) + create_example_group("example_group").notify(reporter) + reporter.example_started(description_of("spec 2")) + reporter.example_finished(description_of("spec 2")) + create_example_group("example_group").notify(reporter) + reporter.example_started(description_of("spec 3")) + reporter.example_finished(description_of("spec 3")) + reporter.dump + end + + def description_of(example) + ::Spec::Example::ExampleProxy.new(String === example ? example : example.description) + end + + it "should handle multiple examples with the same name" do + error=RuntimeError.new + passing = ::Spec::Example::ExampleGroupDouble.new(example_proxy) + failing = ::Spec::Example::ExampleGroupDouble.new(example_proxy) + + formatter.should_receive(:example_group_started).exactly(2).times + formatter.should_receive(:example_passed).with(description_of(passing)).exactly(2).times + formatter.should_receive(:example_failed).with(description_of(failing), 1, failure) + formatter.should_receive(:example_failed).with(description_of(failing), 2, failure) + formatter.should_receive(:dump_failure).exactly(2).times + formatter.should_receive(:start_dump) + formatter.should_receive(:dump_pending) + formatter.should_receive(:close).with(no_args) + formatter.should_receive(:dump_summary).with(anything(), 4, 2, 0) + backtrace_tweaker.should_receive(:tweak_backtrace).twice + + create_example_group("example_group").notify(reporter) + reporter.example_finished(description_of(passing)) + reporter.example_finished(description_of(failing), error) + + create_example_group("example_group").notify(reporter) + reporter.example_finished(description_of(passing)) + reporter.example_finished(description_of(failing), error) + reporter.dump + end + + it "should push stats to formatter even with no data" do + formatter.should_receive(:start_dump) + formatter.should_receive(:dump_pending) + formatter.should_receive(:dump_summary).with(anything(), 0, 0, 0) + formatter.should_receive(:close).with(no_args) + reporter.dump + end + + it "should push time to formatter" do + formatter.should_receive(:start).with(5) + formatter.should_receive(:start_dump) + formatter.should_receive(:dump_pending) + formatter.should_receive(:close).with(no_args) + formatter.should_receive(:dump_summary) do |time, a, b| + time.to_s.should match(/[0-9].[0-9|e|-]+/) + end + reporter.start(5) + reporter.end + reporter.dump + end + + describe "reporting one passing example" do + it "should tell formatter example passed" do + formatter.should_receive(:example_passed) + reporter.example_finished(description_of("example")) + end + + it "should not delegate to backtrace tweaker" do + formatter.should_receive(:example_passed) + backtrace_tweaker.should_not_receive(:tweak_backtrace) + reporter.example_finished(description_of("example")) + end + + it "should account for passing example in stats" do + formatter.should_receive(:example_passed) + formatter.should_receive(:start_dump) + formatter.should_receive(:dump_pending) + formatter.should_receive(:dump_summary).with(anything(), 1, 0, 0) + formatter.should_receive(:close).with(no_args) + reporter.example_finished(description_of("example")) + reporter.dump + end + end + + describe "reporting one failing example" do + it "should tell formatter that example failed" do + example = example_group.it("should do something") {} + formatter.should_receive(:example_failed) + reporter.example_finished(description_of(example), RuntimeError.new) + end + + it "should delegate to backtrace tweaker" do + formatter.should_receive(:example_failed) + backtrace_tweaker.should_receive(:tweak_backtrace) + reporter.example_finished(example_proxy, RuntimeError.new) + end + + it "should account for failing example in stats" do + example = ::Spec::Example::ExampleGroupDouble.new(example_proxy) + formatter.should_receive(:example_failed).with(description_of(example), 1, failure) + formatter.should_receive(:start_dump) + formatter.should_receive(:dump_pending) + formatter.should_receive(:dump_failure).with(1, anything()) + formatter.should_receive(:dump_summary).with(anything(), 1, 1, 0) + formatter.should_receive(:close).with(no_args) + reporter.example_finished(description_of(example), RuntimeError.new) + reporter.dump + end + + end + + describe "reporting one pending example (ExamplePendingError)" do + before :each do + @pending_error = Spec::Example::ExamplePendingError.new("reason") + end + + it "should tell formatter example is pending" do + example = ExampleGroup.new(example_proxy) + formatter.should_receive(:example_pending).with(description_of(example), "reason") + formatter.should_receive(:example_group_started).with(example_group_proxy) + example_group.notify(reporter) + reporter.example_finished(description_of(example), @pending_error) + end + + it "should account for pending example in stats" do + example = ExampleGroup.new(example_proxy) + formatter.should_receive(:example_pending).with(description_of(example), "reason") + formatter.should_receive(:start_dump) + formatter.should_receive(:dump_pending) + formatter.should_receive(:dump_summary).with(anything(), 1, 0, 1) + formatter.should_receive(:close).with(no_args) + formatter.should_receive(:example_group_started).with(example_group_proxy) + example_group.notify(reporter) + reporter.example_finished(description_of(example), @pending_error) + reporter.dump + end + + describe "to formatters which have example_pending's arity of 3 (which is now deprecated)" do + before :each do + Spec.stub!(:warn) + + @deprecated_formatter = Class.new(@formatter.class) do + attr_reader :example_passed_to_method, :message_passed_to_method + + def example_pending(example_passed_to_method, message_passed_to_method, deprecated_pending_location) + @example_passed_to_method = example_passed_to_method + @message_passed_to_method = message_passed_to_method + end + end.new(options, formatter_output) + + options.formatters << @deprecated_formatter + end + + it "should pass the correct example description to the formatter" do + proxy = Spec::Example::ExampleProxy.new("name") + example = ExampleGroup.new(proxy) + example_group.notify(reporter) + reporter.example_finished(description_of(example), @pending_error) + + @deprecated_formatter.example_passed_to_method.should == proxy + end + + it "should pass the correct pending error message to the formatter" do + example = ExampleGroup.new(example_proxy) + example_group.notify(reporter) + reporter.example_finished(description_of(example), @pending_error) + + @deprecated_formatter.message_passed_to_method.should == @pending_error.message + end + + it "should raise a deprecation warning" do + Spec.should_receive(:warn) + + example = ExampleGroup.new(example_proxy) + example_group.notify(reporter) + reporter.example_finished(description_of(example), @pending_error) + end + end + end + + describe "reporting one pending example (PendingExampleFixedError)" do + it "should tell formatter pending example is fixed" do + formatter.should_receive(:example_failed) do |name, counter, failure| + failure.header.should == "'example_group should do something' FIXED" + end + formatter.should_receive(:example_group_started).with(example_group_proxy) + example_group.notify(reporter) + reporter.example_finished(description_of(example_group.examples.first), Spec::Example::PendingExampleFixedError.new("reason")) + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/resources/a_bar.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/resources/a_bar.rb new file mode 100644 index 0000000..e69de29 diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/resources/a_foo.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/resources/a_foo.rb new file mode 100644 index 0000000..e69de29 diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/resources/a_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/resources/a_spec.rb new file mode 100644 index 0000000..d9b67cc --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/resources/a_spec.rb @@ -0,0 +1 @@ +# Empty - used by ../options_spec.rb \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/resources/custom_example_group_runner.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/resources/custom_example_group_runner.rb new file mode 100644 index 0000000..edcf54e --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/resources/custom_example_group_runner.rb @@ -0,0 +1,14 @@ +module Custom + class ExampleGroupRunner + attr_reader :options, :arg + def initialize(options, arg) + @options, @arg = options, arg + end + + def load_files(files) + end + + def run + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/resources/utf8_encoded.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/resources/utf8_encoded.rb new file mode 100644 index 0000000..7cbdd69 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/resources/utf8_encoded.rb @@ -0,0 +1,8 @@ +# encoding: utf-8 +module Custom + class ExampleUTF8ClassNameVarietà + def self.è + così = :però + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/spec.opts b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/spec.opts new file mode 100644 index 0000000..fd816a4 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/spec.opts @@ -0,0 +1,2 @@ +--diff +--colour \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/spec_drb.opts b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/spec_drb.opts new file mode 100644 index 0000000..61f260b --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/spec_drb.opts @@ -0,0 +1,2 @@ +--colour +--drb diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/spec_spaced.opts b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/spec_spaced.opts new file mode 100644 index 0000000..6b3efd2 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner/spec_spaced.opts @@ -0,0 +1,2 @@ +--diff --colour +--format s \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner_spec.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner_spec.rb new file mode 100644 index 0000000..3b55be7 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec/runner_spec.rb @@ -0,0 +1,13 @@ +require 'spec_helper' + +module Spec + describe Runner do + describe ".configure" do + it "should yield global configuration" do + Spec::Runner.configure do |config| + config.should equal(Spec::Runner.configuration) + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/spec_helper.rb b/presidents/vendor/gems/rspec-1.2.9/spec/spec_helper.rb new file mode 100644 index 0000000..3cffe87 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/spec_helper.rb @@ -0,0 +1,112 @@ +require 'stringio' + +$_spec_spec = true # Prevents Kernel.exit in various places + +require 'spec' +require 'spec/mocks' +require 'spec/runner/differs/default' +require 'spec/autorun' + +require 'support/spec_classes' +require 'support/macros' + +def jruby? + ::RUBY_PLATFORM == 'java' +end + +module Spec + module Example + class NonStandardError < Exception; end + end + + module Matchers + def fail + raise_error(Spec::Expectations::ExpectationNotMetError) + end + + def fail_with(message) + raise_error(Spec::Expectations::ExpectationNotMetError, message) + end + + def exception_from(&block) + exception = nil + begin + yield + rescue StandardError => e + exception = e + end + exception + end + + def run_with(options) + ::Spec::Runner::CommandLine.run(options) + end + + def with_ruby(version) + yield if RUBY_VERSION =~ Regexp.compile("^#{version.to_s}") + end + end +end + +def with_sandboxed_options + attr_reader :options + + before(:each) do + @original_rspec_options = ::Spec::Runner.options + ::Spec::Runner.use(@options = ::Spec::Runner::Options.new(StringIO.new, StringIO.new)) + end + + after(:each) do + ::Spec::Runner.use(@original_rspec_options) + end + + yield +end + +def with_sandboxed_config + attr_reader :config + + before(:each) do + @config = ::Spec::Runner::Configuration.new + @original_configuration = ::Spec::Runner.configuration + spec_configuration = @config + ::Spec::Runner.instance_eval {@configuration = spec_configuration} + end + + after(:each) do + original_configuration = @original_configuration + ::Spec::Runner.instance_eval {@configuration = original_configuration} + ::Spec::Example::ExampleGroupFactory.reset + end + + yield +end + +module Spec + module Example + module Resettable + def reset # :nodoc: + @before_all_parts = nil + @after_all_parts = nil + @before_each_parts = nil + @after_each_parts = nil + end + end + class ExampleGroup + extend Resettable + end + class ExampleGroupDouble < ExampleGroup + ::Spec::Runner.options.remove_example_group self + def register_example_group(klass) + #ignore + end + def initialize(proxy=nil, &block) + super(proxy || ExampleProxy.new, &block) + end + end + end +end + +Spec::Runner.configure do |config| + config.extend(Macros) +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/support/macros.rb b/presidents/vendor/gems/rspec-1.2.9/spec/support/macros.rb new file mode 100644 index 0000000..6322060 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/support/macros.rb @@ -0,0 +1,29 @@ +module Macros + def treats_method_missing_as_private(options = {:noop => true, :subject => nil}) + it "should have method_missing as private" do + with_ruby 1.8 do + described_class.private_instance_methods.should include("method_missing") + end + with_ruby 1.9 do + described_class.private_instance_methods.should include(:method_missing) + end + end + + it "should not respond_to? method_missing (because it's private)" do + formatter = options[:subject] || described_class.new({ }, StringIO.new) + formatter.should_not respond_to(:method_missing) + end + + if options[:noop] + it "should respond_to? all messages" do + formatter = described_class.new({ }, StringIO.new) + formatter.should respond_to(:just_about_anything) + end + + it "should respond_to? anything, when given the private flag" do + formatter = described_class.new({ }, StringIO.new) + formatter.respond_to?(:method_missing, true).should be_true + end + end + end +end diff --git a/presidents/vendor/gems/rspec-1.2.9/spec/support/spec_classes.rb b/presidents/vendor/gems/rspec-1.2.9/spec/support/spec_classes.rb new file mode 100644 index 0000000..c8900a7 --- /dev/null +++ b/presidents/vendor/gems/rspec-1.2.9/spec/support/spec_classes.rb @@ -0,0 +1,133 @@ +# This file contains various classes used by the specs. +module Spec + module Expectations + class Person + attr_reader :name + def initialize name + @name = name + end + def == other + return @name == other.name + end + end + + class ClassWithMultiWordPredicate + def multi_word_predicate? + true + end + end + + module Helper + class CollectionWithSizeMethod + def initialize; @list = []; end + def size; @list.size; end + def push(item); @list.push(item); end + end + + class CollectionWithLengthMethod + def initialize; @list = []; end + def length; @list.size; end + def push(item); @list.push(item); end + end + + class CollectionOwner + attr_reader :items_in_collection_with_size_method, :items_in_collection_with_length_method + + def initialize + @items_in_collection_with_size_method = CollectionWithSizeMethod.new + @items_in_collection_with_length_method = CollectionWithLengthMethod.new + end + + def add_to_collection_with_size_method(item) + @items_in_collection_with_size_method.push(item) + end + + def add_to_collection_with_length_method(item) + @items_in_collection_with_length_method.push(item) + end + + def items_for(arg) + return [1, 2, 3] if arg == 'a' + [1] + end + + def items + @items_in_collection_with_size_method + end + end + + class HandCodedMock + include Spec::Matchers + def initialize(return_val) + @return_val = return_val + @funny_called = false + end + + def funny? + @funny_called = true + @return_val + end + + def hungry?(a, b, c) + a.should equal(1) + b.should equal(2) + c.should equal(3) + @funny_called = true + @return_val + end + + def exists? + @return_val + end + + def multi_word_predicate? + @return_val + end + + def rspec_verify + @funny_called.should be_true + end + end + class ClassWithUnqueriedPredicate + attr_accessor :foo + def initialize(foo) + @foo = foo + end + end + end + end +end + +module Custom + require 'spec/runner/formatter/base_text_formatter' + class Formatter < Spec::Runner::Formatter::BaseTextFormatter + attr_reader :options, :where + + def initialize(options, where) + @options = options + @where = where + end + end + + class BadFormatter < Spec::Runner::Formatter::BaseTextFormatter + attr_reader :where + + def initialize(options, where) + bad_method + end + end + + class Differ + attr_reader :options + def initialize(options) + @options = options + end + + def diff_as_object(target, expected) + "" + end + end +end + +class FakeReporter < Spec::Runner::Reporter +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/.document b/presidents/vendor/gems/rspec-rails-1.2.9/.document new file mode 100644 index 0000000..1c7800d --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/.document @@ -0,0 +1,7 @@ +lib/**/*.rb +History.rdoc +License.txt +README.rdoc +Upgrade.rdoc +features/**/*.feature + diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/.specification b/presidents/vendor/gems/rspec-rails-1.2.9/.specification new file mode 100644 index 0000000..034fb8f --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/.specification @@ -0,0 +1,277 @@ +--- !ruby/object:Gem::Specification +name: rspec-rails +version: !ruby/object:Gem::Version + version: 1.2.9 +platform: ruby +authors: +- RSpec Development Team +autorequire: +bindir: bin +cert_chain: [] + +date: 2009-10-05 00:00:00 +06:00 +default_executable: +dependencies: +- !ruby/object:Gem::Dependency + name: rspec + type: :runtime + version_requirement: + version_requirements: !ruby/object:Gem::Requirement + requirements: + - - ">=" + - !ruby/object:Gem::Version + version: 1.2.9 + version: +- !ruby/object:Gem::Dependency + name: rack + type: :runtime + version_requirement: + version_requirements: !ruby/object:Gem::Requirement + requirements: + - - ">=" + - !ruby/object:Gem::Version + version: 1.0.0 + version: +- !ruby/object:Gem::Dependency + name: cucumber + type: :development + version_requirement: + version_requirements: !ruby/object:Gem::Requirement + requirements: + - - ">=" + - !ruby/object:Gem::Version + version: 0.3.99 + version: +- !ruby/object:Gem::Dependency + name: hoe + type: :development + version_requirement: + version_requirements: !ruby/object:Gem::Requirement + requirements: + - - ">=" + - !ruby/object:Gem::Version + version: 2.3.3 + version: +description: Behaviour Driven Development for Ruby on Rails. +email: +- rspec-devel@rubyforge.org +executables: [] + +extensions: [] + +extra_rdoc_files: +- License.txt +- Manifest.txt +- TODO.txt +- generators/rspec/templates/previous_failures.txt +files: +- .document +- Contribute.rdoc +- History.rdoc +- License.txt +- Manifest.txt +- README.rdoc +- Rakefile +- TODO.txt +- Upgrade.rdoc +- generators/integration_spec/integration_spec_generator.rb +- generators/integration_spec/templates/integration_spec.rb +- generators/rspec/CHANGES +- generators/rspec/rspec_generator.rb +- generators/rspec/templates/previous_failures.txt +- generators/rspec/templates/rcov.opts +- generators/rspec/templates/rspec.rake +- generators/rspec/templates/script/autospec +- generators/rspec/templates/script/spec +- generators/rspec/templates/spec.opts +- generators/rspec/templates/spec_helper.rb +- generators/rspec_controller/USAGE +- generators/rspec_controller/rspec_controller_generator.rb +- generators/rspec_controller/templates/controller_spec.rb +- generators/rspec_controller/templates/helper_spec.rb +- generators/rspec_controller/templates/view_spec.rb +- generators/rspec_default_values.rb +- generators/rspec_model/USAGE +- generators/rspec_model/rspec_model_generator.rb +- generators/rspec_model/templates/model_spec.rb +- generators/rspec_scaffold/rspec_scaffold_generator.rb +- generators/rspec_scaffold/templates/controller_spec.rb +- generators/rspec_scaffold/templates/edit_erb_spec.rb +- generators/rspec_scaffold/templates/helper_spec.rb +- generators/rspec_scaffold/templates/index_erb_spec.rb +- generators/rspec_scaffold/templates/new_erb_spec.rb +- generators/rspec_scaffold/templates/routing_spec.rb +- generators/rspec_scaffold/templates/show_erb_spec.rb +- init.rb +- lib/autotest/discover.rb +- lib/autotest/rails_rspec.rb +- lib/spec/rails.rb +- lib/spec/rails/example.rb +- lib/spec/rails/example/assigns_hash_proxy.rb +- lib/spec/rails/example/controller_example_group.rb +- lib/spec/rails/example/cookies_proxy.rb +- lib/spec/rails/example/functional_example_group.rb +- lib/spec/rails/example/helper_example_group.rb +- lib/spec/rails/example/integration_example_group.rb +- lib/spec/rails/example/model_example_group.rb +- lib/spec/rails/example/render_observer.rb +- lib/spec/rails/example/routing_example_group.rb +- lib/spec/rails/example/routing_helpers.rb +- lib/spec/rails/example/view_example_group.rb +- lib/spec/rails/extensions.rb +- lib/spec/rails/extensions/action_controller/rescue.rb +- lib/spec/rails/extensions/action_controller/test_case.rb +- lib/spec/rails/extensions/action_controller/test_response.rb +- lib/spec/rails/extensions/action_view/base.rb +- lib/spec/rails/extensions/active_record/base.rb +- lib/spec/rails/extensions/active_support/test_case.rb +- lib/spec/rails/extensions/spec/matchers/have.rb +- lib/spec/rails/extensions/spec/runner/configuration.rb +- lib/spec/rails/interop/testcase.rb +- lib/spec/rails/matchers.rb +- lib/spec/rails/matchers/ar_be_valid.rb +- lib/spec/rails/matchers/assert_select.rb +- lib/spec/rails/matchers/change.rb +- lib/spec/rails/matchers/have_text.rb +- lib/spec/rails/matchers/include_text.rb +- lib/spec/rails/matchers/redirect_to.rb +- lib/spec/rails/matchers/render_template.rb +- lib/spec/rails/matchers/route_to.rb +- lib/spec/rails/mocks.rb +- lib/spec/rails/version.rb +- spec/autotest/mappings_spec.rb +- spec/rails_suite.rb +- spec/resources/controllers/action_view_base_spec_controller.rb +- spec/resources/controllers/application.rb +- spec/resources/controllers/controller_spec_controller.rb +- spec/resources/controllers/example.txt +- spec/resources/controllers/redirect_spec_controller.rb +- spec/resources/controllers/render_spec_controller.rb +- spec/resources/controllers/rjs_spec_controller.rb +- spec/resources/helpers/addition_helper.rb +- spec/resources/helpers/explicit_helper.rb +- spec/resources/helpers/more_explicit_helper.rb +- spec/resources/helpers/plugin_application_helper.rb +- spec/resources/helpers/view_spec_helper.rb +- spec/resources/models/animal.rb +- spec/resources/models/person.rb +- spec/resources/models/thing.rb +- spec/resources/views/controller_spec/_partial.html.erb +- spec/resources/views/controller_spec/action_setting_flash_after_session_reset.html.erb +- spec/resources/views/controller_spec/action_setting_flash_before_session_reset.html.erb +- spec/resources/views/controller_spec/action_setting_the_assigns_hash.html.erb +- spec/resources/views/controller_spec/action_with_errors_in_template.html.erb +- spec/resources/views/controller_spec/action_with_template.html.erb +- spec/resources/views/layouts/application.html.erb +- spec/resources/views/layouts/simple.html.erb +- spec/resources/views/objects/_object.html.erb +- spec/resources/views/render_spec/_a_partial.html.erb +- spec/resources/views/render_spec/action_with_alternate_layout.html.erb +- spec/resources/views/render_spec/some_action.html.erb +- spec/resources/views/render_spec/some_action.js.rjs +- spec/resources/views/rjs_spec/_replacement_partial.html.erb +- spec/resources/views/rjs_spec/hide_div.js.rjs +- spec/resources/views/rjs_spec/hide_page_element.js.rjs +- spec/resources/views/rjs_spec/insert_html.js.rjs +- spec/resources/views/rjs_spec/replace.js.rjs +- spec/resources/views/rjs_spec/replace_html.js.rjs +- spec/resources/views/rjs_spec/replace_html_with_partial.js.rjs +- spec/resources/views/rjs_spec/visual_effect.js.rjs +- spec/resources/views/rjs_spec/visual_toggle_effect.js.rjs +- spec/resources/views/tag_spec/no_tags.html.erb +- spec/resources/views/tag_spec/single_div_with_no_attributes.html.erb +- spec/resources/views/tag_spec/single_div_with_one_attribute.html.erb +- spec/resources/views/view_spec/_partial.html.erb +- spec/resources/views/view_spec/_partial_used_twice.html.erb +- spec/resources/views/view_spec/_partial_with_local_variable.html.erb +- spec/resources/views/view_spec/_partial_with_sub_partial.html.erb +- spec/resources/views/view_spec/_spacer.html.erb +- spec/resources/views/view_spec/accessor.html.erb +- spec/resources/views/view_spec/block_helper.html.erb +- spec/resources/views/view_spec/entry_form.html.erb +- spec/resources/views/view_spec/explicit_helper.html.erb +- spec/resources/views/view_spec/foo/show.html.erb +- spec/resources/views/view_spec/implicit_helper.html.erb +- spec/resources/views/view_spec/multiple_helpers.html.erb +- spec/resources/views/view_spec/path_params.html.erb +- spec/resources/views/view_spec/should_not_receive.html.erb +- spec/resources/views/view_spec/template_with_partial.html.erb +- spec/resources/views/view_spec/template_with_partial_using_collection.html.erb +- spec/resources/views/view_spec/template_with_partial_with_array.html.erb +- spec/resources/views/view_spec/view_helpers.html.erb +- spec/spec/rails/example/assigns_hash_proxy_spec.rb +- spec/spec/rails/example/configuration_spec.rb +- spec/spec/rails/example/controller_example_group_spec.rb +- spec/spec/rails/example/controller_isolation_spec.rb +- spec/spec/rails/example/cookies_proxy_spec.rb +- spec/spec/rails/example/error_handling_spec.rb +- spec/spec/rails/example/example_group_factory_spec.rb +- spec/spec/rails/example/helper_example_group_spec.rb +- spec/spec/rails/example/model_example_group_spec.rb +- spec/spec/rails/example/routing_example_group_spec.rb +- spec/spec/rails/example/shared_routing_example_group_examples.rb +- spec/spec/rails/example/test_unit_assertion_accessibility_spec.rb +- spec/spec/rails/example/view_example_group_spec.rb +- spec/spec/rails/extensions/action_view_base_spec.rb +- spec/spec/rails/extensions/active_record_spec.rb +- spec/spec/rails/interop/testcase_spec.rb +- spec/spec/rails/matchers/ar_be_valid_spec.rb +- spec/spec/rails/matchers/assert_select_spec.rb +- spec/spec/rails/matchers/errors_on_spec.rb +- spec/spec/rails/matchers/have_text_spec.rb +- spec/spec/rails/matchers/include_text_spec.rb +- spec/spec/rails/matchers/redirect_to_spec.rb +- spec/spec/rails/matchers/render_template_spec.rb +- spec/spec/rails/matchers/should_change_spec.rb +- spec/spec/rails/mocks/ar_classes.rb +- spec/spec/rails/mocks/mock_model_spec.rb +- spec/spec/rails/mocks/stub_model_spec.rb +- spec/spec/rails/sample_modified_fixture.rb +- spec/spec/rails/sample_spec.rb +- spec/spec/rails/spec_spec.rb +- spec/spec_helper.rb +has_rdoc: true +homepage: http://rspec.info +licenses: [] + +post_install_message: | + ************************************************** + + Thank you for installing rspec-rails-1.2.9 + + If you are upgrading, do this in each of your rails apps + that you want to upgrade: + + $ ruby script/generate rspec + + Please be sure to read History.rdoc and Upgrade.rdoc + for useful information about this release. + + ************************************************** + +rdoc_options: +- --main +- README.rdoc +require_paths: +- lib +required_ruby_version: !ruby/object:Gem::Requirement + requirements: + - - ">=" + - !ruby/object:Gem::Version + version: "0" + version: +required_rubygems_version: !ruby/object:Gem::Requirement + requirements: + - - ">=" + - !ruby/object:Gem::Version + version: "0" + version: +requirements: [] + +rubyforge_project: rspec +rubygems_version: 1.3.5 +signing_key: +specification_version: 3 +summary: rspec-rails 1.2.9 +test_files: [] + diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/Contribute.rdoc b/presidents/vendor/gems/rspec-rails-1.2.9/Contribute.rdoc new file mode 100644 index 0000000..0c10d49 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/Contribute.rdoc @@ -0,0 +1,4 @@ +== Contribute + +If you're interested in contributing to rspec-rails, please see +http://wiki.github.com/dchelimsky/rspec-dev for information. diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/History.rdoc b/presidents/vendor/gems/rspec-rails-1.2.9/History.rdoc new file mode 100644 index 0000000..4cddf68 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/History.rdoc @@ -0,0 +1,283 @@ +=== Version 1.2.9 / 2009-10-05 + +* enhancements + * added route_to and be_routable matchers (Randy Harmon). Closes #843. + * Provide better failure message for render_template when redirected (Josh + Nichols). Closes #885. + * generated specs require 'spec_helper' + +* bug fixes + * pass the correct args to super in controller#render depending on the rails + version (Lucas Carlson). Closes #865. + * use Rack::Utils.parse_query to convert query strings to hashes. Closes #872. + * errors correctly bubble up when a controller spec in isolation mode + requests a non-existent action/template + * no error if either action or template exist + * error if neither exist + * Closes #888. + +* removals + * spec_server has been removed in favor of spork. + * You can still use the --drb flag, but you've got to install the spork + gem. + * Windows users who cannot use the spork gem can install the spec_server + from http://github.com/dchelimsky/spec_server + +=== Version 1.2.7 / 2009-06-22 + +* enhancements + * alias :stub!, :stub so rspec-rails extensions of rspec stubs can use the + same syntax as rspec (core) + * integration specs (Ben Mabey and David Chelimsky) + * added support for references and belongs_to generated model specs (José + Valim). Closes #792. + * add discovery for autotest-rails to keep compatible with ZenTest-4.0.0 + (Ryan Davis). Closes #838. + * controller specs in isolation mode don't care whether the file exists + anymore! + +* bug fixes + * allow rspec-rails to work without ActiveRecord. Closes #810. + * fix bug with have() matcher failure message (Dave Giunta). Closes #818. + * fix bug where render_template('new') would pass if 'newer' was rendered + (or anything that started with 'new') + +* deprecations + * spec_server is now deprecated - use spork instead (gem install spork). + Closes #827. + +=== Version 1.2.6 / 2009-04-30 + +* bug fixes + * restored rake tasks for rspec[-rails] as plugins + +=== Version 1.2.5 / 2009-04-29 + +* enhancements + * support :xml and :strict config options for have_tag matcher (patch from + Peer Allan and Max Murphy). Closes #783. + +* bug fixes + * Fixed a small typo that makes rake stats fail (José Valim). Closes #802. + * link_to and friends are available to ViewExampleGroup again + (J.B. Rainsberger). Closes #787. + * spec_server works correctly with rails 2.3 again (Neil Buckley). Closes + #759. + +=== Version 1.2.4 / 2009-03-13 + +No changes in this release, but aligns with the rspec-1.2.4 release. Someday +soon, this binding of rspec/rspec-rails versions needs to end! + +=== Version 1.2.3 / 2009-03-13 + +No changes in this release, but aligns with the rspec-1.2.3 release. + +=== Version 1.2.2 / 2009-03-22 + +No changes in this release, but aligns with the rspec-1.2.2 release. + +=== Version 1.2.1 / 2009-03-22 + +This is a bug-fix release, recommended for anybody who has already upgraded to +rspec-rails-1.2.0 or is upgrading to rails-2.3.2 + +See Upgrade.rdoc for information about upgrading to rspec-rails-1.2.1 + +* enhancements + + * more cleanup of internals (reducing dependency on rspec-core) + * don't require config/environments more than once + * autotest includes spec/routing directory (Matt Peterson). Closes #739. + * display helpful messages when installing rspec-rails running + script/generate rspec + * thanks for Dr Nic for the pointers + * restored require 'rubygems' where needed + * export NO_RUBYGEMS=true if you don't use rubygems + +* bug fixes + + * fix scoping issues in rspec-rails' own suite for ruby 1.9.1 (Matthias + Hennemeyer). Closes #717. + * rake stats no longer hides test directories. Closes #748. + * fixed regression that was introduced in 1.2 in which controller_name + failed to override the controller class passed to describe() (patches from + Aaron Gibralter and Zach Dennis). Closes #732. + +=== Version 1.2.0 / 2009-03-15 + +IMPORTANT: See Upgrade.rdoc for information about upgrading to rspec-rails-1.2.0 + +IMPORTANT: This release includes the following backwards-compatibility-breaking changes. + +* rspec-rails supports rails 2.0.2, 2.1.2, 2.2.2 and 2.3.2 + + * We are no longer supporting 1.x versions of rails. + +* expect_render and stub_render have been removed. + + * Both of these methods were deprecated in rspec-rails-1.1.5, released in Sept, 2008. + +* { route_for(args).should == "/path" } now delegates to assert_generates (in rails) + + * see Upgrade.txt for more information + +* deprecations + + * controller.use_rails_error_handling! is deprecated + * use rescue_action_in_public! (from rails) instead + +* enhancements + + * Adding status codes to redirect_to matcher (Damian Janowski). Closes #570. + * Initialize current URL before executing any examples in a ViewExampleGroup (Wilson Bilkovich). Closes #654. + * Support query strings in params_from (Wilson Bilkovich). Closes #652. + * delegate route_for to assert_recognizes (less brittle) + * it { should be_valid } (Kakutani). Closes #665. + * controller is implicit subject in controller specs (Joe Ferris). #686. + * template is implicit subject in view specs (Joe Ferris). #686. + * redirect_to and render_template matchers can accept controller or response (Joe Ferris). Closes #686. + * generated specs use declarative docstrings + * rspec_scaffold generator generates layout and stylesheet (per Rails-2.3) + * add bypass_rescue for controller specs + * infer template path from the first arg passed to describe in view specs + * separate routing specs (in spec/routing) + +* bug fixes + + * you no longer *have* to load ActionMailer to get specs to run. Closes #650. + * query_params are now parsed by Rack::Utils.parse_query in redirect_to matcher. Closes #684. + * cleaned up spec_server (there was a bunch of pre-rails 2.0 material). Closes #685. + * rspec's rake tasks are not loaded when running "rake gems" or any of its subtasks + * only warn when rspec is not installed when trying to invoke an rspec rake task + * support 2 arg version of ActionController::Base#render (reported by Nathan Wilmes) + * rake spec:server:start doesn't choke if there is no tmp directory + * force cache_classes = false when running with spec_server. Closes #287. + * keep spec_server working against edge rails (Jonathan Tron). Closes #685. + * create lib/tasks if not present when running script/generate rspec. Closes #687. + * fixed regression (and added spec so it won't regress again) where + render => :inline didn't render unless integrate_views was set + * fixed nil.with_output_buffer bug in helper specs. Closes #719. + +=== Version 1.1.12 / 2009-01-11 + +* 2 deprecations + + * TestResponse#[] is deprecated if you're using Rails <= 2.2.x and removed if you're using Rails 2.3 + * add_stubs(model, {:method => value}) is deprecated. Use model.stub!(:method => value) instead. + +* 2 major enhancements + + * support controller and action path params in view specs (Mike Vincent). + * use ActiveSupport::TestCase when available, else Test::Unit::TestCase - supports Rails 1.2.6 (Brandon Keepers). Closes #620. + * support form tag helpers in helpers (Ivo Dancet). Closes #641. + +* 3 minor enhancements + + * improve rdoc for render_template (Patch from Andrew Premdas). Fixes #571. + * use more liberal globs to allow for specs in symlinked dirs (Martin Luder). Closes #361. + * Enable loading fixtures from arbitrary locations (Jacek Becela). Closes #464. + +* 7 bug fixes + + * Attempt to load application_controller before falling back to application (Geoff Garside). Closes #626. + * Include _id and reduce quoting of default values in view specs (Steen Lehmann). Closes #598. + * Record calls to render and check rendered[:template] and rendered[:partial] for edge rails (> v2.2.2). Closes #633. + * config.gem 'rspec' can't be unpacked. Closes #629. + * spec_server not working with Rails 2.2.2 (Andreas Wolff). Closes #631. + * redirect_to doesn't work with http method constrained urls (Maxim Kulkin). Closes #648. + * rescue_with declarations are no longer by-passed (Brandon Keepers). #85 + +=== Version 1.1.11 / 2008-10-24 + +* No changes to rspec-rails - release to align with bug-fix release in rspec ... again :( + +=== Version 1.1.10 / 2008-10-24 + +* No changes to rspec-rails - release to align with bug-fix release in rspec + +=== Version 1.1.9 / 2008-10-20 + +* 4 bug fixes + + * require 'rubygems' in script/spec + * fix failure message for error_on and errors_on (Patch from Mike Vincent). Fixes #566. + * fix issues that arise in view spec if passing actual template name to render (Patch from Mike Vincent). Fixes #551. + * fixed bug accessing assigns from helper examples + +=== Version 1.1.8 / 2008-10-03 + +* 2 bug fixes + + * correctly handle assigns that are false. Fixes #552. + * ensure that NotYetImplemented examples report as pending (fixed in rspec, not rspec-rails). Fixes #553. + +=== Version 1.1.7 / 2008-10-02 + +* 1 bug fix + + * depend on the correct version of rspec + +=== Version 1.1.6 / 2008-10-02 + +* 1 bug fix + + * fixed regression where values assigned to the assigns hash were not accessible from the example (#549) + +=== Version 1.1.5 / 2008-09-28 + +IMPORTANT: use 'script/autospec' (or just 'autospec' if you have the rspec gem +installed) instead of 'autotest'. We changed the way autotest discovers rspec +so the autotest executable won't automatically load rspec anymore. This allows +rspec to live side by side other spec frameworks without always co-opting +autotest through autotest's discovery mechanism. + +ALSO IMPORTANT: Rails v2.1.1 changed assert_select_rjs such that it doesn't +always fail when it should. Please see +http://rails.lighthouseapp.com/projects/8994/tickets/982. + +* Generated route specs have shorter names, making it less painful to modify their implementation +* Add conditional so Rails 2.1.0 doesn't warn about cache_template_extensions (patch from James Herdman) +* Fixed stub_model examples to work with Rails 2.1.0 (the code was fine, just the examples needed patching) +* use hoe for build/release +* reworked generated examples for rspec_scaffold - thanks to Mikel Lindsaar and Dan Manges for their feedback +* bye, bye translator +* Added proxy to cookies so you can set them in examples the same way you set them in controllers +* Added script/autospec so you can run autospec without installing the gem +* Support --skip-fixture in the rspec_model generator (patches from Alex Tomlins and Niels Ganser) +* Add mock_model#as_new_record (patch from Zach Dennis) +* mock(:null_object=>true) plays nice with HTML (patch from Gerrit Kaiser) +* Suppress a deprecation notice in Rails 2.1 (James Herdman) +* quiet deprecation warning on inflector (RSL) +* rspec-rails gem (Ben Mabey) +* updated generated code examples +* Make rspec_model generator honour --skip-fixtures tag (Niels Ganser, Alex Tomlins) +* Fix to create new models with attributes in command line (Nicolas) +* fix to_param in mock_model with stubbed id incorrectly returning autogenerated id (Adam Meehan) +* Call Rail's TestCase setup/teardown callbacks (Jonathan del Strother) +* Only run TestUnitTesting once (Jonathan del Strother) +* use require_dependency instead of require (Brandon Keepers) +* Fixed a problem caused by controller action names getting out of sync between rspec-dev and rspec-rails for speccing (Matt Patterson) +* don't mutate hash passed to mock_model (Reg Vos) + +=== Version 1.1.4 + +Maintenance release. + +* Moved mock_model and stub_model to their own module: Spec::Rails::Mocks +* Setting mock_model object id with stubs hash - patch from Adam Meehan +* Added as_new_record to stub_model e.g. stub_model(Foo).as_new_record +* Improved stub_model such that new_record? does "the right thing" +* Patch from Pat Maddox to get integrate_views to work in nested example groups. +* Patch from Pat Maddox to get controller_name to work in nested example groups. +* Patch from Corey Haines to add include_text matcher +* Added stub_model method which creates a real model instance with :id stubbed and data access prohibited. +* Applied patch from Pat Maddox to handle redirect_to w/ SSL. Closes #320. +* Added #helper and #assigns to helper specs. +* Applied patch from Bryan Helmkamp to tweak format of generated spec.opts to be more obvious. Closes #162. +* Tweaked list of exceptions (ignores) for autotest +* Applied patch from Rick Olson to get rspec_on_rails working with rails edge (>= 8862) +* Applied patch from Wincent Colaiuta to invert sense of "spec --diff". Closes #281. +* Allow any type of render in view specs. Closes #57. +* Applied patch from Ian White to get rspec working with edge rails (8804). Closes #271. +* Applied patch from Jon Strother to have spec_server reload fixtures. Closes #344. diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/License.txt b/presidents/vendor/gems/rspec-rails-1.2.9/License.txt new file mode 100644 index 0000000..791a0ee --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/License.txt @@ -0,0 +1,33 @@ +(The MIT License) + +==================================================================== +==== RSpec, RSpec-Rails +Copyright (c) 2005-2009 The RSpec Development Team +==================================================================== +==== ARTS +Copyright (c) 2006 Kevin Clark, Jake Howerton +==================================================================== +==== ZenTest +Copyright (c) 2001-2006 Ryan Davis, Eric Hodel, Zen Spider Software +==================================================================== +==== AssertSelect +Copyright (c) 2006 Assaf Arkin +==================================================================== + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/Manifest.txt b/presidents/vendor/gems/rspec-rails-1.2.9/Manifest.txt new file mode 100644 index 0000000..f5f07c1 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/Manifest.txt @@ -0,0 +1,165 @@ +.document +Contribute.rdoc +History.rdoc +License.txt +Manifest.txt +README.rdoc +Rakefile +TODO.txt +Upgrade.rdoc +generators/integration_spec/integration_spec_generator.rb +generators/integration_spec/templates/integration_spec.rb +generators/rspec/CHANGES +generators/rspec/rspec_generator.rb +generators/rspec/templates/previous_failures.txt +generators/rspec/templates/rcov.opts +generators/rspec/templates/rspec.rake +generators/rspec/templates/script/autospec +generators/rspec/templates/script/spec +generators/rspec/templates/spec.opts +generators/rspec/templates/spec_helper.rb +generators/rspec_controller/USAGE +generators/rspec_controller/rspec_controller_generator.rb +generators/rspec_controller/templates/controller_spec.rb +generators/rspec_controller/templates/helper_spec.rb +generators/rspec_controller/templates/view_spec.rb +generators/rspec_default_values.rb +generators/rspec_model/USAGE +generators/rspec_model/rspec_model_generator.rb +generators/rspec_model/templates/model_spec.rb +generators/rspec_scaffold/rspec_scaffold_generator.rb +generators/rspec_scaffold/templates/controller_spec.rb +generators/rspec_scaffold/templates/edit_erb_spec.rb +generators/rspec_scaffold/templates/helper_spec.rb +generators/rspec_scaffold/templates/index_erb_spec.rb +generators/rspec_scaffold/templates/new_erb_spec.rb +generators/rspec_scaffold/templates/routing_spec.rb +generators/rspec_scaffold/templates/show_erb_spec.rb +init.rb +lib/autotest/discover.rb +lib/autotest/rails_rspec.rb +lib/spec/rails.rb +lib/spec/rails/example.rb +lib/spec/rails/example/assigns_hash_proxy.rb +lib/spec/rails/example/controller_example_group.rb +lib/spec/rails/example/cookies_proxy.rb +lib/spec/rails/example/functional_example_group.rb +lib/spec/rails/example/helper_example_group.rb +lib/spec/rails/example/integration_example_group.rb +lib/spec/rails/example/model_example_group.rb +lib/spec/rails/example/render_observer.rb +lib/spec/rails/example/routing_example_group.rb +lib/spec/rails/example/routing_helpers.rb +lib/spec/rails/example/view_example_group.rb +lib/spec/rails/extensions.rb +lib/spec/rails/extensions/action_controller/rescue.rb +lib/spec/rails/extensions/action_controller/test_case.rb +lib/spec/rails/extensions/action_controller/test_response.rb +lib/spec/rails/extensions/action_view/base.rb +lib/spec/rails/extensions/active_record/base.rb +lib/spec/rails/extensions/active_support/test_case.rb +lib/spec/rails/extensions/spec/matchers/have.rb +lib/spec/rails/extensions/spec/runner/configuration.rb +lib/spec/rails/interop/testcase.rb +lib/spec/rails/matchers.rb +lib/spec/rails/matchers/ar_be_valid.rb +lib/spec/rails/matchers/assert_select.rb +lib/spec/rails/matchers/change.rb +lib/spec/rails/matchers/have_text.rb +lib/spec/rails/matchers/include_text.rb +lib/spec/rails/matchers/redirect_to.rb +lib/spec/rails/matchers/render_template.rb +lib/spec/rails/matchers/route_to.rb +lib/spec/rails/mocks.rb +lib/spec/rails/version.rb +spec/autotest/mappings_spec.rb +spec/rails_suite.rb +spec/resources/controllers/action_view_base_spec_controller.rb +spec/resources/controllers/application.rb +spec/resources/controllers/controller_spec_controller.rb +spec/resources/controllers/example.txt +spec/resources/controllers/redirect_spec_controller.rb +spec/resources/controllers/render_spec_controller.rb +spec/resources/controllers/rjs_spec_controller.rb +spec/resources/helpers/addition_helper.rb +spec/resources/helpers/explicit_helper.rb +spec/resources/helpers/more_explicit_helper.rb +spec/resources/helpers/plugin_application_helper.rb +spec/resources/helpers/view_spec_helper.rb +spec/resources/models/animal.rb +spec/resources/models/person.rb +spec/resources/models/thing.rb +spec/resources/views/controller_spec/_partial.html.erb +spec/resources/views/controller_spec/action_setting_flash_after_session_reset.html.erb +spec/resources/views/controller_spec/action_setting_flash_before_session_reset.html.erb +spec/resources/views/controller_spec/action_setting_the_assigns_hash.html.erb +spec/resources/views/controller_spec/action_with_errors_in_template.html.erb +spec/resources/views/controller_spec/action_with_template.html.erb +spec/resources/views/layouts/application.html.erb +spec/resources/views/layouts/simple.html.erb +spec/resources/views/objects/_object.html.erb +spec/resources/views/render_spec/_a_partial.html.erb +spec/resources/views/render_spec/action_with_alternate_layout.html.erb +spec/resources/views/render_spec/some_action.html.erb +spec/resources/views/render_spec/some_action.js.rjs +spec/resources/views/rjs_spec/_replacement_partial.html.erb +spec/resources/views/rjs_spec/hide_div.js.rjs +spec/resources/views/rjs_spec/hide_page_element.js.rjs +spec/resources/views/rjs_spec/insert_html.js.rjs +spec/resources/views/rjs_spec/replace.js.rjs +spec/resources/views/rjs_spec/replace_html.js.rjs +spec/resources/views/rjs_spec/replace_html_with_partial.js.rjs +spec/resources/views/rjs_spec/visual_effect.js.rjs +spec/resources/views/rjs_spec/visual_toggle_effect.js.rjs +spec/resources/views/tag_spec/no_tags.html.erb +spec/resources/views/tag_spec/single_div_with_no_attributes.html.erb +spec/resources/views/tag_spec/single_div_with_one_attribute.html.erb +spec/resources/views/view_spec/_partial.html.erb +spec/resources/views/view_spec/_partial_used_twice.html.erb +spec/resources/views/view_spec/_partial_with_local_variable.html.erb +spec/resources/views/view_spec/_partial_with_sub_partial.html.erb +spec/resources/views/view_spec/_spacer.html.erb +spec/resources/views/view_spec/accessor.html.erb +spec/resources/views/view_spec/block_helper.html.erb +spec/resources/views/view_spec/entry_form.html.erb +spec/resources/views/view_spec/explicit_helper.html.erb +spec/resources/views/view_spec/foo/show.html.erb +spec/resources/views/view_spec/implicit_helper.html.erb +spec/resources/views/view_spec/multiple_helpers.html.erb +spec/resources/views/view_spec/path_params.html.erb +spec/resources/views/view_spec/should_not_receive.html.erb +spec/resources/views/view_spec/template_with_partial.html.erb +spec/resources/views/view_spec/template_with_partial_using_collection.html.erb +spec/resources/views/view_spec/template_with_partial_with_array.html.erb +spec/resources/views/view_spec/view_helpers.html.erb +spec/spec/rails/example/assigns_hash_proxy_spec.rb +spec/spec/rails/example/configuration_spec.rb +spec/spec/rails/example/controller_example_group_spec.rb +spec/spec/rails/example/controller_isolation_spec.rb +spec/spec/rails/example/cookies_proxy_spec.rb +spec/spec/rails/example/error_handling_spec.rb +spec/spec/rails/example/example_group_factory_spec.rb +spec/spec/rails/example/helper_example_group_spec.rb +spec/spec/rails/example/model_example_group_spec.rb +spec/spec/rails/example/routing_example_group_spec.rb +spec/spec/rails/example/shared_routing_example_group_examples.rb +spec/spec/rails/example/test_unit_assertion_accessibility_spec.rb +spec/spec/rails/example/view_example_group_spec.rb +spec/spec/rails/extensions/action_view_base_spec.rb +spec/spec/rails/extensions/active_record_spec.rb +spec/spec/rails/interop/testcase_spec.rb +spec/spec/rails/matchers/ar_be_valid_spec.rb +spec/spec/rails/matchers/assert_select_spec.rb +spec/spec/rails/matchers/errors_on_spec.rb +spec/spec/rails/matchers/have_text_spec.rb +spec/spec/rails/matchers/include_text_spec.rb +spec/spec/rails/matchers/redirect_to_spec.rb +spec/spec/rails/matchers/render_template_spec.rb +spec/spec/rails/matchers/should_change_spec.rb +spec/spec/rails/mocks/ar_classes.rb +spec/spec/rails/mocks/mock_model_spec.rb +spec/spec/rails/mocks/stub_model_spec.rb +spec/spec/rails/sample_modified_fixture.rb +spec/spec/rails/sample_spec.rb +spec/spec/rails/spec_spec.rb +spec/spec_helper.rb diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/README.rdoc b/presidents/vendor/gems/rspec-rails-1.2.9/README.rdoc new file mode 100644 index 0000000..b74fc08 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/README.rdoc @@ -0,0 +1,45 @@ += Spec::Rails + +* http://rspec.info +* http://rubyforge.org/projects/rspec +* http://github.com/dchelimsky/rspec-rails +* http://wiki.github.com/dchelimsky/rspec/rails +* mailto:rspec-devel@rubyforge.org + +== DESCRIPTION: + +Behaviour Driven Development for Ruby on Rails. + +rspec-rails is an RSpec extension that allows you to drive the development of +Ruby on Rails applications with RSpec. + +== FEATURES: + +* Use RSpec to independently specify Rails Models, Views, Controllers and Helpers +* Integrated fixture loading +* Special generators for Resources, Models, Views and Controllers that generate RSpec code examples. + +== VISION: + +For people for whom TDD is a brand new concept, the testing support built into +Ruby on Rails is a huge leap forward. The fact that it is built right in is +fantastic, and Ruby on Rails apps are generally much easier to maintain than +they might have been without such support. + +For those of us coming from a history with TDD, and now BDD, the existing +support presents some problems related to dependencies across examples. To +that end, RSpec on Rails supports 4 types of examples. We’ve also built in +first class mocking and stubbing support in order to break dependencies across +these different concerns. + +== MORE INFORMATION: + +See Spec::Rails::Example for information about the different kinds of example +groups you can use to spec the different Rails components + +See Spec::Rails::Matchers for information about Rails-specific +expectations you can set on responses and models, etc. + +== INSTALL + +* Visit http://wiki.github.com/dchelimsky/rspec/rails for installation instructions. diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/Rakefile b/presidents/vendor/gems/rspec-rails-1.2.9/Rakefile new file mode 100644 index 0000000..f5ba456 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/Rakefile @@ -0,0 +1,72 @@ +# -*- ruby -*- +gem 'hoe', '>=2.0.0' +require 'hoe' + +$:.unshift(File.expand_path(File.join(File.dirname(__FILE__),"..","rspec","lib"))) +$:.unshift(File.expand_path(File.join(File.dirname(__FILE__),"lib"))) + +require 'spec/rails/version' +require 'spec/rake/spectask' +require 'cucumber/rake/task' + +Hoe.spec 'rspec-rails' do + self.version = Spec::Rails::VERSION::STRING + self.summary = Spec::Rails::VERSION::SUMMARY + self.description = "Behaviour Driven Development for Ruby on Rails." + self.rubyforge_name = 'rspec' + self.developer 'RSpec Development Team', 'rspec-devel@rubyforge.org' + self.extra_deps = [["rspec",">=1.2.9"],["rack",">=1.0.0"]] + self.extra_dev_deps = [["cucumber",">= 0.3.99"]] + self.remote_rdoc_dir = "rspec-rails/#{Spec::Rails::VERSION::STRING}" + self.history_file = 'History.rdoc' + self.readme_file = 'README.rdoc' + self.post_install_message = <<-POST_INSTALL_MESSAGE +#{'*'*50} + + Thank you for installing rspec-rails-#{Spec::Rails::VERSION::STRING} + + If you are upgrading, do this in each of your rails apps + that you want to upgrade: + + $ ruby script/generate rspec + + Please be sure to read History.rdoc and Upgrade.rdoc + for useful information about this release. + +#{'*'*50} +POST_INSTALL_MESSAGE +end + +['audit','test','test_deps','default','post_blog', 'release'].each do |task| + Rake.application.instance_variable_get('@tasks').delete(task) +end + +task :post_blog do + # no-op +end + +task :release => [:clean, :package] do |t| + version = ENV["VERSION"] or abort "Must supply VERSION=x.y.z" + abort "Versions don't match #{version} vs #{Spec::Rails::VERSION::STRING}" unless version == Spec::Rails::VERSION::STRING + pkg = "pkg/rspec-rails-#{version}" + + rubyforge = RubyForge.new.configure + puts "Logging in to rubyforge ..." + rubyforge.login + + puts "Releasing rspec-rails version #{version} ..." + ["#{pkg}.gem", "#{pkg}.tgz"].each do |file| + rubyforge.add_file('rspec', 'rspec', Spec::Rails::VERSION::STRING, file) + end +end + +Cucumber::Rake::Task.new + +task :default => [:features] + +namespace :update do + desc "update the manifest" + task :manifest do + system %q[touch Manifest.txt; rake check_manifest | grep -v "(in " | patch] + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/TODO.txt b/presidents/vendor/gems/rspec-rails-1.2.9/TODO.txt new file mode 100644 index 0000000..99a54c7 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/TODO.txt @@ -0,0 +1,17 @@ +* wiki + * need a matrix of which rspec-rails versions support which rails versions +* CI + * need a robust CI setup that runs + * Multiple rubies + * MRI: 1.8.6 + * MRI: 1.8.7 + * MRI: 1.9.1 + * JRuby + * IronRuby??? (perhaps using mono) + * Multiple rails-es + * 2.0.5 + * 2.1.2 + * 2.2.2 + * 2.3.4 + * 3.0 (once available) + * With and without ActiveRecord diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/Upgrade.rdoc b/presidents/vendor/gems/rspec-rails-1.2.9/Upgrade.rdoc new file mode 100644 index 0000000..ba7d02c --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/Upgrade.rdoc @@ -0,0 +1,148 @@ += Upgrade to 1.2.8 (in git) + +== What's new + +=== route_to and be_routable matchers + +Stop using route_for and params_from today! These new matchers from Randy +Harmon are more expressive and more reliable. Here's how you use them: + + { :put => "/projects/37" }.should route_to(:controller => 'projects', :action => 'update', :id => '37') + + { :get => "/nonexisting_route" }.should_not be_routable + +== What's changed + +=== spec_server has been removed + +spec_server was deprecated in 1.2.7 and has now been removed. Admittedly, this +was a short deprecation cycle, but spec server never quite worked right in all +situations and spork is a great solution that you can use today! This is all +you need to do: + + [sudo] gem install spork + cd path/to/project + spork --bootsrap + +Now open up spec/spec_helper.rb and follow the directions at the top. You'll +be up and running in no time. + +For more info: + +* http://github.com/timcharper/spork +* http://groups.google.com/group/sporkgem + += Upgrade to 1.2.7 + +== What's changed + +=== spec_server is deprecated + +spec_server is deprecated in favor of Tim Harper's new spork library +(http://github.com/timcharper/spork). Get it. Use it. Love it. + + gem install spork + += Upgrade to 1.2.0-1.2.6 + +== What's changed + +=== Supported Rails Versions + +This release supports the following versions of rails: + +* 2.0.5 +* 2.1.2 +* 2.2.2 +* 2.3.2 + +=== update generated files + +Be sure to run "script/generate rspec" and allow the following files to be overwritten: + +* lib/tasks/rspec.rake +* script/spec +* script/spec_server + +=== controller.use_rails_error_handling! is deprecated + +Use rescue_action_in_public! instead. It comes directly from rails and does +exactly the same thing + +=== route_for + +After a change to edge rails broke our monkey-patched route_for method, I +decided to just delegate to rails' assert_generates method. For most cases, +this will not present a problem, but for some it might. You'll know if you +upgrade and see any newly failing, route-related examples. Here are the things +that you might need to change. + +==== Make sure IDs are strings + +If you had :id => 1 before, you need to change that to :id => "1" + + #old + route_for(:controller => 'things', :action => 'show', :id => 1).should == "/things/1" + + #new + route_for(:controller => 'things', :action => 'show', :id => "1").should == "/things/1" + +==== Convert paths for non-get methods to hashes + +If you had an example with a route that requires post, put, or delete, you'll +need to declare that explicitly. + + #old + route_for(:controller => 'things', :action => 'create').should == "/things" + + #new + route_for(:controller => 'things', :action => 'create').should == {:path => "/things", :method => :post} + +=== Controller/template isolation + +Even though controller specs do not render views by default (use +integrate_views to get them to render views), the way this works has +changed in this version. + +It used to be that the view template need not even exist, but due to changes +in rails it became much more difficult to manage that for all the different +versions of rails that rspec-rails supports. So now the template must exist, +but it still won't be rendered unless you declare integrate_views. + +== What's new + +=== render no longer requires a path + +The render() method in view specs will infer the path from the +first argument passed to describe(). + + describe "players/show" do + it "does something" do + render + response.should have_tag("....") + end + end + +=== routing specs live in spec/routing + +script/generate rspec_scaffold now generates its routing spec in +spec/routing/. + +=== bypass_rescue + +Added a new bypass_rescue() declaration for controller specs. Use this +when you want to specify that an error is raised by an action, even if that +error is later captured by a rescue_from() declaration. + + describe AccountController do + describe "GET @account" do + context "requested by anonymous user" do + it "denies access" do + bypass_rescue + lambda do + get :show, :id => "37" + end.should raise_error(AccessDenied) + end + end + end + end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/generators/integration_spec/integration_spec_generator.rb b/presidents/vendor/gems/rspec-rails-1.2.9/generators/integration_spec/integration_spec_generator.rb new file mode 100644 index 0000000..12a80e4 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/generators/integration_spec/integration_spec_generator.rb @@ -0,0 +1,10 @@ +require File.dirname(__FILE__) + '/../rspec_default_values' + +class IntegrationSpecGenerator < ModelGenerator + def manifest + record do |m| + m.class_collisions class_path, class_name + m.template 'integration_spec.rb', File.join('spec/integration', class_path, "#{class_name.tableize}_spec.rb") + end + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/generators/integration_spec/templates/integration_spec.rb b/presidents/vendor/gems/rspec-rails-1.2.9/generators/integration_spec/templates/integration_spec.rb new file mode 100644 index 0000000..d4b91f8 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/generators/integration_spec/templates/integration_spec.rb @@ -0,0 +1,4 @@ +require 'spec_helper' + +describe "<%= class_name.pluralize %>" do +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec/CHANGES b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec/CHANGES new file mode 100644 index 0000000..69f3709 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec/CHANGES @@ -0,0 +1 @@ +Please refer to the CHANGES file for RSpec's core \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec/rspec_generator.rb b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec/rspec_generator.rb new file mode 100644 index 0000000..7dad53c --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec/rspec_generator.rb @@ -0,0 +1,53 @@ +require 'rbconfig' + +# This generator bootstraps a Rails project for use with RSpec +class RspecGenerator < Rails::Generator::Base + DEFAULT_SHEBANG = File.join(Config::CONFIG['bindir'], + Config::CONFIG['ruby_install_name']) + + def initialize(runtime_args, runtime_options = {}) + if test ?f, 'spec/spec_helper.rb' + + puts <<-HELPFUL_INSTRUCTIONS + +It looks like you are upgrading rspec-rails in this application. Please let +this script overwrite everything it wants to with the following exceptions, +*if* you have customized any of these files: + + * spec/spec.opts + * spec/rcov.opts + * spec/spec_helper.rb + +If you have customized spec/spec_helper.rb, please set aside a copy of that +file so that it can be updated and you can manually restore your changes. + +HELPFUL_INSTRUCTIONS + end + Dir.mkdir('lib/tasks') unless File.directory?('lib/tasks') + super + end + + def manifest + record do |m| + script_options = { :chmod => 0755, :shebang => options[:shebang] == DEFAULT_SHEBANG ? nil : options[:shebang] } + + m.directory 'lib/tasks' + m.file 'rspec.rake', 'lib/tasks/rspec.rake' + + m.file 'script/autospec', 'script/autospec', script_options + m.file 'script/spec', 'script/spec', script_options + + m.directory 'spec' + m.file 'rcov.opts', 'spec/rcov.opts' + m.file 'spec.opts', 'spec/spec.opts' + m.template 'spec_helper.rb', 'spec/spec_helper.rb' + end + end + +protected + + def banner + "Usage: #{$0} rspec" + end + +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec/templates/previous_failures.txt b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec/templates/previous_failures.txt new file mode 100644 index 0000000..e69de29 diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec/templates/rcov.opts b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec/templates/rcov.opts new file mode 100644 index 0000000..274ed51 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec/templates/rcov.opts @@ -0,0 +1,2 @@ +--exclude "spec/*,gems/*" +--rails \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec/templates/rspec.rake b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec/templates/rspec.rake new file mode 100644 index 0000000..dba3ffc --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec/templates/rspec.rake @@ -0,0 +1,144 @@ +gem 'test-unit', '1.2.3' if RUBY_VERSION.to_f >= 1.9 +rspec_gem_dir = nil +Dir["#{RAILS_ROOT}/vendor/gems/*"].each do |subdir| + rspec_gem_dir = subdir if subdir.gsub("#{RAILS_ROOT}/vendor/gems/","") =~ /^(\w+-)?rspec-(\d+)/ && File.exist?("#{subdir}/lib/spec/rake/spectask.rb") +end +rspec_plugin_dir = File.expand_path(File.dirname(__FILE__) + '/../../vendor/plugins/rspec') + +if rspec_gem_dir && (test ?d, rspec_plugin_dir) + raise "\n#{'*'*50}\nYou have rspec installed in both vendor/gems and vendor/plugins\nPlease pick one and dispose of the other.\n#{'*'*50}\n\n" +end + +if rspec_gem_dir + $LOAD_PATH.unshift("#{rspec_gem_dir}/lib") +elsif File.exist?(rspec_plugin_dir) + $LOAD_PATH.unshift("#{rspec_plugin_dir}/lib") +end + +# Don't load rspec if running "rake gems:*" +unless ARGV.any? {|a| a =~ /^gems/} + +begin + require 'spec/rake/spectask' +rescue MissingSourceFile + module Spec + module Rake + class SpecTask + def initialize(name) + task name do + # if rspec-rails is a configured gem, this will output helpful material and exit ... + require File.expand_path(File.join(File.dirname(__FILE__),"..","..","config","environment")) + + # ... otherwise, do this: + raise <<-MSG + +#{"*" * 80} +* You are trying to run an rspec rake task defined in +* #{__FILE__}, +* but rspec can not be found in vendor/gems, vendor/plugins or system gems. +#{"*" * 80} +MSG + end + end + end + end + end +end + +Rake.application.instance_variable_get('@tasks').delete('default') + +spec_prereq = File.exist?(File.join(RAILS_ROOT, 'config', 'database.yml')) ? "db:test:prepare" : :noop +task :noop do +end + +task :default => :spec +task :stats => "spec:statsetup" + +desc "Run all specs in spec directory (excluding plugin specs)" +Spec::Rake::SpecTask.new(:spec => spec_prereq) do |t| + t.spec_opts = ['--options', "\"#{RAILS_ROOT}/spec/spec.opts\""] + t.spec_files = FileList['spec/**/*_spec.rb'] +end + +namespace :spec do + desc "Run all specs in spec directory with RCov (excluding plugin specs)" + Spec::Rake::SpecTask.new(:rcov) do |t| + t.spec_opts = ['--options', "\"#{RAILS_ROOT}/spec/spec.opts\""] + t.spec_files = FileList['spec/**/*_spec.rb'] + t.rcov = true + t.rcov_opts = lambda do + IO.readlines("#{RAILS_ROOT}/spec/rcov.opts").map {|l| l.chomp.split " "}.flatten + end + end + + desc "Print Specdoc for all specs (excluding plugin specs)" + Spec::Rake::SpecTask.new(:doc) do |t| + t.spec_opts = ["--format", "specdoc", "--dry-run"] + t.spec_files = FileList['spec/**/*_spec.rb'] + end + + desc "Print Specdoc for all plugin examples" + Spec::Rake::SpecTask.new(:plugin_doc) do |t| + t.spec_opts = ["--format", "specdoc", "--dry-run"] + t.spec_files = FileList['vendor/plugins/**/spec/**/*_spec.rb'].exclude('vendor/plugins/rspec/*') + end + + [:models, :controllers, :views, :helpers, :lib, :integration].each do |sub| + desc "Run the code examples in spec/#{sub}" + Spec::Rake::SpecTask.new(sub => spec_prereq) do |t| + t.spec_opts = ['--options', "\"#{RAILS_ROOT}/spec/spec.opts\""] + t.spec_files = FileList["spec/#{sub}/**/*_spec.rb"] + end + end + + desc "Run the code examples in vendor/plugins (except RSpec's own)" + Spec::Rake::SpecTask.new(:plugins => spec_prereq) do |t| + t.spec_opts = ['--options', "\"#{RAILS_ROOT}/spec/spec.opts\""] + t.spec_files = FileList['vendor/plugins/**/spec/**/*_spec.rb'].exclude('vendor/plugins/rspec/*').exclude("vendor/plugins/rspec-rails/*") + end + + namespace :plugins do + desc "Runs the examples for rspec_on_rails" + Spec::Rake::SpecTask.new(:rspec_on_rails) do |t| + t.spec_opts = ['--options', "\"#{RAILS_ROOT}/spec/spec.opts\""] + t.spec_files = FileList['vendor/plugins/rspec-rails/spec/**/*_spec.rb'] + end + end + + # Setup specs for stats + task :statsetup do + require 'code_statistics' + ::STATS_DIRECTORIES << %w(Model\ specs spec/models) if File.exist?('spec/models') + ::STATS_DIRECTORIES << %w(View\ specs spec/views) if File.exist?('spec/views') + ::STATS_DIRECTORIES << %w(Controller\ specs spec/controllers) if File.exist?('spec/controllers') + ::STATS_DIRECTORIES << %w(Helper\ specs spec/helpers) if File.exist?('spec/helpers') + ::STATS_DIRECTORIES << %w(Library\ specs spec/lib) if File.exist?('spec/lib') + ::STATS_DIRECTORIES << %w(Routing\ specs spec/routing) if File.exist?('spec/routing') + ::STATS_DIRECTORIES << %w(Integration\ specs spec/integration) if File.exist?('spec/integration') + ::CodeStatistics::TEST_TYPES << "Model specs" if File.exist?('spec/models') + ::CodeStatistics::TEST_TYPES << "View specs" if File.exist?('spec/views') + ::CodeStatistics::TEST_TYPES << "Controller specs" if File.exist?('spec/controllers') + ::CodeStatistics::TEST_TYPES << "Helper specs" if File.exist?('spec/helpers') + ::CodeStatistics::TEST_TYPES << "Library specs" if File.exist?('spec/lib') + ::CodeStatistics::TEST_TYPES << "Routing specs" if File.exist?('spec/routing') + ::CodeStatistics::TEST_TYPES << "Integration specs" if File.exist?('spec/integration') + end + + namespace :db do + namespace :fixtures do + desc "Load fixtures (from spec/fixtures) into the current environment's database. Load specific fixtures using FIXTURES=x,y. Load from subdirectory in test/fixtures using FIXTURES_DIR=z." + task :load => :environment do + ActiveRecord::Base.establish_connection(Rails.env) + base_dir = File.join(Rails.root, 'spec', 'fixtures') + fixtures_dir = ENV['FIXTURES_DIR'] ? File.join(base_dir, ENV['FIXTURES_DIR']) : base_dir + + require 'active_record/fixtures' + (ENV['FIXTURES'] ? ENV['FIXTURES'].split(/,/).map {|f| File.join(fixtures_dir, f) } : Dir.glob(File.join(fixtures_dir, '*.{yml,csv}'))).each do |fixture_file| + Fixtures.create_fixtures(File.dirname(fixture_file), File.basename(fixture_file, '.*')) + end + end + end + end +end + +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec/templates/script/autospec b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec/templates/script/autospec new file mode 100644 index 0000000..837bbd7 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec/templates/script/autospec @@ -0,0 +1,6 @@ +#!/usr/bin/env ruby +gem 'test-unit', '1.2.3' if RUBY_VERSION.to_f >= 1.9 +ENV['RSPEC'] = 'true' # allows autotest to discover rspec +ENV['AUTOTEST'] = 'true' # allows autotest to run w/ color on linux +system((RUBY_PLATFORM =~ /mswin|mingw/ ? 'autotest.bat' : 'autotest'), *ARGV) || + $stderr.puts("Unable to find autotest. Please install ZenTest or fix your PATH") diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec/templates/script/spec b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec/templates/script/spec new file mode 100644 index 0000000..46fdbe6 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec/templates/script/spec @@ -0,0 +1,10 @@ +#!/usr/bin/env ruby +if ARGV.any? {|arg| %w[--drb -X --generate-options -G --help -h --version -v].include?(arg)} + require 'rubygems' unless ENV['NO_RUBYGEMS'] +else + gem 'test-unit', '1.2.3' if RUBY_VERSION.to_f >= 1.9 + ENV["RAILS_ENV"] ||= 'test' + require File.expand_path(File.dirname(__FILE__) + "/../config/environment") unless defined?(RAILS_ROOT) +end +require 'spec/autorun' +exit ::Spec::Runner::CommandLine.run diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec/templates/spec.opts b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec/templates/spec.opts new file mode 100644 index 0000000..391705b --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec/templates/spec.opts @@ -0,0 +1,4 @@ +--colour +--format progress +--loadby mtime +--reverse diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec/templates/spec_helper.rb b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec/templates/spec_helper.rb new file mode 100644 index 0000000..0ba1470 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec/templates/spec_helper.rb @@ -0,0 +1,54 @@ +# This file is copied to ~/spec when you run 'ruby script/generate rspec' +# from the project root directory. +ENV["RAILS_ENV"] ||= 'test' +require File.expand_path(File.join(File.dirname(__FILE__),'..','config','environment')) +require 'spec/autorun' +require 'spec/rails' + +# Uncomment the next line to use webrat's matchers +#require 'webrat/integrations/rspec-rails' + +# Requires supporting files with custom matchers and macros, etc, +# in ./support/ and its subdirectories. +Dir[File.expand_path(File.join(File.dirname(__FILE__),'support','**','*.rb'))].each {|f| require f} + +Spec::Runner.configure do |config| + # If you're not using ActiveRecord you should remove these + # lines, delete config/database.yml and disable :active_record + # in your config/boot.rb + config.use_transactional_fixtures = true + config.use_instantiated_fixtures = false + config.fixture_path = RAILS_ROOT + '/spec/fixtures/' + + # == Fixtures + # + # You can declare fixtures for each example_group like this: + # describe "...." do + # fixtures :table_a, :table_b + # + # Alternatively, if you prefer to declare them only once, you can + # do so right here. Just uncomment the next line and replace the fixture + # names with your fixtures. + # + # config.global_fixtures = :table_a, :table_b + # + # If you declare global fixtures, be aware that they will be declared + # for all of your examples, even those that don't use them. + # + # You can also declare which fixtures to use (for example fixtures for test/fixtures): + # + # config.fixture_path = RAILS_ROOT + '/spec/fixtures/' + # + # == Mock Framework + # + # RSpec uses it's own mocking framework by default. If you prefer to + # use mocha, flexmock or RR, uncomment the appropriate line: + # + # config.mock_with :mocha + # config.mock_with :flexmock + # config.mock_with :rr + # + # == Notes + # + # For more information take a look at Spec::Runner::Configuration and Spec::Runner +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_controller/USAGE b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_controller/USAGE new file mode 100755 index 0000000..1546c32 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_controller/USAGE @@ -0,0 +1,33 @@ +Description: + The rspec_controller generator creates stub specs and files for a new + controller and its views. + + The generator takes a controller name and a list of views as arguments. + The controller name may be given in CamelCase or under_score and should + not be suffixed with 'Controller'. To create a controller within a + module, specify the controller name as 'module/controller'. + + The generator creates stubs for a controller (and spec), a view (and spec) + for each view in the argument list, plus a helper. + +Example: + ./script/generate rspec_controller dog bark fetch + ... + create spec/controllers/dog_controller_spec.rb + create app/controllers/dog_controller.rb + create app/helpers/dog_helper.rb + create spec/views/dog/bark_view_spec.rb + create app/views/dog/bark.rhtml + create spec/views/dog/fetch_view_spec.rb + create app/views/dog/fetch.rhtml + +Modules Example: + ./script/generate rspec_controller 'pets/dog' bark fetch + ... + create spec/controllers/pets/dog_controller_spec.rb + create app/controllers/pets/dog_controller.rb + create app/helpers/pets/dog_helper.rb + create spec/views/pets/dog/bark_view_spec.rb + create app/views/pets/dog/bark.rhtml + create spec/views/pets/dog/fetch_view_spec.rb + create app/views/pets/dog/fetch.rhtml diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_controller/rspec_controller_generator.rb b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_controller/rspec_controller_generator.rb new file mode 100755 index 0000000..0064986 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_controller/rspec_controller_generator.rb @@ -0,0 +1,47 @@ +require 'rails_generator/generators/components/controller/controller_generator' + +class RspecControllerGenerator < ControllerGenerator + + def manifest + record do |m| + # Check for class naming collisions. + m.class_collisions class_path, "#{class_name}Controller", "#{class_name}Helper" + + # Controller, helper, views, and spec directories. + m.directory File.join('app/controllers', class_path) + m.directory File.join('app/helpers', class_path) + m.directory File.join('app/views', class_path, file_name) + m.directory File.join('spec/controllers', class_path) + m.directory File.join('spec/helpers', class_path) + m.directory File.join('spec/views', class_path, file_name) + + @default_file_extension = "html.erb" + + # Controller spec, class, and helper. + m.template 'controller_spec.rb', + File.join('spec/controllers', class_path, "#{file_name}_controller_spec.rb") + + m.template 'helper_spec.rb', + File.join('spec/helpers', class_path, "#{file_name}_helper_spec.rb") + + m.template 'controller:controller.rb', + File.join('app/controllers', class_path, "#{file_name}_controller.rb") + + m.template 'controller:helper.rb', + File.join('app/helpers', class_path, "#{file_name}_helper.rb") + + + + # Spec and view template for each action. + actions.each do |action| + m.template 'view_spec.rb', + File.join('spec/views', class_path, file_name, "#{action}.#{@default_file_extension}_spec.rb"), + :assigns => { :action => action, :model => file_name } + path = File.join('app/views', class_path, file_name, "#{action}.#{@default_file_extension}") + m.template "controller:view.#{@default_file_extension}", + path, + :assigns => { :action => action, :path => path } + end + end + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_controller/templates/controller_spec.rb b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_controller/templates/controller_spec.rb new file mode 100755 index 0000000..9d13c49 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_controller/templates/controller_spec.rb @@ -0,0 +1,25 @@ +require 'spec_helper' + +describe <%= class_name %>Controller do + +<% if actions.empty? -%> + #Delete this example and add some real ones +<% else -%> + #Delete these examples and add some real ones +<% end -%> + it "should use <%= class_name %>Controller" do + controller.should be_an_instance_of(<%= class_name %>Controller) + end + +<% unless actions.empty? -%> +<% for action in actions -%> + + describe "GET '<%= action %>'" do + it "should be successful" do + get '<%= action %>' + response.should be_success + end + end +<% end -%> +<% end -%> +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_controller/templates/helper_spec.rb b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_controller/templates/helper_spec.rb new file mode 100644 index 0000000..ffdfd14 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_controller/templates/helper_spec.rb @@ -0,0 +1,11 @@ +require 'spec_helper' + +describe <%= class_name %>Helper do + + #Delete this example and add some real ones or delete this file + it "should be included in the object returned by #helper" do + included_modules = (class << helper; self; end).send :included_modules + included_modules.should include(<%= class_name %>Helper) + end + +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_controller/templates/view_spec.rb b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_controller/templates/view_spec.rb new file mode 100644 index 0000000..31469c6 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_controller/templates/view_spec.rb @@ -0,0 +1,12 @@ +require 'spec_helper' + +describe "/<%= class_name.underscore %>/<%= action %>" do + before(:each) do + render '<%= class_name.underscore %>/<%= action %>' + end + + #Delete this example and add some real ones or delete this file + it "should tell you where to find the file" do + response.should have_tag('p', %r[Find me in app/views/<%= class_name.underscore %>/<%= action %>]) + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_default_values.rb b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_default_values.rb new file mode 100644 index 0000000..162681a --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_default_values.rb @@ -0,0 +1,28 @@ +module Rails + module Generator + class GeneratedAttribute + def default_value + @default_value ||= case type + when :int, :integer then "1" + when :float then "1.5" + when :decimal then "9.99" + when :datetime, :timestamp, :time then "Time.now" + when :date then "Date.today" + when :string, :text then "\"value for #{@name}\"" + when :boolean then "false" + when :belongs_to, :references then "1" + else + "" + end + end + + def name_or_reference + if ::Rails::VERSION::STRING >= '2.2' + reference? ? :"#{name}_id" : name + else + name + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_model/USAGE b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_model/USAGE new file mode 100755 index 0000000..a7b7814 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_model/USAGE @@ -0,0 +1,18 @@ +Description: + The rspec_model generator creates stubs for a new model. + + The generator takes a model name as its argument. The model name may be + given in CamelCase or under_score and should not be suffixed with 'Model'. + + The generator creates a model class in app/models, an RSpec spec in + spec/models, database fixtures in spec/fixtures/plural_name.yml, and a migration + in db/migrate. + +Example: + ./script/generate rspec_model Account + + This will create an Account model: + Model: app/models/account.rb + Spec: spec/models/account_spec.rb + Fixtures: spec/fixtures/accounts.yml + Migration: db/migrate/XXX_add_accounts.rb diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_model/rspec_model_generator.rb b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_model/rspec_model_generator.rb new file mode 100755 index 0000000..66e873e --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_model/rspec_model_generator.rb @@ -0,0 +1,35 @@ +require 'rails_generator/generators/components/model/model_generator' +require File.dirname(__FILE__) + '/../rspec_default_values' + +class RspecModelGenerator < ModelGenerator + + def manifest + + record do |m| + # Check for class naming collisions. + m.class_collisions class_path, class_name + + # Model, spec, and fixture directories. + m.directory File.join('app/models', class_path) + m.directory File.join('spec/models', class_path) + unless options[:skip_fixture] + m.directory File.join('spec/fixtures', class_path) + end + + # Model class, spec and fixtures. + m.template 'model:model.rb', File.join('app/models', class_path, "#{file_name}.rb") + m.template 'model_spec.rb', File.join('spec/models', class_path, "#{file_name}_spec.rb") + unless options[:skip_fixture] + m.template 'model:fixtures.yml', File.join('spec/fixtures', "#{table_name}.yml") + end + + unless options[:skip_migration] + m.migration_template 'model:migration.rb', 'db/migrate', :assigns => { + :migration_name => "Create#{class_name.pluralize.gsub(/::/, '')}" + }, :migration_file_name => "create_#{file_path.gsub(/\//, '_').pluralize}" + end + + end + end + +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_model/templates/model_spec.rb b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_model/templates/model_spec.rb new file mode 100755 index 0000000..c7cb1ce --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_model/templates/model_spec.rb @@ -0,0 +1,13 @@ +require 'spec_helper' + +describe <%= class_name %> do + before(:each) do + @valid_attributes = { + <%= attributes.map{|a| ":#{a.name_or_reference} => #{a.default_value}" }.join(",\n ") %> + } + end + + it "should create a new instance given valid attributes" do + <%= class_name %>.create!(@valid_attributes) + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_scaffold/rspec_scaffold_generator.rb b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_scaffold/rspec_scaffold_generator.rb new file mode 100644 index 0000000..0761c00 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_scaffold/rspec_scaffold_generator.rb @@ -0,0 +1,154 @@ +require File.dirname(__FILE__) + '/../rspec_default_values' + +class RspecScaffoldGenerator < Rails::Generator::NamedBase + default_options :skip_migration => false + + attr_reader :controller_name, + :controller_class_path, + :controller_file_path, + :controller_class_nesting, + :controller_class_nesting_depth, + :controller_class_name, + :controller_singular_name, + :controller_plural_name, + :resource_edit_path, + :default_file_extension + alias_method :controller_file_name, :controller_singular_name + alias_method :controller_table_name, :controller_plural_name + + def initialize(runtime_args, runtime_options = {}) + super + + @controller_name = @name.pluralize + + base_name, @controller_class_path, @controller_file_path, @controller_class_nesting, @controller_class_nesting_depth = extract_modules(@controller_name) + @controller_class_name_without_nesting, @controller_singular_name, @controller_plural_name = inflect_names(base_name) + + if @controller_class_nesting.empty? + @controller_class_name = @controller_class_name_without_nesting + else + @controller_class_name = "#{@controller_class_nesting}::#{@controller_class_name_without_nesting}" + end + + @default_file_extension = "html.erb" + end + + def manifest + record do |m| + + # Check for class naming collisions. + m.class_collisions(controller_class_path, "#{controller_class_name}Controller", "#{controller_class_name}Helper") + m.class_collisions(class_path, "#{class_name}") + + # Controller, helper, views, and spec directories. + m.directory(File.join('app/models', class_path)) + m.directory(File.join('app/controllers', controller_class_path)) + m.directory(File.join('app/helpers', controller_class_path)) + m.directory(File.join('app/views', controller_class_path, controller_file_name)) + m.directory(File.join('app/views/layouts', controller_class_path)) + m.directory(File.join('public/stylesheets', class_path)) + + m.directory(File.join('spec/controllers', controller_class_path)) + m.directory(File.join('spec/routing', controller_class_path)) + m.directory(File.join('spec/models', class_path)) + m.directory(File.join('spec/helpers', class_path)) + m.directory File.join('spec/fixtures', class_path) + m.directory File.join('spec/views', controller_class_path, controller_file_name) + m.directory File.join('spec/integration', class_path) + + # Layout and stylesheet. + m.template("scaffold:layout.html.erb", File.join('app/views/layouts', controller_class_path, "#{controller_file_name}.html.erb")) + m.template("scaffold:style.css", 'public/stylesheets/scaffold.css') + + # Controller spec, class, and helper. + m.template 'rspec_scaffold:routing_spec.rb', + File.join('spec/routing', controller_class_path, "#{controller_file_name}_routing_spec.rb") + + m.template 'rspec_scaffold:controller_spec.rb', + File.join('spec/controllers', controller_class_path, "#{controller_file_name}_controller_spec.rb") + + m.template "scaffold:controller.rb", + File.join('app/controllers', controller_class_path, "#{controller_file_name}_controller.rb") + + m.template 'rspec_scaffold:helper_spec.rb', + File.join('spec/helpers', class_path, "#{controller_file_name}_helper_spec.rb") + + m.template "scaffold:helper.rb", + File.join('app/helpers', controller_class_path, "#{controller_file_name}_helper.rb") + + for action in scaffold_views + m.template( + "scaffold:view_#{action}.#{@default_file_extension}", + File.join('app/views', controller_class_path, controller_file_name, "#{action}.#{default_file_extension}") + ) + end + + # Model class, unit test, and fixtures. + m.template 'model:model.rb', File.join('app/models', class_path, "#{file_name}.rb") + m.template 'model:fixtures.yml', File.join('spec/fixtures', class_path, "#{table_name}.yml") + m.template 'rspec_model:model_spec.rb', File.join('spec/models', class_path, "#{file_name}_spec.rb") + + # View specs + m.template "rspec_scaffold:edit_erb_spec.rb", + File.join('spec/views', controller_class_path, controller_file_name, "edit.#{default_file_extension}_spec.rb") + m.template "rspec_scaffold:index_erb_spec.rb", + File.join('spec/views', controller_class_path, controller_file_name, "index.#{default_file_extension}_spec.rb") + m.template "rspec_scaffold:new_erb_spec.rb", + File.join('spec/views', controller_class_path, controller_file_name, "new.#{default_file_extension}_spec.rb") + m.template "rspec_scaffold:show_erb_spec.rb", + File.join('spec/views', controller_class_path, controller_file_name, "show.#{default_file_extension}_spec.rb") + + # Integration + m.template 'integration_spec:integration_spec.rb', File.join('spec/integration', class_path, "#{table_name}_spec.rb") + + unless options[:skip_migration] + m.migration_template( + 'model:migration.rb', 'db/migrate', + :assigns => { + :migration_name => "Create#{class_name.pluralize.gsub(/::/, '')}", + :attributes => attributes + }, + :migration_file_name => "create_#{file_path.gsub(/\//, '_').pluralize}" + ) + end + + m.route_resources controller_file_name + + end + end + + protected + # Override with your own usage banner. + def banner + "Usage: #{$0} rspec_scaffold ModelName [field:type field:type]" + end + + def add_options!(opt) + opt.separator '' + opt.separator 'Options:' + opt.on("--skip-migration", + "Don't generate a migration file for this model") { |v| options[:skip_migration] = v } + end + + def scaffold_views + %w[ index show new edit ] + end + + def model_name + class_name.demodulize + end +end + +module Rails + module Generator + class GeneratedAttribute + def input_type + @input_type ||= case type + when :text then "textarea" + else + "input" + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_scaffold/templates/controller_spec.rb b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_scaffold/templates/controller_spec.rb new file mode 100755 index 0000000..5de71bb --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_scaffold/templates/controller_spec.rb @@ -0,0 +1,131 @@ +require 'spec_helper' + +describe <%= controller_class_name %>Controller do + + def mock_<%= file_name %>(stubs={}) + @mock_<%= file_name %> ||= mock_model(<%= class_name %>, stubs) + end + + describe "GET index" do + it "assigns all <%= table_name.pluralize %> as @<%= table_name.pluralize %>" do + <%= class_name %>.stub!(:find).with(:all).and_return([mock_<%= file_name %>]) + get :index + assigns[:<%= table_name %>].should == [mock_<%= file_name %>] + end + end + + describe "GET show" do + it "assigns the requested <%= file_name %> as @<%= file_name %>" do + <%= class_name %>.stub!(:find).with("37").and_return(mock_<%= file_name %>) + get :show, :id => "37" + assigns[:<%= file_name %>].should equal(mock_<%= file_name %>) + end + end + + describe "GET new" do + it "assigns a new <%= file_name %> as @<%= file_name %>" do + <%= class_name %>.stub!(:new).and_return(mock_<%= file_name %>) + get :new + assigns[:<%= file_name %>].should equal(mock_<%= file_name %>) + end + end + + describe "GET edit" do + it "assigns the requested <%= file_name %> as @<%= file_name %>" do + <%= class_name %>.stub!(:find).with("37").and_return(mock_<%= file_name %>) + get :edit, :id => "37" + assigns[:<%= file_name %>].should equal(mock_<%= file_name %>) + end + end + + describe "POST create" do + + describe "with valid params" do + it "assigns a newly created <%= file_name %> as @<%= file_name %>" do + <%= class_name %>.stub!(:new).with({'these' => 'params'}).and_return(mock_<%= file_name %>(:save => true)) + post :create, :<%= file_name %> => {:these => 'params'} + assigns[:<%= file_name %>].should equal(mock_<%= file_name %>) + end + + it "redirects to the created <%= file_name %>" do + <%= class_name %>.stub!(:new).and_return(mock_<%= file_name %>(:save => true)) + post :create, :<%= file_name %> => {} + response.should redirect_to(<%= table_name.singularize %>_url(mock_<%= file_name %>)) + end + end + + describe "with invalid params" do + it "assigns a newly created but unsaved <%= file_name %> as @<%= file_name %>" do + <%= class_name %>.stub!(:new).with({'these' => 'params'}).and_return(mock_<%= file_name %>(:save => false)) + post :create, :<%= file_name %> => {:these => 'params'} + assigns[:<%= file_name %>].should equal(mock_<%= file_name %>) + end + + it "re-renders the 'new' template" do + <%= class_name %>.stub!(:new).and_return(mock_<%= file_name %>(:save => false)) + post :create, :<%= file_name %> => {} + response.should render_template('new') + end + end + + end + + describe "PUT update" do + + describe "with valid params" do + it "updates the requested <%= file_name %>" do + <%= class_name %>.should_receive(:find).with("37").and_return(mock_<%= file_name %>) + mock_<%= file_name %>.should_receive(:update_attributes).with({'these' => 'params'}) + put :update, :id => "37", :<%= file_name %> => {:these => 'params'} + end + + it "assigns the requested <%= file_name %> as @<%= file_name %>" do + <%= class_name %>.stub!(:find).and_return(mock_<%= file_name %>(:update_attributes => true)) + put :update, :id => "1" + assigns[:<%= file_name %>].should equal(mock_<%= file_name %>) + end + + it "redirects to the <%= file_name %>" do + <%= class_name %>.stub!(:find).and_return(mock_<%= file_name %>(:update_attributes => true)) + put :update, :id => "1" + response.should redirect_to(<%= table_name.singularize %>_url(mock_<%= file_name %>)) + end + end + + describe "with invalid params" do + it "updates the requested <%= file_name %>" do + <%= class_name %>.should_receive(:find).with("37").and_return(mock_<%= file_name %>) + mock_<%= file_name %>.should_receive(:update_attributes).with({'these' => 'params'}) + put :update, :id => "37", :<%= file_name %> => {:these => 'params'} + end + + it "assigns the <%= file_name %> as @<%= file_name %>" do + <%= class_name %>.stub!(:find).and_return(mock_<%= file_name %>(:update_attributes => false)) + put :update, :id => "1" + assigns[:<%= file_name %>].should equal(mock_<%= file_name %>) + end + + it "re-renders the 'edit' template" do + <%= class_name %>.stub!(:find).and_return(mock_<%= file_name %>(:update_attributes => false)) + put :update, :id => "1" + response.should render_template('edit') + end + end + + end + + describe "DELETE destroy" do + it "destroys the requested <%= file_name %>" do + <%= class_name %>.should_receive(:find).with("37").and_return(mock_<%= file_name %>) + mock_<%= file_name %>.should_receive(:destroy) + delete :destroy, :id => "37" + end + + it "redirects to the <%= table_name %> list" do + <%= class_name %>.stub!(:find).and_return(mock_<%= file_name %>(:destroy => true)) + delete :destroy, :id => "1" + response.should redirect_to(<%= table_name %>_url) + end + end + +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_scaffold/templates/edit_erb_spec.rb b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_scaffold/templates/edit_erb_spec.rb new file mode 100644 index 0000000..4f9a791 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_scaffold/templates/edit_erb_spec.rb @@ -0,0 +1,25 @@ +require 'spec_helper' + +<% output_attributes = attributes.reject{|attribute| [:datetime, :timestamp, :time, :date].index(attribute.type) } -%> +describe "/<%= table_name %>/edit.<%= default_file_extension %>" do + include <%= controller_class_name %>Helper + + before(:each) do + assigns[:<%= file_name %>] = @<%= file_name %> = stub_model(<%= class_name %>, + :new_record? => false<%= output_attributes.empty? ? '' : ',' %> +<% output_attributes.each_with_index do |attribute, attribute_index| -%> + :<%= attribute.name %> => <%= attribute.default_value %><%= attribute_index == output_attributes.length - 1 ? '' : ','%> +<% end -%> + ) + end + + it "renders the edit <%= file_name %> form" do + render + + response.should have_tag("form[action=#{<%= file_name %>_path(@<%= file_name %>)}][method=post]") do +<% for attribute in output_attributes -%> + with_tag('<%= attribute.input_type -%>#<%= file_name %>_<%= attribute.name %>[name=?]', "<%= file_name %>[<%= attribute.name %>]") +<% end -%> + end + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_scaffold/templates/helper_spec.rb b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_scaffold/templates/helper_spec.rb new file mode 100644 index 0000000..ad657cf --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_scaffold/templates/helper_spec.rb @@ -0,0 +1,11 @@ +require 'spec_helper' + +describe <%= controller_class_name %>Helper do + + #Delete this example and add some real ones or delete this file + it "is included in the helper object" do + included_modules = (class << helper; self; end).send :included_modules + included_modules.should include(<%= controller_class_name %>Helper) + end + +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_scaffold/templates/index_erb_spec.rb b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_scaffold/templates/index_erb_spec.rb new file mode 100644 index 0000000..5aa33d5 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_scaffold/templates/index_erb_spec.rb @@ -0,0 +1,27 @@ +require 'spec_helper' + +<% output_attributes = attributes.reject{|attribute| [:datetime, :timestamp, :time, :date].index(attribute.type) } -%> +describe "/<%= table_name %>/index.<%= default_file_extension %>" do + include <%= controller_class_name %>Helper + + before(:each) do + assigns[:<%= table_name %>] = [ +<% [1,2].each_with_index do |id, model_index| -%> + stub_model(<%= class_name %><%= output_attributes.empty? ? (model_index == 1 ? ')' : '),') : ',' %> +<% output_attributes.each_with_index do |attribute, attribute_index| -%> + :<%= attribute.name %> => <%= attribute.default_value %><%= attribute_index == output_attributes.length - 1 ? '' : ','%> +<% end -%> +<% if !output_attributes.empty? -%> + <%= model_index == 1 ? ')' : '),' %> +<% end -%> +<% end -%> + ] + end + + it "renders a list of <%= table_name %>" do + render +<% for attribute in output_attributes -%> + response.should have_tag("tr>td", <%= attribute.default_value %>.to_s, 2) +<% end -%> + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_scaffold/templates/new_erb_spec.rb b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_scaffold/templates/new_erb_spec.rb new file mode 100644 index 0000000..29f08e5 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_scaffold/templates/new_erb_spec.rb @@ -0,0 +1,25 @@ +require 'spec_helper' + +<% output_attributes = attributes.reject{|attribute| [:datetime, :timestamp, :time, :date].index(attribute.type) } -%> +describe "/<%= table_name %>/new.<%= default_file_extension %>" do + include <%= controller_class_name %>Helper + + before(:each) do + assigns[:<%= file_name %>] = stub_model(<%= class_name %>, + :new_record? => true<%= output_attributes.empty? ? '' : ',' %> +<% output_attributes.each_with_index do |attribute, attribute_index| -%> + :<%= attribute.name %> => <%= attribute.default_value %><%= attribute_index == output_attributes.length - 1 ? '' : ','%> +<% end -%> + ) + end + + it "renders new <%= file_name %> form" do + render + + response.should have_tag("form[action=?][method=post]", <%= table_name %>_path) do +<% for attribute in output_attributes -%> + with_tag("<%= attribute.input_type -%>#<%= file_name %>_<%= attribute.name %>[name=?]", "<%= file_name %>[<%= attribute.name %>]") +<% end -%> + end + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_scaffold/templates/routing_spec.rb b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_scaffold/templates/routing_spec.rb new file mode 100644 index 0000000..ad4731a --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_scaffold/templates/routing_spec.rb @@ -0,0 +1,33 @@ +require 'spec_helper' + +describe <%= controller_class_name %>Controller do + describe "routing" do + it "recognizes and generates #index" do + { :get => "/<%= table_name %>" }.should route_to(:controller => "<%= table_name %>", :action => "index") + end + + it "recognizes and generates #new" do + { :get => "/<%= table_name %>/new" }.should route_to(:controller => "<%= table_name %>", :action => "new") + end + + it "recognizes and generates #show" do + { :get => "/<%= table_name %>/1" }.should route_to(:controller => "<%= table_name %>", :action => "show", :id => "1") + end + + it "recognizes and generates #edit" do + { :get => "/<%= table_name %>/1/edit" }.should route_to(:controller => "<%= table_name %>", :action => "edit", :id => "1") + end + + it "recognizes and generates #create" do + { :post => "/<%= table_name %>" }.should route_to(:controller => "<%= table_name %>", :action => "create") + end + + it "recognizes and generates #update" do + { :put => "/<%= table_name %>/1" }.should route_to(:controller => "<%= table_name %>", :action => "update", :id => "1") + end + + it "recognizes and generates #destroy" do + { :delete => "/<%= table_name %>/1" }.should route_to(:controller => "<%= table_name %>", :action => "destroy", :id => "1") + end + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_scaffold/templates/show_erb_spec.rb b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_scaffold/templates/show_erb_spec.rb new file mode 100644 index 0000000..f2c11db --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/generators/rspec_scaffold/templates/show_erb_spec.rb @@ -0,0 +1,22 @@ +require 'spec_helper' + +<% output_attributes = attributes.reject{|attribute| [:datetime, :timestamp, :time, :date].index(attribute.type) } -%> +describe "/<%= table_name %>/show.<%= default_file_extension %>" do + include <%= controller_class_name %>Helper + before(:each) do + assigns[:<%= file_name %>] = @<%= file_name %> = stub_model(<%= class_name %><%= output_attributes.empty? ? ')' : ',' %> +<% output_attributes.each_with_index do |attribute, attribute_index| -%> + :<%= attribute.name %> => <%= attribute.default_value %><%= attribute_index == output_attributes.length - 1 ? '' : ','%> +<% end -%> +<% if !output_attributes.empty? -%> + ) +<% end -%> + end + + it "renders attributes in

    " do + render +<% for attribute in output_attributes -%> + response.should have_text(/<%= Regexp.escape(attribute.default_value).gsub(/^"|"$/, '')%>/) +<% end -%> + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/init.rb b/presidents/vendor/gems/rspec-rails-1.2.9/init.rb new file mode 100644 index 0000000..6262f03 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/init.rb @@ -0,0 +1,9 @@ +# Placeholder to satisfy Rails. +# +# Do NOT add any require statements to this file. Doing +# so will cause Rails to load this plugin all of the time. +# +# Running 'ruby script/generate rspec' will +# generate spec/spec_helper.rb, which includes the necessary +# require statements and configuration. This file should +# be required by all of your spec files. \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/lib/autotest/discover.rb b/presidents/vendor/gems/rspec-rails-1.2.9/lib/autotest/discover.rb new file mode 100644 index 0000000..d3a6fba --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/lib/autotest/discover.rb @@ -0,0 +1,5 @@ +Autotest.add_discovery do + style = [] + style << "rails" if File.exist? 'config/environment.rb' + style +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/lib/autotest/rails_rspec.rb b/presidents/vendor/gems/rspec-rails-1.2.9/lib/autotest/rails_rspec.rb new file mode 100644 index 0000000..2aa4f5f --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/lib/autotest/rails_rspec.rb @@ -0,0 +1,76 @@ +# (c) Copyright 2006 Nick Sieger +# +# Permission is hereby granted, free of charge, to any person +# obtaining a copy of this software and associated documentation files +# (the "Software"), to deal in the Software without restriction, +# including without limitation the rights to use, copy, modify, merge, +# publish, distribute, sublicense, and/or sell copies of the Software, +# and to permit persons to whom the Software is furnished to do so, +# subject to the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS +# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +$:.push(*Dir["vendor/rails/*/lib"]) + +require 'active_support' +require 'autotest/rspec' + +Autotest.add_hook :initialize do |at| + %w{config/ coverage/ db/ doc/ log/ public/ script/ tmp/ vendor/rails vendor/plugins previous_failures.txt}.each do |exception| + at.add_exception(exception) + end + + at.clear_mappings + + at.add_mapping(%r%^(test|spec)/fixtures/(.*).yml$%) { |_, m| + ["spec/models/#{m[2].singularize}_spec.rb"] + at.files_matching(%r%^spec\/views\/#{m[2]}/.*_spec\.rb$%) + } + at.add_mapping(%r%^spec/(models|controllers|routing|views|helpers|lib)/.*rb$%) { |filename, _| + filename + } + at.add_mapping(%r%^app/models/(.*)\.rb$%) { |_, m| + ["spec/models/#{m[1]}_spec.rb"] + } + at.add_mapping(%r%^app/views/(.*)$%) { |_, m| + at.files_matching %r%^spec/views/#{m[1]}_spec.rb$% + } + at.add_mapping(%r%^app/controllers/(.*)\.rb$%) { |_, m| + if m[1] == "application" + at.files_matching %r%^spec/controllers/.*_spec\.rb$% + else + ["spec/controllers/#{m[1]}_spec.rb"] + end + } + at.add_mapping(%r%^app/helpers/(.*)_helper\.rb$%) { |_, m| + if m[1] == "application" then + at.files_matching(%r%^spec/(views|helpers)/.*_spec\.rb$%) + else + ["spec/helpers/#{m[1]}_helper_spec.rb"] + at.files_matching(%r%^spec\/views\/#{m[1]}/.*_spec\.rb$%) + end + } + at.add_mapping(%r%^config/routes\.rb$%) { + at.files_matching %r%^spec/(controllers|routing|views|helpers)/.*_spec\.rb$% + } + at.add_mapping(%r%^config/database\.yml$%) { |_, m| + at.files_matching %r%^spec/models/.*_spec\.rb$% + } + at.add_mapping(%r%^(spec/(spec_helper|shared/.*)|config/(boot|environment(s/test)?))\.rb$%) { + at.files_matching %r%^spec/(models|controllers|routing|views|helpers)/.*_spec\.rb$% + } + at.add_mapping(%r%^lib/(.*)\.rb$%) { |_, m| + ["spec/lib/#{m[1]}_spec.rb"] + } +end + +class Autotest::RailsRspec < Autotest::Rspec +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails.rb b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails.rb new file mode 100644 index 0000000..2a20d70 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails.rb @@ -0,0 +1,26 @@ +begin + require_dependency 'application_controller' +rescue MissingSourceFile + require_dependency 'application' +end +require 'rack/utils' + +require 'action_controller/test_process' +require 'action_controller/integration' +require 'active_support/test_case' +require 'active_record/fixtures' if defined?(ActiveRecord::Base) + +require 'spec/test/unit' + +require 'spec/rails/matchers' +require 'spec/rails/mocks' +require 'spec/rails/example' +require 'spec/rails/extensions' +require 'spec/rails/interop/testcase' + +Spec::Example::ExampleGroupFactory.default(ActiveSupport::TestCase) + +if ActionView::Base.respond_to?(:cache_template_extensions) + ActionView::Base.cache_template_extensions = false +end + diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/example.rb b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/example.rb new file mode 100644 index 0000000..cca44ef --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/example.rb @@ -0,0 +1,48 @@ +dir = File.dirname(__FILE__) + +require 'spec/rails/example/routing_helpers' +require 'spec/rails/example/assigns_hash_proxy' +require "spec/rails/example/render_observer" +require "spec/rails/example/model_example_group" +require "spec/rails/example/functional_example_group" +require "spec/rails/example/controller_example_group" +require "spec/rails/example/helper_example_group" +require "spec/rails/example/view_example_group" +require "spec/rails/example/routing_example_group" +require "spec/rails/example/integration_example_group" +require "spec/rails/example/cookies_proxy" + +module Spec + module Rails + # Spec::Rails::Example extends Spec::Example (RSpec's core Example module) to provide + # Rails-specific contexts for describing Rails Models, Views, Controllers and Helpers. + # + # == Model Examples + # + # These are the equivalent of unit tests in Rails' built in testing. Ironically (for the traditional TDD'er) these are the only specs that we feel should actually interact with the database. + # + # See Spec::Rails::Example::ModelExampleGroup + # + # == Controller Examples + # + # These align somewhat with functional tests in rails, except that they do not actually render views (though you can force rendering of views if you prefer). Instead of setting expectations about what goes on a page, you set expectations about what templates get rendered. + # + # See Spec::Rails::Example::ControllerExampleGroup + # + # == View Examples + # + # This is the other half of Rails functional testing. View specs allow you to set up assigns and render + # a template. By assigning mock model data, you can specify view behaviour with no dependency on a database + # or your real models. + # + # See Spec::Rails::Example::ViewExampleGroup + # + # == Helper Examples + # + # These let you specify directly methods that live in your helpers. + # + # See Spec::Rails::Example::HelperExampleGroup + module Example + end + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/example/assigns_hash_proxy.rb b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/example/assigns_hash_proxy.rb new file mode 100644 index 0000000..f80743a --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/example/assigns_hash_proxy.rb @@ -0,0 +1,39 @@ +module Spec + module Rails + module Example + class AssignsHashProxy #:nodoc: + def initialize(example_group, &block) + @target = block.call + @example_group = example_group + end + + def [](key) + return false if false == assigns[key] || false == assigns[key.to_s] + assigns[key] || assigns[key.to_s] || @target.instance_variable_get("@#{key}") + end + + def []=(key, val) + @target.instance_variable_set("@#{key}", val) + end + + def delete(key) + assigns.delete(key.to_s) + @target.instance_variable_set("@#{key}", nil) + end + + def each(&block) + assigns.each &block + end + + def has_key?(key) + assigns.key?(key.to_s) + end + + protected + def assigns + @example_group.orig_assigns + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/example/controller_example_group.rb b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/example/controller_example_group.rb new file mode 100644 index 0000000..e7add25 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/example/controller_example_group.rb @@ -0,0 +1,278 @@ +module Spec + module Rails + module Example + # Controller Examples live in $RAILS_ROOT/spec/controllers/. + # + # Controller Examples use Spec::Rails::Example::ControllerExampleGroup, + # which supports running specs for Controllers in two modes, which + # represent the tension between the more granular testing common in TDD + # and the more high level testing built into rails. BDD sits somewhere + # in between: we want to a balance between specs that are close enough + # to the code to enable quick fault isolation and far enough away from + # the code to enable refactoring with minimal changes to the existing + # specs. + # + # == Isolation mode (default) + # + # No dependencies on views because none are ever rendered. The benefit + # of this mode is that can spec the controller completely independent of + # the view, allowing that responsibility to be handled later, or by + # somebody else. Combined w/ separate view specs, this also provides + # better fault isolation. + # + # == Integration mode + # + # To run in this mode, include the +integrate_views+ declaration + # in your controller context: + # + # describe ThingController do + # integrate_views + # ... + # + # In this mode, controller specs are run in the same way that rails + # functional tests run - one set of tests for both the controllers and + # the views. The benefit of this approach is that you get wider coverage + # from each spec. Experienced rails developers may find this an easier + # approach to begin with, however we encourage you to explore using the + # isolation mode and revel in its benefits. + # + # == Expecting Errors + # + # Rspec on Rails will raise errors that occur in controller actions and + # are not rescued or handeled with rescue_from. + # + class ControllerExampleGroup < FunctionalExampleGroup + class << self + + # Use integrate_views to instruct RSpec to render views in + # your controller examples in Integration mode. + # + # describe ThingController do + # integrate_views + # ... + # + # See Spec::Rails::Example::ControllerExampleGroup for more + # information about Integration and Isolation modes. + def integrate_views(integrate_views = true) + @integrate_views = integrate_views + end + + def integrate_views? # :nodoc: + @integrate_views + end + + def inherited(klass) # :nodoc: + klass.integrate_views(integrate_views?) + klass.subject { controller } + super + end + + def set_description(*args) # :nodoc: + super + if described_class && described_class.ancestors.include?(ActionController::Base) + controller_klass = if superclass.controller_class.ancestors.include?(ActionController::Base) + superclass.controller_class + else + described_class + end + tests controller_klass + end + end + + # When you don't pass a controller to describe, like this: + # + # describe ThingsController do + # + # ... then you must provide a controller_name within the context of + # your controller specs: + # + # describe "ThingController" do + # controller_name :thing + # ... + def controller_name(name) + tests "#{name}_controller".camelize.constantize + end + end + + before(:each) do + # Some Rails apps explicitly disable ActionMailer in environment.rb + if defined?(ActionMailer) + @deliveries = [] + ActionMailer::Base.deliveries = @deliveries + end + + unless @controller.class.ancestors.include?(ActionController::Base) + Spec::Expectations.fail_with <<-MESSAGE +Controller specs need to know what controller is being specified. You can +indicate this by passing the controller to describe(): + + describe MyController do + +or by declaring the controller's name + + describe "a MyController" do + controller_name :my #invokes the MyController +end +MESSAGE + end + @controller.extend ControllerInstanceMethods + @controller.integrate_views! if integrate_views? + @controller.session = session + end + + attr_reader :response, :request, :controller + + def integrate_views? + @integrate_views || self.class.integrate_views? + end + + # Bypasses any error rescues defined with rescue_from. Useful + # in cases in which you want to specify errors coming out of + # actions that might be caught by a rescue_from clause that is + # specified separately. + # + # Note that this will override the effect of rescue_action_in_public + def bypass_rescue + if ::Rails::VERSION::STRING >= '2.2' + def controller.rescue_action(exception) + raise exception + end + else + def controller.rescue_action_with_handler(exception) + raise exception + end + end + end + + protected + + def _assigns_hash_proxy + @_assigns_hash_proxy ||= AssignsHashProxy.new(self) {@response.template} + end + + private + + module TemplateIsolationExtensions + def file_exists?(ignore); true; end + + def render_file(*args) + @first_render ||= args[0] unless args[0] =~ /^layouts/ + end + + # Rails 2.2 + def _pick_template(*args) + @_first_render ||= args[0] unless args[0] =~ /^layouts/ + PickedTemplate.new + end + + def __action_exists?(params) + controller.respond_to? params[:action] + end + + def render(*args) + if ::Rails::VERSION::STRING >= "2.1" + return super unless __action_exists?(params) + end + if file = args.last[:file].instance_eval{@template_path} + record_render :file => file + elsif args.last[:inline] + super + elsif @_rendered + record_render(args[0]) + else + super + end + end + + private + + def record_render(opts) + (@_rendered[:template] ||= opts[:file]) if opts[:file] + (@_rendered[:partials][opts[:partial]] += 1) if opts[:partial] + end + + # Returned by _pick_template when running controller examples in isolation mode. + class PickedTemplate + # Do nothing when running controller examples in isolation mode. + def render_template(*ignore_args); end + # Do nothing when running controller examples in isolation mode. + def render_partial(*ignore_args); end + end + end + + module ControllerInstanceMethods # :nodoc: + include Spec::Rails::Example::RenderObserver + + # === render(options = nil, extra_options={}, &block) + # + # This gets added to the controller's singleton meta class, + # allowing Controller Examples to run in two modes, freely switching + # from example group to example group. + def render(options=nil, extra_options={}, &block) + unless block_given? + unless integrate_views? + @template.extend TemplateIsolationExtensions + end + end + + if matching_message_expectation_exists(options) + render_proxy.render(options, &block) + @performed_render = true + else + if matching_stub_exists(options) + @performed_render = true + else + if ::Rails::VERSION::STRING > '2.1' + super(options, extra_options, &block) + else + super(options, &block) + end + end + end + end + + # Rails 2.3 + def default_template(action_name = self.action_name) + if integrate_views? + super + else + begin + super + rescue ActionView::MissingTemplate + "#{self.class.name.sub(/Controller$/,'').underscore}/#{action_name}" + end + end + end + + def response(&block) + # NOTE - we're setting @update for the assert_select_spec - kinda weird, huh? + @update = block + super + end + + def integrate_views! + @integrate_views = true + end + + private + + def integrate_views? + @integrate_views + end + + def matching_message_expectation_exists(options) + render_proxy.__send__(:__mock_proxy).__send__(:find_matching_expectation, :render, options) + end + + def matching_stub_exists(options) + render_proxy.__send__(:__mock_proxy).__send__(:find_matching_method_stub, :render, options) + end + + end + + Spec::Example::ExampleGroupFactory.register(:controller, self) + + end + end + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/example/cookies_proxy.rb b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/example/cookies_proxy.rb new file mode 100644 index 0000000..ffd57fb --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/example/cookies_proxy.rb @@ -0,0 +1,29 @@ +require 'action_controller/cookies' + +module Spec + module Rails + module Example + class CookiesProxy + def initialize(example) + @example = example + end + + def[]=(name, value) + if ::Rails::VERSION::STRING >= '2.3' + @example.request.cookies[name.to_s] = value + else + @example.request.cookies[name.to_s] = CGI::Cookie.new(name.to_s, value) + end + end + + def [](name) + @example.response.cookies[name.to_s] + end + + def delete(name) + @example.response.cookies.delete(name.to_s) + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/example/functional_example_group.rb b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/example/functional_example_group.rb new file mode 100644 index 0000000..9d89627 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/example/functional_example_group.rb @@ -0,0 +1,106 @@ +require 'action_controller/test_case' + +module Spec + module Rails + module Example + class FunctionalExampleGroup < ActionController::TestCase + def setup + # no-op to override AC::TC's setup w/ conflicts with the before(:each) below + end + + attr_reader :request, :response + + # The params hash accessed within a view or helper. Use this before + # rendering a view or calling a helper to provide data used by the + # view or helper. + # + # == Examples + # # in a view spec + # params[:name] = "David" + # render + # response.should have_tag("div.name","David") + # + # # in a helper spec + # params[:first_name] = "David" + # params[:last_name] = "Chelimsky" + # helper.full_name.should == "David Chelimsky" + def params + request.parameters + end + + # Provides access to the flash hash. Use this after rendering a + # view, calling a helper or calling a controller action. + # + # == Examples + # post :create + # flash[:notice].should == "Success!" + def flash + @controller.__send__ :flash + end + + # Provides acces to the session hash. Use this before or after + # rendering a view, calling a helper or calling a controller action. + def session + request.session + end + + # Overrides the cookies() method in + # ActionController::TestResponseBehaviour, returning a proxy that + # accesses the requests cookies when setting a cookie and the + # responses cookies when reading one. This allows you to set and read + # cookies in examples using the same API with which you set and read + # them in controllers. + # + # == Examples (Rails 2.0 > 2.2) + # + # cookies[:user_id] = {:value => '1234', :expires => 1.minute.ago} + # get :index + # response.should be_redirect + # + # == Examples (Rails 2.3) + # + # Rails 2.3 changes the way cookies are made available to functional + # tests (and therefore rspec controller specs), only making single + # values available with no access to other aspects of the cookie. This + # is backwards-incompatible, so you have to change your examples to + # look like this: + # + # cookies[:foo] = 'bar' + # get :index + # cookies[:foo].should == 'bar' + def cookies + @cookies ||= Spec::Rails::Example::CookiesProxy.new(self) + end + + alias_method :orig_assigns, :assigns + + # :call-seq: + # assigns() + # + # Hash of instance variables to values that are made available to + # views. == Examples + # + # #in thing_controller.rb + # def new + # @thing = Thing.new + # end + # + # #in thing_controller_spec + # get 'new' + # assigns[:registration].should == Thing.new + #-- + # NOTE - Even though docs only use assigns[:key] format, this supports + # assigns(:key) for backwards compatibility. + #++ + def assigns(key = nil) + if key.nil? + _assigns_hash_proxy + else + _assigns_hash_proxy[key] + end + end + + end + end + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/example/helper_example_group.rb b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/example/helper_example_group.rb new file mode 100644 index 0000000..2a86aa0 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/example/helper_example_group.rb @@ -0,0 +1,153 @@ +module Spec + module Rails + module Example + class HelperExampleGroupController < ApplicationController #:nodoc: + attr_accessor :request, :url + end + + # Helper Specs live in $RAILS_ROOT/spec/helpers/. + # + # Helper Specs use Spec::Rails::Example::HelperExampleGroup, which allows you to + # include your Helper directly in the context and write specs directly + # against its methods. + # + # HelperExampleGroup also includes the standard lot of ActionView::Helpers in case your + # helpers rely on any of those. + # + # == Example + # + # module ThingHelper + # def number_of_things + # Thing.count + # end + # end + # + # describe "ThingHelper example_group" do + # include ThingHelper + # it "should tell you the number of things" do + # Thing.should_receive(:count).and_return(37) + # number_of_things.should == 37 + # end + # end + class HelperExampleGroup < FunctionalExampleGroup + tests HelperExampleGroupController + attr_accessor :output_buffer + + class HelperObject < ActionView::Base + def initialize(*args) + @template = self + super + end + def protect_against_forgery? + false + end + + attr_writer :session, :request, :flash, :params, :controller + + private + attr_reader :session, :request, :flash, :params, :controller + end + + class << self + # The helper name.... + def helper_name(name=nil) + @helper_being_described = "#{name}_helper".camelize.constantize + send :include, @helper_being_described + end + + def helper + @helper_object ||= returning HelperObject.new do |helper_object| + if @helper_being_described.nil? + if described_type.class == Module + helper_object.extend described_type + end + else + helper_object.extend @helper_being_described + end + end + end + end + + # Returns an instance of ActionView::Base with the helper being spec'd + # included. + # + # == Example + # + # describe PersonHelper do + # it "should write a link to person with the name" do + # assigns[:person] = mock_model(Person, :full_name => "Full Name", :id => 37, :new_record? => false) + # helper.link_to_person.should == %{Full Name} + # end + # end + # + # module PersonHelper + # def link_to_person + # link_to person.full_name, url_for(person) + # end + # end + # + def helper + self.class.helper + end + + def orig_assigns + helper.assigns + end + + # Reverse the load order so that custom helpers which are defined last + # are also loaded last. + ActionView::Base.included_modules.reverse.each do |mod| + include mod if mod.parents.include?(ActionView::Helpers) + end + + before(:each) do + @controller.request = @request + @controller.url = ActionController::UrlRewriter.new @request, {} # url_for + + @flash = ActionController::Flash::FlashHash.new + session['flash'] = @flash + + @output_buffer = "" + @template = helper + ActionView::Helpers::AssetTagHelper::reset_javascript_include_default + + helper.session = session + helper.request = @request + helper.flash = flash + helper.params = params + helper.controller = @controller + end + + def flash + @flash + end + + def eval_erb(text) + erb_args = [text] + if helper.respond_to?(:output_buffer) + erb_args += [nil, nil, '@output_buffer'] + end + + helper.instance_eval do + ERB.new(*erb_args).result(binding) + end + end + + # TODO: BT - Helper Examples should proxy method_missing to a Rails View instance. + # When that is done, remove this method + def protect_against_forgery? + false + end + + Spec::Example::ExampleGroupFactory.register(:helper, self) + + protected + + def _assigns_hash_proxy + @_assigns_hash_proxy ||= AssignsHashProxy.new(self) {helper} + end + + end + end + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/example/integration_example_group.rb b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/example/integration_example_group.rb new file mode 100644 index 0000000..7143f05 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/example/integration_example_group.rb @@ -0,0 +1,16 @@ +class ActionController::IntegrationTest + alias_method :orig_initialize, :initialize + def initialize(*args) + super + end +end + +module Spec + module Rails + module Example + class IntegrationExampleGroup < ActionController::IntegrationTest + Spec::Example::ExampleGroupFactory.register(:integration, self) + end + end + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/example/model_example_group.rb b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/example/model_example_group.rb new file mode 100644 index 0000000..465ed0a --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/example/model_example_group.rb @@ -0,0 +1,14 @@ +module Spec + module Rails + module Example + # Model examples live in $RAILS_ROOT/spec/models/. + # + # Model examples use Spec::Rails::Example::ModelExampleGroup, which + # provides support for fixtures and some custom expectations via extensions + # to ActiveRecord::Base. + class ModelExampleGroup < ActiveSupport::TestCase + Spec::Example::ExampleGroupFactory.register(:model, self) + end + end + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/example/render_observer.rb b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/example/render_observer.rb new file mode 100644 index 0000000..b70b349 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/example/render_observer.rb @@ -0,0 +1,80 @@ +require 'spec/mocks/framework' + +module Spec + module Rails + module Example + # Extends the #should_receive, #should_not_receive and #stub! methods in rspec's + # mocking framework to handle #render calls to controller in controller examples + # and template and view examples + module RenderObserver + + def verify_rendered # :nodoc: + render_proxy.rspec_verify + end + + def unregister_verify_after_each #:nodoc: + proc = verify_rendered_proc + Spec::Example::ExampleGroup.remove_after(:each, &proc) + end + + def should_receive(*args) + if args[0] == :render + register_verify_after_each + render_proxy.should_receive(:render, :expected_from => caller(1)[0]) + else + super + end + end + + def should_not_receive(*args) + if args[0] == :render + register_verify_after_each + render_proxy.should_not_receive(:render) + else + super + end + end + + def stub(*args) + if args[0] == :render + register_verify_after_each + render_proxy.stub(args.first, :expected_from => caller(1)[0]) + else + super + end + end + + # FIXME - for some reason, neither alias nor alias_method are working + # as expected in the else branch, so this is a duplicate of stub() + # above. Could delegate, but then we'd run into craziness handling + # :expected_from. This will have to do for the moment. + def stub!(*args) + if args[0] == :render + register_verify_after_each + render_proxy.stub!(args.first, :expected_from => caller(1)[0]) + else + super + end + end + + def verify_rendered_proc #:nodoc: + template = self + @verify_rendered_proc ||= Proc.new do + template.verify_rendered + template.unregister_verify_after_each + end + end + + def register_verify_after_each #:nodoc: + proc = verify_rendered_proc + Spec::Example::ExampleGroup.after(:each, &proc) + end + + def render_proxy #:nodoc: + @render_proxy ||= Spec::Mocks::Mock.new("render_proxy") + end + + end + end + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/example/routing_example_group.rb b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/example/routing_example_group.rb new file mode 100644 index 0000000..635c1d3 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/example/routing_example_group.rb @@ -0,0 +1,13 @@ +module Spec + module Rails + module Example + + class RoutingExampleGroup < ActionController::TestCase + tests Class.new(ActionController::Base) + + Spec::Example::ExampleGroupFactory.register(:routing, self) + end + + end + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/example/routing_helpers.rb b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/example/routing_helpers.rb new file mode 100644 index 0000000..351f495 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/example/routing_helpers.rb @@ -0,0 +1,66 @@ +require 'rack/utils' + +module Spec + module Rails + module Example + module RoutingHelpers + + class RouteFor + def initialize(example, options) + @example, @options = example, options + end + + def ==(expected) + if Hash === expected + path, querystring = expected[:path].split('?') + path_string = path + path = expected.merge(:path => path) + else + path, querystring = expected.split('?') + path_string = path + path = { :path => path, :method => :get } + end + params = querystring.blank? ? {} : Rack::Utils.parse_query(querystring).symbolize_keys! + begin + @example.assert_routing(path, @options, {}, params) + true + rescue ActionController::RoutingError, ::Test::Unit::AssertionFailedError => e + raise e.class, "#{e}\nIf you're expecting this failure, we suggest {:#{path[:method]}=>\"#{path[:path]}\"}.should_not be_routable" + end + end + end + # Uses ActionController::Routing::Routes to generate + # the correct route for a given set of options. + # == Examples + # route_for(:controller => 'registrations', :action => 'edit', :id => '1') + # => '/registrations/1/edit' + # route_for(:controller => 'registrations', :action => 'create') + # => {:path => "/registrations", :method => :post} + def route_for(options) + RouteFor.new(self, options) + end + + # Uses ActionController::Routing::Routes to parse + # an incoming path so the parameters it generates can be checked + # + # Note that this method is obsoleted by the route_to matcher. + # == Example + # params_from(:get, '/registrations/1/edit') + # => :controller => 'registrations', :action => 'edit', :id => '1' + def params_from(method, path) + ensure_that_routes_are_loaded + path, querystring = path.split('?') + params = ActionController::Routing::Routes.recognize_path(path, :method => method) + querystring.blank? ? params : params.merge(Rack::Utils.parse_query(querystring).symbolize_keys!) + end + + private + + def ensure_that_routes_are_loaded + ActionController::Routing::Routes.reload if ActionController::Routing::Routes.empty? + end + + end + end + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/example/view_example_group.rb b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/example/view_example_group.rb new file mode 100644 index 0000000..5bfd60d --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/example/view_example_group.rb @@ -0,0 +1,199 @@ +module Spec + module Rails + module Example + class ViewExampleGroupController < ApplicationController #:nodoc: + include Spec::Rails::Example::RenderObserver + attr_reader :template + + def add_helper_for(template_path) + add_helper(template_path.split('/')[0]) + end + + def add_helper(name) + begin + helper_module = "#{name}_helper".camelize.constantize + rescue + return + end + (class << template; self; end).class_eval do + include helper_module + end + end + + def forget_variables_added_to_assigns + end + end + + # View Examples live in $RAILS_ROOT/spec/views/. + # + # View Specs use Spec::Rails::Example::ViewExampleGroup, + # which provides access to views without invoking any of your controllers. + # See Spec::Rails::Expectations::Matchers for information about specific + # expectations that you can set on views. + # + # == Example + # + # describe "login/login" do + # before do + # render 'login/login' + # end + # + # it "should display login form" do + # response.should have_tag("form[action=/login]") do + # with_tag("input[type=text][name=email]") + # with_tag("input[type=password][name=password]") + # with_tag("input[type=submit][value=Login]") + # end + # end + # end + class ViewExampleGroup < FunctionalExampleGroup + if ActionView::Base.respond_to?(:load_helpers) # Rails 2.0.x + ActionView::Helpers.constants.each do |name| + const = ActionView::Helpers.const_get(name) + include const if name.include?("Helper") && Module === const + end + elsif ActionView::Base.respond_to?(:helper_modules) # Rails 2.1.x + ActionView::Base.helper_modules.each do |helper_module| + include helper_module + end + else # Rails 2.2.x + include ActionView::Helpers + end + + tests ViewExampleGroupController + class << self + def inherited(klass) # :nodoc: + klass.subject { template } + super + end + end + + before {ensure_that_flash_and_session_work_properly} + after {ensure_that_base_view_path_is_not_set_across_example_groups} + + def ensure_that_flash_and_session_work_properly #:nodoc: + @controller.class.__send__ :public, :flash + @controller.__send__ :initialize_template_class, @response + @controller.__send__ :assign_shortcuts, @request, @response + @controller.__send__ :initialize_current_url + @session = @controller.session + end + + def ensure_that_base_view_path_is_not_set_across_example_groups #:nodoc: + ActionView::Base.base_view_path = nil + end + + def set_base_view_path(options) #:nodoc: + ActionView::Base.base_view_path = base_view_path(options) + end + + def base_view_path(options) #:nodoc: + "/#{derived_controller_name(options)}/" + end + + def derived_controller_name(options) #:nodoc: + parts = subject_of_render(options).split('/').reject { |part| part.empty? } + "#{parts[0..-2].join('/')}" + end + + def derived_action_name(options) #:nodoc: + parts = subject_of_render(options).split('/').reject { |part| part.empty? } + "#{parts.last}".split('.').first + end + + def subject_of_render(options) #:nodoc: + [:template, :partial, :file].each do |render_type| + if options.has_key?(render_type) + return options[render_type] + end + end + return "" + end + + def add_helpers(options) #:nodoc: + @controller.add_helper("application") + @controller.add_helper(derived_controller_name(options)) + @controller.add_helper(options[:helper]) if options[:helper] + options[:helpers].each { |helper| @controller.add_helper(helper) } if options[:helpers] + end + + # Renders a template for a View Spec, which then provides access to the result + # through the +response+. Also supports render with :inline, which you can + # use to spec custom form builders, helpers, etc, in the context of a view. + # + # == Examples + # + # render('/people/list') + # render('/people/list', :helper => MyHelper) + # render('/people/list', :helpers => [MyHelper, MyOtherHelper]) + # render(:partial => '/people/_address') + # render(:inline => "<% custom_helper 'argument', 'another argument' %>") + # + # See Spec::Rails::Example::ViewExampleGroup for more information. + def render(*args) + options = Hash === args.last ? args.pop : {} + + if args.empty? + unless [:partial, :inline, :file, :template, :xml, :json, :update].any? {|k| options.has_key? k} + args << self.class.description_parts.first + end + end + + options[:template] = args.first.to_s.sub(/^\//,'') unless args.empty? + + set_base_view_path(options) + add_helpers(options) + + assigns[:action_name] = @action_name + + @request.path_parameters = @request.path_parameters.merge( + :controller => derived_controller_name(options), + :action => derived_action_name(options) + ).merge(options[:path_parameters] || {}) + + defaults = { :layout => false } + options = defaults.merge options + + @controller.__send__(:params).reverse_merge! @request.parameters + + @controller.class.instance_eval %{ + def controller_path + "#{derived_controller_name(options)}" + end + + def controller_name + "#{derived_controller_name(options).split('/').last}" + end + } + + @controller.__send__ :forget_variables_added_to_assigns + @controller.__send__ :render, options + @controller.__send__ :process_cleanup + end + + # This provides the template. Use this to set mock + # expectations for dealing with partials + # + # == Example + # + # describe "/person/new" do + # it "should use the form partial" do + # template.should_receive(:render).with(:partial => 'form') + # render "/person/new" + # end + # end + def template + @controller.template + end + + Spec::Example::ExampleGroupFactory.register(:view, self) + + protected + def _assigns_hash_proxy + @_assigns_hash_proxy ||= AssignsHashProxy.new(self) {@response.template} + end + end + + end + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/extensions.rb b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/extensions.rb new file mode 100644 index 0000000..989dfd5 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/extensions.rb @@ -0,0 +1,11 @@ +require 'spec' + +require 'spec/rails/extensions/spec/runner/configuration' +require 'spec/rails/extensions/spec/matchers/have' + +require 'spec/rails/extensions/active_support/test_case' +require 'spec/rails/extensions/active_record/base' +require 'spec/rails/extensions/action_controller/rescue' +require 'spec/rails/extensions/action_controller/test_case' +require 'spec/rails/extensions/action_controller/test_response' +require 'spec/rails/extensions/action_view/base' diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/extensions/action_controller/rescue.rb b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/extensions/action_controller/rescue.rb new file mode 100644 index 0000000..9d1ec6a --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/extensions/action_controller/rescue.rb @@ -0,0 +1,42 @@ +module ActionController + module Rescue + def use_rails_error_handling! + Kernel.warn <<-WARNING +DEPRECATION NOTICE: controller.use_rails_error_handling! is +deprecated and will be removed from a future version of +rspec-rails. + +Use rescue_action_in_public!, which is defined directly in +rails' testing framework, instead. +WARNING + if ::Rails::VERSION::STRING =~ /^2\.0/ + @use_rails_error_handling = true + else + # anything but 0.0.0.0 - borrowed from rails own rescue_action_in_public! + request.remote_addr = '208.77.188.166' + end + end + + def use_rails_error_handling? + @use_rails_error_handling ||= false + end + + protected + + if ::Rails::VERSION::STRING =~ /^2\.0/ + def rescue_action_in_public? + request.respond_to?(:rescue_action_in_public?) and request.rescue_action_in_public? + end + + def rescue_action_with_handler_with_fast_errors(exception) + if (use_rails_error_handling? || rescue_action_in_public?) & !handler_for_rescue(exception) + rescue_action_in_public(exception) + else + rescue_action_with_handler_without_fast_errors(exception) + end + end + alias_method_chain :rescue_action_with_handler, :fast_errors + end + + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/extensions/action_controller/test_case.rb b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/extensions/action_controller/test_case.rb new file mode 100644 index 0000000..c043340 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/extensions/action_controller/test_case.rb @@ -0,0 +1,16 @@ +module ActionController + class TestCase + include ::Spec::Rails::Example::RoutingHelpers + + if ::Rails::VERSION::STRING =~ /2\.0/ + # Introduced in Rails 2.1, but we need it for 2.0 + def rescue_action_in_public! + # See rescue.rb in this same directory + def request.rescue_action_in_public? + true + end + end + + end + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/extensions/action_controller/test_response.rb b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/extensions/action_controller/test_response.rb new file mode 100644 index 0000000..5ea4a81 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/extensions/action_controller/test_response.rb @@ -0,0 +1,21 @@ +module ActionController #:nodoc: + class TestResponse #:nodoc: + attr_writer :controller_path + + def capture(name) + template.instance_variable_get "@content_for_#{name.to_s}" + end + + if ::Rails::VERSION::STRING < "2.3" + def [](name) + Kernel.warn <<-WARNING +DEPRECATION NOTICE: [](name) as an alias for capture(name) (TestResponse +extension in rspec-rails) is deprecated and will not be defined by rspec-rails +when working with rails >= 2.3.0. It will also be removed entirely from +a future version of rspec-rails. +WARNING + capture(name) + end + end + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/extensions/action_view/base.rb b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/extensions/action_view/base.rb new file mode 100644 index 0000000..54d1388 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/extensions/action_view/base.rb @@ -0,0 +1,33 @@ +module ActionView #:nodoc: + class Base #:nodoc: + include Spec::Rails::Example::RenderObserver + cattr_accessor :base_view_path + + def render_partial_with_base_view_path_handling(partial_path, local_assigns = nil, deprecated_local_assigns = nil) #:nodoc: + if partial_path.is_a?(String) + unless partial_path.include?("/") + unless self.class.base_view_path.nil? + partial_path = "#{self.class.base_view_path}/#{partial_path}" + end + end + end + begin + render_partial_without_base_view_path_handling(partial_path, local_assigns, deprecated_local_assigns) + rescue ArgumentError # edge rails > 2.1 changed render_partial to accept only one arg + render_partial_without_base_view_path_handling(partial_path) + end + end + alias_method_chain :render_partial, :base_view_path_handling + + def render_with_mock_proxy(options = {}, old_local_assigns = {}, &block) + if render_proxy.__send__(:__mock_proxy).__send__(:find_matching_expectation, :render, options) + render_proxy.render(options) + else + unless render_proxy.__send__(:__mock_proxy).__send__(:find_matching_method_stub, :render, options) + render_without_mock_proxy(options, old_local_assigns, &block) + end + end + end + alias_method_chain :render, :mock_proxy + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/extensions/active_record/base.rb b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/extensions/active_record/base.rb new file mode 100644 index 0000000..10611e3 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/extensions/active_record/base.rb @@ -0,0 +1,45 @@ +if defined?(ActiveRecord::Base) + module Spec + module Rails + module Extensions + module ActiveRecord + module ClassMethods + # :call-seq: + # ModelClass.should have(:no).records + # ModelClass.should have(1).record + # ModelClass.should have(n).records + # + # Extension to enhance should have on AR Model classes + def records + find(:all) + end + alias :record :records + end + + module InstanceMethods + # :call-seq: + # model.should have(:no).errors_on(:attribute) + # model.should have(1).error_on(:attribute) + # model.should have(n).errors_on(:attribute) + # + # Extension to enhance should have on AR Model instances. + # Calls model.valid? in order to prepare the object's errors + # object. + def errors_on(attribute) + self.valid? + [self.errors.on(attribute)].flatten.compact + end + alias :error_on :errors_on + end + end + end + end + end + + module ActiveRecord #:nodoc: + class Base + extend Spec::Rails::Extensions::ActiveRecord::ClassMethods + include Spec::Rails::Extensions::ActiveRecord::InstanceMethods + end + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/extensions/active_support/test_case.rb b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/extensions/active_support/test_case.rb new file mode 100644 index 0000000..b01953f --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/extensions/active_support/test_case.rb @@ -0,0 +1,7 @@ +module ActiveSupport + class TestCase + include ::Spec::Rails::Matchers + include ::Spec::Rails::Mocks + end +end + diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/extensions/spec/matchers/have.rb b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/extensions/spec/matchers/have.rb new file mode 100644 index 0000000..53924c4 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/extensions/spec/matchers/have.rb @@ -0,0 +1,23 @@ +require 'spec/matchers/have' + +module Spec #:nodoc: + module Matchers #:nodoc: + class Have #:nodoc: + + def failure_message_for_should_with_errors_on_extensions + return "expected #{relativities[@relativity]}#{@expected} errors on :#{@args[0]}, got #{@actual}" if @collection_name == :errors_on + return "expected #{relativities[@relativity]}#{@expected} error on :#{@args[0]}, got #{@actual}" if @collection_name == :error_on + return failure_message_for_should_without_errors_on_extensions + end + alias_method_chain :failure_message_for_should, :errors_on_extensions + + def description_with_errors_on_extensions + return "have #{relativities[@relativity]}#{@expected} errors on :#{@args[0]}" if @collection_name == :errors_on + return "have #{relativities[@relativity]}#{@expected} error on :#{@args[0]}" if @collection_name == :error_on + return description_without_errors_on_extensions + end + alias_method_chain :description, :errors_on_extensions + + end + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/extensions/spec/runner/configuration.rb b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/extensions/spec/runner/configuration.rb new file mode 100755 index 0000000..56650e8 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/extensions/spec/runner/configuration.rb @@ -0,0 +1,44 @@ +require 'spec/runner/configuration' +require 'test_help' + +if defined?(ActiveRecord::Base) + module Spec + module Runner + class Configuration + + def initialize + super + self.fixture_path = RAILS_ROOT + '/spec/fixtures' + end + + def use_transactional_fixtures + ActiveSupport::TestCase.use_transactional_fixtures + end + def use_transactional_fixtures=(value) + ActiveSupport::TestCase.use_transactional_fixtures = value + end + + def use_instantiated_fixtures + ActiveSupport::TestCase.use_instantiated_fixtures + end + def use_instantiated_fixtures=(value) + ActiveSupport::TestCase.use_instantiated_fixtures = value + end + + def fixture_path + ActiveSupport::TestCase.fixture_path + end + def fixture_path=(path) + ActiveSupport::TestCase.fixture_path = path + end + + def global_fixtures + ActiveSupport::TestCase.fixture_table_names + end + def global_fixtures=(fixtures) + ActiveSupport::TestCase.fixtures(*fixtures) + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/interop/testcase.rb b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/interop/testcase.rb new file mode 100644 index 0000000..53cb992 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/interop/testcase.rb @@ -0,0 +1,14 @@ +module Test + module Unit + class TestCase + # Edge rails (r8664) introduces class-wide setup & teardown callbacks for Test::Unit::TestCase. + # Make sure these still get run when running TestCases under rspec: + prepend_before(:each) do + run_callbacks :setup if respond_to?(:run_callbacks) + end + append_after(:each) do + run_callbacks :teardown if respond_to?(:run_callbacks) + end + end + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/matchers.rb b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/matchers.rb new file mode 100644 index 0000000..4ecf0a9 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/matchers.rb @@ -0,0 +1,33 @@ +dir = File.dirname(__FILE__) +require 'spec/rails/matchers/ar_be_valid' +require 'spec/rails/matchers/assert_select' +require 'spec/rails/matchers/change' +require 'spec/rails/matchers/have_text' +require 'spec/rails/matchers/include_text' +require 'spec/rails/matchers/redirect_to' +require 'spec/rails/matchers/route_to' +require 'spec/rails/matchers/render_template' + +module Spec + module Rails + # Spec::Rails::Expectations::Matchers provides several expectation matchers + # intended to work with Rails components like models and responses. For example: + # + # response.should redirect_to("some/url") #redirect_to(url) is the matcher. + # + # In addition to those you see below, the arbitrary predicate feature of RSpec + # makes the following available as well: + # + # response.should be_success #passes if response.success? + # response.should be_redirect #passes if response.redirect? + # + # Note that many of these matchers are part of a wrapper of assert_select, so + # the documentation comes straight from that with some slight modifications. + # assert_select is a Test::Unit extension originally contributed to the + # Rails community as a plugin by Assaf Arkin and eventually shipped as part of Rails. + # + # For more info on assert_select, see the relevant Rails documentation. + module Matchers + end + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/matchers/ar_be_valid.rb b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/matchers/ar_be_valid.rb new file mode 100644 index 0000000..0f1ed0d --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/matchers/ar_be_valid.rb @@ -0,0 +1,46 @@ +if defined?(ActiveRecord::Base) + module Spec + module Rails + module Matchers + + class ArBeValid #:nodoc: + + def initialize + @matcher = Spec::Matchers::Be.new :be_valid + @matcher.__send__ :handling_predicate! + end + + def matches?(actual) + @actual = actual + @matcher.matches? @actual + end + + def failure_message_for_should + if @actual.respond_to?(:errors) && + ActiveRecord::Errors === @actual.errors + "Expected #{@actual.inspect} to be valid, but it was not\nErrors: " + @actual.errors.full_messages.join(", ") + else + @matcher.failure_message_for_should + end + end + + def failure_message_for_should_not + @matcher.failure_message_for_should_not + end + + def description + "be valid" + end + end + + # :call-seq: + # response.should be_valid + # response.should_not be_valid + def be_valid + ArBeValid.new + end + + end + end + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/matchers/assert_select.rb b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/matchers/assert_select.rb new file mode 100644 index 0000000..db9387e --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/matchers/assert_select.rb @@ -0,0 +1,180 @@ +# This is a wrapper of assert_select for rspec. + +module Spec # :nodoc: + module Rails + module Matchers + + class AssertSelect #:nodoc: + attr_reader :options + + def initialize(selector_assertion, spec_scope, *args, &block) + @args, @options = args_and_options(args) + @spec_scope = spec_scope + @selector_assertion = selector_assertion + @block = block + end + + def matches?(response_or_text, &block) + @block = block if block + + if doc = doc_from(response_or_text) + @args.unshift(doc) + end + + begin + @spec_scope.__send__(@selector_assertion, *@args, &@block) + true + rescue ::Test::Unit::AssertionFailedError => @error + false + end + end + + def failure_message_for_should; @error.message; end + def failure_message_for_should_not; "should not #{description}, but did"; end + + def description + { + :assert_select => "have tag#{format_args(*@args)}", + :assert_select_email => "send email#{format_args(*@args)}", + }[@selector_assertion] + end + + private + + module TestResponseOrString + def test_response? + ActionController::TestResponse === self and + !self.headers['Content-Type'].blank? and + self.headers['Content-Type'].to_sym == :xml + end + + def string? + String === self + end + end + + def doc_from(response_or_text) + response_or_text.extend TestResponseOrString + if response_or_text.test_response? + HTML::Document.new(response_or_text.body, @options[:strict], @options[:xml]).root + elsif response_or_text.string? + HTML::Document.new(response_or_text, @options[:strict], @options[:xml]).root + end + end + + def format_args(*args) + args.empty? ? "" : "(#{arg_list(*args)})" + end + + def arg_list(*args) + args.map do |arg| + arg.respond_to?(:description) ? arg.description : arg.inspect + end.join(", ") + end + + def args_and_options(args) + opts = {:xml => false, :strict => false} + if args.last.is_a?(::Hash) + opts[:strict] = args.last.delete(:strict) unless args.last[:strict].nil? + opts[:xml] = args.last.delete(:xml) unless args.last[:xml].nil? + args.pop if args.last.empty? + end + return [args, opts] + end + + end + + # :call-seq: + # response.should have_tag(*args, &block) + # string.should have_tag(*args, &block) + # + # wrapper for assert_select with additional support for using + # css selectors to set expectation on Strings. Use this in + # helper specs, for example, to set expectations on the results + # of helper methods. Also allow specification of how the + # response is parsed using the options :xml and :strict options. + # By default, these options are set to false. + # + # == Examples + # + # # in a controller spec + # response.should have_tag("div", "some text") + # + # # to force xml and/or strict parsing of the response + # response.should have_tag("div", "some text", :xml => true) + # response.should have_tag("div", "some text", :strict => true) + # response.should have_tag("div", "some text", :xml => true, :strict => false) + # + # # in a helper spec (person_address_tag is a method in the helper) + # person_address_tag.should have_tag("input#person_address") + # + # see documentation for assert_select at http://api.rubyonrails.org/ + def have_tag(*args, &block) + @__current_scope_for_assert_select = AssertSelect.new(:assert_select, self, *args, &block) + end + + # wrapper for a nested assert_select + # + # response.should have_tag("div#form") do + # with_tag("input#person_name[name=?]", "person[name]") + # end + # + # see documentation for assert_select at http://api.rubyonrails.org/ + def with_tag(*args, &block) + args = prepare_args(args, @__current_scope_for_assert_select) + @__current_scope_for_assert_select.should have_tag(*args, &block) + end + + # wrapper for a nested assert_select with false + # + # response.should have_tag("div#1") do + # without_tag("span", "some text that shouldn't be there") + # end + # + # see documentation for assert_select at http://api.rubyonrails.org/ + def without_tag(*args, &block) + args = prepare_args(args, @__current_scope_for_assert_select) + @__current_scope_for_assert_select.should_not have_tag(*args, &block) + end + + # :call-seq: + # response.should have_rjs(*args, &block) + # + # wrapper for assert_select_rjs + # + # see documentation for assert_select_rjs at http://api.rubyonrails.org/ + def have_rjs(*args, &block) + AssertSelect.new(:assert_select_rjs, self, *args, &block) + end + + # :call-seq: + # response.should send_email(*args, &block) + # + # wrapper for assert_select_email + # + # see documentation for assert_select_email at http://api.rubyonrails.org/ + def send_email(*args, &block) + AssertSelect.new(:assert_select_email, self, *args, &block) + end + + # wrapper for assert_select_encoded + # + # see documentation for assert_select_encoded at http://api.rubyonrails.org/ + def with_encoded(*args, &block) + should AssertSelect.new(:assert_select_encoded, self, *args, &block) + end + + private + + def prepare_args(args, current_scope = nil) + return args if current_scope.nil? + defaults = current_scope.options || {:strict => false, :xml => false} + args << {} unless args.last.is_a?(::Hash) + args.last[:strict] = defaults[:strict] if args.last[:strict].nil? + args.last[:xml] = defaults[:xml] if args.last[:xml].nil? + args + end + + end + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/matchers/change.rb b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/matchers/change.rb new file mode 100644 index 0000000..3542f58 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/matchers/change.rb @@ -0,0 +1,13 @@ +if defined?(ActiveRecord::Base) + module Spec + module Matchers + class Change + def evaluate_value_proc_with_ensured_evaluation_of_proxy + value = evaluate_value_proc_without_ensured_evaluation_of_proxy + ActiveRecord::Associations::AssociationProxy === value ? value.dup : value + end + alias_method_chain :evaluate_value_proc, :ensured_evaluation_of_proxy + end + end + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/matchers/have_text.rb b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/matchers/have_text.rb new file mode 100644 index 0000000..e3dfc6f --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/matchers/have_text.rb @@ -0,0 +1,57 @@ +module Spec + module Rails + module Matchers + + class HaveText #:nodoc: + + def initialize(expected) + @expected = expected + end + + def matches?(response_or_text) + @actual = response_or_text.respond_to?(:body) ? response_or_text.body : response_or_text + return actual =~ expected if Regexp === expected + return actual == expected unless Regexp === expected + end + + def failure_message_for_should + "expected #{expected.inspect}, got #{actual.inspect}" + end + + def failure_message_for_should_not + "expected not to have text #{expected.inspect}" + end + + def description + "have text #{expected.inspect}" + end + + private + attr_reader :expected + attr_reader :actual + + end + + # :call-seq: + # response.should have_text(expected) + # response.should_not have_text(expected) + # + # Accepts a String or a Regexp, matching a String using == + # and a Regexp using =~. + # + # If response_or_text has a #body, then that is used as to match against + # else it uses response_or_text + # + # Use this instead of response.should have_tag() + # when you want to match the whole string or whole body + # + # == Examples + # + # response.should have_text("This is the expected text") + def have_text(text) + HaveText.new(text) + end + + end + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/matchers/include_text.rb b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/matchers/include_text.rb new file mode 100644 index 0000000..a05d804 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/matchers/include_text.rb @@ -0,0 +1,54 @@ +module Spec + module Rails + module Matchers + + class IncludeText #:nodoc: + + def initialize(expected) + @expected = expected + end + + def matches?(response_or_text) + @actual = response_or_text.respond_to?(:body) ? response_or_text.body : response_or_text + return actual.include?(expected) + end + + def failure_message_for_should + "expected to find #{expected.inspect} in #{actual.inspect}" + end + + def failure_message_for_should_not + "expected not to include text #{expected.inspect}" + end + + def description + "include text #{expected.inspect}" + end + + private + attr_reader :expected + attr_reader :actual + + end + + + # :call-seq: + # response.should include_text(expected) + # response.should_not include_text(expected) + # + # Accepts a String, matching using include? + # + # Use this instead of response.should have_text() + # when you either don't know or don't care where on the page + # this text appears. + # + # == Examples + # + # response.should include_text("This text will be in the actual string") + def include_text(text) + IncludeText.new(text) + end + + end + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/matchers/redirect_to.rb b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/matchers/redirect_to.rb new file mode 100644 index 0000000..e2ec676 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/matchers/redirect_to.rb @@ -0,0 +1,126 @@ +module Spec + module Rails + module Matchers + + class RedirectTo #:nodoc: + + include ActionController::StatusCodes + + def initialize(request, expected) + @expected = expected + @request = request + end + + def matches?(response_or_controller) + response = response_or_controller.respond_to?(:response) ? + response_or_controller.response : + response_or_controller + + @redirected = response.redirect? + @actual = response.redirect_url + return false unless @redirected + + if @expected_status + @actual_status = interpret_status(response.code.to_i) + @status_matched = @expected_status == @actual_status + else + @status_matched = true + end + + if @expected.instance_of? Hash + return false unless @actual =~ %r{^\w+://#{@request.host}} + return false unless actual_redirect_to_valid_route + return actual_hash == expected_hash && @status_matched + else + return @actual == expected_url && @status_matched + end + end + + def actual_hash + hash_from_url @actual + end + + def expected_hash + hash_from_url expected_url + end + + def actual_redirect_to_valid_route + actual_hash + end + + def hash_from_url(url) + query_hash(url).merge(path_hash(url)).with_indifferent_access + end + + def path_hash(url) + path = url.sub(%r{^\w+://#{@request.host}(?::\d+)?}, "").split("?", 2)[0] + ActionController::Routing::Routes.recognize_path path, { :method => :get } + end + + def query_hash(url) + query = url.split("?", 2)[1] || "" + Rack::Utils.parse_query(query) + end + + def with(options) + @expected_status = interpret_status(options[:status]) + self + end + + def expected_url + case @expected + when Hash + return ActionController::UrlRewriter.new(@request, {}).rewrite(@expected) + when :back + return @request.env['HTTP_REFERER'] + when %r{^\w+://.*} + return @expected + else + return "http://#{@request.host}" + (@expected.split('')[0] == '/' ? '' : '/') + @expected + end + end + + def failure_message_for_should + if @redirected + if @status_matched + return %Q{expected redirect to #{@expected.inspect}, got redirect to #{@actual.inspect}} + else + return %Q{expected redirect to #{@expected.inspect} with status #{@expected_status}, got #{@actual_status}} + end + else + return %Q{expected redirect to #{@expected.inspect}, got no redirect} + end + end + + def failure_message_for_should_not + return %Q{expected not to be redirected to #{@expected.inspect}, but was} if @redirected + end + + def description + "redirect to #{@expected.inspect}" + end + end + + # :call-seq: + # response.should redirect_to(url) + # response.should redirect_to(:action => action_name) + # response.should redirect_to(:controller => controller_name, :action => action_name) + # response.should_not redirect_to(url) + # response.should_not redirect_to(:action => action_name) + # response.should_not redirect_to(:controller => controller_name, :action => action_name) + # + # Passes if the response is a redirect to the url, action or controller/action. + # Useful in controller specs (integration or isolation mode). + # + # == Examples + # + # response.should redirect_to("path/to/action") + # response.should redirect_to("http://test.host/path/to/action") + # response.should redirect_to(:action => 'list') + def redirect_to(opts) + RedirectTo.new(request, opts) + end + end + + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/matchers/render_template.rb b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/matchers/render_template.rb new file mode 100644 index 0000000..b2c1887 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/matchers/render_template.rb @@ -0,0 +1,129 @@ +module Spec + module Rails + module Matchers + + class RenderTemplate #:nodoc: + + def initialize(expected, controller) + @controller = controller + @expected = expected + end + + def matches?(response_or_controller) + response = response_or_controller.respond_to?(:response) ? + response_or_controller.response : + response_or_controller + + if response.respond_to?(:redirect?) && response.redirect? + @redirect_url = response.redirect_url + elsif response.respond_to?(:rendered_file) + @actual = response.rendered_file + elsif response.respond_to?(:rendered) + case template = response.rendered[:template] + when nil + unless response.rendered[:partials].empty? + @actual = path_and_file(response.rendered[:partials].keys.first).join("/_") + end + when ActionView::Template + @actual = template.path + when String + @actual = template + end + else + @actual = response.rendered_template.to_s + end + return false if @actual.blank? + given_controller_path, given_file = path_and_file(@actual) + expected_controller_path, expected_file = path_and_file(@expected) + given_controller_path == expected_controller_path && match_files(given_file, expected_file) + end + + def match_files(actual, expected) + actual_parts = actual.split('.') + expected_parts = expected.split('.') + expected_parts.each_with_index do |expected_part, index| + return false unless expected_part == actual_parts[index] + end + true + end + + def failure_message_for_should + if @redirect_url + "expected #{@expected.inspect}, got redirected to #{@redirect_url.inspect}" + else + "expected #{@expected.inspect}, got #{@actual.inspect}" + end + end + + def failure_message_for_should_not + "expected not to render #{@expected.inspect}, but did" + end + + def description + "render template #{@expected.inspect}" + end + + private + def path_and_file(path) + parts = path.split('/') + file = parts.pop + controller = parts.empty? ? current_controller_path : parts.join('/') + return controller, file + end + + def controller_path_from(path) + parts = path.split('/') + parts.pop + parts.join('/') + end + + def current_controller_path + @controller.class.to_s.underscore.gsub(/_controller$/,'') + end + + end + + # :call-seq: + # response.should render_template(template) + # response.should_not render_template(template) + # + # For use in controller code examples (integration or isolation mode). + # + # Passes if the specified template (view file) is rendered by the + # response. This file can be any view file, including a partial. However + # if it is a partial it must be rendered directly i.e. you can't detect + # that a partial has been rendered as part of a view using + # render_template. For that you should use a message expectation + # (mock) instead: + # + # controller.should_receive(:render).with(:partial => 'path/to/partial') + # + # template can include the controller path. It can also + # include an optional extension, which you only need to use when there + # is ambiguity. + # + # Note that partials must be spelled with the preceding underscore. + # + # == Examples + # + # response.should render_template('list') + # response.should render_template('same_controller/list') + # response.should render_template('other_controller/list') + # + # # with extensions + # response.should render_template('list.rjs') + # response.should render_template('list.haml') + # response.should render_template('same_controller/list.rjs') + # response.should render_template('other_controller/list.rjs') + # + # # partials + # response.should render_template('_a_partial') + # response.should render_template('same_controller/_a_partial') + # response.should render_template('other_controller/_a_partial') + def render_template(path) + RenderTemplate.new(path.to_s, @controller) + end + + end + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/matchers/route_to.rb b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/matchers/route_to.rb new file mode 100644 index 0000000..eae35f0 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/matchers/route_to.rb @@ -0,0 +1,149 @@ +require 'rack/utils' + +module Spec + module Rails + module Matchers + USAGE = ArgumentError.new( 'usage: { :method => "path" }.should route_to( :controller => "controller", :action => "action", [ args ] )' ) + + class PathDecomposer + def self.decompose_path(path) + method, path = if Hash === path + raise USAGE if path.keys.size > 1 + path.entries.first + else + [:get, path] + end + path, querystring = path.split('?') + return method, path, querystring + end + end + + class RouteTo #:nodoc: + def initialize(expected, example) + @route, @example = expected,example + end + + def matches?(path) + begin + @actual = path + method, path, querystring = PathDecomposer.decompose_path(path) + params = querystring.blank? ? {} : Rack::Utils.parse_query(querystring).symbolize_keys! + @example.assert_routing({ :method => method, :path => path }, @route, {}, params) + true + rescue ActionController::RoutingError, ::Test::Unit::AssertionFailedError, ActionController::MethodNotAllowed => e + raise e.class, "#{e}\nIf you're expecting this failure, we suggest { :#{method} => \"#{path}\" }.should_not be_routable" + rescue Exception => e + raise e.class, "#{e}\n#{e.backtrace.join( "\n" )}" + end + end + + def does_not_match(path) + raise ArgumentError, "Don't test a negative route like this." + end + + def failure_message_for_should + "Expected #{@expected.inspect} to route to #{@actual.inspect}, but it didn't.\n"+ + "In this case, we expected you to get an exception. So this message probably means something weird happened." + end + + def failure_message_for_should_not + "Expected a routing error, but the route passed instead. \nNote, when expecting routes to fail, you should use 'should_not be_routable' instead." + end + + def description + "route to #{@expected.inspect}" + end + + private + attr_reader :expected + attr_reader :actual + + end + + # :call-seq: + # "path".should route_to(expected) # assumes GET + # { :get => "path" }.should route_to(expected) + # { :put => "path" }.should route_to(expected) + # + # Uses ActionController::Routing::Routes to verify that + # the path-and-method routes to a given set of options. + # Also verifies route-generation, so that the expected options + # do generate a pathname consisten with the indicated path/method. + # + # For negative tests, only the route recognition failure can be + # tested; since route generation via path_to() will always generate + # a path as requested. Use .should_not be_routable() in this case. + # + # == Examples + # { :get => '/registrations/1/edit' }. + # should route_to(:controller => 'registrations', :action => 'edit', :id => '1') + # { :put => "/registrations/1" }.should + # route_to(:controller => 'registrations', :action => 'update', :id => 1) + # { :post => "/registrations/" }.should + # route_to(:controller => 'registrations', :action => 'create') + + def route_to(expected) + RouteTo.new(expected, self) + end + + class BeRoutable + def initialize(example) + @example = example + end + + def matches?(path) + begin + @actual = path + method, path = PathDecomposer.decompose_path(path) + @example.assert_recognizes({}, { :method => method, :path => path }, {} ) + true + rescue ActionController::RoutingError, ActionController::MethodNotAllowed + false + rescue ::Test::Unit::AssertionFailedError => e + # the second thingy will always be "<{}>" becaues of the way we called assert_recognizes({}...) above. + e.to_s =~ /<(.*)> did not match <\{\}>/ and @actual_place = $1 or raise + true + end + end + def failure_message_for_should + "Expected '#{@actual.keys.first.to_s.upcase} #{@actual.values.first}' to be routable, but it wasn't.\n"+ + "To really test routability, we recommend #{@actual.inspect}.\n"+ + " should route_to( :action => 'action', :controller => 'controller' )\n\n"+ + + "That way, you'll verify where your route goes to. Plus, we'll verify\n"+ + "the generation of the expected path from the action/controller, as in\n"+ + "the url_for() helper." + end + + def failure_message_for_should_not + "Expected '#{@actual.keys.first.to_s.upcase} #{@actual.values.first}' to fail, but it routed to #{@actual_place} instead" + end + + end + # :call-seq: + # { "path" }.should_not be_routable # assumes GET + # { :get => "path" }.should_not be_routable + # { :put => "path" }.should_not be_routable + # + # Uses ActionController::Routing::Routes to verify that + # the path-and-method cannot be routed to a controller. + # Since url_for() will always generate a path, even if that + # path is not routable, the negative test only needs to be + # performed on the route recognition. + # + # Don't use this matcher for testing expected routability - + # use .should route_to( :controller => "controller", :action => "action" ) instead + # + # == Examples + # { :get => '/registrations/1/attendees/3/edit' }.should_not be_routable + # { :get => '/attendees/3/edit' }.should route_to( ...... ) + + def be_routable + BeRoutable.new(self) + end + + alias_method :be_routeable, :be_routable + end + end +end + diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/mocks.rb b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/mocks.rb new file mode 100644 index 0000000..f3436dd --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/mocks.rb @@ -0,0 +1,135 @@ +module Spec + module Rails + + class IllegalDataAccessException < StandardError; end + + module Mocks + + # Creates a mock object instance for a +model_class+ with common + # methods stubbed out. Additional methods may be easily stubbed (via + # add_stubs) if +stubs+ is passed. + def mock_model(model_class, options_and_stubs = {}) + id = options_and_stubs[:id] || next_id + options_and_stubs = options_and_stubs.reverse_merge({ + :id => id, + :to_param => id.to_s, + :new_record? => false, + :errors => stub("errors", :count => 0) + }) + m = mock("#{model_class.name}_#{id}", options_and_stubs) + m.__send__(:__mock_proxy).instance_eval <<-CODE + def @target.as_new_record + self.stub!(:id).and_return nil + self.stub!(:to_param).and_return nil + self.stub!(:new_record?).and_return true + self + end + def @target.is_a?(other) + #{model_class}.ancestors.include?(other) + end + def @target.kind_of?(other) + #{model_class}.ancestors.include?(other) + end + def @target.instance_of?(other) + other == #{model_class} + end + def @target.class + #{model_class} + end + CODE + yield m if block_given? + m + end + + module ModelStubber + def connection + raise Spec::Rails::IllegalDataAccessException.new("stubbed models are not allowed to access the database") + end + def new_record? + id.nil? + end + def as_new_record + self.id = nil + self + end + end + + # :call-seq: + # stub_model(Model) + # stub_model(Model).as_new_record + # stub_model(Model, hash_of_stubs) + # stub_model(Model, instance_variable_name, hash_of_stubs) + # + # Creates an instance of +Model+ that is prohibited from accessing the + # database*. For each key in +hash_of_stubs+, if the model has a + # matching attribute (determined by asking it) are simply assigned the + # submitted values. If the model does not have a matching attribute, the + # key/value pair is assigned as a stub return value using RSpec's + # mocking/stubbing framework. + # + # new_record? is overridden to return the result of id.nil? + # This means that by default new_record? will return false. If you want + # the object to behave as a new record, sending it +as_new_record+ will + # set the id to nil. You can also explicitly set :id => nil, in which + # case new_record? will return true, but using +as_new_record+ makes the + # example a bit more descriptive. + # + # While you can use stub_model in any example (model, view, controller, + # helper), it is especially useful in view examples, which are + # inherently more state-based than interaction-based. + # + # == Database Independence + # + # +stub_model+ does not make your examples entirely + # database-independent. It does not stop the model class itself from + # loading up its columns from the database. It just prevents data access + # from the object itself. To completely decouple from the database, take + # a look at libraries like unit_record or NullDB. + # + # == Examples + # + # stub_model(Person) + # stub_model(Person).as_new_record + # stub_model(Person, :id => 37) + # stub_model(Person) do |person| + # person.first_name = "David" + # end + def stub_model(model_class, stubs={}) + stubs = {:id => next_id}.merge(stubs) + returning model_class.new do |model| + model.id = stubs.delete(:id) + model.extend ModelStubber + stubs.each do |k,v| + if model.has_attribute?(k) + model[k] = stubs.delete(k) + end + end + model.stub!(stubs) + yield model if block_given? + end + end + + # DEPRECATED - use object.stub!(:method => value, :method2 => value) + # + # Stubs methods on +object+ (if +object+ is a symbol or string a new mock + # with that name will be created). +stubs+ is a Hash of +method=>value+ + def add_stubs(object, stubs = {}) #:nodoc: + Kernel.warn <<-WARNING +DEPRECATION NOTICE: add_stubs is deprecated and will be removed +from a future version of rspec-rails. Use this instead: + + object.stub!(:method => value, :method2 => value) + +WARNING + object.stub!(stubs) + end + + private + @@model_id = 1000 + def next_id + @@model_id += 1 + end + + end + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/version.rb b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/version.rb new file mode 100644 index 0000000..4d9e982 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/lib/spec/rails/version.rb @@ -0,0 +1,16 @@ +module Spec # :nodoc: + module Rails # :nodoc: + module VERSION # :nodoc: + unless defined? MAJOR + MAJOR = 1 + MINOR = 2 + TINY = 9 + PRE = nil + + STRING = [MAJOR, MINOR, TINY, PRE].compact.join('.') + + SUMMARY = "rspec-rails #{STRING}" + end + end + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/autotest/mappings_spec.rb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/autotest/mappings_spec.rb new file mode 100644 index 0000000..1e0ec73 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/autotest/mappings_spec.rb @@ -0,0 +1,86 @@ +require 'spec_helper' +require File.dirname(__FILE__) + '/../../lib/autotest/rails_rspec' +require File.dirname(__FILE__) + '/../../../rspec/spec/autotest/autotest_matchers' + +describe Autotest::RailsRspec, "file mapping" do + before(:each) do + @autotest = Autotest::RailsRspec.new + @autotest.hook :initialize + end + + it "should map model example to model" do + @autotest.should map_specs(['spec/models/thing_spec.rb']). + to('app/models/thing.rb') + end + + it "should map controller example to controller" do + @autotest.should map_specs(['spec/controllers/things_controller_spec.rb']). + to('app/controllers/things_controller.rb') + end + + it "should map view.rhtml" do + @autotest.should map_specs(['spec/views/things/index.rhtml_spec.rb']). + to('app/views/things/index.rhtml') + end + + it "should map view.rhtml with underscores in example filename" do + @autotest.should map_specs(['spec/views/things/index_rhtml_spec.rb']). + to('app/views/things/index.rhtml') + end + + it "should map view.html.erb" do + @autotest.should map_specs(['spec/views/things/index.html.erb_spec.rb']). + to('app/views/things/index.html.erb') + end + + describe "between routes.rb and things which depend on routes" do + it "should map routes.rb to controllers" do + @autotest.should map_specs(['spec/controllers/things_controller_spec.rb']). + to('config/routes.rb') + end + + it "should map routes.rb to views" do + @autotest.should map_specs(['spec/views/things/action.html.erb_spec.rb']). + to('config/routes.rb') + end + + it "should map routes.rb to helpers" do + @autotest.should map_specs(['spec/helpers/things_helper_spec.rb']). + to('config/routes.rb') + end + + it "should map routing example to routes" do + @autotest.should map_specs(['spec/routing/thing_spec.rb']). + to('config/routes.rb') + end + end + + describe "between the config and specs" do + ['spec/controllers/things_controller_spec.rb', + 'spec/views/things/action.html.erb_spec.rb', + 'spec/helpers/things_helper_spec.rb', + 'spec/routing/thing_spec.rb', + 'spec/models/thing_spec.rb'].each do |file_path| + + it "should map environment.rb to #{file_path}" do + @autotest.should map_specs([file_path]). + to('config/environment.rb') + end + + it "should map environments/test.rb to #{file_path}" do + @autotest.should map_specs([file_path]). + to('config/environments/test.rb') + end + + it "should map boot.rb to #{file_path}" do + @autotest.should map_specs([file_path]). + to('config/boot.rb') + end + + it "should map spec_helper.rb to #{file_path}" do + @autotest.should map_specs([file_path]). + to('spec/spec_helper.rb') + end + end + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/rails_suite.rb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/rails_suite.rb new file mode 100644 index 0000000..15effae --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/rails_suite.rb @@ -0,0 +1,7 @@ +dir = File.dirname(__FILE__) +Dir["#{dir}/**/*_example.rb"].each do |file| + require file +end +Dir["#{dir}/**/*_spec.rb"].each do |file| + require file +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/controllers/action_view_base_spec_controller.rb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/controllers/action_view_base_spec_controller.rb new file mode 100644 index 0000000..9240221 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/controllers/action_view_base_spec_controller.rb @@ -0,0 +1,2 @@ +class ActionViewBaseSpecController < ActionController::Base +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/controllers/application.rb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/controllers/application.rb new file mode 100644 index 0000000..343fdd7 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/controllers/application.rb @@ -0,0 +1,9 @@ +class ApplicationController < ActionController::Base + before_filter :i_should_only_be_run_once, + :only => 'action_with_inherited_before_filter' + + def i_should_only_be_run_once + true + end + private :i_should_only_be_run_once +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/controllers/controller_spec_controller.rb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/controllers/controller_spec_controller.rb new file mode 100644 index 0000000..d5b5627 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/controllers/controller_spec_controller.rb @@ -0,0 +1,127 @@ +class ControllerSpecController < ActionController::Base + before_filter :raise_error, :only => :action_with_skipped_before_filter + + def raise_error + raise "from a before filter" + end + + skip_before_filter :raise_error + + prepend_view_path File.join(File.dirname(__FILE__), "..", "views") + + def some_action + render :template => "template/that/does/not/actually/exist" + end + + def some_action_with_implied_template + end + + def action_with_template + render :template => "controller_spec/action_with_template" + end + + def action_which_sets_flash + flash[:flash_key] = "flash value" + render :text => "" + end + + def action_which_gets_session + raise "expected #{params[:session_key].inspect}\ngot #{session[:session_key].inspect}" unless (session[:session_key] == params[:expected]) + render :text => "" + end + + def action_which_sets_session + session[:session_key] = "session value" + end + + def action_which_gets_cookie + raise "expected #{params[:expected].inspect}, got #{cookies[:cookie_key].inspect}" unless (cookies[:cookie_key] == params[:expected]) + render :text => "" + end + + def action_which_sets_cookie + cookies['cookie_key'] = params[:value] + render :text => "" + end + + def action_with_partial + render :partial => "controller_spec/partial" + end + + def action_with_partial_with_object + render :partial => "controller_spec/partial", :object => params[:thing] + end + + def action_with_partial_with_locals + render :partial => "controller_spec/partial", :locals => {:thing => params[:thing]} + end + + def action_with_errors_in_template + render :template => "controller_spec/action_with_errors_in_template" + end + + def action_setting_the_assigns_hash + @indirect_assigns_key = :indirect_assigns_key_value + end + + def action_setting_flash_after_session_reset + reset_session + flash[:after_reset] = "available" + end + + def action_setting_flash_before_session_reset + flash[:before_reset] = 'available' + reset_session + end + + def action_with_render_update + render :update do |page| + page.replace :bottom, 'replace_me', + :partial => 'non_existent_partial' + end + end + + def action_with_skipped_before_filter + render :text => "" + end + + def action_that_renders_inline + render :inline => "<%= 'inline code' %>" + end + + def action_that_assigns_false_to_a_variable + @a_variable = false + render :text => "" + end + + def action_with_two_arg_render + render :update, :status => 404 do |page| + page.visual_effect :highlight, 'user_list' + end + end + + class RescuedError < Exception; end + class UnRescuedError < Exception; end + + rescue_from RescuedError do |e| + render :text => 'Rescued!' + end + + def rescued_error_action + raise ControllerSpecController::RescuedError + end + + def un_rescued_error_action + raise ControllerSpecController::UnRescuedError + end + + def action_that_returns_headers + render :text => request.headers[params[:header]] + end +end + +class ControllerInheritingFromApplicationControllerController < ApplicationController + def action_with_inherited_before_filter + render :text => "" + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/controllers/example.txt b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/controllers/example.txt new file mode 100644 index 0000000..3809653 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/controllers/example.txt @@ -0,0 +1 @@ +This is an example file to download. \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/controllers/redirect_spec_controller.rb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/controllers/redirect_spec_controller.rb new file mode 100644 index 0000000..7b63c99 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/controllers/redirect_spec_controller.rb @@ -0,0 +1,70 @@ +class RedirectSpecController < ApplicationController + + def action_with_no_redirect + render :text => "this is just here to keep this from causing a MissingTemplate error" + end + + def action_with_redirect_to_somewhere + redirect_to :action => 'somewhere' + end + + def action_with_redirect_to_other_somewhere + redirect_to :controller => 'render_spec', :action => 'text_action' + end + + def action_with_redirect_to_somewhere_and_return + redirect_to :action => 'somewhere' and return + render :text => "this is after the return" + end + + def somewhere + render :text => "this is just here to keep this from causing a MissingTemplate error" + end + + def action_with_redirect_to_rspec_site + redirect_to "http://rspec.rubyforge.org" + end + + def action_with_redirect_back + redirect_to :back + end + + def action_with_redirect_in_respond_to + respond_to do |wants| + wants.html { redirect_to :action => 'somewhere' } + end + end + + def action_with_redirect_which_creates_query_string + redirect_to :action => "somewhere", :id => 1111, :param1 => "value1", :param2 => "value2" + end + + # note: sometimes this is the URL which rails will generate from the hash in + # action_with_redirect_which_creates_query_string + def action_with_redirect_with_query_string_order1 + redirect_to "http://test.host/redirect_spec/somewhere/1111?param1=value1¶m2=value2" + end + + # note: sometimes this is the URL which rails will generate from the hash in + # action_with_redirect_which_creates_query_string + def action_with_redirect_with_query_string_order2 + redirect_to "http://test.host/redirect_spec/somewhere/1111?param2=value2¶m1=value1" + end + + def action_with_redirect_to_unroutable_url_inside_app + redirect_to :controller => "nonexistant", :action => "none" + end + + def action_with_method_restriction + render :text => '' + end + + def action_to_redirect_to_action_with_method_restriction + redirect_to :action => 'action_with_method_restriction' + end + + def action_with_redirect_to_somewhere_with_status + redirect_to :action => 'somewhere', :status => 301 + end +end + diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/controllers/render_spec_controller.rb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/controllers/render_spec_controller.rb new file mode 100644 index 0000000..1efe61f --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/controllers/render_spec_controller.rb @@ -0,0 +1,34 @@ +class RenderSpecController < ApplicationController + prepend_view_path File.join(File.dirname(__FILE__), "..", "views") + + def some_action + respond_to do |format| + format.html + format.js + end + end + + def action_which_renders_template_from_other_controller + render :template => 'controller_spec/action_with_template' + end + + def text_action + render :text => "this is the text for this action" + end + + def action_with_redirect + redirect_to :action => :some_action + end + + def action_with_partial + render :partial => "a_partial" + end + + def action_that_renders_nothing + render :nothing => true + end + + def action_with_alternate_layout + render :layout => 'simple' + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/controllers/rjs_spec_controller.rb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/controllers/rjs_spec_controller.rb new file mode 100644 index 0000000..4fd9a41 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/controllers/rjs_spec_controller.rb @@ -0,0 +1,58 @@ +class RjsSpecController < ApplicationController + prepend_view_path File.join(File.dirname(__FILE__), "..", "views") + + def replace_html + end + + def insert_html + end + + def replace + end + + def hide_div + end + + def hide_page_element + end + + def replace_html_with_partial + end + + def render_replace_html + render :update do |page| + page.replace_html 'mydiv', 'replacement text' + page.replace_html 'myotherdiv', 'other replacement text' + end + end + + def render_replace_html_with_partial + render :update do |page| + page.replace_html 'mydiv', :partial => 'rjs_spec/replacement_partial' + end + end + + def render_insert_html + render :update do |page| + page.insert_html 'mydiv', 'replacement text' + end + end + + def render_replace + render :update do |page| + page.replace 'mydiv', 'replacement text' + end + end + + def render_hide_div + render :update do |page| + page.hide 'mydiv' + end + end + + def render_hide_page_element + render :update do |page| + page['mydiv'].hide + end + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/helpers/addition_helper.rb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/helpers/addition_helper.rb new file mode 100644 index 0000000..14ad70c --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/helpers/addition_helper.rb @@ -0,0 +1,5 @@ +module AdditionHelper + def plus(addend) + @addend + addend + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/helpers/explicit_helper.rb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/helpers/explicit_helper.rb new file mode 100644 index 0000000..f75d1dd --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/helpers/explicit_helper.rb @@ -0,0 +1,46 @@ +module ExplicitHelper + def method_in_explicit_helper + "

    This is text from a method in the ExplicitHelper
    " + end + + # this is an example of a method spec'able with eval_erb in helper specs + def prepend(arg, &block) + begin # rails edge after 2.1.0 eliminated need for block.binding + concat(arg) + block.call + rescue + concat(arg, block.binding) + block.call + end + end + + def named_url + rspec_on_rails_specs_url + end + + def named_path + rspec_on_rails_specs_path + end + + def params_foo + params[:foo] + end + + def session_foo + session[:foo] + end + + def request_thing + request.thing + end + + def flash_thing + flash[:thing] + end + + def method_using_output_buffer + concat("the_text_from_concat") + end + + def method_using_template + update_page { |p| p["#some_id"].replace_html "" } + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/helpers/more_explicit_helper.rb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/helpers/more_explicit_helper.rb new file mode 100644 index 0000000..7468741 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/helpers/more_explicit_helper.rb @@ -0,0 +1,5 @@ +module MoreExplicitHelper + def method_in_more_explicit_helper + "
    This is text from a method in the MoreExplicitHelper
    " + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/helpers/plugin_application_helper.rb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/helpers/plugin_application_helper.rb new file mode 100644 index 0000000..2107d22 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/helpers/plugin_application_helper.rb @@ -0,0 +1,6 @@ +# Methods added to this helper will be available to all templates in the application. +module ApplicationHelper + def method_in_plugin_application_helper + "
    This is text from a method in the ApplicationHelper
    " + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/helpers/view_spec_helper.rb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/helpers/view_spec_helper.rb new file mode 100644 index 0000000..b05fc53 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/helpers/view_spec_helper.rb @@ -0,0 +1,13 @@ +module ViewSpecHelper + def method_in_helper + "
    This is text from a method in the ViewSpecHelper
    " + end + + def method_in_template_with_partial + "
    method_in_template_with_partial in ViewSpecHelper
    " + end + + def method_in_partial + "
    method_in_partial in ViewSpecHelper
    " + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/models/animal.rb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/models/animal.rb new file mode 100644 index 0000000..3ce078a --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/models/animal.rb @@ -0,0 +1,4 @@ +class Animal < ActiveRecord::Base + belongs_to :person + validates_uniqueness_of :name +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/models/person.rb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/models/person.rb new file mode 100644 index 0000000..7f9607e --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/models/person.rb @@ -0,0 +1,18 @@ +class Person < ActiveRecord::Base + has_many :animals do + def pups + find(:all, :conditions => 'age < 1') + end + def adults + find(:all, :conditions => 'age >= 1') + end + end + validates_presence_of :name + + def add_animal animal + animal.person = self + animals << animal + animal.save + end + +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/models/thing.rb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/models/thing.rb new file mode 100644 index 0000000..c674804 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/models/thing.rb @@ -0,0 +1,3 @@ +class Thing < ActiveRecord::Base + validates_presence_of :name +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/controller_spec/_partial.html.erb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/controller_spec/_partial.html.erb new file mode 100644 index 0000000..e69de29 diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/controller_spec/action_setting_flash_after_session_reset.html.erb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/controller_spec/action_setting_flash_after_session_reset.html.erb new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/controller_spec/action_setting_flash_after_session_reset.html.erb @@ -0,0 +1 @@ + diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/controller_spec/action_setting_flash_before_session_reset.html.erb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/controller_spec/action_setting_flash_before_session_reset.html.erb new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/controller_spec/action_setting_flash_before_session_reset.html.erb @@ -0,0 +1 @@ + diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/controller_spec/action_setting_the_assigns_hash.html.erb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/controller_spec/action_setting_the_assigns_hash.html.erb new file mode 100644 index 0000000..e69de29 diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/controller_spec/action_with_errors_in_template.html.erb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/controller_spec/action_with_errors_in_template.html.erb new file mode 100644 index 0000000..0f957b2 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/controller_spec/action_with_errors_in_template.html.erb @@ -0,0 +1 @@ +<% raise %> \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/controller_spec/action_with_template.html.erb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/controller_spec/action_with_template.html.erb new file mode 100644 index 0000000..6e1f058 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/controller_spec/action_with_template.html.erb @@ -0,0 +1 @@ +
    This is action_with_template.rhtml
    diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/layouts/application.html.erb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/layouts/application.html.erb new file mode 100644 index 0000000..e69de29 diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/layouts/simple.html.erb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/layouts/simple.html.erb new file mode 100644 index 0000000..e69de29 diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/objects/_object.html.erb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/objects/_object.html.erb new file mode 100644 index 0000000..b751f09 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/objects/_object.html.erb @@ -0,0 +1 @@ +<%= object.name %> \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/render_spec/_a_partial.html.erb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/render_spec/_a_partial.html.erb new file mode 100644 index 0000000..e69de29 diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/render_spec/action_with_alternate_layout.html.erb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/render_spec/action_with_alternate_layout.html.erb new file mode 100644 index 0000000..e69de29 diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/render_spec/some_action.html.erb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/render_spec/some_action.html.erb new file mode 100644 index 0000000..e69de29 diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/render_spec/some_action.js.rjs b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/render_spec/some_action.js.rjs new file mode 100644 index 0000000..4472f4b --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/render_spec/some_action.js.rjs @@ -0,0 +1 @@ +# This is used for rails > 1.2.3 \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/rjs_spec/_replacement_partial.html.erb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/rjs_spec/_replacement_partial.html.erb new file mode 100644 index 0000000..d282065 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/rjs_spec/_replacement_partial.html.erb @@ -0,0 +1 @@ +This is the text in the replacement partial. \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/rjs_spec/hide_div.js.rjs b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/rjs_spec/hide_div.js.rjs new file mode 100644 index 0000000..1fe2139 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/rjs_spec/hide_div.js.rjs @@ -0,0 +1 @@ +page.hide 'mydiv' diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/rjs_spec/hide_page_element.js.rjs b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/rjs_spec/hide_page_element.js.rjs new file mode 100644 index 0000000..de1ebc9 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/rjs_spec/hide_page_element.js.rjs @@ -0,0 +1 @@ +page['mydiv'].hide diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/rjs_spec/insert_html.js.rjs b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/rjs_spec/insert_html.js.rjs new file mode 100644 index 0000000..f8a59e0 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/rjs_spec/insert_html.js.rjs @@ -0,0 +1 @@ +page.insert_html 'mydiv', 'replacement text' diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/rjs_spec/replace.js.rjs b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/rjs_spec/replace.js.rjs new file mode 100644 index 0000000..aca59a9 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/rjs_spec/replace.js.rjs @@ -0,0 +1 @@ +page.replace 'mydiv', 'replacement text' diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/rjs_spec/replace_html.js.rjs b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/rjs_spec/replace_html.js.rjs new file mode 100644 index 0000000..717c598 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/rjs_spec/replace_html.js.rjs @@ -0,0 +1 @@ +page.replace_html 'mydiv', 'replacement text' \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/rjs_spec/replace_html_with_partial.js.rjs b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/rjs_spec/replace_html_with_partial.js.rjs new file mode 100644 index 0000000..0531804 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/rjs_spec/replace_html_with_partial.js.rjs @@ -0,0 +1 @@ +page.replace_html 'mydiv', :partial => 'rjs_spec/replacement_partial' \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/rjs_spec/visual_effect.js.rjs b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/rjs_spec/visual_effect.js.rjs new file mode 100644 index 0000000..1c37b32 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/rjs_spec/visual_effect.js.rjs @@ -0,0 +1 @@ +page.visual_effect :fade, 'mydiv' diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/rjs_spec/visual_toggle_effect.js.rjs b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/rjs_spec/visual_toggle_effect.js.rjs new file mode 100644 index 0000000..97cf6bb --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/rjs_spec/visual_toggle_effect.js.rjs @@ -0,0 +1 @@ +page.visual_effect :toggle_blind, 'mydiv' diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/tag_spec/no_tags.html.erb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/tag_spec/no_tags.html.erb new file mode 100644 index 0000000..877b908 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/tag_spec/no_tags.html.erb @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/tag_spec/single_div_with_no_attributes.html.erb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/tag_spec/single_div_with_no_attributes.html.erb new file mode 100644 index 0000000..281c686 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/tag_spec/single_div_with_no_attributes.html.erb @@ -0,0 +1 @@ +
    \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/tag_spec/single_div_with_one_attribute.html.erb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/tag_spec/single_div_with_one_attribute.html.erb new file mode 100644 index 0000000..c664e76 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/tag_spec/single_div_with_one_attribute.html.erb @@ -0,0 +1 @@ +
    \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/_partial.html.erb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/_partial.html.erb new file mode 100644 index 0000000..39505da --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/_partial.html.erb @@ -0,0 +1,2 @@ +<%= method_in_plugin_application_helper %> +<%= method_in_partial %> \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/_partial_used_twice.html.erb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/_partial_used_twice.html.erb new file mode 100644 index 0000000..e69de29 diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/_partial_with_local_variable.html.erb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/_partial_with_local_variable.html.erb new file mode 100644 index 0000000..4727448 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/_partial_with_local_variable.html.erb @@ -0,0 +1 @@ +
    <%= x %>
    \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/_partial_with_sub_partial.html.erb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/_partial_with_sub_partial.html.erb new file mode 100644 index 0000000..90207a3 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/_partial_with_sub_partial.html.erb @@ -0,0 +1 @@ +<%= render :partial => 'partial', :object => partial %> \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/_spacer.html.erb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/_spacer.html.erb new file mode 100644 index 0000000..c952f6e --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/_spacer.html.erb @@ -0,0 +1 @@ +
    diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/accessor.html.erb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/accessor.html.erb new file mode 100644 index 0000000..1d6f96b --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/accessor.html.erb @@ -0,0 +1,5 @@ +
    <%= session[:key] %>
    +
    <%= params[:key] %>
    +
    <%= flash[:key] %>
    +
    <%= params[:controller] %>
    +
    <%= params[:action] %>
    diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/block_helper.html.erb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/block_helper.html.erb new file mode 100644 index 0000000..3a1dcd5 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/block_helper.html.erb @@ -0,0 +1,3 @@ +<% if_allowed do %> +
    block helper was rendered
    +<% end %> \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/entry_form.html.erb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/entry_form.html.erb new file mode 100755 index 0000000..7b11d97 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/entry_form.html.erb @@ -0,0 +1,2 @@ +<% form_tag do %> +<% end %> \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/explicit_helper.html.erb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/explicit_helper.html.erb new file mode 100644 index 0000000..49aa081 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/explicit_helper.html.erb @@ -0,0 +1,2 @@ +<%= method_in_plugin_application_helper %> +<%= method_in_explicit_helper %> diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/foo/show.html.erb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/foo/show.html.erb new file mode 100644 index 0000000..2cc5fd9 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/foo/show.html.erb @@ -0,0 +1 @@ +<%= method_in_plugin_application_helper %> diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/implicit_helper.html.erb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/implicit_helper.html.erb new file mode 100644 index 0000000..816c667 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/implicit_helper.html.erb @@ -0,0 +1,2 @@ +<%= method_in_plugin_application_helper %> +<%= method_in_helper %> diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/multiple_helpers.html.erb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/multiple_helpers.html.erb new file mode 100644 index 0000000..ae5a72b --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/multiple_helpers.html.erb @@ -0,0 +1,3 @@ +<%= method_in_plugin_application_helper %> +<%= method_in_explicit_helper %> +<%= method_in_more_explicit_helper %> \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/path_params.html.erb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/path_params.html.erb new file mode 100644 index 0000000..a31e98f --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/path_params.html.erb @@ -0,0 +1 @@ +<%= params[:controller] %> \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/should_not_receive.html.erb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/should_not_receive.html.erb new file mode 100644 index 0000000..d3e5f44 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/should_not_receive.html.erb @@ -0,0 +1,3 @@ +<% if @obj.render_partial? %> + <%= render :partial => 'some_partial' %> +<% end %> diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/template_with_partial.html.erb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/template_with_partial.html.erb new file mode 100644 index 0000000..0e13ba3 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/template_with_partial.html.erb @@ -0,0 +1,5 @@ +<%= method_in_template_with_partial %> +<%= render :partial => 'partial' %> + +<%= render :partial => 'partial_used_twice' %> +<%= render :partial => 'partial_used_twice' %> diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/template_with_partial_using_collection.html.erb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/template_with_partial_using_collection.html.erb new file mode 100644 index 0000000..79d8215 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/template_with_partial_using_collection.html.erb @@ -0,0 +1,3 @@ +<%= render :partial => 'partial', + :collection => ['Alice', 'Bob'], + :spacer_template => 'spacer' %> diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/template_with_partial_with_array.html.erb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/template_with_partial_with_array.html.erb new file mode 100644 index 0000000..7d53476 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/template_with_partial_with_array.html.erb @@ -0,0 +1 @@ +<%= render :partial => @array %> diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/view_helpers.html.erb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/view_helpers.html.erb new file mode 100644 index 0000000..7e4f3df --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/resources/views/view_spec/view_helpers.html.erb @@ -0,0 +1 @@ +<%= link_to "edit", "this_is_the_link" %> diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/assigns_hash_proxy_spec.rb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/assigns_hash_proxy_spec.rb new file mode 100644 index 0000000..5b57213 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/assigns_hash_proxy_spec.rb @@ -0,0 +1,109 @@ +require 'spec_helper' + +describe "AssignsHashProxy" do + def orig_assigns + @object.assigns + end + + class Foo + def initialize(bar) + @bar = bar + end + attr_reader :bar + + def ==(other) + self.bar == other.bar + end + end + + before(:each) do + @object = Class.new do + def assigns; @assigns ||= Hash.new; end + end.new + @proxy = Spec::Rails::Example::AssignsHashProxy.new(self) {@object} + end + + it "doesn't wig out on objects that define their own == method" do + @object.assigns['foo'] = Foo.new(1) + @proxy['foo'].should == Foo.new(1) + end + + it "should set ivars on object using string" do + @proxy['foo'] = 'bar' + @object.instance_eval{@foo}.should == 'bar' + end + + it "should set ivars on object using symbol" do + @proxy[:foo] = 'bar' + @object.instance_eval{@foo}.should == 'bar' + end + + it "should access object's assigns with a string" do + @object.assigns['foo'] = 'bar' + @proxy['foo'].should == 'bar' + end + + it "should access object's assigns with a symbol" do + @object.assigns['foo'] = 'bar' + @proxy[:foo].should == 'bar' + end + + it "should access object's ivars with a string" do + @object.instance_variable_set('@foo', 'bar') + @proxy['foo'].should == 'bar' + end + + it "should access object's ivars with a symbol" do + @object.instance_variable_set('@foo', 'bar') + @proxy[:foo].should == 'bar' + end + + it "should iterate through each element like a Hash" do + values = { + 'foo' => 1, + 'bar' => 2, + 'baz' => 3 + } + @proxy['foo'] = values['foo'] + @proxy['bar'] = values['bar'] + @proxy['baz'] = values['baz'] + + @proxy.each do |key, value| + key.should == key + value.should == values[key] + end + end + + it "should delete the ivar of passed in key" do + @object.instance_variable_set('@foo', 'bar') + @proxy.delete('foo') + @proxy['foo'].should be_nil + end + + it "should delete the assigned element of passed in key" do + @object.assigns['foo'] = 'bar' + @proxy.delete('foo') + @proxy['foo'].should be_nil + end + + it "should detect the presence of a key in assigns" do + @object.assigns['foo'] = 'bar' + @proxy.has_key?('foo').should == true + @proxy.has_key?('bar').should == false + end + + it "should expose values set in example back to the example" do + @proxy[:foo] = 'bar' + @proxy[:foo].should == 'bar' + end + + it "should allow assignment of false via proxy" do + @proxy['foo'] = false + @proxy['foo'].should be_false + end + + it "should allow assignment of false" do + @object.instance_variable_set('@foo',false) + @proxy['foo'].should be_false + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/configuration_spec.rb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/configuration_spec.rb new file mode 100644 index 0000000..f5ffc39 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/configuration_spec.rb @@ -0,0 +1,65 @@ +require 'spec_helper' + +module Spec + module Runner + describe Configuration do + + def config + @config ||= Configuration.new + end + + describe "#use_transactional_fixtures" do + it "should return ActiveSupport::TestCase.use_transactional_fixtures" do + config.use_transactional_fixtures.should == ActiveSupport::TestCase.use_transactional_fixtures + end + + it "should set ActiveSupport::TestCase.use_transactional_fixtures to false" do + ActiveSupport::TestCase.should_receive(:use_transactional_fixtures=).with(false) + config.use_transactional_fixtures = false + end + + it "should set ActiveSupport::TestCase.use_transactional_fixtures to true" do + ActiveSupport::TestCase.should_receive(:use_transactional_fixtures=).with(true) + config.use_transactional_fixtures = true + end + end + + describe "#use_instantiated_fixtures" do + it "should return ActiveSupport::TestCase.use_transactional_fixtures" do + config.use_instantiated_fixtures.should == ActiveSupport::TestCase.use_instantiated_fixtures + end + + it "should set ActiveSupport::TestCase.use_instantiated_fixtures to false" do + ActiveSupport::TestCase.should_receive(:use_instantiated_fixtures=).with(false) + config.use_instantiated_fixtures = false + end + + it "should set ActiveSupport::TestCase.use_instantiated_fixtures to true" do + ActiveSupport::TestCase.should_receive(:use_instantiated_fixtures=).with(true) + config.use_instantiated_fixtures = true + end + end + + describe "#fixture_path" do + it "should default to RAILS_ROOT + '/spec/fixtures'" do + config.fixture_path.should == RAILS_ROOT + '/spec/fixtures' + ActiveSupport::TestCase.fixture_path.should == RAILS_ROOT + '/spec/fixtures' + end + + it "should set fixture_path" do + config.fixture_path = "/new/path" + config.fixture_path.should == "/new/path" + ActiveSupport::TestCase.fixture_path.should == "/new/path" + end + end + + describe "#global_fixtures" do + it "should set fixtures on TestCase" do + ActiveSupport::TestCase.should_receive(:fixtures).with(:blah) + config.global_fixtures = [:blah] + end + end + + end + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/controller_example_group_spec.rb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/controller_example_group_spec.rb new file mode 100644 index 0000000..f813f61 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/controller_example_group_spec.rb @@ -0,0 +1,307 @@ +require 'spec_helper' +require 'controller_spec_controller' +require File.join(File.dirname(__FILE__), "/shared_routing_example_group_examples.rb") + +['integration', 'isolation'].each do |mode| + describe "A controller example running in #{mode} mode", :type => :controller do + controller_name :controller_spec + integrate_views if mode == 'integration' + + accesses_configured_helper_methods + include RoutingExampleGroupSpec + + describe "with an implicit subject" do + it "uses the controller" do + subject.should == controller + end + end + + describe "with a specified subject" do + subject { 'specified' } + + it "uses the specified subject" do + subject.should == 'specified' + end + end + + it "should provide controller.session as session" do + get 'action_with_template' + session.should equal(controller.session) + end + + it "should provide the same session object before and after the action" do + session_before = session + get 'action_with_template' + session.should equal(session_before) + end + + it "should keep the same data in the session before and after the action" do + session[:foo] = :bar + get 'action_with_template' + session[:foo].should == :bar + end + + it "should ensure controller.session is NOT nil before the action" do + controller.session.should_not be_nil + get 'action_with_template' + end + + it "should ensure controller.session is NOT nil after the action" do + get 'action_with_template' + controller.session.should_not be_nil + end + + it "should allow specifying a partial with partial name only" do + get 'action_with_partial' + response.should render_template("_partial") + end + + it "should allow specifying a partial with should_receive(:render)" do + controller.should_receive(:render).with(:partial => "controller_spec/partial") + get 'action_with_partial' + end + + it "should allow specifying a partial with should_receive(:render) with object" do + controller.should_receive(:render).with(:partial => "controller_spec/partial", :object => "something") + get 'action_with_partial_with_object', :thing => "something" + end + + it "should allow specifying a partial with should_receive(:render) with locals" do + controller.should_receive(:render).with(:partial => "controller_spec/partial", :locals => {:thing => "something"}) + get 'action_with_partial_with_locals', :thing => "something" + end + + it "should yield to render :update" do + template = stub("template") + controller.should_receive(:render).with(:update).and_yield(template) + template.should_receive(:replace).with(:bottom, "replace_me", :partial => "non_existent_partial") + get 'action_with_render_update' + end + + it "should allow a path relative to RAILS_ROOT/app/views/ when specifying a partial" do + get 'action_with_partial' + response.should render_template("controller_spec/_partial") + end + + it "should provide access to flash" do + get 'action_which_sets_flash' + flash[:flash_key].should == "flash value" + end + + it "should provide access to flash values set after a session reset" do + get 'action_setting_flash_after_session_reset' + flash[:after_reset].should == "available" + end + + it "should not provide access to flash values set before a session reset" do + get 'action_setting_flash_before_session_reset' + flash[:before_reset].should_not == "available" + end + + it "should provide access to session" do + session[:session_key] = "session value" + lambda do + get 'action_which_gets_session', :expected => "session value" + end.should_not raise_error + end + + it "allows inline rendering" do + get 'action_that_renders_inline' + response.body.should == "inline code" + end + + describe "handling should_receive(:render)" do + it "should warn" do + controller.should_receive(:render).with(:template => "controller_spec/action_with_template") + get :action_with_template + end + end + + describe "handling should_not_receive(:render)" do + it "should warn" do + controller.should_not_receive(:render).with(:template => "the/wrong/template") + get :action_with_template + end + end + + describe "setting cookies in the request" do + + it "should support a String key" do + cookies['cookie_key'] = 'cookie value' + get 'action_which_gets_cookie', :expected => "cookie value" + end + + it "should support a Symbol key" do + cookies[:cookie_key] = 'cookie value' + get 'action_which_gets_cookie', :expected => "cookie value" + end + + it "should support a Hash value" do + cookies[:cookie_key] = {'value' => 'cookie value', 'path' => '/not/default'} + get 'action_which_gets_cookie', :expected => {'value' => 'cookie value', 'path' => '/not/default'} + end + + end + + describe "reading cookies from the response" do + + it "should support a Symbol key" do + get 'action_which_sets_cookie', :value => "cookie value" + if ::Rails::VERSION::STRING >= "2.3" + cookies[:cookie_key].should match("cookie[\+ ]value") + else + cookies[:cookie_key].should == ["cookie value"] + end + end + + it "should support a String key" do + get 'action_which_sets_cookie', :value => "cookie value" + if ::Rails::VERSION::STRING >= "2.3" + cookies['cookie_key'].should match("cookie[\+ ]value") + else + cookies['cookie_key'].should == ["cookie value"] + end + end + + end + + it "should expose instance vars through the assigns hash" do + get 'action_setting_the_assigns_hash' + assigns[:indirect_assigns_key].should == :indirect_assigns_key_value + end + + it "should expose instance vars through the assigns hash that are set to false" do + get 'action_that_assigns_false_to_a_variable' + assigns[:a_variable].should be_false + end + + it "should NOT complain when calling should_receive with arguments other than :render" do + controller.should_receive(:anything_besides_render) + lambda { + controller.rspec_verify + }.should raise_error(Exception, /expected :anything_besides_render/) + end + + it "should not run a skipped before_filter" do + lambda { + get 'action_with_skipped_before_filter' + }.should_not raise_error + end + + if ::Rails::VERSION::STRING > '2.1' + describe "extending #render on a controller" do + it "supports two arguments (as with rails 2.1)" do + get 'action_with_two_arg_render' + response.body.should =~ /new Effect\.Highlight/ + end + end + end + + it "should access headers" do + request.env['ACCEPT'] = "application/json" + get 'action_that_returns_headers', :header => 'ACCEPT' + response.body.should == "application/json" + end + end + + describe "Given a controller spec for RedirectSpecController running in #{mode} mode", :type => :controller do + controller_name :redirect_spec + integrate_views if mode == 'integration' + + it "a redirect should ignore the absence of a template" do + get 'action_with_redirect_to_somewhere' + response.should be_redirect + response.redirect_url.should == "http://test.host/redirect_spec/somewhere" + response.should redirect_to("http://test.host/redirect_spec/somewhere") + end + + it "a call to response.should redirect_to should fail if no redirect" do + get 'action_with_no_redirect' + lambda { + response.redirect?.should be_true + }.should fail + lambda { + response.should redirect_to("http://test.host/redirect_spec/somewhere") + }.should fail_with("expected redirect to \"http://test.host/redirect_spec/somewhere\", got no redirect") + end + end + + describe "Given a controller spec running in #{mode} mode" do + example_group = describe "A controller spec" + # , :type => :controller do + # integrate_views if mode == 'integration' + it "a spec in a context without controller_name set should fail with a useful warning" do + pending("need a new way to deal with examples that should_raise") + # , + # :should_raise => [ + # Spec::Expectations::ExpectationNotMetError, + # /You have to declare the controller name in controller specs/ + # ] do + end + end + +end + +['integration', 'isolation'].each do |mode| + describe "A controller example running in #{mode} mode", :type => :controller do + controller_name :controller_inheriting_from_application_controller + integrate_views if mode == 'integration' + + it "should only have a before filter inherited from ApplicationController run once..." do + controller.should_receive(:i_should_only_be_run_once).once + get :action_with_inherited_before_filter + end + end +end + +describe ControllerSpecController, :type => :controller do + it "should use the controller passed to #describe" do + end +end + +describe "A controller spec with controller_name set", :type => :controller do + controller_name :controller_spec + + describe "nested" do + it "should inherit the controller name" do + get 'action_with_template' + response.should be_success + end + end +end + +module Spec + module Rails + module Example + describe ApplicationController, :type => :controller do + describe "controller_name" do + controller_name :controller_spec + it "overrides the controller class submitted to the outermost group" do + subject.should be_an_instance_of(ControllerSpecController) + end + describe "in a nested group" do + it "overrides the controller class submitted to the outermost group" do + subject.should be_an_instance_of(ControllerSpecController) + end + describe "(doubly nested)" do + it "overrides the controller class submitted to the outermost group" do + subject.should be_an_instance_of(ControllerSpecController) + end + end + end + end + end + + describe ControllerExampleGroup do + it "should clear its name from the description" do + group = describe("foo", :type => :controller) do + $nested_group = describe("bar") do + end + end + group.description.to_s.should == "foo" + $nested_group.description.to_s.should == "foo bar" + end + end + end + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/controller_isolation_spec.rb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/controller_isolation_spec.rb new file mode 100644 index 0000000..8a55418 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/controller_isolation_spec.rb @@ -0,0 +1,75 @@ +require 'spec_helper' +require 'controller_spec_controller' + +describe "a controller spec running in isolation mode", :type => :controller do + controller_name :controller_spec + + it "does not care if the specified template doesn't exist" do + get 'some_action' + response.should be_success + response.should render_template("template/that/does/not/actually/exist") + end + + it "does not care if the implied template doesn't exist" do + get 'some_action_with_implied_template' + response.should be_success + response.should render_template("some_action_with_implied_template") + end + + it "does not care if the template has errors" do + get 'action_with_errors_in_template' + response.should be_success + response.should render_template("action_with_errors_in_template") + end + + it "does not care if the template exists but the action doesn't" do + get 'non_existent_action_with_existent_template' + response.should be_success + end + + it "fails if the neither the action nor the template exist" do + expect {get 'non_existent_action'}.to raise_error(ActionController::UnknownAction) + end +end + +describe "a controller spec running in integration mode", :type => :controller do + controller_name :controller_spec + integrate_views + + it "renders a template" do + get 'action_with_template' + response.should be_success + response.should have_tag('div', 'This is action_with_template.rhtml') + end + + it "fails if the template doesn't exist" do + error = defined?(ActionController::MissingTemplate) ? ActionController::MissingTemplate : ActionView::MissingTemplate + lambda { get 'some_action' }.should raise_error(error) + end + + it "fails if the template has errors" do + lambda { get 'action_with_errors_in_template' }.should raise_error(ActionView::TemplateError) + end + + it "fails if the action doesn't exist" do + expect {get 'non_existent_action'}.to raise_error(ActionController::UnknownAction) + end + + describe "nested" do + it "should render a template" do + get 'action_with_template' + response.should be_success + response.should have_tag('div', 'This is action_with_template.rhtml') + end + + describe "with integrate_views turned off" do + integrate_views false + + it "should not care if the template doesn't exist" do + get 'some_action' + response.should be_success + response.should render_template("template/that/does/not/actually/exist") + end + end + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/cookies_proxy_spec.rb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/cookies_proxy_spec.rb new file mode 100644 index 0000000..1417638 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/cookies_proxy_spec.rb @@ -0,0 +1,87 @@ +require 'spec_helper' + +class CookiesProxyExamplesController < ActionController::Base + def index + cookies[:key] = cookies[:key] + render :text => "" + end +end + +module Spec + module Rails + module Example + describe CookiesProxy, :type => :controller do + controller_name :cookies_proxy_examples + + describe "with a String key" do + + it "should accept a String value" do + proxy = CookiesProxy.new(self) + proxy['key'] = 'value' + get :index + if ::Rails::VERSION::STRING >= "2.3" + proxy['key'].should == 'value' + else + proxy['key'].should == ['value'] + end + end + + it "should accept a Hash value" do + proxy = CookiesProxy.new(self) + proxy['key'] = { :value => 'value', :expires => expiration = 1.hour.from_now, :path => path = '/path' } + get :index + if ::Rails::VERSION::STRING >= "2.3" + proxy['key'].should == 'value' + else + proxy['key'].should == ['value'] + proxy['key'].value.should == ['value'] + proxy['key'].expires.should == expiration + proxy['key'].path.should == path + end + end + + end + + describe "with a Symbol key" do + + it "should accept a String value" do + proxy = CookiesProxy.new(self) + proxy[:key] = 'value' + get :index + if ::Rails::VERSION::STRING >= "2.3" + proxy[:key].should == 'value' + else + proxy[:key].should == ['value'] + end + end + + it "should accept a Hash value" do + proxy = CookiesProxy.new(self) + proxy[:key] = { :value => 'value', :expires => expiration = 1.hour.from_now, :path => path = '/path' } + get :index + if ::Rails::VERSION::STRING >= "2.3" + proxy[:key].should == 'value' + else + proxy[:key].should == ['value'] + proxy[:key].value.should == ['value'] + proxy[:key].expires.should == expiration + proxy[:key].path.should == path + end + end + + end + + describe "#delete" do + it "should delete from the response cookies" do + proxy = CookiesProxy.new(self) + response_cookies = mock('cookies') + response.should_receive(:cookies).and_return(response_cookies) + response_cookies.should_receive(:delete).with('key') + proxy.delete :key + end + end + end + + end + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/error_handling_spec.rb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/error_handling_spec.rb new file mode 100644 index 0000000..71385ee --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/error_handling_spec.rb @@ -0,0 +1,90 @@ +require 'spec_helper' +require 'controller_spec_controller' + +['integration', 'isolation'].each do |mode| + describe "A controller example running in #{mode} mode", :type => :controller do + controller_name :controller_spec + integrate_views if mode == 'integration' + + describe "without use_rails_error_handling!" do + describe "with an error that is *not* rescued" do + it "raises the error" do + lambda do + get 'un_rescued_error_action' + end.should raise_error(ControllerSpecController::UnRescuedError) + end + end + describe "with an error that *is* rescued" do + it "returns a 200" do + get 'rescued_error_action' + response.response_code.should == 200 + end + end + end + + describe "with deprecated use_rails_error_handling!" do + before(:each) do + Kernel.stub!(:warn) + end + + it "warns of deprecation" do + Kernel.should_receive(:warn).with(/DEPRECATION NOTICE/) + controller.use_rails_error_handling! + end + + describe "with an error that is *not* rescued" do + it "returns the error code" do + controller.use_rails_error_handling! + get 'un_rescued_error_action' + response.response_code.should == 500 + end + end + + describe "with an error that *is* rescued" do + it "returns a 200" do + controller.use_rails_error_handling! + get 'rescued_error_action' + response.response_code.should == 200 + end + end + end + + describe "with rescue_action_in_public!" do + describe "with an error that is *not* rescued" do + it "returns the error code" do + rescue_action_in_public! + get 'un_rescued_error_action' + response.response_code.should == 500 + end + end + + describe "with an error that *is* rescued" do + it "returns a 200" do + rescue_action_in_public! + get 'rescued_error_action' + response.response_code.should == 200 + end + end + end + + describe "with bypass_rescue" do + describe "with an error that is *not* rescued" do + it "raises the error" do + bypass_rescue + lambda do + get 'un_rescued_error_action' + end.should raise_error(ControllerSpecController::UnRescuedError) + end + end + + describe "with an error that *is* rescued" do + it "raises the error" do + bypass_rescue + lambda do + get 'rescued_error_action' + end.should raise_error(ControllerSpecController::RescuedError) + end + end + end + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/example_group_factory_spec.rb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/example_group_factory_spec.rb new file mode 100644 index 0000000..792346f --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/example_group_factory_spec.rb @@ -0,0 +1,112 @@ +require 'spec_helper' + +module Spec + module Example + describe ExampleGroupFactory do + it "should return a ModelExampleGroup when given :type => :model" do + example_group = Spec::Example::ExampleGroupFactory.create_example_group( + "name", :type => :model + ) {} + example_group.superclass.should == Spec::Rails::Example::ModelExampleGroup + end + + it "should return a ModelExampleGroup when given :location => '/blah/spec/models/'" do + example_group = Spec::Example::ExampleGroupFactory.create_example_group( + "name", :location => '/blah/spec/models/blah.rb' + ) {} + example_group.superclass.should == Spec::Rails::Example::ModelExampleGroup + end + + it "should return a ModelExampleGroup when given :location => '\\blah\\spec\\models\\' (windows format)" do + example_group = Spec::Example::ExampleGroupFactory.create_example_group( + "name", :location => '\\blah\\spec\\models\\blah.rb' + ) {} + example_group.superclass.should == Spec::Rails::Example::ModelExampleGroup + end + + it "should return an ActiveSupport::TestCase when given :location => '/blah/spec/foo/' (anything other than controllers, views and helpers)" do + example_group = Spec::Example::ExampleGroupFactory.create_example_group( + "name", :location => '/blah/spec/foo/blah.rb' + ) {} + example_group.superclass.should == ActiveSupport::TestCase + end + + it "should return an ActiveSupport::TestCase when given :location => '\\blah\\spec\\foo\\' (windows format) (anything other than controllers, views and helpers)" do + example_group = Spec::Example::ExampleGroupFactory.create_example_group( + "name", :location => '\\blah\\spec\\foo\\blah.rb' + ) {} + example_group.superclass.should == ActiveSupport::TestCase + end + + it "should return a ViewExampleGroup when given :type => :view" do + example_group = Spec::Example::ExampleGroupFactory.create_example_group( + "name", :type => :view + ) {} + example_group.superclass.should == Spec::Rails::Example::ViewExampleGroup + end + + it "should return a ViewExampleGroup when given :location => '/blah/spec/views/'" do + example_group = Spec::Example::ExampleGroupFactory.create_example_group( + "name", :location => '/blah/spec/views/blah.rb' + ) {} + example_group.superclass.should == Spec::Rails::Example::ViewExampleGroup + end + + it "should return a ModelExampleGroup when given :location => '\\blah\\spec\\views\\' (windows format)" do + example_group = Spec::Example::ExampleGroupFactory.create_example_group( + "name", :location => '\\blah\\spec\\views\\blah.rb' + ) {} + example_group.superclass.should == Spec::Rails::Example::ViewExampleGroup + end + + it "should return a HelperExampleGroup when given :type => :helper" do + example_group = Spec::Example::ExampleGroupFactory.create_example_group( + "name", :type => :helper + ) {} + example_group.superclass.should == Spec::Rails::Example::HelperExampleGroup + end + + it "should return a HelperExampleGroup when given :location => '/blah/spec/helpers/'" do + example_group = Spec::Example::ExampleGroupFactory.create_example_group( + "name", :location => '/blah/spec/helpers/blah.rb' + ) {} + example_group.superclass.should == Spec::Rails::Example::HelperExampleGroup + end + + it "should return a ModelExampleGroup when given :location => '\\blah\\spec\\helpers\\' (windows format)" do + example_group = Spec::Example::ExampleGroupFactory.create_example_group( + "name", :location => '\\blah\\spec\\helpers\\blah.rb' + ) {} + example_group.superclass.should == Spec::Rails::Example::HelperExampleGroup + end + + it "should return a ControllerExampleGroup when given :type => :controller" do + example_group = Spec::Example::ExampleGroupFactory.create_example_group( + "name", :type => :controller + ) {} + example_group.superclass.should == Spec::Rails::Example::ControllerExampleGroup + end + + it "should return a ControllerExampleGroup when given :location => '/blah/spec/controllers/'" do + example_group = Spec::Example::ExampleGroupFactory.create_example_group( + "name", :location => '/blah/spec/controllers/blah.rb' + ) {} + example_group.superclass.should == Spec::Rails::Example::ControllerExampleGroup + end + + it "should return a ModelExampleGroup when given :location => '\\blah\\spec\\controllers\\' (windows format)" do + example_group = Spec::Example::ExampleGroupFactory.create_example_group( + "name", :location => '\\blah\\spec\\controllers\\blah.rb' + ) {} + example_group.superclass.should == Spec::Rails::Example::ControllerExampleGroup + end + + it "should favor the :type over the :location" do + example_group = Spec::Example::ExampleGroupFactory.create_example_group( + "name", :location => '/blah/spec/models/blah.rb', :type => :controller + ) {} + example_group.superclass.should == Spec::Rails::Example::ControllerExampleGroup + end + end + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/helper_example_group_spec.rb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/helper_example_group_spec.rb new file mode 100755 index 0000000..9ab164e --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/helper_example_group_spec.rb @@ -0,0 +1,233 @@ +require 'spec_helper' +Spec::Runner.configuration.global_fixtures = :people + +describe ExplicitHelper, :type => :helper do + include ExplicitHelper + + it "should not require naming the helper if describe is passed a type" do + method_in_explicit_helper.should match(/text from a method/) + helper.method_in_explicit_helper.should match(/text from a method/) + end +end + +module Spec + module Rails + module Example + describe HelperExampleGroup, :type => :helper do + helper_name :explicit + + accesses_configured_helper_methods + + it "DEPRECATED should have direct access to methods defined in helpers" do + method_in_explicit_helper.should =~ /text from a method/ + end + + it "should expose the helper with the #helper method" do + helper.method_in_explicit_helper.should =~ /text from a method/ + end + + it "should have access to named routes" do + rspec_on_rails_specs_url.should == "http://test.host/rspec_on_rails_specs" + rspec_on_rails_specs_path.should == "/rspec_on_rails_specs" + + helper.named_url.should == "http://test.host/rspec_on_rails_specs" + helper.named_path.should == "/rspec_on_rails_specs" + end + + it "should fail if the helper method deson't exist" do + lambda { non_existent_helper_method }.should raise_error(NameError) + lambda { helper.non_existent_helper_method }.should raise_error(NameError) + end + + it "should have access to session" do + session[:foo] = 'bar' + session_foo.should == 'bar' + helper.session_foo.should == 'bar' + end + + it "should have access to params" do + params[:foo] = 'bar' + params_foo.should == 'bar' + helper.params_foo.should == 'bar' + end + + it "should have access to request" do + request.stub!(:thing).and_return('bar') + request_thing.should == 'bar' + helper.request_thing.should == 'bar' + end + + it "should have access to flash" do + flash[:thing] = 'camera' + flash_thing.should == 'camera' + helper.flash_thing.should == 'camera' + end + end + + describe HelperExampleGroup, "#eval_erb", :type => :helper do + helper_name :explicit + + it "should support methods that accept blocks" do + eval_erb("<% prepend 'foo' do %>bar<% end %>").should == "foobar" + end + end + + describe HelperExampleGroup, ".fixtures", :type => :helper do + helper_name :explicit + fixtures :animals + + it "should load fixtures" do + pig = animals(:pig) + pig.class.should == Animal + end + + it "should load global fixtures" do + lachie = people(:lachie) + lachie.class.should == Person + end + end + + describe "methods from standard helpers", :type => :helper do + helper_name :explicit + it "should be exposed to the helper" do + helper.link_to("Foo","http://bar").should have_tag("a") + end + end + + describe HelperExampleGroup, "included modules", :type => :helper do + helpers = [ + ActionView::Helpers::ActiveRecordHelper, + ActionView::Helpers::AssetTagHelper, + ActionView::Helpers::BenchmarkHelper, + ActionView::Helpers::CacheHelper, + ActionView::Helpers::CaptureHelper, + ActionView::Helpers::DateHelper, + ActionView::Helpers::DebugHelper, + ActionView::Helpers::FormHelper, + ActionView::Helpers::FormOptionsHelper, + ActionView::Helpers::FormTagHelper, + ActionView::Helpers::JavaScriptHelper, + ActionView::Helpers::NumberHelper, + ActionView::Helpers::PrototypeHelper, + ActionView::Helpers::ScriptaculousHelper, + ActionView::Helpers::TagHelper, + ActionView::Helpers::TextHelper, + ActionView::Helpers::UrlHelper + ] + helpers.each do |helper_module| + it "should include #{helper_module}" do + self.class.ancestors.should include(helper_module) + helper.class.ancestors.should include(helper_module) + end + end + end + + # TODO: BT - Helper Examples should proxy method_missing to a Rails View instance. + # When that is done, remove this method + describe HelperExampleGroup, "#protect_against_forgery?", :type => :helper do + it "should return false" do + protect_against_forgery?.should be_false + helper.protect_against_forgery?.should be_false + end + end + + describe HelperExampleGroup, "#assigns", :type => :helper do + helper_name :addition + it "should expose variables to helper" do + assigns[:addend] = 3 + helper.plus(4).should == 7 + end + + it "should make helper ivars available in example" do + assigns[:addend] = 3 + assigns[:addend].should == 3 + end + end + + describe HelperExampleGroup, "using a helper that uses output_buffer inside helper", :type => :helper do + helper_name :explicit + + before(:each) do + if ::Rails::VERSION::STRING < "2.2" + pending("need to get this new feature working against pre 2.2 versions of rails") + end + end + + it "should not raise an error" do + lambda { method_using_output_buffer }.should_not raise_error + end + + it "should put the output in the output_buffer" do + method_using_output_buffer + output_buffer.should == "the_text_from_concat" + end + end + + describe HelperExampleGroup, "using a helper that tries to access @template", :type => :helper do + helper_name :explicit + + it "should not raise an error" do + lambda { method_using_template }.should_not raise_error + end + + it "should have the correct output" do + method_using_template.should have_text(/#some_id/) + end + end + + end + end +end + +module Bug11223 + # see http://rubyforge.org/tracker/index.php?func=detail&aid=11223&group_id=797&atid=3149 + describe 'Accessing flash from helper spec', :type => :helper do + it 'should not raise an error' do + lambda { flash['test'] }.should_not raise_error + end + end +end + +module Spec + module Rails + module Example + describe HelperExampleGroup do + it "should clear its name from the description" do + group = describe("foo", :type => :helper) do + $nested_group = describe("bar") do + end + end + group.description.to_s.should == "foo" + $nested_group.description.to_s.should == "foo bar" + end + end + end + end +end + +module Bug719 + # see http://rspec.lighthouseapp.com/projects/5645/tickets/719 + # FIXME - helper and example provided in ticket. The example did + # fail initially, so running it now shows that the bug is fixed, + # but this doesn't serve as a good internal example. + module ImagesHelper + def hide_images_button + content_tag :div, :class => :hide_images_button do + button_to_function "Hide Images", :id => :hide_images_button do |page| + page[:more_images_button].toggle + page[:image_browser].toggle + end + end + end + end + + describe ImagesHelper, :type => :helper do + it "should render a hide_images_button" do + helper.hide_images_button.should have_tag('div[class=?]','hide_images_button') do + with_tag('input[id=?][type=?][value=?][onclick^=?]', + 'hide_images_button', 'button', 'Hide Images', + "$("more_images_button").toggle();\n$("image_browser").toggle();;") + end + end + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/model_example_group_spec.rb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/model_example_group_spec.rb new file mode 100644 index 0000000..bbea353 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/model_example_group_spec.rb @@ -0,0 +1,20 @@ +require 'spec_helper' + +module Spec + module Rails + module Example + describe ModelExampleGroup do + accesses_configured_helper_methods + + it "clears its name from the description" do + group = describe("foo", :type => :model) do + $nested_group = describe("bar") do + end + end + group.description.to_s.should == "foo" + $nested_group.description.to_s.should == "foo bar" + end + end + end + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/routing_example_group_spec.rb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/routing_example_group_spec.rb new file mode 100644 index 0000000..805cffa --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/routing_example_group_spec.rb @@ -0,0 +1,10 @@ +require 'spec_helper' +require 'controller_spec_controller' +require File.join(File.dirname(__FILE__), "/shared_routing_example_group_examples.rb") + +describe "Routing Examples", :type => :routing do + + include RoutingExampleGroupSpec + include RouteToExampleGroupSpec + include BeRoutableExampleGroupSpec +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/shared_routing_example_group_examples.rb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/shared_routing_example_group_examples.rb new file mode 100644 index 0000000..30dee14 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/shared_routing_example_group_examples.rb @@ -0,0 +1,237 @@ +class CustomRouteSpecController < ActionController::Base; end +class RspecOnRailsSpecsController < ActionController::Base; end + +share_as :RoutingExampleGroupSpec do + describe "using backward compatible route_for()" do + it "translates GET-only paths to be explicit" do + self.should_receive(:assert_routing).with(hash_including(:method => :get), anything, {}, anything) + route_for(:controller => "controller_spec", :action => "some_action"). + should == "/controller_spec/some_action" + end + + it "uses assert_routing to specify that the :controller and :action are involved" do + @route = { :controller => "controller_spec", :action => "some_action" } + self.should_receive(:assert_routing).with(anything, @route, {}, anything) + route_for(@route). + should == "/controller_spec/some_action" + end + + it "passes extra args through to assert_routing" do + @route = { :controller => "controller_spec", :action => "some_action" } + self.should_receive(:assert_routing).with(anything, anything, {}, { :a => "1", :b => "2" } ) + route_for(@route). + should == "/controller_spec/some_action?a=1&b=2" + end + + it "passes with an existing route" do + route_for(:controller => "controller_spec", :action => "some_action"). + should == "/controller_spec/some_action" + end + + it "passes with an existing route with additional parameters" do + route_for(:controller => "controller_spec", :action => "some_action", :param => '1'). + should == "/controller_spec/some_action?param=1" + end + + it "recognizes routes with methods besides :get" do + should_receive(:assert_routing).with(hash_including(:method => :put), anything, {}, anything) + + route_for(:controller => "rspec_on_rails_specs", :action => "update", :id => "37"). + should == {:path => "/rspec_on_rails_specs/37", :method => :put} + end + + describe "failing due to bad path:" do + it "raises routing error and suggests should_not be_routeable()" do + lambda { + route_for(:controller => "rspec_on_rails_specs", :action => "nonexistent", :id => "37") == + {:path => "/rspec_on_rails_specs/bad_route/37", :method => :put} + }.should raise_error( ActionController::RoutingError, /suggest.*should_not be_routable/ ) + end + end + + describe "failing due to params mismatch:" do + it "re-raises assertion and suggests should_not be_routeable()" do + lambda { + route_for(:controller => "rspec_on_rails_specs", :action => "nonexistent", :id => "37") == + {:path => "/rspec_on_rails_specs/37", :method => :put} + }.should raise_error( ::Test::Unit::AssertionFailedError, /suggest.*should_not be_routable/ ) + end + end + + describe "failing due to wrong HTTP method" do + it "raises method error and suggest should_not be_routable()" do + lambda { + route_for(:controller => "rspec_on_rails_specs", :action => "update", :id => "37"). + should == {:path => "/rspec_on_rails_specs/37", :method => :post} + }.should raise_error(ActionController::MethodNotAllowed) { |error| error.should_not =~ /should_not be_routable/ } + end + end + + it "generates params for custom routes" do + # redundant, deprecated + params_from(:get, '/custom_route'). + should == {:controller => "custom_route_spec", :action => "custom_route"} + end + + it "generates params for existing routes" do + # redundant, deprecated + params_from(:get, '/controller_spec/some_action'). + should == {:controller => "controller_spec", :action => "some_action"} + end + + it "generates params for existing routes with a query parameters" do + # redundant, deprecated + params_from(:get, '/controller_spec/some_action?param=1'). + should == {:controller => "controller_spec", :action => "some_action", :param => '1'} + end + + it "generates params for existing routes with multiple query parameters" do + # redundant, deprecated + params_from(:get, '/controller_spec/some_action?param1=1¶m2=2'). + should == {:controller => "controller_spec", :action => "some_action", :param1 => '1', :param2 => '2' } + end + end +end + +share_as :BeRoutableExampleGroupSpec do + describe "using should_not be_routable()" do + it "passes for a bad route" do + { :put => "/rspec_on_rails_specs/bad_route/37" }. + should_not be_routable + end + it "passes for a bad route having an arg" do + { :put => "/rspec_on_rails_specs/bad_route/37?some_arg=1" }. + should_not be_routable + end + describe "when assert_recognizes throws exceptions:" do + [ ActionController::RoutingError, ActionController::MethodNotAllowed ].each do |e| + it "passes on #{e}" do + self.stub!( :assert_recognizes ).and_return { raise e, "stubbed exception" } + { :get => "/rspec_on_rails_spec/bad_route/37" }.should_not be_routable + end + it "should be_routable on usual Test::Unit::AssertionFailedError" do + # <{}> is predictable because of the way we call assert_recognizes during be_routable(). + self.stub!( :assert_recognizes ).and_return { raise ::Test::Unit::AssertionFailedError, "<{a}> did not match <{}>" } + { :get => "/rspec_on_rails_spec/arguably_bad_route" }.should be_routable + end + it "should re-raise on unusual Test::Unit::AssertionFailedError" do + self.stub!( :assert_recognizes ).and_return { raise ::Test::Unit::AssertionFailedError, "some other message" } + expect { { :get => "/rspec_on_rails_spec/weird_case_route/" }.should be_routable }. + to raise_error + end + end + end + it "test should be_routable" do + { :get => "/custom_route" }. + should be_routable + end + + it "recommends route_to() on failure with should()" do + lambda { + { :get => "/nonexisting_route" }. + should be_routable + }.should raise_error( /route_to\(/) + end + + it "shows actual route that was generated on failure with should_not()" do + begin + { :get => "/custom_route" }.should_not be_routable + rescue Exception => e + ensure + # Different versions of ruby order these differently + e.message.should =~ /"action"=>"custom_route"/ + e.message.should =~ /"controller"=>"custom_route_spec"/ + end + end + + it "works with routeable (alternate spelling)" do + { :put => "/nonexisting_route" }. + should_not be_routeable + end + end +end + +share_as :RouteToExampleGroupSpec do + describe "using should[_not] route_to()" do + it "supports existing routes" do + { :get => "/controller_spec/some_action" }. + should route_to( :controller => "controller_spec", :action => "some_action" ) + end + + it "translates GET-only paths to be explicit, when matching against a string (for parity with route_for().should == '/path')" do + self.should_receive(:assert_routing).with(hash_including(:method => :get), anything, {}, anything) + "/controller_spec/some_action". + should route_to({}) + end + + it "asserts, using assert_routing, that the :controller and :action are involved" do + @route = { :controller => "controller_spec", :action => "some_action" } + self.should_receive(:assert_routing).with(anything, @route, {}, anything) + "/controller_spec/some_action". + should route_to(@route) + end + + it "sends extra args through" do + @route = { :controller => "controller_spec", :action => "some_action" } + self.should_receive(:assert_routing).with(anything, anything, {}, { :a => "1", :b => "2" } ) + "/controller_spec/some_action?a=1&b=2". + should route_to( @route ) + end + + it "supports routes with additional parameters" do + { :get => "/controller_spec/some_action?param=1" }. + should route_to( :controller => "controller_spec", :action => "some_action", :param => '1' ) + end + + it "recognizes routes with methods besides :get" do + self.should_receive(:assert_routing).with(hash_including(:method => :put), anything, {}, anything) + { :put => "/rspec_on_rails_specs/37" }. + should route_to(:controller => "rspec_on_rails_specs", :action => "update", :id => "37") + end + + it "allows only one key/value in the path - :method => path" do + lambda { + { :a => "b" ,:c => "d" }. + should route_to("anything") + }.should raise_error( ArgumentError, /usage/ ) + end + + describe "failing due to bad path" do + it "raises routing error, and suggests should_not be_routeable()" do + lambda { + { :put => "/rspec_on_rails_specs/nonexistent/37" }. + should route_to(:controller => "rspec_on_rails_specs", :action => "nonexistent", :id => "37") + }.should raise_error( ActionController::RoutingError, /suggest.*nonexistent.*should_not be_routable/ ) + end + end + + describe "failing due to params mismatch" do + it "raises assertion, and suggests should_not be_routeable()" do + lambda { + { :put => "/rspec_on_rails_specs/37" }. + should route_to(:controller => "rspec_on_rails_specs", :action => "nonexistent", :id => "37") + }.should raise_error( ::Test::Unit::AssertionFailedError, /suggest.*rspec_on_rails_specs\/37.*should_not be_routable/ ) + end + end + + describe "passing when expected failure" do + it "suggests should_not be_routable()" do + self.stub!(:assert_routing).and_return true + lambda { + { :put => "/rspec_on_rails_specs/37" }. + should_not route_to(:controller => "rspec_on_rails_specs", :action => "update", :id => "37") + }.should raise_error( /expected a routing error.*be_routable/im ) + end + end + + describe "failing due to wrong HTTP method" do + it "raises method error and suggests should_not be_routable()" do + self.stub!(:assert_routing) { raise ActionController::MethodNotAllowed } + lambda { + { :post => "/rspec_on_rails_specs/37" }. + should route_to(:controller => "rspec_on_rails_specs", :action => "update", :id => "37" ) + }.should raise_error(ActionController::MethodNotAllowed, /rspec_on_rails_specs\/37.*should_not be_routable/ ) + end + end + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/test_unit_assertion_accessibility_spec.rb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/test_unit_assertion_accessibility_spec.rb new file mode 100644 index 0000000..ae720a4 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/test_unit_assertion_accessibility_spec.rb @@ -0,0 +1,33 @@ +require 'spec_helper' + +describe "assert_equal", :shared => true do + it "like assert_equal" do + assert_equal 1, 1 + lambda { + assert_equal 1, 2 + }.should raise_error(::Test::Unit::AssertionFailedError) + end +end + +describe "A model spec should be able to access 'test/unit' assertions", :type => :model do + it_should_behave_like "assert_equal" +end + +describe "A view spec should be able to access 'test/unit' assertions", :type => :view do + it_should_behave_like "assert_equal" +end + +describe "A helper spec should be able to access 'test/unit' assertions", :type => :helper do + it_should_behave_like "assert_equal" +end + +describe "A controller spec with integrated views should be able to access 'test/unit' assertions", :type => :controller do + controller_name :controller_spec + integrate_views + it_should_behave_like "assert_equal" +end + +describe "A controller spec should be able to access 'test/unit' assertions", :type => :controller do + controller_name :controller_spec + it_should_behave_like "assert_equal" +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/view_example_group_spec.rb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/view_example_group_spec.rb new file mode 100644 index 0000000..98f4705 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/example/view_example_group_spec.rb @@ -0,0 +1,349 @@ +require 'spec_helper' + +describe "A template with an implicit helper", :type => :view do + before(:each) do + render "view_spec/implicit_helper" + end + + accesses_configured_helper_methods + + it "should include the helper" do + response.should have_tag('div', :content => "This is text from a method in the ViewSpecHelper") + end + + it "should include the application helper" do + response.should have_tag('div', :content => "This is text from a method in the ApplicationHelper") + end + + it "should have access to named routes" do + rspec_on_rails_specs_url.should == "http://test.host/rspec_on_rails_specs" + rspec_on_rails_specs_path.should == "/rspec_on_rails_specs" + end +end + +describe "A template requiring an explicit helper", :type => :view do + before(:each) do + render "view_spec/explicit_helper", :helper => 'explicit' + end + + it "should include the helper if specified" do + response.should have_tag('div', :content => "This is text from a method in the ExplicitHelper") + end + + it "should include the application helper" do + response.should have_tag('div', :content => "This is text from a method in the ApplicationHelper") + end +end + +describe "A template requiring multiple explicit helpers", :type => :view do + before(:each) do + render "view_spec/multiple_helpers", :helpers => ['explicit', 'more_explicit'] + end + + it "should include all specified helpers" do + response.should have_tag('div', :content => "This is text from a method in the ExplicitHelper") + response.should have_tag('div', :content => "This is text from a method in the MoreExplicitHelper") + end + + it "should include the application helper" do + response.should have_tag('div', :content => "This is text from a method in the ApplicationHelper") + end +end + +describe "Message Expectations on helper methods", :type => :view do + it "should work" do + template.should_receive(:method_in_plugin_application_helper).and_return('alternate message 1') + render "view_spec/implicit_helper" + response.body.should =~ /alternate message 1/ + end + + it "should work twice" do + template.should_receive(:method_in_plugin_application_helper).and_return('alternate message 2') + render "view_spec/implicit_helper" + response.body.should =~ /alternate message 2/ + end +end + +describe "A template that includes a partial", :type => :view do + def render! + render "view_spec/template_with_partial" + end + + it "should render the enclosing template" do + render! + response.should have_tag('div', "method_in_partial in ViewSpecHelper") + end + + it "should render the partial" do + render! + response.should have_tag('div', "method_in_template_with_partial in ViewSpecHelper") + end + + it "should include the application helper" do + render! + response.should have_tag('div', "This is text from a method in the ApplicationHelper") + end + + it "should pass should_receive(:render) with the right partial" do + template.should_receive(:render).with(:partial => 'partial') + render! + template.verify_rendered + end + + it "should fail should_receive(:render) with the wrong partial" do + template.should_receive(:render).with(:partial => 'non_existent') + render! + begin + template.verify_rendered + rescue Spec::Mocks::MockExpectationError => e + ensure + e.backtrace.find{|line| line =~ /#{__FILE__}\:#{__LINE__ - 6}/}.should_not be_nil + end + end + + it "should pass should_receive(:render) when a partial is expected twice and happens twice" do + template.should_receive(:render).with(:partial => 'partial_used_twice').twice + render! + template.verify_rendered + end + + it "should pass should_receive(:render) when a partial is expected once and happens twice" do + template.should_receive(:render).with(:partial => 'partial_used_twice') + render! + begin + template.verify_rendered + rescue Spec::Mocks::MockExpectationError => e + ensure + e.backtrace.find{|line| line =~ /#{__FILE__}\:#{__LINE__ - 6}/}.should_not be_nil + end + end + + it "should fail should_receive(:render) with the right partial but wrong options" do + template.should_receive(:render).with(:partial => 'partial', :locals => {:thing => Object.new}) + render! + lambda {template.verify_rendered}.should raise_error(Spec::Mocks::MockExpectationError) + end +end + +describe "A partial that includes a partial", :type => :view do + it "should support should_receive(:render) with nested partial" do + obj = Object.new + template.should_receive(:render).with(:partial => 'partial', :object => obj) + render :partial => "view_spec/partial_with_sub_partial", :locals => { :partial => obj } + end +end + +describe "A view that includes a partial using :collection and :spacer_template", :type => :view do + it "should render the partial w/ spacer_tamplate" do + render "view_spec/template_with_partial_using_collection" + response.should have_tag('div',/method_in_partial/) + response.should have_tag('div',/ApplicationHelper/) + response.should have_tag('div',/ViewSpecHelper/) + response.should have_tag('hr#spacer') + end + + it "should render the partial" do + template.should_receive(:render).with(:partial => 'partial', + :collection => ['Alice', 'Bob'], + :spacer_template => 'spacer') + render "view_spec/template_with_partial_using_collection" + end + +end + +describe "A view that includes a partial using an array as partial_path", :type => :view do + before(:each) do + renderable_object = Object.new + renderable_object.stub!(:name).and_return("Renderable Object") + assigns[:array] = [renderable_object] + end + + it "should render the array passed through to render_partial without modification" do + render "view_spec/template_with_partial_with_array" + response.body.should match(/^Renderable Object$/) + end +end + +describe "Different types of renders (not :template)", :type => :view do + it "should render partial with local" do + render :partial => "view_spec/partial_with_local_variable", :locals => {:x => "Ender"} + response.should have_tag('div', :content => "Ender") + end +end + +describe "A view", :type => :view do + before(:each) do + session[:key] = "session" + params[:key] = "params" + flash[:key] = "flash" + render "view_spec/accessor" + end + + it "should use the template as the implicit subject" do + subject.should == template + end + + describe "with a specified subject" do + subject { 'specified' } + + it "should use the specified subject" do + subject.should == 'specified' + end + end + + it "should have access to session data" do + response.should have_tag("div#session", "session") + end + + specify "should have access to params data" do + response.should have_tag("div#params", "params") + end + + it "should have access to flash data" do + response.should have_tag("div#flash", "flash") + end + + it "should have a controller param" do + response.should have_tag("div#controller", "view_spec") + end + + it "should have an action param" do + response.should have_tag("div#action", "accessor") + end +end + +describe "A view with a form_tag", :type => :view do + it "should render the right action" do + render "view_spec/entry_form" + response.should have_tag("form[action=?]","/view_spec/entry_form") + end +end + +describe "An instantiated ViewExampleGroupController", :type => :view do + before do + render "view_spec/foo/show" + end + + it "should return the name of the real controller that it replaces" do + @controller.controller_name.should == 'foo' + end + + it "should return the path of the real controller that it replaces" do + @controller.controller_path.should == 'view_spec/foo' + end +end + +describe "a block helper", :type => :view do + it "should not yield when not told to in the example" do + template.should_receive(:if_allowed) + render "view_spec/block_helper" + response.should_not have_tag("div","block helper was rendered") + end + + it "should yield when told to in the example" do + template.should_receive(:if_allowed).and_yield + render "view_spec/block_helper" + response.should have_tag("div","block helper was rendered") + end +end + +describe "render :inline => ...", :type => :view do + it "should render ERB right in the spec" do + render :inline => %|<%= text_field_tag('field_name', 'Value') %>| + response.should have_tag("input[type=?][name=?][value=?]","text","field_name","Value") + end +end + +describe "render 'view_spec/foo/show'", :type => :view do + it "should derive action name using the first part of the template name" do + render 'view_spec/foo/show' + request.path_parameters[:action].should == 'show' + end +end + +describe "view_spec/foo/show", :type => :view do + context "rendered with no args" do + it "renders just fine" do + render + request.path_parameters[:action].should == 'show' + end + end +end + +describe "setting path parameters", :type => :view do + describe "(controller)" do + it "should supercede the default path parameters" do + render "view_spec/entry_form", :path_parameters => {:controller => 'foo'} + request.path_parameters[:controller].should == 'foo' + end + end + describe "(action)" do + it "should supercede the default path parameters" do + render "view_spec/entry_form", :path_parameters => {:action => 'foo'} + request.path_parameters[:action].should == 'foo' + end + end + describe "(something arbitrary)" do + it "should supercede the default path parameters" do + render "view_spec/entry_form", :path_parameters => {:foo => 'bar'} + request.path_parameters[:foo].should == 'bar' + end + end +end + +describe "route helpers", :type => :view do + it "should be available before render is called" do + custom_route_path.should == '/custom_route' + end +end + +module Spec + module Rails + module Example + describe ViewExampleGroup do + it "should clear its name from the description" do + group = describe("foo", :type => :view) do + $nested_group = describe("bar") do + end + end + group.description.to_s.should == "foo" + $nested_group.description.to_s.should == "foo bar" + end + + it "should clear ActionView::Base.base_view_path on teardown" do + group = describe("base_view_path_cleared flag", :type => :view) {} + example = group.new(Spec::Example::ExampleProxy.new) {} + + ActionView::Base.should_receive(:base_view_path=).with(nil) + example.run_after_each + end + end + end + end +end + +describe "bug http://rspec.lighthouseapp.com/projects/5645/tickets/510", :type => :view do + describe "a view example with should_not_receive" do + it "should render the view" do + obj = mock('model') + obj.should_receive(:render_partial?).and_return false + assigns[:obj] = obj + template.should_not_receive(:render).with(:partial => 'some_partial') + render "view_spec/should_not_receive" + end + end +end + +describe "bug https://rspec.lighthouseapp.com/projects/5645/tickets/787", :type => :view do + describe "a view example checking a link" do + it "should have access to link_to" do + render "view_spec/view_helpers" + response.body.should include(link_to("edit", "this_is_the_link")) + end + + it "should use link_to within have_tag" do + render "view_spec/view_helpers" + response.body.should have_tag("span", :html => link_to("edit", "this_is_the_link")) + end + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/extensions/action_view_base_spec.rb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/extensions/action_view_base_spec.rb new file mode 100644 index 0000000..9dda882 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/extensions/action_view_base_spec.rb @@ -0,0 +1,74 @@ +require 'spec_helper' +require 'spec/mocks/errors' + +describe ActionView::Base, "with RSpec extensions:", :type => :view do + + describe "should_receive(:render)" do + it "should not raise when render has been received" do + template.should_receive(:render).with(:partial => "name") + template.render :partial => "name" + end + + it "should raise when render has NOT been received" do + template.should_receive(:render).with(:partial => "name") + lambda { + template.verify_rendered + }.should raise_error + end + + it "should return something (like a normal mock)" do + template.should_receive(:render).with(:partial => "name").and_return("Little Johnny") + result = template.render :partial => "name" + result.should == "Little Johnny" + end + end + + [:stub!, :stub].each do |method| + describe "#{method}(:render)" do + it "should not raise when stubbing and render has been received" do + template.send(method, :render).with(:partial => "name") + template.render :partial => "name" + end + + it "should not raise when stubbing and render has NOT been received" do + template.send(method, :render).with(:partial => "name") + end + + it "should not raise when stubbing and render has been received with different options" do + template.send(method, :render).with(:partial => "name") + template.render :partial => "view_spec/spacer" + end + + it "should not raise when stubbing and expecting and render has been received" do + template.send(method, :render).with(:partial => "name") + template.should_receive(:render).with(:partial => "name") + template.render(:partial => "name") + end + end + + describe "#{method}(:helper_method)" do + it "should not raise when stubbing and helper_method has been received" do + template.send(method, :helper_method).with(:arg => "value") + template.helper_method :arg => "value" + end + + it "should not raise when stubbing and helper_method has NOT been received" do + template.send(method, :helper_method).with(:arg => "value") + end + + it "SHOULD raise when stubbing and helper_method has been received with different options" do + template.send(method, :helper_method).with(:arg => "value") + expect { template.helper_method :arg => "other_value" }. + to raise_error(/undefined .* `helper_method'/) + end + + it "should not raise when stubbing and expecting and helper_method has been received" do + template.send(method, :helper_method).with(:arg => "value") + template.should_receive(:helper_method).with(:arg => "value") + template.helper_method(:arg => "value") + end + end + + end + +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/extensions/active_record_spec.rb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/extensions/active_record_spec.rb new file mode 100644 index 0000000..f616973 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/extensions/active_record_spec.rb @@ -0,0 +1,14 @@ +require 'spec_helper' + +describe "A model" do + fixtures :things + it "should tell you its required fields" do + Thing.new.should have(1).error_on(:name) + end + + it "should tell you how many records it has" do + Thing.should have(:no).records + Thing.create(:name => "THE THING") + Thing.should have(1).record + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/interop/testcase_spec.rb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/interop/testcase_spec.rb new file mode 100644 index 0000000..bde8b6c --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/interop/testcase_spec.rb @@ -0,0 +1,70 @@ +require 'spec_helper' + + +if ActiveSupport.const_defined?(:Callbacks) && Test::Unit::TestCase.include?(ActiveSupport::Callbacks) + + class TestUnitTesting < Test::Unit::TestCase + @@setup_callback_count = 0 + @@setup_method_count = 0 + @@teardown_callback_count = 0 + @@teardown_method_count = 0 + cattr_accessor :setup_callback_count, :setup_method_count, :teardown_callback_count, :teardown_method_count + + setup :do_some_setup + teardown :do_some_teardown + + @@has_been_run = false + def self.run? + @@has_been_run + end + + def self.run(options=Spec::Runner.options) + super options + end + + def do_some_setup + @@setup_callback_count += 1 + end + + def setup + @@setup_method_count += 1 + end + + def test_something + assert_equal true, true + @@has_been_run = true + end + + def teardown + @@teardown_method_count += 1 + end + + def do_some_teardown + @@teardown_callback_count += 1 + end + end + + module Test + module Unit + describe "Running TestCase tests" do + before(:all) do + TestUnitTesting.run unless TestUnitTesting.run? + end + + it "should call the setup callbacks" do + TestUnitTesting.setup_callback_count.should == 1 + end + it "should still only call the normal setup method once" do + TestUnitTesting.setup_method_count.should == 1 + end + it "should call the teardown callbacks" do + TestUnitTesting.teardown_callback_count.should == 1 + end + it "should still only call the normal teardown method once" do + TestUnitTesting.teardown_method_count.should == 1 + end + end + end + end + +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/matchers/ar_be_valid_spec.rb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/matchers/ar_be_valid_spec.rb new file mode 100644 index 0000000..0f752e9 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/matchers/ar_be_valid_spec.rb @@ -0,0 +1,19 @@ +require 'spec_helper' + +describe "be_valid" do + context "with valid attributes" do + it "returns true" do + be_valid.matches?(Thing.new(:name => 'thing')).should == true + end + end + + context "with invalid attributes" do + it "returns false" do + be_valid.matches?(Thing.new).should == false + end + + it "adds errors to the errors " do + expect { Thing.new.should be_valid }.to raise_error(/can't be blank/) + end + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/matchers/assert_select_spec.rb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/matchers/assert_select_spec.rb new file mode 100644 index 0000000..f8da8e3 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/matchers/assert_select_spec.rb @@ -0,0 +1,835 @@ +require 'spec_helper' + +# assert_select plugins for Rails +# +# Copyright (c) 2006 Assaf Arkin, under Creative Commons Attribution and/or MIT License +# Developed for http://co.mments.com +# Code and documention: http://labnotes.org + +class AssertSelectController < ActionController::Base + + def response=(content) + @content = content + end + + def html() + render :text=>@content, :layout=>false, :content_type=>Mime::HTML + @content = nil + end + + def rjs() + update = @update + render :update do |page| + update.call page + end + @update = nil + end + + def xml() + render :text=>@content, :layout=>false, :content_type=>Mime::XML + @content = nil + end + +end + +class AssertSelectMailer < ActionMailer::Base + + def test(html) + recipients "test " + from "test@test.host" + subject "Test e-mail" + part :content_type=>"text/html", :body=>html + end + +end + +module AssertSelectSpecHelpers + def render_html(html) + @controller.response = html + get :html + end + + def render_rjs(&block) + clear_response + @controller.response &block + get :rjs + end + + def render_xml(xml) + @controller.response = xml + get :xml + end + + def first_non_rspec_line_in_backtrace_of(error) + rlocation = File.join('rspec', 'lib', 'spec') + error.backtrace.reject { |line| + line =~ /#{rlocation}/ + }.first + end + + private + # necessary for 1.2.1 + def clear_response + render_html("") + end +end + +unless defined?(SpecFailed) + SpecFailed = Spec::Expectations::ExpectationNotMetError +end + +describe "should have_tag", :type => :controller do + include AssertSelectSpecHelpers + controller_name :assert_select + integrate_views + + it "should not care about the XML setting on HTML with unclosed singletons when using a response" do + render_html %Q{
    imageHello
    World
    } + response.should have_tag("tr", 3) + response.should have_tag("tr", 3, :xml => true) + end + + it "should find specific numbers of elements" do + render_html %Q{
    } + response.should have_tag( "div" ) + response.should have_tag("div", 2) + lambda { response.should_not have_tag("div") }.should raise_error(SpecFailed, "should not have tag(\"div\"), but did") + + lambda { response.should have_tag("div", 3) }.should raise_error(SpecFailed) + lambda { response.should have_tag("p") }.should raise_error(SpecFailed) + end + + it "should expect to find elements when using true" do + render_html %Q{
    } + response.should have_tag( "div", true ) + lambda { response.should have_tag( "p", true )}.should raise_error(SpecFailed) + end + + it "should expect to not find elements when using false" do + render_html %Q{
    } + response.should have_tag( "p", false ) + lambda { response.should have_tag( "div", false )}.should raise_error(SpecFailed) + end + + + it "should match submitted text using text or regexp" do + render_html %Q{
    foo
    foo
    } + response.should have_tag("div", "foo") + response.should have_tag("div", /(foo|bar)/) + response.should have_tag("div", :text=>"foo") + response.should have_tag("div", :text=>/(foo|bar)/) + + lambda { response.should have_tag("div", "bar") }.should raise_error(SpecFailed) + lambda { response.should have_tag("div", :text=>"bar") }.should raise_error(SpecFailed) + lambda { response.should have_tag("p", :text=>"foo") }.should raise_error(SpecFailed) + + lambda { response.should have_tag("div", /foobar/) }.should raise_error(SpecFailed) + lambda { response.should have_tag("div", :text=>/foobar/) }.should raise_error(SpecFailed) + lambda { response.should have_tag("p", :text=>/foo/) }.should raise_error(SpecFailed) + end + + it "should use submitted message" do + render_html %Q{nothing here} + lambda { + response.should have_tag("div", {}, "custom message") + }.should raise_error(SpecFailed, /custom message/) + end + + it "should match submitted html" do + render_html %Q{

    \n"This is not a big problem," he said.\n

    } + text = "\"This is not a big problem,\" he said." + html = "\"This is not a big problem,\" he said." + response.should have_tag("p", text) + lambda { response.should have_tag("p", html) }.should raise_error(SpecFailed) + response.should have_tag("p", :html=>html) + lambda { response.should have_tag("p", :html=>text) }.should raise_error(SpecFailed) + + # # No stripping for pre. + render_html %Q{
    \n"This is not a big problem," he said.\n
    } + text = "\n\"This is not a big problem,\" he said.\n" + html = "\n\"This is not a big problem,\" he said.\n" + response.should have_tag("pre", text) + lambda { response.should have_tag("pre", html) }.should raise_error(SpecFailed) + response.should have_tag("pre", :html=>html) + lambda { response.should have_tag("pre", :html=>text) }.should raise_error(SpecFailed) + end + + it "should match number of instances" do + render_html %Q{
    foo
    foo
    } + response.should have_tag("div", 2) + lambda { response.should have_tag("div", 3) }.should raise_error(SpecFailed) + response.should have_tag("div", 1..2) + lambda { response.should have_tag("div", 3..4) }.should raise_error(SpecFailed) + response.should have_tag("div", :count=>2) + lambda { response.should have_tag("div", :count=>3) }.should raise_error(SpecFailed) + response.should have_tag("div", :minimum=>1) + response.should have_tag("div", :minimum=>2) + lambda { response.should have_tag("div", :minimum=>3) }.should raise_error(SpecFailed) + response.should have_tag("div", :maximum=>2) + response.should have_tag("div", :maximum=>3) + lambda { response.should have_tag("div", :maximum=>1) }.should raise_error(SpecFailed) + response.should have_tag("div", :minimum=>1, :maximum=>2) + lambda { response.should have_tag("div", :minimum=>3, :maximum=>4) }.should raise_error(SpecFailed) + end + + it "substitution values" do + render_html %Q{
    foo
    foo
    } + response.should have_tag("div#?", /\d+/) do |elements| #using do/end + elements.size.should == 2 + end + response.should have_tag("div#?", /\d+/) { |elements| #using {} + elements.size.should == 2 + } + lambda { + response.should have_tag("div#?", /\d+/) do |elements| + elements.size.should == 3 + end + }.should raise_error(SpecFailed, "expected: 3,\n got: 2 (using ==)") + + lambda { + response.should have_tag("div#?", /\d+/) { |elements| + elements.size.should == 3 + } + }.should raise_error(SpecFailed, "expected: 3,\n got: 2 (using ==)") + + response.should have_tag("div#?", /\d+/) do |elements| + elements.size.should == 2 + with_tag("#1") + with_tag("#2") + without_tag("#3") + end + end + + #added for RSpec + it "nested tags in form" do + render_html %Q{ +
    + +
    +
    + +
    + } + response.should have_tag("form[action=test]") { |form| + with_tag("input[type=text][name=email]") + } + response.should have_tag("form[action=other]") { |form| + with_tag("input[type=text][name=other_input]") + } + + lambda { + response.should have_tag("form[action=test]") { |form| + with_tag("input[type=text][name=other_input]") + } + }.should raise_error(SpecFailed) + + lambda { + response.should have_tag("form[action=test]") { + with_tag("input[type=text][name=other_input]") + } + }.should raise_error(SpecFailed) + end + + it "should report the correct line number for a nested failed expectation" do + render_html %Q{ +
    + +
    + } + begin + response.should have_tag("form[action=test]") { + @expected_error_line = __LINE__; should have_tag("input[type=text][name=other_input]") + } + rescue => e + first_non_rspec_line_in_backtrace_of(e).should =~ + /#{File.basename(__FILE__)}:#{@expected_error_line}/ + else + fail + end + end + + it "should report the correct line number for a nested raised exception" do + render_html %Q{ +
    + +
    + } + begin + response.should have_tag("form[action=test]") { + @expected_error_line = __LINE__; raise "Failed!" + } + rescue => e + first_non_rspec_line_in_backtrace_of(e).should =~ + /#{File.basename(__FILE__)}:#{@expected_error_line}/ + else + fail + end + end + + it "should report the correct line number for a nested failed test/unit assertion" do + pending "Doesn't work at the moment. Do we want to support this?" do + render_html %Q{ +
    + +
    + } + begin + response.should have_tag("form[action=test]") { + @expected_error_line = __LINE__; assert false + } + rescue => e + first_non_rspec_line_in_backtrace_of(e).should =~ + /#{File.basename(__FILE__)}:#{@expected_error_line}/ + else + fail + end + end + end + + + it "beatles" do + unless defined?(BEATLES) + BEATLES = [ + ["John", "Guitar"], + ["George", "Guitar"], + ["Paul", "Bass"], + ["Ringo", "Drums"] + ] + end + + render_html %Q{ +
    +
    +

    John

    Guitar

    +
    +
    +

    George

    Guitar

    +
    +
    +

    Paul

    Bass

    +
    +
    +

    Ringo

    Drums

    +
    +
    + } + response.should have_tag("div#beatles>div[class=\"beatle\"]", 4) + + response.should have_tag("div#beatles>div.beatle") { + BEATLES.each { |name, instrument| + with_tag("div.beatle>h2", name) + with_tag("div.beatle>p", instrument) + without_tag("div.beatle>span") + } + } + end + + it "assert_select_text_match" do + render_html %Q{
    foo
    bar
    } + response.should have_tag("div") do |divs| + with_tag("div", "foo") + with_tag("div", "bar") + with_tag("div", /\w*/) + with_tag("div", /\w*/, :count=>2) + without_tag("div", :text=>"foo", :count=>2) + with_tag("div", :html=>"bar") + with_tag("div", :html=>"bar") + with_tag("div", :html=>/\w*/) + with_tag("div", :html=>/\w*/, :count=>2) + without_tag("div", :html=>"foo", :count=>2) + end + end + + + it "assert_select_from_rjs with one item" do + render_rjs do |page| + page.replace_html "test", "
    foo
    \n
    foo
    " + end + response.should have_tag("div") { |elements| + elements.size.should == 2 + with_tag("#1") + with_tag("#2") + } + + lambda { + response.should have_tag("div") { |elements| + elements.size.should == 2 + with_tag("#1") + with_tag("#3") + } + }.should raise_error(SpecFailed) + + lambda { + response.should have_tag("div") { |elements| + elements.size.should == 2 + with_tag("#1") + without_tag("#2") + } + }.should raise_error(SpecFailed, "should not have tag(\"#2\"), but did") + + lambda { + response.should have_tag("div") { |elements| + elements.size.should == 3 + with_tag("#1") + with_tag("#2") + } + }.should raise_error(SpecFailed) + + + response.should have_tag("div#?", /\d+/) { |elements| + with_tag("#1") + with_tag("#2") + } + end + + it "assert_select_from_rjs with multiple items" do + render_rjs do |page| + page.replace_html "test", "
    foo
    " + page.replace_html "test2", "
    foo
    " + end + response.should have_tag("div") + response.should have_tag("div") { |elements| + elements.size.should == 2 + with_tag("#1") + with_tag("#2") + } + + lambda { + response.should have_tag("div") { |elements| + with_tag("#3") + } + }.should raise_error(SpecFailed) + end +end + +describe "css_select", :type => :controller do + include AssertSelectSpecHelpers + controller_name :assert_select + integrate_views + + it "can select tags from html" do + render_html %Q{
    } + css_select("div").size.should == 2 + css_select("p").size.should == 0 + end + + + it "can select nested tags from html" do + render_html %Q{
    foo
    foo
    } + response.should have_tag("div#?", /\d+/) { |elements| + css_select(elements[0], "div").should have(1).element + css_select(elements[1], "div").should have(1).element + } + response.should have_tag("div") { + css_select("div").should have(2).elements + css_select("div").each { |element| + # Testing as a group is one thing + css_select("#1,#2").should have(2).elements + # Testing individually is another + css_select("#1").should have(1).element + css_select("#2").should have(1).element + } + } + end + + it "can select nested tags from rjs (one result)" do + render_rjs do |page| + page.replace_html "test", "
    foo
    \n
    foo
    " + end + css_select("div").should have(2).elements + css_select("#1").should have(1).element + css_select("#2").should have(1).element + end + + it "can select nested tags from rjs (two results)" do + render_rjs do |page| + page.replace_html "test", "
    foo
    " + page.replace_html "test2", "
    foo
    " + end + css_select("div").should have(2).elements + css_select("#1").should have(1).element + css_select("#2").should have(1).element + end + +end + +describe "have_rjs behaviour_type", :type => :controller do + include AssertSelectSpecHelpers + controller_name :assert_select + integrate_views + + before(:each) do + render_rjs do |page| + page.replace "test1", "
    foo
    " + page.replace_html "test2", "
    bar
    none
    " + page.insert_html :top, "test3", "
    loopy
    " + page.hide "test4" + page["test5"].hide + end + end + + it "should pass if any rjs exists" do + response.should have_rjs + end + + it "should fail if no rjs exists" do + render_rjs do |page| + end + lambda do + response.should have_rjs + end.should raise_error(SpecFailed) + end + + it "should find all rjs from multiple statements" do + response.should have_rjs do + with_tag("#1") + with_tag("#2") + with_tag("#3") + with_tag("#4") + end + end + + it "should find by id" do + response.should have_rjs("test1") { |rjs| + rjs.size.should == 1 + with_tag("div", 1) + with_tag("div#1", "foo") + } + + lambda do + response.should have_rjs("test1") { |rjs| + rjs.size.should == 1 + without_tag("div#1", "foo") + } + end.should raise_error(SpecFailed, "should not have tag(\"div#1\", \"foo\"), but did") + + response.should have_rjs("test2") { |rjs| + rjs.size.should == 2 + with_tag("div", 2) + with_tag("div#2", "bar") + with_tag("div#3", "none") + } + # response.should have_rjs("test4") + # response.should have_rjs("test5") + end + + # specify "should find rjs using :hide" do + # response.should have_rjs(:hide) + # response.should have_rjs(:hide, "test4") + # response.should have_rjs(:hide, "test5") + # lambda do + # response.should have_rjs(:hide, "test3") + # end.should raise_error(SpecFailed) + # end + + it "should find rjs using :replace" do + response.should have_rjs(:replace) { |rjs| + with_tag("div", 1) + with_tag("div#1", "foo") + } + response.should have_rjs(:replace, "test1") { |rjs| + with_tag("div", 1) + with_tag("div#1", "foo") + } + lambda { + response.should have_rjs(:replace, "test2") + }.should raise_error(SpecFailed) + + lambda { + response.should have_rjs(:replace, "test3") + }.should raise_error(SpecFailed) + end + + it "should find rjs using :replace_html" do + response.should have_rjs(:replace_html) { |rjs| + with_tag("div", 2) + with_tag("div#2", "bar") + with_tag("div#3", "none") + } + + response.should have_rjs(:replace_html, "test2") { |rjs| + with_tag("div", 2) + with_tag("div#2", "bar") + with_tag("div#3", "none") + } + + lambda { + response.should have_rjs(:replace_html, "test1") + }.should raise_error(SpecFailed) + + lambda { + response.should have_rjs(:replace_html, "test3") + }.should raise_error(SpecFailed) + end + + it "should find rjs using :insert_html (non-positioned)" do + response.should have_rjs(:insert_html) { |rjs| + with_tag("div", 1) + with_tag("div#4", "loopy") + } + + response.should have_rjs(:insert_html, "test3") { |rjs| + with_tag("div", 1) + with_tag("div#4", "loopy") + } + + lambda { + response.should have_rjs(:insert_html, "test1") + }.should raise_error(SpecFailed) + + lambda { + response.should have_rjs(:insert_html, "test2") + }.should raise_error(SpecFailed) + end + + it "should find rjs using :insert (positioned)" do + render_rjs do |page| + page.insert_html :top, "test1", "
    foo
    " + page.insert_html :bottom, "test2", "
    bar
    " + page.insert_html :before, "test3", "
    none
    " + page.insert_html :after, "test4", "
    loopy
    " + end + response.should have_rjs(:insert, :top) do + with_tag("div", 1) + with_tag("#1") + end + response.should have_rjs(:insert, :top, "test1") do + with_tag("div", 1) + with_tag("#1") + end + response.should have_rjs(:insert, :bottom) {|rjs| + with_tag("div", 1) + with_tag("#2") + } + response.should have_rjs(:insert, :bottom, "test2") {|rjs| + with_tag("div", 1) + with_tag("#2") + } + response.should have_rjs(:insert, :before) {|rjs| + with_tag("div", 1) + with_tag("#3") + } + response.should have_rjs(:insert, :before, "test3") {|rjs| + with_tag("div", 1) + with_tag("#3") + } + response.should have_rjs(:insert, :after) {|rjs| + with_tag("div", 1) + with_tag("#4") + } + response.should have_rjs(:insert, :after, "test4") {|rjs| + with_tag("div", 1) + with_tag("#4") + } + end + + it "should find rjs using :insert (positioned)" do + pending("await fix for http://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/982") + render_rjs do |page| + page.insert_html :top, "test1", "
    foo
    " + page.insert_html :bottom, "test2", "
    bar
    " + end + lambda { + response.should have_rjs(:insert, :top, "test2") + }.should raise_error(SpecFailed) + end +end + +describe "send_email behaviour_type", :type => :controller do + include AssertSelectSpecHelpers + controller_name :assert_select + integrate_views + + before(:each) do + ActionMailer::Base.delivery_method = :test + ActionMailer::Base.perform_deliveries = true + ActionMailer::Base.deliveries = [] + end + + after(:each) do + ActionMailer::Base.deliveries.clear + end + + it "should fail with nothing sent" do + response.should_not send_email + lambda { + response.should send_email{} + }.should raise_error(SpecFailed, /No e-mail in delivery list./) + end + + it "should pass otherwise" do + AssertSelectMailer.deliver_test "

    foo

    bar

    " + response.should send_email + lambda { + response.should_not send_email + }.should raise_error(SpecFailed) + response.should send_email{} + response.should send_email { + with_tag("div:root") { + with_tag("p:first-child", "foo") + with_tag("p:last-child", "bar") + } + } + + lambda { + response.should_not send_email + }.should raise_error(SpecFailed, "should not send email, but did") + end + +end + +describe "string.should have_tag", :type => :helper do + include AssertSelectSpecHelpers + + it "should find root element" do + "

    a paragraph

    ".should have_tag("p", "a paragraph") + end + + it "should not find non-existent element" do + lambda do + "

    a paragraph

    ".should have_tag("p", "wrong text") + end.should raise_error(SpecFailed) + end + + it "should find child element" do + "

    a paragraph

    ".should have_tag("p", "a paragraph") + end + + it "should find nested element in one line" do + "

    a paragraph

    ".should have_tag("div p","a paragraph") + end + + it "should find nested element" do + "

    a paragraph

    ".should have_tag("div") do + with_tag("p", "a paragraph") + end + end + + it "should not find wrong nested element" do + lambda do + "

    a paragraph

    ".should have_tag("div") do + with_tag("p", "wrong text") + end + end.should raise_error(SpecFailed) + end + + it "should raise when using an HTML string with unclosed singleton tags when using the XML parsing setting" do + lambda do + %Q{
    imageHello
    World
    }. + should have_tag("tr", 3, :xml => true) + end.should raise_error + end + + it "should find the specific number of elements regardless of unclosed singletons in a HTML string" do + %Q{
    imageHello
    World
    }. + should have_tag("tr", 3) + end + + it "should find nested tags in an HTML string regardless unclosed singletons" do + %Q{
    imageHello
    World
    }. + should have_tag("table") do + with_tag('tr',3) + end + end + +end + +describe "have_tag", :type => :controller do + include AssertSelectSpecHelpers + controller_name :assert_select + integrate_views + + it "should work exactly the same as assert_select" do + render_html %Q{ +
    foo +
    +

    Text

    +
    +
    +

    Another

    +
    +
    + } + + assert_select "#wrapper .piece h3", :text => "Text" + assert_select "#wrapper .piece h3", :text => "Another" + + response.should have_tag("#wrapper .piece h3", :text => "Text") + response.should have_tag("#wrapper .piece h3", :text => "Another") + end +end + +describe 'selecting in HTML that contains a mock with null_object' do + include ActionController::Assertions::SelectorAssertions + module HTML + class Document + def initialize_with_strict_error_checking(text, strict=false, xml=false) + initialize_without_strict_error_checking(text, true, xml) + end + alias_method :initialize_without_strict_error_checking, :initialize + alias_method :initialize, :initialize_with_strict_error_checking + end + end + + describe 'modified HTML::Document' do + it 'should raise error on valid HTML even though false is specified' do + lambda {HTML::Document.new("#", false, false)}.should raise_error + end + end + + it 'should not print errors from assert_select' do + mock = mock("Dog", :null_object => true) + html = "#{mock.colour}" + lambda {html.should have_tag('b')}.should_not raise_error + end +end + +# describe "An rjs call to :visual_effect, a 'should have_rjs' spec with", +# :type => :view do +# +# before do +# render 'rjs_spec/visual_effect' +# end +# +# it "should pass with the correct element name" do +# response.should have_rjs(:effect, :fade, 'mydiv') +# end +# +# it "should fail the wrong element name" do +# lambda { +# response.should have_rjs(:effect, :fade, 'wrongname') +# }.should raise_error(SpecFailed) +# end +# +# it "should fail with the correct element but the wrong command" do +# lambda { +# response.should have_rjs(:effect, :puff, 'mydiv') +# }.should raise_error(SpecFailed) +# end +# +# end +# +# describe "An rjs call to :visual_effect for a toggle, a 'should have_rjs' spec with", +# :type => :view do +# +# before do +# render 'rjs_spec/visual_toggle_effect' +# end +# +# it "should pass with the correct element name" do +# response.should have_rjs(:effect, :toggle_blind, 'mydiv') +# end +# +# it "should fail with the wrong element name" do +# lambda { +# response.should have_rjs(:effect, :toggle_blind, 'wrongname') +# }.should raise_error(SpecFailed) +# end +# +# it "should fail the correct element but the wrong command" do +# lambda { +# response.should have_rjs(:effect, :puff, 'mydiv') +# }.should raise_error(SpecFailed) +# end +# +# end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/matchers/errors_on_spec.rb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/matchers/errors_on_spec.rb new file mode 100644 index 0000000..bcb702a --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/matchers/errors_on_spec.rb @@ -0,0 +1,37 @@ +require 'spec_helper' + +describe "error_on" do + it "should provide a description including the name of what the error is on" do + have(1).error_on(:whatever).description.should == "have 1 error on :whatever" + end + + it "should provide a failure message including the number actually given" do + lambda { + [].should have(1).error_on(:whatever) + }.should fail_with("expected 1 error on :whatever, got 0") + end +end + +describe "errors_on" do + it "should provide a description including the name of what the error is on" do + have(2).errors_on(:whatever).description.should == "have 2 errors on :whatever" + end + + it "should provide a failure message including the number actually given" do + lambda { + [1].should have(3).errors_on(:whatever) + }.should fail_with("expected 3 errors on :whatever, got 1") + end +end + +describe "have something other than error_on or errors_on" do + it "has a standard rspec failure message" do + lambda { + [1,2,3].should have(2).elements + }.should fail_with("expected 2 elements, got 3") + end + + it "has a standard rspec description" do + have(2).elements.description.should == "have 2 elements" + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/matchers/have_text_spec.rb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/matchers/have_text_spec.rb new file mode 100644 index 0000000..c6de806 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/matchers/have_text_spec.rb @@ -0,0 +1,69 @@ +require 'spec_helper' + +describe "have_text" do + + it "should have a helpful description" do + matcher = have_text("foo bar") + matcher.description.should == 'have text "foo bar"' + end + + describe "where target is a Regexp" do + it 'should should match submitted text using a regexp' do + matcher = have_text(/fo*/) + matcher.matches?('foo').should be_true + matcher.matches?('bar').should be_nil + end + end + + describe "where target is a String" do + it 'should match submitted text using a string' do + matcher = have_text('foo') + matcher.matches?('foo').should be_true + matcher.matches?('foo bar').should be_false + end + end + +end + +describe "have_text", + :type => :controller do + ['isolation','integration'].each do |mode| + if mode == 'integration' + integrate_views + end + + describe "where target is a response (in #{mode} mode)" do + controller_name :render_spec + + it "should pass with exactly matching text" do + post 'text_action' + response.should have_text("this is the text for this action") + end + + it "should pass with matching text (using Regexp)" do + post 'text_action' + response.should have_text(/is the text/) + end + + it "should fail with matching text" do + post 'text_action' + lambda { + response.should have_text("this is NOT the text for this action") + }.should fail_with("expected \"this is NOT the text for this action\", got \"this is the text for this action\"") + end + + it "should fail when a template is rendered" do + post 'some_action' + lambda { + response.should have_text("this is the text for this action") + }.should fail_with(/expected \"this is the text for this action\", got .*/) + end + + it "should pass using should_not with incorrect text" do + post 'text_action' + response.should_not have_text("the accordian guy") + end + end + end +end + diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/matchers/include_text_spec.rb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/matchers/include_text_spec.rb new file mode 100644 index 0000000..1df4b38 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/matchers/include_text_spec.rb @@ -0,0 +1,62 @@ +require 'spec_helper' + +describe "include_text" do + + it "should have a helpful description" do + matcher = include_text("foo bar") + matcher.description.should == 'include text "foo bar"' + end + + it 'should match if the text is contained' do + matcher = include_text('big piece') + matcher.matches?('I am a big piece of text').should be_true + end + + it 'should not match if text is not contained' do + matcher = include_text('foo bar') + matcher.matches?('hello world').should be_false + end + +end + +describe "include_text", :type => :controller do + ['isolation','integration'].each do |mode| + if mode == 'integration' + integrate_views + end + + describe "where target is a response (in #{mode} mode)" do + controller_name :render_spec + + it "should pass with exactly matching text" do + post 'text_action' + response.should include_text("this is the text for this action") + end + + it 'should pass with substring matching text' do + post 'text_action' + response.should include_text('text for this') + end + + it "should fail with incorrect text" do + post 'text_action' + lambda { + response.should include_text("the accordian guy") + }.should fail_with("expected to find \"the accordian guy\" in \"this is the text for this action\"") + end + + it "should pass using should_not with incorrect text" do + post 'text_action' + response.should_not include_text("the accordian guy") + end + + it "should fail when a template is rendered" do + get 'some_action' + lambda { + response.should include_text("this is the text for this action") + }.should fail_with(/expected to find \"this is the text for this action\"/) + end + end + end +end + diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/matchers/redirect_to_spec.rb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/matchers/redirect_to_spec.rb new file mode 100644 index 0000000..6588cd8 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/matchers/redirect_to_spec.rb @@ -0,0 +1,253 @@ +require 'spec_helper' + +[:response, :controller].each do |subject_method| + ['isolation','integration'].each do |mode| + describe "redirect_to behaviour", :type => :controller do + if mode == 'integration' + integrate_views + end + controller_name :redirect_spec + + subject { send(subject_method) } + + it "redirected to another action" do + get 'action_with_redirect_to_somewhere' + should redirect_to(:action => 'somewhere') + end + + it "redirected to another controller and action" do + get 'action_with_redirect_to_other_somewhere' + should redirect_to(:controller => 'render_spec', :action => 'text_action') + end + + it "redirected to another action (with 'and return')" do + get 'action_with_redirect_to_somewhere_and_return' + should redirect_to(:action => 'somewhere') + end + + it "redirected from an SSL action to a non-SSL action" do + request.stub!(:ssl?).and_return true + get 'action_with_redirect_to_somewhere' + should redirect_to(:action => 'somewhere') + end + + it "redirected to correct path with leading /" do + get 'action_with_redirect_to_somewhere' + should redirect_to('/redirect_spec/somewhere') + end + + it "redirected to correct path without leading /" do + get 'action_with_redirect_to_somewhere' + should redirect_to('redirect_spec/somewhere') + end + + it "redirected to correct internal URL" do + get 'action_with_redirect_to_somewhere' + should redirect_to("http://test.host/redirect_spec/somewhere") + end + + it "redirected to correct external URL" do + get 'action_with_redirect_to_rspec_site' + should redirect_to("http://rspec.rubyforge.org") + end + + it "redirected :back" do + request.env['HTTP_REFERER'] = "http://test.host/previous/page" + get 'action_with_redirect_back' + should redirect_to(:back) + end + + it "redirected :back and should redirect_to URL matches" do + request.env['HTTP_REFERER'] = "http://test.host/previous/page" + get 'action_with_redirect_back' + should redirect_to("http://test.host/previous/page") + end + + it "redirected from within a respond_to block" do + get 'action_with_redirect_in_respond_to' + should redirect_to('redirect_spec/somewhere') + end + + params_as_hash = {:action => "somewhere", :id => 1111, :param1 => "value1", :param2 => "value2"} + + it "redirected to an internal URL containing a query string" do + get "action_with_redirect_which_creates_query_string" + should redirect_to(params_as_hash) + end + + it "redirected to an internal URL containing a query string, one way it might be generated" do + get "action_with_redirect_with_query_string_order1" + should redirect_to(params_as_hash) + end + + it "redirected to an internal URL containing a query string, another way it might be generated" do + get "action_with_redirect_with_query_string_order2" + should redirect_to(params_as_hash) + end + + it "redirected to an internal URL which is unroutable but matched via a string" do + get "action_with_redirect_to_unroutable_url_inside_app" + should redirect_to("http://test.host/nonexistant/none") + end + + it "redirected to a URL with a specific status code" do + get "action_with_redirect_to_somewhere_with_status" + should redirect_to(:action => 'somewhere').with(:status => 301) + end + + it "redirected to a URL with a specific status code (using names)" do + get "action_with_redirect_to_somewhere_with_status" + should redirect_to(:action => 'somewhere').with(:status => :moved_permanently) + end + + end + + + describe "redirect_to with a controller spec in #{mode} mode and a custom request.host", :type => :controller do + if mode == 'integration' + integrate_views + end + controller_name :redirect_spec + + subject { send(subject_method) } + + before do + request.host = "some.custom.host" + end + + it "should pass when redirected to another action" do + get 'action_with_redirect_to_somewhere' + should redirect_to(:action => 'somewhere') + end + end + + describe "Given a controller spec in #{mode} mode", :type => :controller do + if mode == 'integration' + integrate_views + end + controller_name :redirect_spec + + subject { send(subject_method) } + + it "an action that redirects should not result in an error if no should redirect_to expectation is called" do + get 'action_with_redirect_to_somewhere' + end + + it "an action that redirects should not result in an error if should_not redirect_to expectation was called, but not to that action" do + get 'action_with_redirect_to_somewhere' + should_not redirect_to(:action => 'another_destination') + end + + it "an action that redirects should result in an error if should_not redirect_to expectation was called to that action" do + get 'action_with_redirect_to_somewhere' + lambda { + should_not redirect_to(:action => 'somewhere') + }.should fail_with("expected not to be redirected to {:action=>\"somewhere\"}, but was") + end + + it "an action that does not redirects should not result in an error if should_not redirect_to expectation was called" do + get 'action_with_no_redirect' + should_not redirect_to(:action => 'any_destination') + end + + + end + + describe "Given a controller spec in #{mode} mode, should redirect_to should fail when", :type => :controller do + if mode == 'integration' + integrate_views + end + controller_name :redirect_spec + + subject { send(subject_method) } + + it "redirected to wrong action" do + get 'action_with_redirect_to_somewhere' + lambda { + should redirect_to(:action => 'somewhere_else') + }.should fail_with("expected redirect to {:action=>\"somewhere_else\"}, got redirect to \"http://test.host/redirect_spec/somewhere\"") + end + + it "redirected with wrong status code" do + get 'action_with_redirect_to_somewhere_with_status' + lambda { + should redirect_to(:action => 'somewhere').with(:status => 302) + }.should fail_with("expected redirect to {:action=>\"somewhere\"} with status 302 Found, got 301 Moved Permanently") + end + + it "redirected with wrong status code (using names)" do + get 'action_with_redirect_to_somewhere_with_status' + lambda { + should redirect_to(:action => 'somewhere').with(:status => :found) + }.should fail_with("expected redirect to {:action=>\"somewhere\"} with status 302 Found, got 301 Moved Permanently") + end + + it "redirected to incorrect path with leading /" do + get 'action_with_redirect_to_somewhere' + lambda { + should redirect_to('/redirect_spec/somewhere_else') + }.should fail_with('expected redirect to "/redirect_spec/somewhere_else", got redirect to "http://test.host/redirect_spec/somewhere"') + end + + it "redirected to incorrect path without leading /" do + get 'action_with_redirect_to_somewhere' + lambda { + should redirect_to('redirect_spec/somewhere_else') + }.should fail_with('expected redirect to "redirect_spec/somewhere_else", got redirect to "http://test.host/redirect_spec/somewhere"') + end + + it "redirected to incorrect internal URL (based on the action)" do + get 'action_with_redirect_to_somewhere' + lambda { + should redirect_to("http://test.host/redirect_spec/somewhere_else") + }.should fail_with('expected redirect to "http://test.host/redirect_spec/somewhere_else", got redirect to "http://test.host/redirect_spec/somewhere"') + end + + it "redirected to wrong external URL" do + get 'action_with_redirect_to_rspec_site' + lambda { + should redirect_to("http://test.unit.rubyforge.org") + }.should fail_with('expected redirect to "http://test.unit.rubyforge.org", got redirect to "http://rspec.rubyforge.org"') + end + + it "redirected to incorrect internal URL (based on the directory path)" do + get 'action_with_redirect_to_somewhere' + lambda { + should redirect_to("http://test.host/non_existent_controller/somewhere") + }.should fail_with('expected redirect to "http://test.host/non_existent_controller/somewhere", got redirect to "http://test.host/redirect_spec/somewhere"') + end + + it "expected redirect :back, but redirected to a new URL" do + get 'action_with_no_redirect' + lambda { + should redirect_to(:back) + }.should fail_with('expected redirect to :back, got no redirect') + end + + it "no redirect at all" do + get 'action_with_no_redirect' + lambda { + should redirect_to(:action => 'nowhere') + }.should fail_with("expected redirect to {:action=>\"nowhere\"}, got no redirect") + end + + it "redirected to an internal URL which is unroutable and matched via a hash" do + get "action_with_redirect_to_unroutable_url_inside_app" + route = {:controller => "nonexistant", :action => "none"} + lambda { + should redirect_to(route) + }.should raise_error(ActionController::RoutingError, /(no route found to match|No route matches) \"\/nonexistant\/none\" with \{.*\}/) + end + + it "provides a description" do + redirect_to("foo/bar").description.should == %q|redirect to "foo/bar"| + end + + it "redirects to action with http method restriction" do + post 'action_to_redirect_to_action_with_method_restriction' + should redirect_to(:action => 'action_with_method_restriction') + end + + end + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/matchers/render_template_spec.rb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/matchers/render_template_spec.rb new file mode 100644 index 0000000..68c9955 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/matchers/render_template_spec.rb @@ -0,0 +1,208 @@ +require 'spec_helper' + +[:response, :controller].each do |subject_method| + ['isolation','integration'].each do |mode| + describe "#{subject_method}.should render_template (in #{mode} mode)", + :type => :controller do + controller_name :render_spec + if mode == 'integration' + integrate_views + end + + subject { send(subject_method) } + + it "matches an action (using a string)" do + post 'some_action' + should render_template('some_action') + end + + it "does not match an action that is a truncated version of the actual action" do + post 'some_action' + should_not render_template('some_actio') + end + + if ::Rails::VERSION::STRING >= '2.3' + it "matches an action with specified extenstions (implicit format)" do + post 'some_action' + should render_template('some_action.html.erb') + end + + it "matches an action with specified extenstions (explicit format)" do + post 'some_action', :format => 'js' + should render_template('some_action.js.rjs') + end + end + + it "matches an action (using a symbol)" do + post 'some_action' + should render_template(:some_action) + end + + it "matches an action on a specific controller" do + post 'some_action' + should render_template('render_spec/some_action') + end + + it "matches an action on a non-default specific controller" do + post 'action_which_renders_template_from_other_controller' + should render_template('controller_spec/action_with_template') + end + + it "matches an rjs template" do + xhr :post, 'some_action' + should render_template('render_spec/some_action') + end + + it "matches a partial template (simple path)" do + get 'action_with_partial' + should render_template("_a_partial") + end + + it "matches a partial template (complex path)" do + get 'action_with_partial' + should render_template("render_spec/_a_partial") + end + + it "fails when the wrong template is rendered" do + post 'some_action' + lambda do + should render_template('non_existent_template') + end.should fail_with(/expected \"non_existent_template\", got \"render_spec\/some_action(\.html\.erb)?\"/) + end + + it "fails when redirected" do + post :action_with_redirect + lambda do + should render_template(:some_action) + end.should fail_with(/expected \"some_action\", got redirected to \"http:\/\/test.host\/render_spec\/some_action\"/) + end + + it "fails when template is associated with a different controller but controller is not specified" do + post 'action_which_renders_template_from_other_controller' + lambda do + should render_template('action_with_template') + end.should fail_with(/expected \"action_with_template\", got \"controller_spec\/action_with_template(\.html\.erb)?\"/) + end + + it "fails with incorrect full path when template is associated with a different controller" do + post 'action_which_renders_template_from_other_controller' + lambda do + should render_template('render_spec/action_with_template') + end.should fail_with(/expected \"render_spec\/action_with_template\", got \"controller_spec\/action_with_template(\.html\.erb)?\"/) + end + + it "fails on the wrong extension" do + get 'some_action' + lambda { + should render_template('render_spec/some_action.js.rjs') + }.should fail_with(/expected \"render_spec\/some_action\.js\.rjs\", got \"render_spec\/some_action(\.html\.erb)?\"/) + end + + it "faild when TEXT is rendered" do + post 'text_action' + lambda do + should render_template('some_action') + end.should fail_with(/expected \"some_action\", got (nil|\"\")/) + end + + describe "with an alternate layout" do + it "says it rendered the action's layout" do + pending("record rendering of layouts") do + get 'action_with_alternate_layout' + should render_template('layouts/simple') + end + end + end + + it "provides a description" do + render_template("foo/bar").description.should == %q|render template "foo/bar"| + end + end + + describe "#{subject_method}.should_not render_template (in #{mode} mode)", + :type => :controller do + controller_name :render_spec + if mode == 'integration' + integrate_views + end + + subject { send(subject_method) } + + it "passes when the action renders nothing" do + post 'action_that_renders_nothing' + should_not render_template('action_that_renders_nothing') + end + + it "passes when the action renders nothing (symbol)" do + post 'action_that_renders_nothing' + should_not render_template(:action_that_renders_nothing) + end + + it "passes when the action does not render the template" do + post 'some_action' + should_not render_template('some_other_template') + end + + it "passes when the action does not render the template (symbol)" do + post 'some_action' + should_not render_template(:some_other_template) + end + + it "passes when the action does not render the template (named with controller)" do + post 'some_action' + should_not render_template('render_spec/some_other_template') + end + + it "passes when the action renders the template with a different controller" do + post 'action_which_renders_template_from_other_controller' + should_not render_template('action_with_template') + end + + it "passes when the action renders the template (named with controller) with a different controller" do + post 'action_which_renders_template_from_other_controller' + should_not render_template('render_spec/action_with_template') + end + + it "passes when TEXT is rendered" do + post 'text_action' + should_not render_template('some_action') + end + + it "fails when the action renders the template" do + post 'some_action' + lambda do + should_not render_template('some_action') + end.should fail_with("expected not to render \"some_action\", but did") + end + + it "fails when the action renders the template (symbol)" do + post 'some_action' + lambda do + should_not render_template(:some_action) + end.should fail_with("expected not to render \"some_action\", but did") + end + + it "fails when the action renders the template (named with controller)" do + post 'some_action' + lambda do + should_not render_template('render_spec/some_action') + end.should fail_with("expected not to render \"render_spec/some_action\", but did") + end + + it "fails when the action renders the partial" do + post 'action_with_partial' + lambda do + should_not render_template('_a_partial') + end.should fail_with("expected not to render \"_a_partial\", but did") + end + + it "fails when the action renders the partial (named with controller)" do + post 'action_with_partial' + lambda do + should_not render_template('render_spec/_a_partial') + end.should fail_with("expected not to render \"render_spec/_a_partial\", but did") + end + + end + end +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/matchers/should_change_spec.rb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/matchers/should_change_spec.rb new file mode 100644 index 0000000..3043352 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/matchers/should_change_spec.rb @@ -0,0 +1,15 @@ +require 'spec_helper' + +describe "should change" do + describe "handling association proxies" do + it "should match expected collection with proxied collection" do + person = Person.create!(:name => 'David') + koala = person.animals.create!(:name => 'Koala') + zebra = person.animals.create!(:name => 'Zebra') + + lambda { + person.animals.delete(koala) + }.should change{person.animals}.to([zebra]) + end + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/mocks/ar_classes.rb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/mocks/ar_classes.rb new file mode 100644 index 0000000..0521302 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/mocks/ar_classes.rb @@ -0,0 +1,10 @@ +class MockableModel < ActiveRecord::Base + has_one :associated_model +end + +class SubMockableModel < MockableModel +end + +class AssociatedModel < ActiveRecord::Base + belongs_to :mockable_model +end diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/mocks/mock_model_spec.rb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/mocks/mock_model_spec.rb new file mode 100644 index 0000000..6a1221e --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/mocks/mock_model_spec.rb @@ -0,0 +1,106 @@ +require 'spec_helper' +require File.dirname(__FILE__) + '/ar_classes' + +describe "mock_model" do + describe "responding to interrogation" do + before(:each) do + @model = mock_model(SubMockableModel) + end + it "should say it is_a? if it is" do + @model.is_a?(SubMockableModel).should be(true) + end + it "should say it is_a? if it's ancestor is" do + @model.is_a?(MockableModel).should be(true) + end + it "should say it is kind_of? if it is" do + @model.kind_of?(SubMockableModel).should be(true) + end + it "should say it is kind_of? if it's ancestor is" do + @model.kind_of?(MockableModel).should be(true) + end + it "should say it is instance_of? if it is" do + @model.instance_of?(SubMockableModel).should be(true) + end + it "should not say it instance_of? if it isn't, even if it's ancestor is" do + @model.instance_of?(MockableModel).should be(false) + end + end + + describe "with params" do + it "should not mutate its parameters" do + params = {:a => 'b'} + model = mock_model(MockableModel, params) + params.should == {:a => 'b'} + end + end + + describe "with #id stubbed", :type => :view do + before(:each) do + @model = mock_model(MockableModel, :id => 1) + end + it "should be named using the stubbed id value" do + @model.instance_variable_get(:@name).should == "MockableModel_1" + end + it "should return string of id value for to_param" do + @model.to_param.should == "1" + end + end + + describe "as association", :type => :view do + before(:each) do + @real = AssociatedModel.create! + @mock_model = mock_model(MockableModel) + @real.mockable_model = @mock_model + end + + it "should pass associated_model == mock" do + @mock_model.should == @real.mockable_model + end + + it "should pass mock == associated_model" do + @real.mockable_model.should == @mock_model + end + end + + describe "with :null_object => true", :type => :view do + before(:each) do + @model = mock_model(MockableModel, :null_object => true, :mocked_method => "mocked") + end + + it "should be able to mock methods" do + @model.mocked_method.should == "mocked" + end + it "should return itself to unmocked methods" do + @model.unmocked_method.should equal(@model) + end + end + + describe "#as_null_object", :type => :view do + before(:each) do + @model = mock_model(MockableModel, :mocked_method => "mocked").as_null_object + end + + it "should be able to mock methods" do + @model.mocked_method.should == "mocked" + end + it "should return itself to unmocked methods" do + @model.unmocked_method.should equal(@model) + end + end + + describe "#as_new_record" do + it "should say it is a new record" do + mock_model(MockableModel).as_new_record.should be_new_record + end + + it "should have a nil id" do + mock_model(MockableModel).as_new_record.id.should be(nil) + end + + it "should return nil for #to_param" do + mock_model(MockableModel).as_new_record.to_param.should be(nil) + end + end +end + + diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/mocks/stub_model_spec.rb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/mocks/stub_model_spec.rb new file mode 100644 index 0000000..09b5a21 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/mocks/stub_model_spec.rb @@ -0,0 +1,80 @@ +require 'spec_helper' +require File.dirname(__FILE__) + '/ar_classes' + +describe "stub_model" do + describe "defaults" do + it "should have an id" do + stub_model(MockableModel).id.should be > 0 + end + + it "should say it is not a new record" do + stub_model(MockableModel).should_not be_new_record + end + end + + it "should accept a stub id" do + stub_model(MockableModel, :id => 37).id.should == 37 + end + + it "should say it is a new record when id is set to nil" do + stub_model(MockableModel, :id => nil).should be_new_record + end + + it "should accept any arbitrary stub" do + stub_model(MockableModel, :foo => "bar").foo.should == "bar" + end + + it "should accept a stub for save" do + stub_model(MockableModel, :save => false).save.should be(false) + end + + describe "#as_new_record" do + it "should say it is a new record" do + stub_model(MockableModel).as_new_record.should be_new_record + end + + it "should have a nil id" do + stub_model(MockableModel).as_new_record.id.should be(nil) + end + end + + it "should raise when hitting the db" do + lambda do + model = stub_model(MockableModel, :changed => true, :attributes_with_quotes => {'this' => 'that'}) + model.save + end.should raise_error(Spec::Rails::IllegalDataAccessException, /stubbed models are not allowed to access the database/) + end + + it "should increment the id" do + first = stub_model(MockableModel) + second = stub_model(MockableModel) + second.id.should == (first.id + 1) + end + + describe "as association" do + before(:each) do + @real = AssociatedModel.create! + @stub_model = stub_model(MockableModel) + @real.mockable_model = @stub_model + end + + it "should pass associated_model == mock" do + @stub_model.should == @real.mockable_model + end + + it "should pass mock == associated_model" do + @real.mockable_model.should == @stub_model + end + end + + describe "with a block" do + it "should yield the model" do + model = stub_model(MockableModel) do |block_arg| + @block_arg = block_arg + end + model.should be(@block_arg) + end + end +end + + diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/sample_modified_fixture.rb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/sample_modified_fixture.rb new file mode 100644 index 0000000..5526924 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/sample_modified_fixture.rb @@ -0,0 +1,8 @@ +require 'spec_helper' + +describe "A sample spec", :type => :model do + fixtures :animals + it "should pass" do + animals(:pig).name.should == "Piggy" + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/sample_spec.rb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/sample_spec.rb new file mode 100644 index 0000000..a749cb7 --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/sample_spec.rb @@ -0,0 +1,8 @@ +require 'spec_helper' + +describe "A sample spec", :type => :model do + fixtures :animals + it "should pass" do + animals(:pig).name.should == "Pig" + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/spec_spec.rb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/spec_spec.rb new file mode 100644 index 0000000..1776bac --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec/rails/spec_spec.rb @@ -0,0 +1,11 @@ +require 'spec_helper' + +describe "script/spec file" do + it "should run a spec" do + dir = File.dirname(__FILE__) + output = `#{RAILS_ROOT}/script/spec #{dir}/sample_spec.rb` + unless $?.exitstatus == 0 + flunk "command 'script/spec spec/sample_spec' failed\n#{output}" + end + end +end \ No newline at end of file diff --git a/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec_helper.rb b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec_helper.rb new file mode 100644 index 0000000..b450d8a --- /dev/null +++ b/presidents/vendor/gems/rspec-rails-1.2.9/spec/spec_helper.rb @@ -0,0 +1,78 @@ +$LOAD_PATH.unshift '../rspec/lib' +$LOAD_PATH.unshift '../../../' +$LOAD_PATH.unshift 'spec/resources/controllers' +$LOAD_PATH.unshift 'spec/resources/helpers' + +require '../../../spec/spec_helper' + +require 'spec/resources/controllers/application' +require 'spec/resources/controllers/render_spec_controller' +require 'spec/resources/controllers/controller_spec_controller' +require 'spec/resources/controllers/rjs_spec_controller' +require 'spec/resources/controllers/redirect_spec_controller' +require 'spec/resources/controllers/action_view_base_spec_controller' +require 'spec/resources/helpers/addition_helper' +require 'spec/resources/helpers/explicit_helper' +require 'spec/resources/helpers/more_explicit_helper' +require 'spec/resources/helpers/view_spec_helper' +require 'spec/resources/helpers/plugin_application_helper' +require 'spec/resources/models/animal' +require 'spec/resources/models/person' +require 'spec/resources/models/thing' + +unless ActionController::Routing.controller_paths.include?('spec/resources/controllers') + ActionController::Routing.instance_eval {@possible_controllers = nil} + ActionController::Routing.controller_paths << 'spec/resources/controllers' +end + +module Spec + module Rails + module Example + class ViewExampleGroupController + prepend_view_path 'spec/resources/views' + end + end + end +end + +def fail() + raise_error(Spec::Expectations::ExpectationNotMetError) +end + +def fail_with(message) + raise_error(Spec::Expectations::ExpectationNotMetError,message) +end + +class Proc + def should_pass + lambda { self.call }.should_not raise_error + end +end + +ActionController::Routing::Routes.draw do |map| + map.connect 'action_with_method_restriction', :controller => 'redirect_spec', :action => 'action_with_method_restriction', :conditions => { :method => :get } + map.connect 'action_to_redirect_to_action_with_method_restriction', :controller => 'redirect_spec', :action => 'action_to_redirect_to_action_with_method_restriction' + + map.resources :rspec_on_rails_specs + map.custom_route 'custom_route', :controller => 'custom_route_spec', :action => 'custom_route' + map.connect ':controller/:action/:id' +end + +module HelperMethods + def method_in_module_included_in_configuration + end +end + +module HelperMacros + def accesses_configured_helper_methods + it "has access to methods in modules included in configuration" do + method_in_module_included_in_configuration + end + end +end + +Spec::Runner.configure do |config| + config.include HelperMethods + config.extend HelperMacros +end + diff --git a/presidents/vendor/plugins/usher b/presidents/vendor/plugins/usher new file mode 160000 index 0000000..247c1a9 --- /dev/null +++ b/presidents/vendor/plugins/usher @@ -0,0 +1 @@ +Subproject commit 247c1a9e28d37d6b63fc57ae976c718c2b84af44 diff --git a/presidents/vendor/rails/actionmailer/CHANGELOG b/presidents/vendor/rails/actionmailer/CHANGELOG new file mode 100644 index 0000000..22f3022 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/CHANGELOG @@ -0,0 +1,366 @@ +*2.3.4 (September 4, 2009)* + +* Minor bug fixes. + +*2.3.3 (July 12, 2009)* + +* No changes, just a version bump. + +*2.3.2 [Final] (March 15, 2009)* + +* Fixed that ActionMailer should send correctly formatted Return-Path in MAIL FROM for SMTP #1842 [Matt Jones] + +* Fixed RFC-2045 quoted-printable bug #1421 [squadette] + +* Fixed that no body charset would be set when there are attachments present #740 [Paweł Kondzior] + + +*2.2.1 [RC2] (November 14th, 2008)* + +* Turn on STARTTLS if it is available in Net::SMTP (added in Ruby 1.8.7) and the SMTP server supports it (This is required for Gmail's SMTP server) #1336 [Grant Hollingworth] + + +*2.2.0 [RC1] (October 24th, 2008)* + +* Add layout functionality to mailers [Pratik Naik] + + Mailer layouts behaves just like controller layouts, except layout names need to + have '_mailer' postfix for them to be automatically picked up. + + +*2.1.0 (May 31st, 2008)* + +* Fixed that a return-path header would be ignored #7572 [joost] + +* Less verbose mail logging: just recipients for :info log level; the whole email for :debug only. #8000 [iaddict, Tarmo Tänav] + +* Updated TMail to version 1.2.1 [Mikel Lindsaar] + +* Fixed that you don't have to call super in ActionMailer::TestCase#setup #10406 [jamesgolick] + + +*2.0.2* (December 16th, 2007) + +* Included in Rails 2.0.2 + + +*2.0.1* (December 7th, 2007) + +* Update ActionMailer so it treats ActionView the same way that ActionController does. Closes #10244 [Rick Olson] + + * Pass the template_root as an array as ActionView's view_path + * Request templates with the "#{mailer_name}/#{action}" as opposed to just "#{action}" + +* Fixed that partials would be broken when using text.plain.erb as the extension #10130 [java] + +* Update README to use new smtp settings configuration API. Closes #10060 [psq] + +* Allow ActionMailer subclasses to individually set their delivery method (so two subclasses can have different delivery methods) #10033 [Zach Dennis] + +* Update TMail to v1.1.0. Use an updated version of TMail if available. [Mikel Lindsaar] + +* Introduce a new base test class for testing Mailers. ActionMailer::TestCase [Michael Koziarski] + +* Fix silent failure of rxml templates. #9879 [jstewart] + +* Fix attachment decoding when using the TMail C extension. #7861 [orangechicken] + +* Increase mail delivery test coverage. #8692 [Kamal Fariz Mahyuddin] + +* Register alternative template engines using ActionMailer::Base.register_template_extension('haml'). #7534 [cwd, Josh Peek] + +* Only load ActionController::UrlWriter if ActionController is present [Rick Olson] + +* Make sure parsed emails recognized attachments nested inside multipart parts. #6714 [Jamis Buck] + +* Allow mailer actions named send by using __send__ internally. #6467 [iGEL] + +* Add assert_emails and assert_no_emails to test the number of emails delivered. #6479 [Jonathan Viney] + # Assert total number of emails delivered: + assert_emails 0 + ContactMailer.deliver_contact + assert_emails 1 + + # Assert number of emails delivered within a block: + assert_emails 1 do + post :signup, :name => 'Jonathan' + end + + +*1.3.3* (March 12th, 2007) + +* Depend on Action Pack 1.13.3 + + +*1.3.2* (February 5th, 2007) + +* Deprecate server_settings renaming it to smtp_settings, add sendmail_settings to allow you to override the arguments to and location of the sendmail executable. [Michael Koziarski] + + +*1.3.1* (January 16th, 2007) + +* Depend on Action Pack 1.13.1 + + +*1.3.0* (January 16th, 2007) + +* Make mime version default to 1.0. closes #2323 [ror@andreas-s.net] + +* Make sure quoted-printable text is decoded correctly when only portions of the text are encoded. closes #3154. [jon@siliconcircus.com] + +* Make sure DOS newlines in quoted-printable text are normalized to unix newlines before unquoting. closes #4166 and #4452. [Jamis Buck] + +* Fixed that iconv decoding should catch InvalidEncoding #3153 [jon@siliconcircus.com] + +* Tighten rescue clauses. #5985 [james@grayproductions.net] + +* Automatically included ActionController::UrlWriter, such that URL generation can happen within ActionMailer controllers. [David Heinemeier Hansson] + +* Replace Reloadable with Reloadable::Deprecated. [Nicholas Seckar] + +* Mailer template root applies to a class and its subclasses rather than acting globally. #5555 [somekool@gmail.com] + +* Resolve action naming collision. #5520 [ssinghi@kreeti.com] + +* ActionMailer::Base documentation rewrite. Closes #4991 [Kevin Clark, Marcel Molina Jr.] + +* Replace alias method chaining with Module#alias_method_chain. [Marcel Molina Jr.] + +* Replace Ruby's deprecated append_features in favor of included. [Marcel Molina Jr.] + +* Correct spurious documentation example code which results in a SyntaxError. [Marcel Molina Jr.] + + +*1.2.1* (April 6th, 2006) + +* Be part of Rails 1.1.1 + + +*1.2.0* (March 27th, 2006) + +* Nil charset caused subject line to be improperly quoted in implicitly multipart messages #2662 [ehalvorsen+rails@runbox.com] + +* Parse content-type apart before using it so that sub-parts of the header can be set correctly #2918 [Jamis Buck] + +* Make custom headers work in subparts #4034 [elan@bluemandrill.com] + +* Template paths with dot chars in them no longer mess up implicit template selection for multipart messages #3332 [Chad Fowler] + +* Make sure anything with content-disposition of "attachment" is passed to the attachment presenter when parsing an email body [Jamis Buck] + +* Make sure TMail#attachments includes anything with content-disposition of "attachment", regardless of content-type [Jamis Buck] + + +*1.1.5* (December 13th, 2005) + +* Become part of Rails 1.0 + + +*1.1.4* (December 7th, 2005) + +* Rename Version constant to VERSION. #2802 [Marcel Molina Jr.] + +* Stricter matching for implicitly multipart filenames excludes files ending in unsupported extensions (such as foo.rhtml.bak) and without a two-part content type (such as foo.text.rhtml or foo.text.really.plain.rhtml). #2398 [Dave Burt , Jeremy Kemper] + + +*1.1.3* (November 7th, 2005) + +* Allow Mailers to have custom initialize methods that set default instance variables for all mail actions #2563 [mrj@bigpond.net.au] + + +*1.1.2* (October 26th, 2005) + +* Upgraded to Action Pack 1.10.2 + + +*1.1.1* (October 19th, 2005) + +* Upgraded to Action Pack 1.10.1 + + +*1.1.0* (October 16th, 2005) + +* Update and extend documentation (rdoc) + +* Minero Aoki made TMail available to Rails/ActionMailer under the MIT license (instead of LGPL) [RubyConf '05] + +* Austin Ziegler made Text::Simple available to Rails/ActionMailer under a MIT-like licens [See rails ML, subject "Text::Format Licence Exception" on Oct 15, 2005] + +* Fix vendor require paths to prevent files being required twice + +* Don't add charset to content-type header for a part that contains subparts (for AOL compatibility) #2013 [John Long] + +* Preserve underscores when unquoting message bodies #1930 + +* Encode multibyte characters correctly #1894 + +* Multipart messages specify a MIME-Version header automatically #2003 [John Long] + +* Add a unified render method to ActionMailer (delegates to ActionView::Base#render) + +* Move mailer initialization to a separate (overridable) method, so that subclasses may alter the various defaults #1727 + +* Look at content-location header (if available) to determine filename of attachments #1670 + +* ActionMailer::Base.deliver(email) had been accidentally removed, but was documented in the Rails book #1849 + +* Fix problem with sendmail delivery where headers should be delimited by \n characters instead of \r\n, which confuses some mail readers #1742 [Kent Sibilev] + + +*1.0.1* (11 July, 2005) + +* Bind to Action Pack 1.9.1 + + +*1.0.0* (6 July, 2005) + +* Avoid adding nil header values #1392 + +* Better multipart support with implicit multipart/alternative and sorting of subparts [John Long] + +* Allow for nested parts in multipart mails #1570 [Flurin Egger] + +* Normalize line endings in outgoing mail bodies to "\n" #1536 [John Long] + +* Allow template to be explicitly specified #1448 [tuxie@dekadance.se] + +* Allow specific "multipart/xxx" content-type to be set on multipart messages #1412 [Flurin Egger] + +* Unquoted @ characters in headers are now accepted in spite of RFC 822 #1206 + +* Helper support (borrowed from ActionPack) + +* Silently ignore Errno::EINVAL errors when converting text. + +* Don't cause an error when parsing an encoded attachment name #1340 [lon@speedymac.com] + +* Nested multipart message parts are correctly processed in TMail::Mail#body + +* BCC headers are removed when sending via SMTP #1402 + +* Added 'content_type' accessor, to allow content type to be set on a per-message basis. content_type defaults to "text/plain". + +* Silently ignore Iconv::IllegalSequence errors when converting text #1341 [lon@speedymac.com] + +* Support attachments and multipart messages. + +* Added new accessors for the various mail properties. + +* Fix to only perform the charset conversion if a 'from' and a 'to' charset are given (make no assumptions about what the charset was) #1276 [Jamis Buck] + +* Fix attachments and content-type problems #1276 [Jamis Buck] + +* Fixed the TMail#body method to look at the content-transfer-encoding header and unquote the body according to the rules it specifies #1265 [Jamis Buck] + +* Added unquoting even if the iconv lib can't be loaded--in that case, only the charset conversion is skipped #1265 [Jamis Buck] + +* Added automatic decoding of base64 bodies #1214 [Jamis Buck] + +* Added that delivery errors are caught in a way so the mail is still returned whether the delivery was successful or not + +* Fixed that email address like "Jamis Buck, M.D." would cause the quoter to generate emails resulting in "bad address" errors from the mail server #1220 [Jamis Buck] + + +*0.9.1* (20th April, 2005) + +* Depend on Action Pack 1.8.1 + + +*0.9.0* (19th April, 2005) + +* Added that deliver_* will now return the email that was sent + +* Added that quoting to UTF-8 only happens if the characters used are in that range #955 [Jamis Buck] + +* Fixed quoting for all address headers, not just to #955 [Jamis Buck] + +* Fixed unquoting of emails that doesn't have an explicit charset #1036 [wolfgang@stufenlos.net] + + +*0.8.1* (27th March, 2005) + +* Fixed that if charset was found that the end of a mime part declaration TMail would throw an error #919 [lon@speedymac.com] + +* Fixed that TMail::Unquoter would fail to recognize quoting method if it was in lowercase #919 [lon@speedymac.com] + +* Fixed that TMail::Encoder would fail when it attempts to parse e-mail addresses which are encoded using something other than the messages encoding method #919 [lon@speedymac.com] + +* Added rescue for missing iconv library and throws warnings if subject/body is called on a TMail object without it instead + + +*0.8.0* (22th March, 2005) + +* Added framework support for processing incoming emails with an Action Mailer class. See example in README. + + +*0.7.1* (7th March, 2005) + +* Bind to newest Action Pack (1.5.1) + + +*0.7.0* (24th February, 2005) + +* Added support for charsets for both subject and body. The default charset is now UTF-8 #673 [Jamis Buck]. Examples: + + def iso_charset(recipient) + @recipients = recipient + @subject = "testing iso charsets" + @from = "system@loudthinking.com" + @body = "Nothing to see here." + @charset = "iso-8859-1" + end + + def unencoded_subject(recipient) + @recipients = recipient + @subject = "testing unencoded subject" + @from = "system@loudthinking.com" + @body = "Nothing to see here." + @encode_subject = false + @charset = "iso-8859-1" + end + + +*0.6.1* (January 18th, 2005) + +* Fixed sending of emails to use Tmail#from not the deprecated Tmail#from_address + + +*0.6* (January 17th, 2005) + +* Fixed that bcc and cc should be settable through @bcc and @cc -- not just @headers["Bcc"] and @headers["Cc"] #453 [Eric Hodel] + +* Fixed Action Mailer to be "warnings safe" so you can run with ruby -w and not get framework warnings #453 [Eric Hodel] + + +*0.5* + +* Added access to custom headers, like cc, bcc, and reply-to #268 [Andreas Schwarz]. Example: + + def post_notification(recipients, post) + @recipients = recipients + @from = post.author.email_address_with_name + @headers["bcc"] = SYSTEM_ADMINISTRATOR_EMAIL + @headers["reply-to"] = "notifications@example.com" + @subject = "[#{post.account.name} #{post.title}]" + @body["post"] = post + end + +*0.4* (5) + +* Consolidated the server configuration options into Base#server_settings= and expanded that with controls for authentication and more [Marten] + NOTE: This is an API change that could potentially break your application if you used the old application form. Please do change! + +* Added Base#deliveries as an accessor for an array of emails sent out through that ActionMailer class when using the :test delivery option. [Jeremy Kemper] + +* Added Base#perform_deliveries= which can be set to false to turn off the actual delivery of the email through smtp or sendmail. + This is especially useful for functional testing that shouldn't send off real emails, but still trigger delivery_* methods. + +* Added option to specify delivery method with Base#delivery_method=. Default is :smtp and :sendmail is currently the only other option. + Sendmail is assumed to be present at "/usr/sbin/sendmail" if that option is used. [Kent Sibilev] + +* Dropped "include TMail" as it added to much baggage into the default namespace (like Version) [Chad Fowler] + + +*0.3* + +* First release diff --git a/presidents/vendor/rails/actionmailer/MIT-LICENSE b/presidents/vendor/rails/actionmailer/MIT-LICENSE new file mode 100644 index 0000000..e7accc5 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/MIT-LICENSE @@ -0,0 +1,21 @@ +Copyright (c) 2004-2009 David Heinemeier Hansson + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + diff --git a/presidents/vendor/rails/actionmailer/README b/presidents/vendor/rails/actionmailer/README new file mode 100644 index 0000000..0e16ea6 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/README @@ -0,0 +1,149 @@ += Action Mailer -- Easy email delivery and testing + +Action Mailer is a framework for designing email-service layers. These layers +are used to consolidate code for sending out forgotten passwords, welcome +wishes on signup, invoices for billing, and any other use case that requires +a written notification to either a person or another system. + +Additionally, an Action Mailer class can be used to process incoming email, +such as allowing a weblog to accept new posts from an email (which could even +have been sent from a phone). + +== Sending emails + +The framework works by setting up all the email details, except the body, +in methods on the service layer. Subject, recipients, sender, and timestamp +are all set up this way. An example of such a method: + + def signed_up(recipient) + recipients recipient + subject "[Signed up] Welcome #{recipient}" + from "system@loudthinking.com" + body :recipient => recipient + end + +The body of the email is created by using an Action View template (regular +ERb) that has the content of the body hash parameter available as instance variables. +So the corresponding body template for the method above could look like this: + + Hello there, + + Mr. <%= @recipient %> + +And if the recipient was given as "david@loudthinking.com", the email +generated would look like this: + + Date: Sun, 12 Dec 2004 00:00:00 +0100 + From: system@loudthinking.com + To: david@loudthinking.com + Subject: [Signed up] Welcome david@loudthinking.com + + Hello there, + + Mr. david@loudthinking.com + +You never actually call the instance methods like signed_up directly. Instead, +you call class methods like deliver_* and create_* that are automatically +created for each instance method. So if the signed_up method sat on +ApplicationMailer, it would look like this: + + ApplicationMailer.create_signed_up("david@loudthinking.com") # => tmail object for testing + ApplicationMailer.deliver_signed_up("david@loudthinking.com") # sends the email + ApplicationMailer.new.signed_up("david@loudthinking.com") # won't work! + +== Receiving emails + +To receive emails, you need to implement a public instance method called receive that takes a +tmail object as its single parameter. The Action Mailer framework has a corresponding class method, +which is also called receive, that accepts a raw, unprocessed email as a string, which it then turns +into the tmail object and calls the receive instance method. + +Example: + + class Mailman < ActionMailer::Base + def receive(email) + page = Page.find_by_address(email.to.first) + page.emails.create( + :subject => email.subject, :body => email.body + ) + + if email.has_attachments? + for attachment in email.attachments + page.attachments.create({ + :file => attachment, :description => email.subject + }) + end + end + end + end + +This Mailman can be the target for Postfix or other MTAs. In Rails, you would use the runner in the +trivial case like this: + + ./script/runner 'Mailman.receive(STDIN.read)' + +However, invoking Rails in the runner for each mail to be received is very resource intensive. A single +instance of Rails should be run within a daemon if it is going to be utilized to process more than just +a limited number of email. + +== Configuration + +The Base class has the full list of configuration options. Here's an example: + + ActionMailer::Base.smtp_settings = { + :address => 'smtp.yourserver.com', # default: localhost + :port => '25', # default: 25 + :user_name => 'user', + :password => 'pass', + :authentication => :plain # :plain, :login or :cram_md5 + } + +== Dependencies + +Action Mailer requires that the Action Pack is either available to be required immediately +or is accessible as a GEM. + + +== Bundled software + +* tmail 0.10.8 by Minero Aoki released under LGPL + Read more on http://i.loveruby.net/en/prog/tmail.html + +* Text::Format 0.63 by Austin Ziegler released under OpenSource + Read more on http://www.halostatue.ca/ruby/Text__Format.html + + +== Download + +The latest version of Action Mailer can be found at + +* http://rubyforge.org/project/showfiles.php?group_id=361 + +Documentation can be found at + +* http://actionmailer.rubyonrails.org + + +== Installation + +You can install Action Mailer with the following command. + + % [sudo] ruby install.rb + +from its distribution directory. + + +== License + +Action Mailer is released under the MIT license. + + +== Support + +The Action Mailer homepage is http://www.rubyonrails.org. You can find +the Action Mailer RubyForge page at http://rubyforge.org/projects/actionmailer. +And as Jim from Rake says: + + Feel free to submit commits or feature requests. If you send a patch, + remember to update the corresponding unit tests. If fact, I prefer + new feature to be submitted in the form of new unit tests. diff --git a/presidents/vendor/rails/actionmailer/Rakefile b/presidents/vendor/rails/actionmailer/Rakefile new file mode 100644 index 0000000..6dcb7f4 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/Rakefile @@ -0,0 +1,99 @@ +require 'rubygems' +require 'rake' +require 'rake/testtask' +require 'rake/rdoctask' +require 'rake/packagetask' +require 'rake/gempackagetask' +require File.join(File.dirname(__FILE__), 'lib', 'action_mailer', 'version') + +PKG_BUILD = ENV['PKG_BUILD'] ? '.' + ENV['PKG_BUILD'] : '' +PKG_NAME = 'actionmailer' +PKG_VERSION = ActionMailer::VERSION::STRING + PKG_BUILD +PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}" + +RELEASE_NAME = "REL #{PKG_VERSION}" + +RUBY_FORGE_PROJECT = "actionmailer" +RUBY_FORGE_USER = "webster132" + +desc "Default Task" +task :default => [ :test ] + +# Run the unit tests +Rake::TestTask.new { |t| + t.libs << "test" + t.pattern = 'test/*_test.rb' + t.verbose = true + t.warning = false +} + + +# Generate the RDoc documentation +Rake::RDocTask.new { |rdoc| + rdoc.rdoc_dir = 'doc' + rdoc.title = "Action Mailer -- Easy email delivery and testing" + rdoc.options << '--line-numbers' << '--inline-source' << '-A cattr_accessor=object' + rdoc.options << '--charset' << 'utf-8' + rdoc.template = ENV['template'] ? "#{ENV['template']}.rb" : '../doc/template/horo' + rdoc.rdoc_files.include('README', 'CHANGELOG') + rdoc.rdoc_files.include('lib/action_mailer.rb') + rdoc.rdoc_files.include('lib/action_mailer/*.rb') +} + + +# Create compressed packages +spec = Gem::Specification.new do |s| + s.platform = Gem::Platform::RUBY + s.name = PKG_NAME + s.summary = "Service layer for easy email delivery and testing." + s.description = %q{Makes it trivial to test and deliver emails sent from a single service layer.} + s.version = PKG_VERSION + + s.author = "David Heinemeier Hansson" + s.email = "david@loudthinking.com" + s.rubyforge_project = "actionmailer" + s.homepage = "http://www.rubyonrails.org" + + s.add_dependency('actionpack', '= 2.3.4' + PKG_BUILD) + + s.has_rdoc = true + s.requirements << 'none' + s.require_path = 'lib' + s.autorequire = 'action_mailer' + + s.files = [ "Rakefile", "install.rb", "README", "CHANGELOG", "MIT-LICENSE" ] + s.files = s.files + Dir.glob( "lib/**/*" ).delete_if { |item| item.include?( "\.svn" ) } + s.files = s.files + Dir.glob( "test/**/*" ).delete_if { |item| item.include?( "\.svn" ) } +end + +Rake::GemPackageTask.new(spec) do |p| + p.gem_spec = spec + p.need_tar = true + p.need_zip = true +end + + +desc "Publish the API documentation" +task :pgem => [:package] do + require 'rake/contrib/sshpublisher' + Rake::SshFilePublisher.new("gems.rubyonrails.org", "/u/sites/gems/gems", "pkg", "#{PKG_FILE_NAME}.gem").upload + `ssh gems.rubyonrails.org '/u/sites/gems/gemupdate.sh'` +end + +desc "Publish the API documentation" +task :pdoc => [:rdoc] do + require 'rake/contrib/sshpublisher' + Rake::SshDirPublisher.new("wrath.rubyonrails.org", "public_html/am", "doc").upload +end + +desc "Publish the release files to RubyForge." +task :release => [ :package ] do + require 'rubyforge' + require 'rake/contrib/rubyforgepublisher' + + packages = %w( gem tgz zip ).collect{ |ext| "pkg/#{PKG_NAME}-#{PKG_VERSION}.#{ext}" } + + rubyforge = RubyForge.new + rubyforge.login + rubyforge.add_release(PKG_NAME, PKG_NAME, "REL #{PKG_VERSION}", *packages) +end diff --git a/presidents/vendor/rails/actionmailer/install.rb b/presidents/vendor/rails/actionmailer/install.rb new file mode 100644 index 0000000..8d7c140 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/install.rb @@ -0,0 +1,30 @@ +require 'rbconfig' +require 'find' +require 'ftools' + +include Config + +# this was adapted from rdoc's install.rb by way of Log4r + +$sitedir = CONFIG["sitelibdir"] +unless $sitedir + version = CONFIG["MAJOR"] + "." + CONFIG["MINOR"] + $libdir = File.join(CONFIG["libdir"], "ruby", version) + $sitedir = $:.find {|x| x =~ /site_ruby/ } + if !$sitedir + $sitedir = File.join($libdir, "site_ruby") + elsif $sitedir !~ Regexp.quote(version) + $sitedir = File.join($sitedir, version) + end +end + +# the actual gruntwork +Dir.chdir("lib") + +Find.find("action_mailer", "action_mailer.rb") { |f| + if f[-3..-1] == ".rb" + File::install(f, File.join($sitedir, *f.split(/\//)), 0644, true) + else + File::makedirs(File.join($sitedir, *f.split(/\//))) + end +} diff --git a/presidents/vendor/rails/actionmailer/lib/action_mailer.rb b/presidents/vendor/rails/actionmailer/lib/action_mailer.rb new file mode 100644 index 0000000..02c536c --- /dev/null +++ b/presidents/vendor/rails/actionmailer/lib/action_mailer.rb @@ -0,0 +1,62 @@ +#-- +# Copyright (c) 2004-2009 David Heinemeier Hansson +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +#++ + +begin + require 'action_controller' +rescue LoadError + actionpack_path = "#{File.dirname(__FILE__)}/../../actionpack/lib" + if File.directory?(actionpack_path) + $:.unshift actionpack_path + require 'action_controller' + end +end + +require 'action_view' + +module ActionMailer + def self.load_all! + [Base, Part, ::Text::Format, ::Net::SMTP] + end + + autoload :AdvAttrAccessor, 'action_mailer/adv_attr_accessor' + autoload :Base, 'action_mailer/base' + autoload :Helpers, 'action_mailer/helpers' + autoload :Part, 'action_mailer/part' + autoload :PartContainer, 'action_mailer/part_container' + autoload :Quoting, 'action_mailer/quoting' + autoload :TestCase, 'action_mailer/test_case' + autoload :TestHelper, 'action_mailer/test_helper' + autoload :Utils, 'action_mailer/utils' +end + +module Text + autoload :Format, 'action_mailer/vendor/text_format' +end + +module Net + autoload :SMTP, 'net/smtp' +end + +autoload :MailHelper, 'action_mailer/mail_helper' + +require 'action_mailer/vendor/tmail' diff --git a/presidents/vendor/rails/actionmailer/lib/action_mailer/adv_attr_accessor.rb b/presidents/vendor/rails/actionmailer/lib/action_mailer/adv_attr_accessor.rb new file mode 100644 index 0000000..e77029a --- /dev/null +++ b/presidents/vendor/rails/actionmailer/lib/action_mailer/adv_attr_accessor.rb @@ -0,0 +1,30 @@ +module ActionMailer + module AdvAttrAccessor #:nodoc: + def self.included(base) + base.extend(ClassMethods) + end + + module ClassMethods #:nodoc: + def adv_attr_accessor(*names) + names.each do |name| + ivar = "@#{name}" + + define_method("#{name}=") do |value| + instance_variable_set(ivar, value) + end + + define_method(name) do |*parameters| + raise ArgumentError, "expected 0 or 1 parameters" unless parameters.length <= 1 + if parameters.empty? + if instance_variable_names.include?(ivar) + instance_variable_get(ivar) + end + else + instance_variable_set(ivar, parameters.first) + end + end + end + end + end + end +end diff --git a/presidents/vendor/rails/actionmailer/lib/action_mailer/base.rb b/presidents/vendor/rails/actionmailer/lib/action_mailer/base.rb new file mode 100644 index 0000000..84997de --- /dev/null +++ b/presidents/vendor/rails/actionmailer/lib/action_mailer/base.rb @@ -0,0 +1,706 @@ +module ActionMailer #:nodoc: + # Action Mailer allows you to send email from your application using a mailer model and views. + # + # + # = Mailer Models + # + # To use Action Mailer, you need to create a mailer model. + # + # $ script/generate mailer Notifier + # + # The generated model inherits from ActionMailer::Base. Emails are defined by creating methods within the model which are then + # used to set variables to be used in the mail template, to change options on the mail, or + # to add attachments. + # + # Examples: + # + # class Notifier < ActionMailer::Base + # def signup_notification(recipient) + # recipients recipient.email_address_with_name + # bcc ["bcc@example.com", "Order Watcher "] + # from "system@example.com" + # subject "New account information" + # body :account => recipient + # end + # end + # + # Mailer methods have the following configuration methods available. + # + # * recipients - Takes one or more email addresses. These addresses are where your email will be delivered to. Sets the To: header. + # * subject - The subject of your email. Sets the Subject: header. + # * from - Who the email you are sending is from. Sets the From: header. + # * cc - Takes one or more email addresses. These addresses will receive a carbon copy of your email. Sets the Cc: header. + # * bcc - Takes one or more email addresses. These addresses will receive a blind carbon copy of your email. Sets the Bcc: header. + # * reply_to - Takes one or more email addresses. These addresses will be listed as the default recipients when replying to your email. Sets the Reply-To: header. + # * sent_on - The date on which the message was sent. If not set, the header wil be set by the delivery agent. + # * content_type - Specify the content type of the message. Defaults to text/plain. + # * headers - Specify additional headers to be set for the message, e.g. headers 'X-Mail-Count' => 107370. + # + # When a headers 'return-path' is specified, that value will be used as the 'envelope from' + # address. Setting this is useful when you want delivery notifications sent to a different address than + # the one in from. + # + # The body method has special behavior. It takes a hash which generates an instance variable + # named after each key in the hash containing the value that that key points to. + # + # So, for example, body :account => recipient would result + # in an instance variable @account with the value of recipient being accessible in the + # view. + # + # + # = Mailer views + # + # Like Action Controller, each mailer class has a corresponding view directory + # in which each method of the class looks for a template with its name. + # To define a template to be used with a mailing, create an .erb file with the same name as the method + # in your mailer model. For example, in the mailer defined above, the template at + # app/views/notifier/signup_notification.erb would be used to generate the email. + # + # Variables defined in the model are accessible as instance variables in the view. + # + # Emails by default are sent in plain text, so a sample view for our model example might look like this: + # + # Hi <%= @account.name %>, + # Thanks for joining our service! Please check back often. + # + # You can even use Action Pack helpers in these views. For example: + # + # You got a new note! + # <%= truncate(note.body, 25) %> + # + # + # = Generating URLs + # + # URLs can be generated in mailer views using url_for or named routes. + # Unlike controllers from Action Pack, the mailer instance doesn't have any context about the incoming request, + # so you'll need to provide all of the details needed to generate a URL. + # + # When using url_for you'll need to provide the :host, :controller, and :action: + # + # <%= url_for(:host => "example.com", :controller => "welcome", :action => "greeting") %> + # + # When using named routes you only need to supply the :host: + # + # <%= users_url(:host => "example.com") %> + # + # You will want to avoid using the name_of_route_path form of named routes because it doesn't make sense to + # generate relative URLs in email messages. + # + # It is also possible to set a default host that will be used in all mailers by setting the :host option in + # the ActionMailer::Base.default_url_options hash as follows: + # + # ActionMailer::Base.default_url_options[:host] = "example.com" + # + # This can also be set as a configuration option in config/environment.rb: + # + # config.action_mailer.default_url_options = { :host => "example.com" } + # + # If you do decide to set a default :host for your mailers you will want to use the + # :only_path => false option when using url_for. This will ensure that absolute URLs are generated because + # the url_for view helper will, by default, generate relative URLs when a :host option isn't + # explicitly provided. + # + # = Sending mail + # + # Once a mailer action and template are defined, you can deliver your message or create it and save it + # for delivery later: + # + # Notifier.deliver_signup_notification(david) # sends the email + # mail = Notifier.create_signup_notification(david) # => a tmail object + # Notifier.deliver(mail) + # + # You never instantiate your mailer class. Rather, your delivery instance + # methods are automatically wrapped in class methods that start with the word + # deliver_ followed by the name of the mailer method that you would + # like to deliver. The signup_notification method defined above is + # delivered by invoking Notifier.deliver_signup_notification. + # + # + # = HTML email + # + # To send mail as HTML, make sure your view (the .erb file) generates HTML and + # set the content type to html. + # + # class MyMailer < ActionMailer::Base + # def signup_notification(recipient) + # recipients recipient.email_address_with_name + # subject "New account information" + # from "system@example.com" + # body :account => recipient + # content_type "text/html" + # end + # end + # + # + # = Multipart email + # + # You can explicitly specify multipart messages: + # + # class ApplicationMailer < ActionMailer::Base + # def signup_notification(recipient) + # recipients recipient.email_address_with_name + # subject "New account information" + # from "system@example.com" + # content_type "multipart/alternative" + # + # part :content_type => "text/html", + # :body => render_message("signup-as-html", :account => recipient) + # + # part "text/plain" do |p| + # p.body = render_message("signup-as-plain", :account => recipient) + # p.transfer_encoding = "base64" + # end + # end + # end + # + # Multipart messages can also be used implicitly because Action Mailer will automatically + # detect and use multipart templates, where each template is named after the name of the action, followed + # by the content type. Each such detected template will be added as separate part to the message. + # + # For example, if the following templates existed: + # * signup_notification.text.plain.erb + # * signup_notification.text.html.erb + # * signup_notification.text.xml.builder + # * signup_notification.text.x-yaml.erb + # + # Each would be rendered and added as a separate part to the message, + # with the corresponding content type. The content type for the entire + # message is automatically set to multipart/alternative, which indicates + # that the email contains multiple different representations of the same email + # body. The same body hash is passed to each template. + # + # Implicit template rendering is not performed if any attachments or parts have been added to the email. + # This means that you'll have to manually add each part to the email and set the content type of the email + # to multipart/alternative. + # + # = Attachments + # + # Attachments can be added by using the +attachment+ method. + # + # Example: + # + # class ApplicationMailer < ActionMailer::Base + # # attachments + # def signup_notification(recipient) + # recipients recipient.email_address_with_name + # subject "New account information" + # from "system@example.com" + # + # attachment :content_type => "image/jpeg", + # :body => File.read("an-image.jpg") + # + # attachment "application/pdf" do |a| + # a.body = generate_your_pdf_here() + # end + # end + # end + # + # + # = Configuration options + # + # These options are specified on the class level, like ActionMailer::Base.template_root = "/my/templates" + # + # * template_root - Determines the base from which template references will be made. + # + # * logger - the logger is used for generating information on the mailing run if available. + # Can be set to nil for no logging. Compatible with both Ruby's own Logger and Log4r loggers. + # + # * smtp_settings - Allows detailed configuration for :smtp delivery method: + # * :address - Allows you to use a remote mail server. Just change it from its default "localhost" setting. + # * :port - On the off chance that your mail server doesn't run on port 25, you can change it. + # * :domain - If you need to specify a HELO domain, you can do it here. + # * :user_name - If your mail server requires authentication, set the username in this setting. + # * :password - If your mail server requires authentication, set the password in this setting. + # * :authentication - If your mail server requires authentication, you need to specify the authentication type here. + # This is a symbol and one of :plain, :login, :cram_md5. + # * :enable_starttls_auto - When set to true, detects if STARTTLS is enabled in your SMTP server and starts to use it. + # It works only on Ruby >= 1.8.7 and Ruby >= 1.9. Default is true. + # + # * sendmail_settings - Allows you to override options for the :sendmail delivery method. + # * :location - The location of the sendmail executable. Defaults to /usr/sbin/sendmail. + # * :arguments - The command line arguments. Defaults to -i -t. + # + # * raise_delivery_errors - Whether or not errors should be raised if the email fails to be delivered. + # + # * delivery_method - Defines a delivery method. Possible values are :smtp (default), :sendmail, and :test. + # + # * perform_deliveries - Determines whether deliver_* methods are actually carried out. By default they are, + # but this can be turned off to help functional testing. + # + # * deliveries - Keeps an array of all the emails sent out through the Action Mailer with delivery_method :test. Most useful + # for unit and functional testing. + # + # * default_charset - The default charset used for the body and to encode the subject. Defaults to UTF-8. You can also + # pick a different charset from inside a method with +charset+. + # + # * default_content_type - The default content type used for the main part of the message. Defaults to "text/plain". You + # can also pick a different content type from inside a method with +content_type+. + # + # * default_mime_version - The default mime version used for the message. Defaults to 1.0. You + # can also pick a different value from inside a method with +mime_version+. + # + # * default_implicit_parts_order - When a message is built implicitly (i.e. multiple parts are assembled from templates + # which specify the content type in their filenames) this variable controls how the parts are ordered. Defaults to + # ["text/html", "text/enriched", "text/plain"]. Items that appear first in the array have higher priority in the mail client + # and appear last in the mime encoded message. You can also pick a different order from inside a method with + # +implicit_parts_order+. + class Base + include AdvAttrAccessor, PartContainer, Quoting, Utils + if Object.const_defined?(:ActionController) + include ActionController::UrlWriter + include ActionController::Layout + end + + private_class_method :new #:nodoc: + + class_inheritable_accessor :view_paths + self.view_paths = [] + + cattr_accessor :logger + + @@smtp_settings = { + :address => "localhost", + :port => 25, + :domain => 'localhost.localdomain', + :user_name => nil, + :password => nil, + :authentication => nil, + :enable_starttls_auto => true, + } + cattr_accessor :smtp_settings + + @@sendmail_settings = { + :location => '/usr/sbin/sendmail', + :arguments => '-i -t' + } + cattr_accessor :sendmail_settings + + @@raise_delivery_errors = true + cattr_accessor :raise_delivery_errors + + superclass_delegating_accessor :delivery_method + self.delivery_method = :smtp + + @@perform_deliveries = true + cattr_accessor :perform_deliveries + + @@deliveries = [] + cattr_accessor :deliveries + + @@default_charset = "utf-8" + cattr_accessor :default_charset + + @@default_content_type = "text/plain" + cattr_accessor :default_content_type + + @@default_mime_version = "1.0" + cattr_accessor :default_mime_version + + @@default_implicit_parts_order = [ "text/html", "text/enriched", "text/plain" ] + cattr_accessor :default_implicit_parts_order + + cattr_reader :protected_instance_variables + @@protected_instance_variables = %w(@body) + + # Specify the BCC addresses for the message + adv_attr_accessor :bcc + + # Define the body of the message. This is either a Hash (in which case it + # specifies the variables to pass to the template when it is rendered), + # or a string, in which case it specifies the actual text of the message. + adv_attr_accessor :body + + # Specify the CC addresses for the message. + adv_attr_accessor :cc + + # Specify the charset to use for the message. This defaults to the + # +default_charset+ specified for ActionMailer::Base. + adv_attr_accessor :charset + + # Specify the content type for the message. This defaults to text/plain + # in most cases, but can be automatically set in some situations. + adv_attr_accessor :content_type + + # Specify the from address for the message. + adv_attr_accessor :from + + # Specify the address (if different than the "from" address) to direct + # replies to this message. + adv_attr_accessor :reply_to + + # Specify additional headers to be added to the message. + adv_attr_accessor :headers + + # Specify the order in which parts should be sorted, based on content-type. + # This defaults to the value for the +default_implicit_parts_order+. + adv_attr_accessor :implicit_parts_order + + # Defaults to "1.0", but may be explicitly given if needed. + adv_attr_accessor :mime_version + + # The recipient addresses for the message, either as a string (for a single + # address) or an array (for multiple addresses). + adv_attr_accessor :recipients + + # The date on which the message was sent. If not set (the default), the + # header will be set by the delivery agent. + adv_attr_accessor :sent_on + + # Specify the subject of the message. + adv_attr_accessor :subject + + # Specify the template name to use for current message. This is the "base" + # template name, without the extension or directory, and may be used to + # have multiple mailer methods share the same template. + adv_attr_accessor :template + + # Override the mailer name, which defaults to an inflected version of the + # mailer's class name. If you want to use a template in a non-standard + # location, you can use this to specify that location. + def mailer_name(value = nil) + if value + self.mailer_name = value + else + self.class.mailer_name + end + end + + def mailer_name=(value) + self.class.mailer_name = value + end + + # The mail object instance referenced by this mailer. + attr_reader :mail + attr_reader :template_name, :default_template_name, :action_name + + class << self + attr_writer :mailer_name + + def mailer_name + @mailer_name ||= name.underscore + end + + # for ActionView compatibility + alias_method :controller_name, :mailer_name + alias_method :controller_path, :mailer_name + + def respond_to?(method_symbol, include_private = false) #:nodoc: + matches_dynamic_method?(method_symbol) || super + end + + def method_missing(method_symbol, *parameters) #:nodoc: + if match = matches_dynamic_method?(method_symbol) + case match[1] + when 'create' then new(match[2], *parameters).mail + when 'deliver' then new(match[2], *parameters).deliver! + when 'new' then nil + else super + end + else + super + end + end + + # Receives a raw email, parses it into an email object, decodes it, + # instantiates a new mailer, and passes the email object to the mailer + # object's +receive+ method. If you want your mailer to be able to + # process incoming messages, you'll need to implement a +receive+ + # method that accepts the email object as a parameter: + # + # class MyMailer < ActionMailer::Base + # def receive(mail) + # ... + # end + # end + def receive(raw_email) + logger.info "Received mail:\n #{raw_email}" unless logger.nil? + mail = TMail::Mail.parse(raw_email) + mail.base64_decode + new.receive(mail) + end + + # Deliver the given mail object directly. This can be used to deliver + # a preconstructed mail object, like: + # + # email = MyMailer.create_some_mail(parameters) + # email.set_some_obscure_header "frobnicate" + # MyMailer.deliver(email) + def deliver(mail) + new.deliver!(mail) + end + + def template_root + self.view_paths && self.view_paths.first + end + + def template_root=(root) + self.view_paths = ActionView::Base.process_view_paths(root) + end + + private + def matches_dynamic_method?(method_name) #:nodoc: + method_name = method_name.to_s + /^(create|deliver)_([_a-z]\w*)/.match(method_name) || /^(new)$/.match(method_name) + end + end + + # Instantiate a new mailer object. If +method_name+ is not +nil+, the mailer + # will be initialized according to the named method. If not, the mailer will + # remain uninitialized (useful when you only need to invoke the "receive" + # method, for instance). + def initialize(method_name=nil, *parameters) #:nodoc: + create!(method_name, *parameters) if method_name + end + + # Initialize the mailer via the given +method_name+. The body will be + # rendered and a new TMail::Mail object created. + def create!(method_name, *parameters) #:nodoc: + initialize_defaults(method_name) + __send__(method_name, *parameters) + + # If an explicit, textual body has not been set, we check assumptions. + unless String === @body + # First, we look to see if there are any likely templates that match, + # which include the content-type in their file name (i.e., + # "the_template_file.text.html.erb", etc.). Only do this if parts + # have not already been specified manually. + if @parts.empty? + Dir.glob("#{template_path}/#{@template}.*").each do |path| + template = template_root["#{mailer_name}/#{File.basename(path)}"] + + # Skip unless template has a multipart format + next unless template && template.multipart? + + @parts << Part.new( + :content_type => template.content_type, + :disposition => "inline", + :charset => charset, + :body => render_message(template, @body) + ) + end + unless @parts.empty? + @content_type = "multipart/alternative" if @content_type !~ /^multipart/ + @parts = sort_parts(@parts, @implicit_parts_order) + end + end + + # Then, if there were such templates, we check to see if we ought to + # also render a "normal" template (without the content type). If a + # normal template exists (or if there were no implicit parts) we render + # it. + template_exists = @parts.empty? + template_exists ||= template_root["#{mailer_name}/#{@template}"] + @body = render_message(@template, @body) if template_exists + + # Finally, if there are other message parts and a textual body exists, + # we shift it onto the front of the parts and set the body to nil (so + # that create_mail doesn't try to render it in addition to the parts). + if !@parts.empty? && String === @body + @parts.unshift Part.new(:charset => charset, :body => @body) + @body = nil + end + end + + # If this is a multipart e-mail add the mime_version if it is not + # already set. + @mime_version ||= "1.0" if !@parts.empty? + + # build the mail object itself + @mail = create_mail + end + + # Delivers a TMail::Mail object. By default, it delivers the cached mail + # object (from the create! method). If no cached mail object exists, and + # no alternate has been given as the parameter, this will fail. + def deliver!(mail = @mail) + raise "no mail object available for delivery!" unless mail + unless logger.nil? + logger.info "Sent mail to #{Array(recipients).join(', ')}" + logger.debug "\n#{mail.encoded}" + end + + begin + __send__("perform_delivery_#{delivery_method}", mail) if perform_deliveries + rescue Exception => e # Net::SMTP errors or sendmail pipe errors + raise e if raise_delivery_errors + end + + return mail + end + + private + # Set up the default values for the various instance variables of this + # mailer. Subclasses may override this method to provide different + # defaults. + def initialize_defaults(method_name) + @charset ||= @@default_charset.dup + @content_type ||= @@default_content_type.dup + @implicit_parts_order ||= @@default_implicit_parts_order.dup + @template ||= method_name + @default_template_name = @action_name = @template + @mailer_name ||= self.class.name.underscore + @parts ||= [] + @headers ||= {} + @body ||= {} + @mime_version = @@default_mime_version.dup if @@default_mime_version + @sent_on ||= Time.now + end + + def render_message(method_name, body) + if method_name.respond_to?(:content_type) + @current_template_content_type = method_name.content_type + end + render :file => method_name, :body => body + ensure + @current_template_content_type = nil + end + + def render(opts) + body = opts.delete(:body) + if opts[:file] && (opts[:file] !~ /\// && !opts[:file].respond_to?(:render)) + opts[:file] = "#{mailer_name}/#{opts[:file]}" + end + + begin + old_template, @template = @template, initialize_template_class(body) + layout = respond_to?(:pick_layout, true) ? pick_layout(opts) : false + @template.render(opts.merge(:layout => layout)) + ensure + @template = old_template + end + end + + def default_template_format + if @current_template_content_type + Mime::Type.lookup(@current_template_content_type).to_sym + else + :html + end + end + + def candidate_for_layout?(options) + !self.view_paths.find_template(default_template_name, default_template_format).exempt_from_layout? + rescue ActionView::MissingTemplate + return true + end + + def template_root + self.class.template_root + end + + def template_root=(root) + self.class.template_root = root + end + + def template_path + "#{template_root}/#{mailer_name}" + end + + def initialize_template_class(assigns) + template = ActionView::Base.new(self.class.view_paths, assigns, self) + template.template_format = default_template_format + template + end + + def sort_parts(parts, order = []) + order = order.collect { |s| s.downcase } + + parts = parts.sort do |a, b| + a_ct = a.content_type.downcase + b_ct = b.content_type.downcase + + a_in = order.include? a_ct + b_in = order.include? b_ct + + s = case + when a_in && b_in + order.index(a_ct) <=> order.index(b_ct) + when a_in + -1 + when b_in + 1 + else + a_ct <=> b_ct + end + + # reverse the ordering because parts that come last are displayed + # first in mail clients + (s * -1) + end + + parts + end + + def create_mail + m = TMail::Mail.new + + m.subject, = quote_any_if_necessary(charset, subject) + m.to, m.from = quote_any_address_if_necessary(charset, recipients, from) + m.bcc = quote_address_if_necessary(bcc, charset) unless bcc.nil? + m.cc = quote_address_if_necessary(cc, charset) unless cc.nil? + m.reply_to = quote_address_if_necessary(reply_to, charset) unless reply_to.nil? + m.mime_version = mime_version unless mime_version.nil? + m.date = sent_on.to_time rescue sent_on if sent_on + + headers.each { |k, v| m[k] = v } + + real_content_type, ctype_attrs = parse_content_type + + if @parts.empty? + m.set_content_type(real_content_type, nil, ctype_attrs) + m.body = normalize_new_lines(body) + else + if String === body + part = TMail::Mail.new + part.body = normalize_new_lines(body) + part.set_content_type(real_content_type, nil, ctype_attrs) + part.set_content_disposition "inline" + m.parts << part + end + + @parts.each do |p| + part = (TMail::Mail === p ? p : p.to_mail(self)) + m.parts << part + end + + if real_content_type =~ /multipart/ + ctype_attrs.delete "charset" + m.set_content_type(real_content_type, nil, ctype_attrs) + end + end + + @mail = m + end + + def perform_delivery_smtp(mail) + destinations = mail.destinations + mail.ready_to_send + sender = (mail['return-path'] && mail['return-path'].spec) || mail['from'] + + smtp = Net::SMTP.new(smtp_settings[:address], smtp_settings[:port]) + smtp.enable_starttls_auto if smtp_settings[:enable_starttls_auto] && smtp.respond_to?(:enable_starttls_auto) + smtp.start(smtp_settings[:domain], smtp_settings[:user_name], smtp_settings[:password], + smtp_settings[:authentication]) do |smtp| + smtp.sendmail(mail.encoded, sender, destinations) + end + end + + def perform_delivery_sendmail(mail) + sendmail_args = sendmail_settings[:arguments] + sendmail_args += " -f \"#{mail['return-path']}\"" if mail['return-path'] + IO.popen("#{sendmail_settings[:location]} #{sendmail_args}","w+") do |sm| + sm.print(mail.encoded.gsub(/\r/, '')) + sm.flush + end + end + + def perform_delivery_test(mail) + deliveries << mail + end + end + + Base.class_eval do + include Helpers + helper MailHelper + end +end diff --git a/presidents/vendor/rails/actionmailer/lib/action_mailer/helpers.rb b/presidents/vendor/rails/actionmailer/lib/action_mailer/helpers.rb new file mode 100644 index 0000000..31f7de8 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/lib/action_mailer/helpers.rb @@ -0,0 +1,113 @@ +require 'active_support/dependencies' + +module ActionMailer + module Helpers #:nodoc: + def self.included(base) #:nodoc: + # Initialize the base module to aggregate its helpers. + base.class_inheritable_accessor :master_helper_module + base.master_helper_module = Module.new + + # Extend base with class methods to declare helpers. + base.extend(ClassMethods) + + base.class_eval do + # Wrap inherited to create a new master helper module for subclasses. + class << self + alias_method_chain :inherited, :helper + end + + # Wrap initialize_template_class to extend new template class + # instances with the master helper module. + alias_method_chain :initialize_template_class, :helper + end + end + + module ClassMethods + # Makes all the (instance) methods in the helper module available to templates rendered through this controller. + # See ActionView::Helpers (link:classes/ActionView/Helpers.html) for more about making your own helper modules + # available to the templates. + def add_template_helper(helper_module) #:nodoc: + master_helper_module.module_eval "include #{helper_module}" + end + + # Declare a helper: + # helper :foo + # requires 'foo_helper' and includes FooHelper in the template class. + # helper FooHelper + # includes FooHelper in the template class. + # helper { def foo() "#{bar} is the very best" end } + # evaluates the block in the template class, adding method +foo+. + # helper(:three, BlindHelper) { def mice() 'mice' end } + # does all three. + def helper(*args, &block) + args.flatten.each do |arg| + case arg + when Module + add_template_helper(arg) + when String, Symbol + file_name = arg.to_s.underscore + '_helper' + class_name = file_name.camelize + + begin + require_dependency(file_name) + rescue LoadError => load_error + requiree = / -- (.*?)(\.rb)?$/.match(load_error.message).to_a[1] + msg = (requiree == file_name) ? "Missing helper file helpers/#{file_name}.rb" : "Can't load file: #{requiree}" + raise LoadError.new(msg).copy_blame!(load_error) + end + + add_template_helper(class_name.constantize) + else + raise ArgumentError, 'helper expects String, Symbol, or Module argument' + end + end + + # Evaluate block in template class if given. + master_helper_module.module_eval(&block) if block_given? + end + + # Declare a controller method as a helper. For example, + # helper_method :link_to + # def link_to(name, options) ... end + # makes the link_to controller method available in the view. + def helper_method(*methods) + methods.flatten.each do |method| + master_helper_module.module_eval <<-end_eval + def #{method}(*args, &block) + controller.__send__(%(#{method}), *args, &block) + end + end_eval + end + end + + # Declare a controller attribute as a helper. For example, + # helper_attr :name + # attr_accessor :name + # makes the name and name= controller methods available in the view. + # The is a convenience wrapper for helper_method. + def helper_attr(*attrs) + attrs.flatten.each { |attr| helper_method(attr, "#{attr}=") } + end + + private + def inherited_with_helper(child) + inherited_without_helper(child) + begin + child.master_helper_module = Module.new + child.master_helper_module.__send__(:include, master_helper_module) + child.helper child.name.to_s.underscore + rescue MissingSourceFile => e + raise unless e.is_missing?("helpers/#{child.name.to_s.underscore}_helper") + end + end + end + + private + # Extend the template class instance with our controller's helper module. + def initialize_template_class_with_helper(assigns) + returning(template = initialize_template_class_without_helper(assigns)) do + template.extend self.class.master_helper_module + end + end + end +end diff --git a/presidents/vendor/rails/actionmailer/lib/action_mailer/mail_helper.rb b/presidents/vendor/rails/actionmailer/lib/action_mailer/mail_helper.rb new file mode 100644 index 0000000..351b966 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/lib/action_mailer/mail_helper.rb @@ -0,0 +1,17 @@ +module MailHelper + # Uses Text::Format to take the text and format it, indented two spaces for + # each line, and wrapped at 72 columns. + def block_format(text) + formatted = text.split(/\n\r\n/).collect { |paragraph| + Text::Format.new( + :columns => 72, :first_indent => 2, :body_indent => 2, :text => paragraph + ).format + }.join("\n") + + # Make list points stand on their own line + formatted.gsub!(/[ ]*([*]+) ([^*]*)/) { |s| " #{$1} #{$2.strip}\n" } + formatted.gsub!(/[ ]*([#]+) ([^#]*)/) { |s| " #{$1} #{$2.strip}\n" } + + formatted + end +end diff --git a/presidents/vendor/rails/actionmailer/lib/action_mailer/part.rb b/presidents/vendor/rails/actionmailer/lib/action_mailer/part.rb new file mode 100644 index 0000000..2bbb59c --- /dev/null +++ b/presidents/vendor/rails/actionmailer/lib/action_mailer/part.rb @@ -0,0 +1,107 @@ +module ActionMailer + # Represents a subpart of an email message. It shares many similar + # attributes of ActionMailer::Base. Although you can create parts manually + # and add them to the +parts+ list of the mailer, it is easier + # to use the helper methods in ActionMailer::PartContainer. + class Part + include AdvAttrAccessor, PartContainer, Utils + + # Represents the body of the part, as a string. This should not be a + # Hash (like ActionMailer::Base), but if you want a template to be rendered + # into the body of a subpart you can do it with the mailer's +render+ method + # and assign the result here. + adv_attr_accessor :body + + # Specify the charset for this subpart. By default, it will be the charset + # of the containing part or mailer. + adv_attr_accessor :charset + + # The content disposition of this part, typically either "inline" or + # "attachment". + adv_attr_accessor :content_disposition + + # The content type of the part. + adv_attr_accessor :content_type + + # The filename to use for this subpart (usually for attachments). + adv_attr_accessor :filename + + # Accessor for specifying additional headers to include with this part. + adv_attr_accessor :headers + + # The transfer encoding to use for this subpart, like "base64" or + # "quoted-printable". + adv_attr_accessor :transfer_encoding + + # Create a new part from the given +params+ hash. The valid params keys + # correspond to the accessors. + def initialize(params) + @content_type = params[:content_type] + @content_disposition = params[:disposition] || "inline" + @charset = params[:charset] + @body = params[:body] + @filename = params[:filename] + @transfer_encoding = params[:transfer_encoding] || "quoted-printable" + @headers = params[:headers] || {} + @parts = [] + end + + # Convert the part to a mail object which can be included in the parts + # list of another mail object. + def to_mail(defaults) + part = TMail::Mail.new + + real_content_type, ctype_attrs = parse_content_type(defaults) + + if @parts.empty? + part.content_transfer_encoding = transfer_encoding || "quoted-printable" + case (transfer_encoding || "").downcase + when "base64" then + part.body = TMail::Base64.folding_encode(body) + when "quoted-printable" + part.body = [normalize_new_lines(body)].pack("M*") + else + part.body = body + end + + # Always set the content_type after setting the body and or parts! + # Also don't set filename and name when there is none (like in + # non-attachment parts) + if content_disposition == "attachment" + ctype_attrs.delete "charset" + part.set_content_type(real_content_type, nil, + squish("name" => filename).merge(ctype_attrs)) + part.set_content_disposition(content_disposition, + squish("filename" => filename).merge(ctype_attrs)) + else + part.set_content_type(real_content_type, nil, ctype_attrs) + part.set_content_disposition(content_disposition) + end + else + if String === body + @parts.unshift Part.new(:charset => charset, :body => @body, :content_type => 'text/plain') + @body = nil + end + + @parts.each do |p| + prt = (TMail::Mail === p ? p : p.to_mail(defaults)) + part.parts << prt + end + + if real_content_type =~ /multipart/ + ctype_attrs.delete 'charset' + part.set_content_type(real_content_type, nil, ctype_attrs) + end + end + + headers.each { |k,v| part[k] = v } + + part + end + + private + def squish(values={}) + values.delete_if { |k,v| v.nil? } + end + end +end diff --git a/presidents/vendor/rails/actionmailer/lib/action_mailer/part_container.rb b/presidents/vendor/rails/actionmailer/lib/action_mailer/part_container.rb new file mode 100644 index 0000000..abfd8f8 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/lib/action_mailer/part_container.rb @@ -0,0 +1,55 @@ +module ActionMailer + # Accessors and helpers that ActionMailer::Base and ActionMailer::Part have + # in common. Using these helpers you can easily add subparts or attachments + # to your message: + # + # def my_mail_message(...) + # ... + # part "text/plain" do |p| + # p.body "hello, world" + # p.transfer_encoding "base64" + # end + # + # attachment "image/jpg" do |a| + # a.body = File.read("hello.jpg") + # a.filename = "hello.jpg" + # end + # end + module PartContainer + # The list of subparts of this container + attr_reader :parts + + # Add a part to a multipart message, with the given content-type. The + # part itself is yielded to the block so that other properties (charset, + # body, headers, etc.) can be set on it. + def part(params) + params = {:content_type => params} if String === params + part = Part.new(params) + yield part if block_given? + @parts << part + end + + # Add an attachment to a multipart message. This is simply a part with the + # content-disposition set to "attachment". + def attachment(params, &block) + params = { :content_type => params } if String === params + params = { :disposition => "attachment", + :transfer_encoding => "base64" }.merge(params) + part(params, &block) + end + + private + + def parse_content_type(defaults=nil) + if content_type.blank? + return defaults ? + [ defaults.content_type, { 'charset' => defaults.charset } ] : + [ nil, {} ] + end + ctype, *attrs = content_type.split(/;\s*/) + attrs = attrs.inject({}) { |h,s| k,v = s.split(/=/, 2); h[k] = v; h } + [ctype, {"charset" => charset || defaults && defaults.charset}.merge(attrs)] + end + + end +end diff --git a/presidents/vendor/rails/actionmailer/lib/action_mailer/quoting.rb b/presidents/vendor/rails/actionmailer/lib/action_mailer/quoting.rb new file mode 100644 index 0000000..94fa042 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/lib/action_mailer/quoting.rb @@ -0,0 +1,61 @@ +module ActionMailer + module Quoting #:nodoc: + # Convert the given text into quoted printable format, with an instruction + # that the text be eventually interpreted in the given charset. + def quoted_printable(text, charset) + text = text.gsub( /[^a-z ]/i ) { quoted_printable_encode($&) }. + gsub( / /, "_" ) + "=?#{charset}?Q?#{text}?=" + end + + # Convert the given character to quoted printable format, taking into + # account multi-byte characters (if executing with $KCODE="u", for instance) + def quoted_printable_encode(character) + result = "" + character.each_byte { |b| result << "=%02X" % b } + result + end + + # A quick-and-dirty regexp for determining whether a string contains any + # characters that need escaping. + if !defined?(CHARS_NEEDING_QUOTING) + CHARS_NEEDING_QUOTING = /[\000-\011\013\014\016-\037\177-\377]/ + end + + # Quote the given text if it contains any "illegal" characters + def quote_if_necessary(text, charset) + text = text.dup.force_encoding(Encoding::ASCII_8BIT) if text.respond_to?(:force_encoding) + + (text =~ CHARS_NEEDING_QUOTING) ? + quoted_printable(text, charset) : + text + end + + # Quote any of the given strings if they contain any "illegal" characters + def quote_any_if_necessary(charset, *args) + args.map { |v| quote_if_necessary(v, charset) } + end + + # Quote the given address if it needs to be. The address may be a + # regular email address, or it can be a phrase followed by an address in + # brackets. The phrase is the only part that will be quoted, and only if + # it needs to be. This allows extended characters to be used in the + # "to", "from", "cc", "bcc" and "reply-to" headers. + def quote_address_if_necessary(address, charset) + if Array === address + address.map { |a| quote_address_if_necessary(a, charset) } + elsif address =~ /^(\S.*)\s+(<.*>)$/ + address = $2 + phrase = quote_if_necessary($1.gsub(/^['"](.*)['"]$/, '\1'), charset) + "\"#{phrase}\" #{address}" + else + address + end + end + + # Quote any of the given addresses, if they need to be. + def quote_any_address_if_necessary(charset, *args) + args.map { |v| quote_address_if_necessary(v, charset) } + end + end +end diff --git a/presidents/vendor/rails/actionmailer/lib/action_mailer/test_case.rb b/presidents/vendor/rails/actionmailer/lib/action_mailer/test_case.rb new file mode 100644 index 0000000..8035db6 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/lib/action_mailer/test_case.rb @@ -0,0 +1,64 @@ +require 'active_support/test_case' + +module ActionMailer + class NonInferrableMailerError < ::StandardError + def initialize(name) + super "Unable to determine the mailer to test from #{name}. " + + "You'll need to specify it using tests YourMailer in your " + + "test case definition" + end + end + + class TestCase < ActiveSupport::TestCase + include Quoting, TestHelper + + setup :initialize_test_deliveries + setup :set_expected_mail + + class << self + def tests(mailer) + write_inheritable_attribute(:mailer_class, mailer) + end + + def mailer_class + if mailer = read_inheritable_attribute(:mailer_class) + mailer + else + tests determine_default_mailer(name) + end + end + + def determine_default_mailer(name) + name.sub(/Test$/, '').constantize + rescue NameError => e + raise NonInferrableMailerError.new(name) + end + end + + protected + def initialize_test_deliveries + ActionMailer::Base.delivery_method = :test + ActionMailer::Base.perform_deliveries = true + ActionMailer::Base.deliveries = [] + end + + def set_expected_mail + @expected = TMail::Mail.new + @expected.set_content_type "text", "plain", { "charset" => charset } + @expected.mime_version = '1.0' + end + + private + def charset + "utf-8" + end + + def encode(subject) + quoted_printable(subject, charset) + end + + def read_fixture(action) + IO.readlines(File.join(RAILS_ROOT, 'test', 'fixtures', self.class.mailer_class.name.underscore, action)) + end + end +end diff --git a/presidents/vendor/rails/actionmailer/lib/action_mailer/test_helper.rb b/presidents/vendor/rails/actionmailer/lib/action_mailer/test_helper.rb new file mode 100644 index 0000000..f234c02 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/lib/action_mailer/test_helper.rb @@ -0,0 +1,68 @@ +module ActionMailer + module TestHelper + # Asserts that the number of emails sent matches the given number. + # + # def test_emails + # assert_emails 0 + # ContactMailer.deliver_contact + # assert_emails 1 + # ContactMailer.deliver_contact + # assert_emails 2 + # end + # + # If a block is passed, that block should cause the specified number of emails to be sent. + # + # def test_emails_again + # assert_emails 1 do + # ContactMailer.deliver_contact + # end + # + # assert_emails 2 do + # ContactMailer.deliver_contact + # ContactMailer.deliver_contact + # end + # end + def assert_emails(number) + if block_given? + original_count = ActionMailer::Base.deliveries.size + yield + new_count = ActionMailer::Base.deliveries.size + assert_equal original_count + number, new_count, "#{number} emails expected, but #{new_count - original_count} were sent" + else + assert_equal number, ActionMailer::Base.deliveries.size + end + end + + # Assert that no emails have been sent. + # + # def test_emails + # assert_no_emails + # ContactMailer.deliver_contact + # assert_emails 1 + # end + # + # If a block is passed, that block should not cause any emails to be sent. + # + # def test_emails_again + # assert_no_emails do + # # No emails should be sent from this block + # end + # end + # + # Note: This assertion is simply a shortcut for: + # + # assert_emails 0 + def assert_no_emails(&block) + assert_emails 0, &block + end + end +end + +# TODO: Deprecate this +module Test + module Unit + class TestCase + include ActionMailer::TestHelper + end + end +end diff --git a/presidents/vendor/rails/actionmailer/lib/action_mailer/utils.rb b/presidents/vendor/rails/actionmailer/lib/action_mailer/utils.rb new file mode 100644 index 0000000..26d2e60 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/lib/action_mailer/utils.rb @@ -0,0 +1,7 @@ +module ActionMailer + module Utils #:nodoc: + def normalize_new_lines(text) + text.to_s.gsub(/\r\n?/, "\n") + end + end +end diff --git a/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/text-format-0.6.3/text/format.rb b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/text-format-0.6.3/text/format.rb new file mode 100755 index 0000000..2d20c7a --- /dev/null +++ b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/text-format-0.6.3/text/format.rb @@ -0,0 +1,1466 @@ +#-- +# Text::Format for Ruby +# Version 0.63 +# +# Copyright (c) 2002 - 2003 Austin Ziegler +# +# $Id: format.rb,v 1.1.1.1 2004/10/14 11:59:57 webster132 Exp $ +# +# ========================================================================== +# Revision History :: +# YYYY.MM.DD Change ID Developer +# Description +# -------------------------------------------------------------------------- +# 2002.10.18 Austin Ziegler +# Fixed a minor problem with tabs not being counted. Changed +# abbreviations from Hash to Array to better suit Ruby's +# capabilities. Fixed problems with the way that Array arguments +# are handled in calls to the major object types, excepting in +# Text::Format#expand and Text::Format#unexpand (these will +# probably need to be fixed). +# 2002.10.30 Austin Ziegler +# Fixed the ordering of the <=> for binary tests. Fixed +# Text::Format#expand and Text::Format#unexpand to handle array +# arguments better. +# 2003.01.24 Austin Ziegler +# Fixed a problem with Text::Format::RIGHT_FILL handling where a +# single word is larger than #columns. Removed Comparable +# capabilities (<=> doesn't make sense; == does). Added Symbol +# equivalents for the Hash initialization. Hash initialization has +# been modified so that values are set as follows (Symbols are +# highest priority; strings are middle; defaults are lowest): +# @columns = arg[:columns] || arg['columns'] || @columns +# Added #hard_margins, #split_rules, #hyphenator, and #split_words. +# 2003.02.07 Austin Ziegler +# Fixed the installer for proper case-sensitive handling. +# 2003.03.28 Austin Ziegler +# Added the ability for a hyphenator to receive the formatter +# object. Fixed a bug for strings matching /\A\s*\Z/ failing +# entirely. Fixed a test case failing under 1.6.8. +# 2003.04.04 Austin Ziegler +# Handle the case of hyphenators returning nil for first/rest. +# 2003.09.17 Austin Ziegler +# Fixed a problem where #paragraphs(" ") was raising +# NoMethodError. +# +# ========================================================================== +#++ + +module Text #:nodoc: + # Text::Format for Ruby is copyright 2002 - 2005 by Austin Ziegler. It + # is available under Ruby's licence, the Perl Artistic licence, or the + # GNU GPL version 2 (or at your option, any later version). As a + # special exception, for use with official Rails (provided by the + # rubyonrails.org development team) and any project created with + # official Rails, the following alternative MIT-style licence may be + # used: + # + # == Text::Format Licence for Rails and Rails Applications + # Permission is hereby granted, free of charge, to any person + # obtaining a copy of this software and associated documentation files + # (the "Software"), to deal in the Software without restriction, + # including without limitation the rights to use, copy, modify, merge, + # publish, distribute, sublicense, and/or sell copies of the Software, + # and to permit persons to whom the Software is furnished to do so, + # subject to the following conditions: + # + # * The names of its contributors may not be used to endorse or + # promote products derived from this software without specific prior + # written permission. + # + # The above copyright notice and this permission notice shall be + # included in all copies or substantial portions of the Software. + # + # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + # BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + # ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + # SOFTWARE. + class Format + VERSION = '0.63' + + # Local abbreviations. More can be added with Text::Format.abbreviations + ABBREV = [ 'Mr', 'Mrs', 'Ms', 'Jr', 'Sr' ] + + # Formatting values + LEFT_ALIGN = 0 + RIGHT_ALIGN = 1 + RIGHT_FILL = 2 + JUSTIFY = 3 + + # Word split modes (only applies when #hard_margins is true). + SPLIT_FIXED = 1 + SPLIT_CONTINUATION = 2 + SPLIT_HYPHENATION = 4 + SPLIT_CONTINUATION_FIXED = SPLIT_CONTINUATION | SPLIT_FIXED + SPLIT_HYPHENATION_FIXED = SPLIT_HYPHENATION | SPLIT_FIXED + SPLIT_HYPHENATION_CONTINUATION = SPLIT_HYPHENATION | SPLIT_CONTINUATION + SPLIT_ALL = SPLIT_HYPHENATION | SPLIT_CONTINUATION | SPLIT_FIXED + + # Words forcibly split by Text::Format will be stored as split words. + # This class represents a word forcibly split. + class SplitWord + # The word that was split. + attr_reader :word + # The first part of the word that was split. + attr_reader :first + # The remainder of the word that was split. + attr_reader :rest + + def initialize(word, first, rest) #:nodoc: + @word = word + @first = first + @rest = rest + end + end + + private + LEQ_RE = /[.?!]['"]?$/ + + def brk_re(i) #:nodoc: + %r/((?:\S+\s+){#{i}})(.+)/ + end + + def posint(p) #:nodoc: + p.to_i.abs + end + + public + # Compares two Text::Format objects. All settings of the objects are + # compared *except* #hyphenator. Generated results (e.g., #split_words) + # are not compared, either. + def ==(o) + (@text == o.text) && + (@columns == o.columns) && + (@left_margin == o.left_margin) && + (@right_margin == o.right_margin) && + (@hard_margins == o.hard_margins) && + (@split_rules == o.split_rules) && + (@first_indent == o.first_indent) && + (@body_indent == o.body_indent) && + (@tag_text == o.tag_text) && + (@tabstop == o.tabstop) && + (@format_style == o.format_style) && + (@extra_space == o.extra_space) && + (@tag_paragraph == o.tag_paragraph) && + (@nobreak == o.nobreak) && + (@abbreviations == o.abbreviations) && + (@nobreak_regex == o.nobreak_regex) + end + + # The text to be manipulated. Note that value is optional, but if the + # formatting functions are called without values, this text is what will + # be formatted. + # + # *Default*:: [] + # Used in:: All methods + attr_accessor :text + + # The total width of the format area. The margins, indentation, and text + # are formatted into this space. + # + # COLUMNS + # <--------------------------------------------------------------> + # <-----------><------><---------------------------><------------> + # left margin indent text is formatted into here right margin + # + # *Default*:: 72 + # Used in:: #format, #paragraphs, + # #center + attr_reader :columns + + # The total width of the format area. The margins, indentation, and text + # are formatted into this space. The value provided is silently + # converted to a positive integer. + # + # COLUMNS + # <--------------------------------------------------------------> + # <-----------><------><---------------------------><------------> + # left margin indent text is formatted into here right margin + # + # *Default*:: 72 + # Used in:: #format, #paragraphs, + # #center + def columns=(c) + @columns = posint(c) + end + + # The number of spaces used for the left margin. + # + # columns + # <--------------------------------------------------------------> + # <-----------><------><---------------------------><------------> + # LEFT MARGIN indent text is formatted into here right margin + # + # *Default*:: 0 + # Used in:: #format, #paragraphs, + # #center + attr_reader :left_margin + + # The number of spaces used for the left margin. The value provided is + # silently converted to a positive integer value. + # + # columns + # <--------------------------------------------------------------> + # <-----------><------><---------------------------><------------> + # LEFT MARGIN indent text is formatted into here right margin + # + # *Default*:: 0 + # Used in:: #format, #paragraphs, + # #center + def left_margin=(left) + @left_margin = posint(left) + end + + # The number of spaces used for the right margin. + # + # columns + # <--------------------------------------------------------------> + # <-----------><------><---------------------------><------------> + # left margin indent text is formatted into here RIGHT MARGIN + # + # *Default*:: 0 + # Used in:: #format, #paragraphs, + # #center + attr_reader :right_margin + + # The number of spaces used for the right margin. The value provided is + # silently converted to a positive integer value. + # + # columns + # <--------------------------------------------------------------> + # <-----------><------><---------------------------><------------> + # left margin indent text is formatted into here RIGHT MARGIN + # + # *Default*:: 0 + # Used in:: #format, #paragraphs, + # #center + def right_margin=(r) + @right_margin = posint(r) + end + + # The number of spaces to indent the first line of a paragraph. + # + # columns + # <--------------------------------------------------------------> + # <-----------><------><---------------------------><------------> + # left margin INDENT text is formatted into here right margin + # + # *Default*:: 4 + # Used in:: #format, #paragraphs + attr_reader :first_indent + + # The number of spaces to indent the first line of a paragraph. The + # value provided is silently converted to a positive integer value. + # + # columns + # <--------------------------------------------------------------> + # <-----------><------><---------------------------><------------> + # left margin INDENT text is formatted into here right margin + # + # *Default*:: 4 + # Used in:: #format, #paragraphs + def first_indent=(f) + @first_indent = posint(f) + end + + # The number of spaces to indent all lines after the first line of a + # paragraph. + # + # columns + # <--------------------------------------------------------------> + # <-----------><------><---------------------------><------------> + # left margin INDENT text is formatted into here right margin + # + # *Default*:: 0 + # Used in:: #format, #paragraphs + attr_reader :body_indent + + # The number of spaces to indent all lines after the first line of + # a paragraph. The value provided is silently converted to a + # positive integer value. + # + # columns + # <--------------------------------------------------------------> + # <-----------><------><---------------------------><------------> + # left margin INDENT text is formatted into here right margin + # + # *Default*:: 0 + # Used in:: #format, #paragraphs + def body_indent=(b) + @body_indent = posint(b) + end + + # Normally, words larger than the format area will be placed on a line + # by themselves. Setting this to +true+ will force words larger than the + # format area to be split into one or more "words" each at most the size + # of the format area. The first line and the original word will be + # placed into #split_words. Note that this will cause the + # output to look *similar* to a #format_style of JUSTIFY. (Lines will be + # filled as much as possible.) + # + # *Default*:: +false+ + # Used in:: #format, #paragraphs + attr_accessor :hard_margins + + # An array of words split during formatting if #hard_margins is set to + # +true+. + # #split_words << Text::Format::SplitWord.new(word, first, rest) + attr_reader :split_words + + # The object responsible for hyphenating. It must respond to + # #hyphenate_to(word, size) or #hyphenate_to(word, size, formatter) and + # return an array of the word split into two parts; if there is a + # hyphenation mark to be applied, responsibility belongs to the + # hyphenator object. The size is the MAXIMUM size permitted, including + # any hyphenation marks. If the #hyphenate_to method has an arity of 3, + # the formatter will be provided to the method. This allows the + # hyphenator to make decisions about the hyphenation based on the + # formatting rules. + # + # *Default*:: +nil+ + # Used in:: #format, #paragraphs + attr_reader :hyphenator + + # The object responsible for hyphenating. It must respond to + # #hyphenate_to(word, size) and return an array of the word hyphenated + # into two parts. The size is the MAXIMUM size permitted, including any + # hyphenation marks. + # + # *Default*:: +nil+ + # Used in:: #format, #paragraphs + def hyphenator=(h) + raise ArgumentError, "#{h.inspect} is not a valid hyphenator." unless h.respond_to?(:hyphenate_to) + arity = h.method(:hyphenate_to).arity + raise ArgumentError, "#{h.inspect} must have exactly two or three arguments." unless [2, 3].include?(arity) + @hyphenator = h + @hyphenator_arity = arity + end + + # Specifies the split mode; used only when #hard_margins is set to + # +true+. Allowable values are: + # [+SPLIT_FIXED+] The word will be split at the number of + # characters needed, with no marking at all. + # repre + # senta + # ion + # [+SPLIT_CONTINUATION+] The word will be split at the number of + # characters needed, with a C-style continuation + # character. If a word is the only item on a + # line and it cannot be split into an + # appropriate size, SPLIT_FIXED will be used. + # repr\ + # esen\ + # tati\ + # on + # [+SPLIT_HYPHENATION+] The word will be split according to the + # hyphenator specified in #hyphenator. If there + # is no #hyphenator specified, works like + # SPLIT_CONTINUATION. The example is using + # TeX::Hyphen. If a word is the only item on a + # line and it cannot be split into an + # appropriate size, SPLIT_CONTINUATION mode will + # be used. + # rep- + # re- + # sen- + # ta- + # tion + # + # *Default*:: Text::Format::SPLIT_FIXED + # Used in:: #format, #paragraphs + attr_reader :split_rules + + # Specifies the split mode; used only when #hard_margins is set to + # +true+. Allowable values are: + # [+SPLIT_FIXED+] The word will be split at the number of + # characters needed, with no marking at all. + # repre + # senta + # ion + # [+SPLIT_CONTINUATION+] The word will be split at the number of + # characters needed, with a C-style continuation + # character. + # repr\ + # esen\ + # tati\ + # on + # [+SPLIT_HYPHENATION+] The word will be split according to the + # hyphenator specified in #hyphenator. If there + # is no #hyphenator specified, works like + # SPLIT_CONTINUATION. The example is using + # TeX::Hyphen as the #hyphenator. + # rep- + # re- + # sen- + # ta- + # tion + # + # These values can be bitwise ORed together (e.g., SPLIT_FIXED | + # SPLIT_CONTINUATION) to provide fallback split methods. In the + # example given, an attempt will be made to split the word using the + # rules of SPLIT_CONTINUATION; if there is not enough room, the word + # will be split with the rules of SPLIT_FIXED. These combinations are + # also available as the following values: + # * +SPLIT_CONTINUATION_FIXED+ + # * +SPLIT_HYPHENATION_FIXED+ + # * +SPLIT_HYPHENATION_CONTINUATION+ + # * +SPLIT_ALL+ + # + # *Default*:: Text::Format::SPLIT_FIXED + # Used in:: #format, #paragraphs + def split_rules=(s) + raise ArgumentError, "Invalid value provided for split_rules." if ((s < SPLIT_FIXED) || (s > SPLIT_ALL)) + @split_rules = s + end + + # Indicates whether sentence terminators should be followed by a single + # space (+false+), or two spaces (+true+). + # + # *Default*:: +false+ + # Used in:: #format, #paragraphs + attr_accessor :extra_space + + # Defines the current abbreviations as an array. This is only used if + # extra_space is turned on. + # + # If one is abbreviating "President" as "Pres." (abbreviations = + # ["Pres"]), then the results of formatting will be as illustrated in + # the table below: + # + # extra_space | include? | !include? + # true | Pres. Lincoln | Pres. Lincoln + # false | Pres. Lincoln | Pres. Lincoln + # + # *Default*:: {} + # Used in:: #format, #paragraphs + attr_accessor :abbreviations + + # Indicates whether the formatting of paragraphs should be done with + # tagged paragraphs. Useful only with #tag_text. + # + # *Default*:: +false+ + # Used in:: #format, #paragraphs + attr_accessor :tag_paragraph + + # The array of text to be placed before each paragraph when + # #tag_paragraph is +true+. When #format() is called, + # only the first element of the array is used. When #paragraphs + # is called, then each entry in the array will be used once, with + # corresponding paragraphs. If the tag elements are exhausted before the + # text is exhausted, then the remaining paragraphs will not be tagged. + # Regardless of indentation settings, a blank line will be inserted + # between all paragraphs when #tag_paragraph is +true+. + # + # *Default*:: [] + # Used in:: #format, #paragraphs + attr_accessor :tag_text + + # Indicates whether or not the non-breaking space feature should be + # used. + # + # *Default*:: +false+ + # Used in:: #format, #paragraphs + attr_accessor :nobreak + + # A hash which holds the regular expressions on which spaces should not + # be broken. The hash is set up such that the key is the first word and + # the value is the second word. + # + # For example, if +nobreak_regex+ contains the following hash: + # + # { '^Mrs?\.$' => '\S+$', '^\S+$' => '^(?:S|J)r\.$'} + # + # Then "Mr. Jones", "Mrs. Jones", and "Jones Jr." would not be broken. + # If this simple matching algorithm indicates that there should not be a + # break at the current end of line, then a backtrack is done until there + # are two words on which line breaking is permitted. If two such words + # are not found, then the end of the line will be broken *regardless*. + # If there is a single word on the current line, then no backtrack is + # done and the word is stuck on the end. + # + # *Default*:: {} + # Used in:: #format, #paragraphs + attr_accessor :nobreak_regex + + # Indicates the number of spaces that a single tab represents. + # + # *Default*:: 8 + # Used in:: #expand, #unexpand, + # #paragraphs + attr_reader :tabstop + + # Indicates the number of spaces that a single tab represents. + # + # *Default*:: 8 + # Used in:: #expand, #unexpand, + # #paragraphs + def tabstop=(t) + @tabstop = posint(t) + end + + # Specifies the format style. Allowable values are: + # [+LEFT_ALIGN+] Left justified, ragged right. + # |A paragraph that is| + # |left aligned.| + # [+RIGHT_ALIGN+] Right justified, ragged left. + # |A paragraph that is| + # | right aligned.| + # [+RIGHT_FILL+] Left justified, right ragged, filled to width by + # spaces. (Essentially the same as +LEFT_ALIGN+ except + # that lines are padded on the right.) + # |A paragraph that is| + # |left aligned. | + # [+JUSTIFY+] Fully justified, words filled to width by spaces, + # except the last line. + # |A paragraph that| + # |is justified.| + # + # *Default*:: Text::Format::LEFT_ALIGN + # Used in:: #format, #paragraphs + attr_reader :format_style + + # Specifies the format style. Allowable values are: + # [+LEFT_ALIGN+] Left justified, ragged right. + # |A paragraph that is| + # |left aligned.| + # [+RIGHT_ALIGN+] Right justified, ragged left. + # |A paragraph that is| + # | right aligned.| + # [+RIGHT_FILL+] Left justified, right ragged, filled to width by + # spaces. (Essentially the same as +LEFT_ALIGN+ except + # that lines are padded on the right.) + # |A paragraph that is| + # |left aligned. | + # [+JUSTIFY+] Fully justified, words filled to width by spaces. + # |A paragraph that| + # |is justified.| + # + # *Default*:: Text::Format::LEFT_ALIGN + # Used in:: #format, #paragraphs + def format_style=(fs) + raise ArgumentError, "Invalid value provided for format_style." if ((fs < LEFT_ALIGN) || (fs > JUSTIFY)) + @format_style = fs + end + + # Indicates that the format style is left alignment. + # + # *Default*:: +true+ + # Used in:: #format, #paragraphs + def left_align? + return @format_style == LEFT_ALIGN + end + + # Indicates that the format style is right alignment. + # + # *Default*:: +false+ + # Used in:: #format, #paragraphs + def right_align? + return @format_style == RIGHT_ALIGN + end + + # Indicates that the format style is right fill. + # + # *Default*:: +false+ + # Used in:: #format, #paragraphs + def right_fill? + return @format_style == RIGHT_FILL + end + + # Indicates that the format style is full justification. + # + # *Default*:: +false+ + # Used in:: #format, #paragraphs + def justify? + return @format_style == JUSTIFY + end + + # The default implementation of #hyphenate_to implements + # SPLIT_CONTINUATION. + def hyphenate_to(word, size) + [word[0 .. (size - 2)] + "\\", word[(size - 1) .. -1]] + end + + private + def __do_split_word(word, size) #:nodoc: + [word[0 .. (size - 1)], word[size .. -1]] + end + + def __format(to_wrap) #:nodoc: + words = to_wrap.split(/\s+/).compact + words.shift if words[0].nil? or words[0].empty? + to_wrap = [] + + abbrev = false + width = @columns - @first_indent - @left_margin - @right_margin + indent_str = ' ' * @first_indent + first_line = true + line = words.shift + abbrev = __is_abbrev(line) unless line.nil? || line.empty? + + while w = words.shift + if (w.size + line.size < (width - 1)) || + ((line !~ LEQ_RE || abbrev) && (w.size + line.size < width)) + line << " " if (line =~ LEQ_RE) && (not abbrev) + line << " #{w}" + else + line, w = __do_break(line, w) if @nobreak + line, w = __do_hyphenate(line, w, width) if @hard_margins + if w.index(/\s+/) + w, *w2 = w.split(/\s+/) + words.unshift(w2) + words.flatten! + end + to_wrap << __make_line(line, indent_str, width, w.nil?) unless line.nil? + if first_line + first_line = false + width = @columns - @body_indent - @left_margin - @right_margin + indent_str = ' ' * @body_indent + end + line = w + end + + abbrev = __is_abbrev(w) unless w.nil? + end + + loop do + break if line.nil? or line.empty? + line, w = __do_hyphenate(line, w, width) if @hard_margins + to_wrap << __make_line(line, indent_str, width, w.nil?) + line = w + end + + if (@tag_paragraph && (to_wrap.size > 0)) then + clr = %r{`(\w+)'}.match([caller(1)].flatten[0])[1] + clr = "" if clr.nil? + + if ((not @tag_text[0].nil?) && (@tag_cur.size < 1) && + (clr != "__paragraphs")) then + @tag_cur = @tag_text[0] + end + + fchar = /(\S)/.match(to_wrap[0])[1] + white = to_wrap[0].index(fchar) + if ((white - @left_margin - 1) > @tag_cur.size) then + white = @tag_cur.size + @left_margin + to_wrap[0].gsub!(/^ {#{white}}/, "#{' ' * @left_margin}#{@tag_cur}") + else + to_wrap.unshift("#{' ' * @left_margin}#{@tag_cur}\n") + end + end + to_wrap.join('') + end + + # format lines in text into paragraphs with each element of @wrap a + # paragraph; uses Text::Format.format for the formatting + def __paragraphs(to_wrap) #:nodoc: + if ((@first_indent == @body_indent) || @tag_paragraph) then + p_end = "\n" + else + p_end = '' + end + + cnt = 0 + ret = [] + to_wrap.each do |tw| + @tag_cur = @tag_text[cnt] if @tag_paragraph + @tag_cur = '' if @tag_cur.nil? + line = __format(tw) + ret << "#{line}#{p_end}" if (not line.nil?) && (line.size > 0) + cnt += 1 + end + + ret[-1].chomp! unless ret.empty? + ret.join('') + end + + # center text using spaces on left side to pad it out empty lines + # are preserved + def __center(to_center) #:nodoc: + tabs = 0 + width = @columns - @left_margin - @right_margin + centered = [] + to_center.each do |tc| + s = tc.strip + tabs = s.count("\t") + tabs = 0 if tabs.nil? + ct = ((width - s.size - (tabs * @tabstop) + tabs) / 2) + ct = (width - @left_margin - @right_margin) - ct + centered << "#{s.rjust(ct)}\n" + end + centered.join('') + end + + # expand tabs to spaces should be similar to Text::Tabs::expand + def __expand(to_expand) #:nodoc: + expanded = [] + to_expand.split("\n").each { |te| expanded << te.gsub(/\t/, ' ' * @tabstop) } + expanded.join('') + end + + def __unexpand(to_unexpand) #:nodoc: + unexpanded = [] + to_unexpand.split("\n").each { |tu| unexpanded << tu.gsub(/ {#{@tabstop}}/, "\t") } + unexpanded.join('') + end + + def __is_abbrev(word) #:nodoc: + # remove period if there is one. + w = word.gsub(/\.$/, '') unless word.nil? + return true if (!@extra_space || ABBREV.include?(w) || @abbreviations.include?(w)) + false + end + + def __make_line(line, indent, width, last = false) #:nodoc: + lmargin = " " * @left_margin + fill = " " * (width - line.size) if right_fill? && (line.size <= width) + + if (justify? && ((not line.nil?) && (not line.empty?)) && line =~ /\S+\s+\S+/ && !last) + spaces = width - line.size + words = line.split(/(\s+)/) + ws = spaces / (words.size / 2) + spaces = spaces % (words.size / 2) if ws > 0 + words.reverse.each do |rw| + next if (rw =~ /^\S/) + rw.sub!(/^/, " " * ws) + next unless (spaces > 0) + rw.sub!(/^/, " ") + spaces -= 1 + end + line = words.join('') + end + line = "#{lmargin}#{indent}#{line}#{fill}\n" unless line.nil? + if right_align? && (not line.nil?) + line.sub(/^/, " " * (@columns - @right_margin - (line.size - 1))) + else + line + end + end + + def __do_hyphenate(line, next_line, width) #:nodoc: + rline = line.dup rescue line + rnext = next_line.dup rescue next_line + loop do + if rline.size == width + break + elsif rline.size > width + words = rline.strip.split(/\s+/) + word = words[-1].dup + size = width - rline.size + word.size + if (size <= 0) + words[-1] = nil + rline = words.join(' ').strip + rnext = "#{word} #{rnext}".strip + next + end + + first = rest = nil + + if ((@split_rules & SPLIT_HYPHENATION) != 0) + if @hyphenator_arity == 2 + first, rest = @hyphenator.hyphenate_to(word, size) + else + first, rest = @hyphenator.hyphenate_to(word, size, self) + end + end + + if ((@split_rules & SPLIT_CONTINUATION) != 0) and first.nil? + first, rest = self.hyphenate_to(word, size) + end + + if ((@split_rules & SPLIT_FIXED) != 0) and first.nil? + first.nil? or @split_rules == SPLIT_FIXED + first, rest = __do_split_word(word, size) + end + + if first.nil? + words[-1] = nil + rest = word + else + words[-1] = first + @split_words << SplitWord.new(word, first, rest) + end + rline = words.join(' ').strip + rnext = "#{rest} #{rnext}".strip + break + else + break if rnext.nil? or rnext.empty? or rline.nil? or rline.empty? + words = rnext.split(/\s+/) + word = words.shift + size = width - rline.size - 1 + + if (size <= 0) + rnext = "#{word} #{words.join(' ')}".strip + break + end + + first = rest = nil + + if ((@split_rules & SPLIT_HYPHENATION) != 0) + if @hyphenator_arity == 2 + first, rest = @hyphenator.hyphenate_to(word, size) + else + first, rest = @hyphenator.hyphenate_to(word, size, self) + end + end + + first, rest = self.hyphenate_to(word, size) if ((@split_rules & SPLIT_CONTINUATION) != 0) and first.nil? + + first, rest = __do_split_word(word, size) if ((@split_rules & SPLIT_FIXED) != 0) and first.nil? + + if (rline.size + (first ? first.size : 0)) < width + @split_words << SplitWord.new(word, first, rest) + rline = "#{rline} #{first}".strip + rnext = "#{rest} #{words.join(' ')}".strip + end + break + end + end + [rline, rnext] + end + + def __do_break(line, next_line) #:nodoc: + no_brk = false + words = [] + words = line.split(/\s+/) unless line.nil? + last_word = words[-1] + + @nobreak_regex.each { |k, v| no_brk = ((last_word =~ /#{k}/) and (next_line =~ /#{v}/)) } + + if no_brk && words.size > 1 + i = words.size + while i > 0 + no_brk = false + @nobreak_regex.each { |k, v| no_brk = ((words[i + 1] =~ /#{k}/) && (words[i] =~ /#{v}/)) } + i -= 1 + break if not no_brk + end + if i > 0 + l = brk_re(i).match(line) + line.sub!(brk_re(i), l[1]) + next_line = "#{l[2]} #{next_line}" + line.sub!(/\s+$/, '') + end + end + [line, next_line] + end + + def __create(arg = nil, &block) #:nodoc: + # Format::Text.new(text-to-wrap) + @text = arg unless arg.nil? + # Defaults + @columns = 72 + @tabstop = 8 + @first_indent = 4 + @body_indent = 0 + @format_style = LEFT_ALIGN + @left_margin = 0 + @right_margin = 0 + @extra_space = false + @text = Array.new if @text.nil? + @tag_paragraph = false + @tag_text = Array.new + @tag_cur = "" + @abbreviations = Array.new + @nobreak = false + @nobreak_regex = Hash.new + @split_words = Array.new + @hard_margins = false + @split_rules = SPLIT_FIXED + @hyphenator = self + @hyphenator_arity = self.method(:hyphenate_to).arity + + instance_eval(&block) unless block.nil? + end + + public + # Formats text into a nice paragraph format. The text is separated + # into words and then reassembled a word at a time using the settings + # of this Format object. If a word is larger than the number of + # columns available for formatting, then that word will appear on the + # line by itself. + # + # If +to_wrap+ is +nil+, then the value of #text will be + # worked on. + def format(to_wrap = nil) + to_wrap = @text if to_wrap.nil? + if to_wrap.class == Array + __format(to_wrap[0]) + else + __format(to_wrap) + end + end + + # Considers each element of text (provided or internal) as a paragraph. + # If #first_indent is the same as #body_indent, then + # paragraphs will be separated by a single empty line in the result; + # otherwise, the paragraphs will follow immediately after each other. + # Uses #format to do the heavy lifting. + def paragraphs(to_wrap = nil) + to_wrap = @text if to_wrap.nil? + __paragraphs([to_wrap].flatten) + end + + # Centers the text, preserving empty lines and tabs. + def center(to_center = nil) + to_center = @text if to_center.nil? + __center([to_center].flatten) + end + + # Replaces all tab characters in the text with #tabstop spaces. + def expand(to_expand = nil) + to_expand = @text if to_expand.nil? + if to_expand.class == Array + to_expand.collect { |te| __expand(te) } + else + __expand(to_expand) + end + end + + # Replaces all occurrences of #tabstop consecutive spaces + # with a tab character. + def unexpand(to_unexpand = nil) + to_unexpand = @text if to_unexpand.nil? + if to_unexpand.class == Array + to_unexpand.collect { |te| v << __unexpand(te) } + else + __unexpand(to_unexpand) + end + end + + # This constructor takes advantage of a technique for Ruby object + # construction introduced by Andy Hunt and Dave Thomas (see reference), + # where optional values are set using commands in a block. + # + # Text::Format.new { + # columns = 72 + # left_margin = 0 + # right_margin = 0 + # first_indent = 4 + # body_indent = 0 + # format_style = Text::Format::LEFT_ALIGN + # extra_space = false + # abbreviations = {} + # tag_paragraph = false + # tag_text = [] + # nobreak = false + # nobreak_regex = {} + # tabstop = 8 + # text = nil + # } + # + # As shown above, +arg+ is optional. If +arg+ is specified and is a + # +String+, then arg is used as the default value of #text. + # Alternately, an existing Text::Format object can be used or a Hash can + # be used. With all forms, a block can be specified. + # + # *Reference*:: "Object Construction and Blocks" + # + # + def initialize(arg = nil, &block) + case arg + when Text::Format + __create(arg.text) do + @columns = arg.columns + @tabstop = arg.tabstop + @first_indent = arg.first_indent + @body_indent = arg.body_indent + @format_style = arg.format_style + @left_margin = arg.left_margin + @right_margin = arg.right_margin + @extra_space = arg.extra_space + @tag_paragraph = arg.tag_paragraph + @tag_text = arg.tag_text + @abbreviations = arg.abbreviations + @nobreak = arg.nobreak + @nobreak_regex = arg.nobreak_regex + @text = arg.text + @hard_margins = arg.hard_margins + @split_words = arg.split_words + @split_rules = arg.split_rules + @hyphenator = arg.hyphenator + end + instance_eval(&block) unless block.nil? + when Hash + __create do + @columns = arg[:columns] || arg['columns'] || @columns + @tabstop = arg[:tabstop] || arg['tabstop'] || @tabstop + @first_indent = arg[:first_indent] || arg['first_indent'] || @first_indent + @body_indent = arg[:body_indent] || arg['body_indent'] || @body_indent + @format_style = arg[:format_style] || arg['format_style'] || @format_style + @left_margin = arg[:left_margin] || arg['left_margin'] || @left_margin + @right_margin = arg[:right_margin] || arg['right_margin'] || @right_margin + @extra_space = arg[:extra_space] || arg['extra_space'] || @extra_space + @text = arg[:text] || arg['text'] || @text + @tag_paragraph = arg[:tag_paragraph] || arg['tag_paragraph'] || @tag_paragraph + @tag_text = arg[:tag_text] || arg['tag_text'] || @tag_text + @abbreviations = arg[:abbreviations] || arg['abbreviations'] || @abbreviations + @nobreak = arg[:nobreak] || arg['nobreak'] || @nobreak + @nobreak_regex = arg[:nobreak_regex] || arg['nobreak_regex'] || @nobreak_regex + @hard_margins = arg[:hard_margins] || arg['hard_margins'] || @hard_margins + @split_rules = arg[:split_rules] || arg['split_rules'] || @split_rules + @hyphenator = arg[:hyphenator] || arg['hyphenator'] || @hyphenator + end + instance_eval(&block) unless block.nil? + when String + __create(arg, &block) + when NilClass + __create(&block) + else + raise TypeError + end + end + end +end + +if __FILE__ == $0 + require 'test/unit' + + class TestText__Format < Test::Unit::TestCase #:nodoc: + attr_accessor :format_o + + GETTYSBURG = <<-'EOS' + Four score and seven years ago our fathers brought forth on this + continent a new nation, conceived in liberty and dedicated to the + proposition that all men are created equal. Now we are engaged in + a great civil war, testing whether that nation or any nation so + conceived and so dedicated can long endure. We are met on a great + battlefield of that war. We have come to dedicate a portion of + that field as a final resting-place for those who here gave their + lives that that nation might live. It is altogether fitting and + proper that we should do this. But in a larger sense, we cannot + dedicate, we cannot consecrate, we cannot hallow this ground. + The brave men, living and dead who struggled here have consecrated + it far above our poor power to add or detract. The world will + little note nor long remember what we say here, but it can never + forget what they did here. It is for us the living rather to be + dedicated here to the unfinished work which they who fought here + have thus far so nobly advanced. It is rather for us to be here + dedicated to the great task remaining before us--that from these + honored dead we take increased devotion to that cause for which + they gave the last full measure of devotion--that we here highly + resolve that these dead shall not have died in vain, that this + nation under God shall have a new birth of freedom, and that + government of the people, by the people, for the people shall + not perish from the earth. + + -- Pres. Abraham Lincoln, 19 November 1863 + EOS + + FIVE_COL = "Four \nscore\nand s\neven \nyears\nago o\nur fa\nthers\nbroug\nht fo\nrth o\nn thi\ns con\ntinen\nt a n\new na\ntion,\nconce\nived \nin li\nberty\nand d\nedica\nted t\no the\npropo\nsitio\nn tha\nt all\nmen a\nre cr\neated\nequal\n. Now\nwe ar\ne eng\naged \nin a \ngreat\ncivil\nwar, \ntesti\nng wh\nether\nthat \nnatio\nn or \nany n\nation\nso co\nnceiv\ned an\nd so \ndedic\nated \ncan l\nong e\nndure\n. We \nare m\net on\na gre\nat ba\nttlef\nield \nof th\nat wa\nr. We\nhave \ncome \nto de\ndicat\ne a p\nortio\nn of \nthat \nfield\nas a \nfinal\nresti\nng-pl\nace f\nor th\nose w\nho he\nre ga\nve th\neir l\nives \nthat \nthat \nnatio\nn mig\nht li\nve. I\nt is \naltog\nether\nfitti\nng an\nd pro\nper t\nhat w\ne sho\nuld d\no thi\ns. Bu\nt in \na lar\nger s\nense,\nwe ca\nnnot \ndedic\nate, \nwe ca\nnnot \nconse\ncrate\n, we \ncanno\nt hal\nlow t\nhis g\nround\n. The\nbrave\nmen, \nlivin\ng and\ndead \nwho s\ntrugg\nled h\nere h\nave c\nonsec\nrated\nit fa\nr abo\nve ou\nr poo\nr pow\ner to\nadd o\nr det\nract.\nThe w\norld \nwill \nlittl\ne not\ne nor\nlong \nremem\nber w\nhat w\ne say\nhere,\nbut i\nt can\nnever\nforge\nt wha\nt the\ny did\nhere.\nIt is\nfor u\ns the\nlivin\ng rat\nher t\no be \ndedic\nated \nhere \nto th\ne unf\ninish\ned wo\nrk wh\nich t\nhey w\nho fo\nught \nhere \nhave \nthus \nfar s\no nob\nly ad\nvance\nd. It\nis ra\nther \nfor u\ns to \nbe he\nre de\ndicat\ned to\nthe g\nreat \ntask \nremai\nning \nbefor\ne us-\n-that\nfrom \nthese\nhonor\ned de\nad we\ntake \nincre\nased \ndevot\nion t\no tha\nt cau\nse fo\nr whi\nch th\ney ga\nve th\ne las\nt ful\nl mea\nsure \nof de\nvotio\nn--th\nat we\nhere \nhighl\ny res\nolve \nthat \nthese\ndead \nshall\nnot h\nave d\nied i\nn vai\nn, th\nat th\nis na\ntion \nunder\nGod s\nhall \nhave \na new\nbirth\nof fr\needom\n, and\nthat \ngover\nnment\nof th\ne peo\nple, \nby th\ne peo\nple, \nfor t\nhe pe\nople \nshall\nnot p\nerish\nfrom \nthe e\narth.\n-- Pr\nes. A\nbraha\nm Lin\ncoln,\n19 No\nvembe\nr 186\n3 \n" + + FIVE_CNT = "Four \nscore\nand \nseven\nyears\nago \nour \nfath\\\ners \nbrou\\\nght \nforth\non t\\\nhis \ncont\\\ninent\na new\nnati\\\non, \nconc\\\neived\nin l\\\niber\\\nty a\\\nnd d\\\nedic\\\nated \nto t\\\nhe p\\\nropo\\\nsiti\\\non t\\\nhat \nall \nmen \nare \ncrea\\\nted \nequa\\\nl. N\\\now we\nare \nenga\\\nged \nin a \ngreat\ncivil\nwar, \ntest\\\ning \nwhet\\\nher \nthat \nnati\\\non or\nany \nnati\\\non so\nconc\\\neived\nand \nso d\\\nedic\\\nated \ncan \nlong \nendu\\\nre. \nWe a\\\nre m\\\net on\na gr\\\neat \nbatt\\\nlefi\\\neld \nof t\\\nhat \nwar. \nWe h\\\nave \ncome \nto d\\\nedic\\\nate a\nport\\\nion \nof t\\\nhat \nfield\nas a \nfinal\nrest\\\ning-\\\nplace\nfor \nthose\nwho \nhere \ngave \ntheir\nlives\nthat \nthat \nnati\\\non m\\\night \nlive.\nIt is\nalto\\\ngeth\\\ner f\\\nitti\\\nng a\\\nnd p\\\nroper\nthat \nwe s\\\nhould\ndo t\\\nhis. \nBut \nin a \nlarg\\\ner s\\\nense,\nwe c\\\nannot\ndedi\\\ncate,\nwe c\\\nannot\ncons\\\necra\\\nte, \nwe c\\\nannot\nhall\\\now t\\\nhis \ngrou\\\nnd. \nThe \nbrave\nmen, \nlivi\\\nng a\\\nnd d\\\nead \nwho \nstru\\\nggled\nhere \nhave \ncons\\\necra\\\nted \nit f\\\nar a\\\nbove \nour \npoor \npower\nto a\\\ndd or\ndetr\\\nact. \nThe \nworld\nwill \nlitt\\\nle n\\\note \nnor \nlong \nreme\\\nmber \nwhat \nwe s\\\nay h\\\nere, \nbut \nit c\\\nan n\\\never \nforg\\\net w\\\nhat \nthey \ndid \nhere.\nIt is\nfor \nus t\\\nhe l\\\niving\nrath\\\ner to\nbe d\\\nedic\\\nated \nhere \nto t\\\nhe u\\\nnfin\\\nished\nwork \nwhich\nthey \nwho \nfoug\\\nht h\\\nere \nhave \nthus \nfar \nso n\\\nobly \nadva\\\nnced.\nIt is\nrath\\\ner f\\\nor us\nto be\nhere \ndedi\\\ncated\nto t\\\nhe g\\\nreat \ntask \nrema\\\nining\nbefo\\\nre u\\\ns--t\\\nhat \nfrom \nthese\nhono\\\nred \ndead \nwe t\\\nake \nincr\\\neased\ndevo\\\ntion \nto t\\\nhat \ncause\nfor \nwhich\nthey \ngave \nthe \nlast \nfull \nmeas\\\nure \nof d\\\nevot\\\nion-\\\n-that\nwe h\\\nere \nhigh\\\nly r\\\nesol\\\nve t\\\nhat \nthese\ndead \nshall\nnot \nhave \ndied \nin v\\\nain, \nthat \nthis \nnati\\\non u\\\nnder \nGod \nshall\nhave \na new\nbirth\nof f\\\nreed\\\nom, \nand \nthat \ngove\\\nrnme\\\nnt of\nthe \npeop\\\nle, \nby t\\\nhe p\\\neopl\\\ne, f\\\nor t\\\nhe p\\\neople\nshall\nnot \nperi\\\nsh f\\\nrom \nthe \neart\\\nh. --\nPres.\nAbra\\\nham \nLinc\\\noln, \n19 N\\\novem\\\nber \n1863 \n" + + # Tests both abbreviations and abbreviations= + def test_abbreviations + abbr = [" Pres. Abraham Lincoln\n", " Pres. Abraham Lincoln\n"] + assert_nothing_raised { @format_o = Text::Format.new } + assert_equal([], @format_o.abbreviations) + assert_nothing_raised { @format_o.abbreviations = [ 'foo', 'bar' ] } + assert_equal([ 'foo', 'bar' ], @format_o.abbreviations) + assert_equal(abbr[0], @format_o.format(abbr[0])) + assert_nothing_raised { @format_o.extra_space = true } + assert_equal(abbr[1], @format_o.format(abbr[0])) + assert_nothing_raised { @format_o.abbreviations = [ "Pres" ] } + assert_equal([ "Pres" ], @format_o.abbreviations) + assert_equal(abbr[0], @format_o.format(abbr[0])) + assert_nothing_raised { @format_o.extra_space = false } + assert_equal(abbr[0], @format_o.format(abbr[0])) + end + + # Tests both body_indent and body_indent= + def test_body_indent + assert_nothing_raised { @format_o = Text::Format.new } + assert_equal(0, @format_o.body_indent) + assert_nothing_raised { @format_o.body_indent = 7 } + assert_equal(7, @format_o.body_indent) + assert_nothing_raised { @format_o.body_indent = -3 } + assert_equal(3, @format_o.body_indent) + assert_nothing_raised { @format_o.body_indent = "9" } + assert_equal(9, @format_o.body_indent) + assert_nothing_raised { @format_o.body_indent = "-2" } + assert_equal(2, @format_o.body_indent) + assert_match(/^ [^ ]/, @format_o.format(GETTYSBURG).split("\n")[1]) + end + + # Tests both columns and columns= + def test_columns + assert_nothing_raised { @format_o = Text::Format.new } + assert_equal(72, @format_o.columns) + assert_nothing_raised { @format_o.columns = 7 } + assert_equal(7, @format_o.columns) + assert_nothing_raised { @format_o.columns = -3 } + assert_equal(3, @format_o.columns) + assert_nothing_raised { @format_o.columns = "9" } + assert_equal(9, @format_o.columns) + assert_nothing_raised { @format_o.columns = "-2" } + assert_equal(2, @format_o.columns) + assert_nothing_raised { @format_o.columns = 40 } + assert_equal(40, @format_o.columns) + assert_match(/this continent$/, + @format_o.format(GETTYSBURG).split("\n")[1]) + end + + # Tests both extra_space and extra_space= + def test_extra_space + assert_nothing_raised { @format_o = Text::Format.new } + assert(!@format_o.extra_space) + assert_nothing_raised { @format_o.extra_space = true } + assert(@format_o.extra_space) + # The behaviour of extra_space is tested in test_abbreviations. There + # is no need to reproduce it here. + end + + # Tests both first_indent and first_indent= + def test_first_indent + assert_nothing_raised { @format_o = Text::Format.new } + assert_equal(4, @format_o.first_indent) + assert_nothing_raised { @format_o.first_indent = 7 } + assert_equal(7, @format_o.first_indent) + assert_nothing_raised { @format_o.first_indent = -3 } + assert_equal(3, @format_o.first_indent) + assert_nothing_raised { @format_o.first_indent = "9" } + assert_equal(9, @format_o.first_indent) + assert_nothing_raised { @format_o.first_indent = "-2" } + assert_equal(2, @format_o.first_indent) + assert_match(/^ [^ ]/, @format_o.format(GETTYSBURG).split("\n")[0]) + end + + def test_format_style + assert_nothing_raised { @format_o = Text::Format.new } + assert_equal(Text::Format::LEFT_ALIGN, @format_o.format_style) + assert_match(/^November 1863$/, + @format_o.format(GETTYSBURG).split("\n")[-1]) + assert_nothing_raised { + @format_o.format_style = Text::Format::RIGHT_ALIGN + } + assert_equal(Text::Format::RIGHT_ALIGN, @format_o.format_style) + assert_match(/^ +November 1863$/, + @format_o.format(GETTYSBURG).split("\n")[-1]) + assert_nothing_raised { + @format_o.format_style = Text::Format::RIGHT_FILL + } + assert_equal(Text::Format::RIGHT_FILL, @format_o.format_style) + assert_match(/^November 1863 +$/, + @format_o.format(GETTYSBURG).split("\n")[-1]) + assert_nothing_raised { @format_o.format_style = Text::Format::JUSTIFY } + assert_equal(Text::Format::JUSTIFY, @format_o.format_style) + assert_match(/^of freedom, and that government of the people, by the people, for the$/, + @format_o.format(GETTYSBURG).split("\n")[-3]) + assert_raise(ArgumentError) { @format_o.format_style = 33 } + end + + def test_tag_paragraph + assert_nothing_raised { @format_o = Text::Format.new } + assert(!@format_o.tag_paragraph) + assert_nothing_raised { @format_o.tag_paragraph = true } + assert(@format_o.tag_paragraph) + assert_not_equal(@format_o.paragraphs([GETTYSBURG, GETTYSBURG]), + Text::Format.new.paragraphs([GETTYSBURG, GETTYSBURG])) + end + + def test_tag_text + assert_nothing_raised { @format_o = Text::Format.new } + assert_equal([], @format_o.tag_text) + assert_equal(@format_o.format(GETTYSBURG), + Text::Format.new.format(GETTYSBURG)) + assert_nothing_raised { + @format_o.tag_paragraph = true + @format_o.tag_text = ["Gettysburg Address", "---"] + } + assert_not_equal(@format_o.format(GETTYSBURG), + Text::Format.new.format(GETTYSBURG)) + assert_not_equal(@format_o.paragraphs([GETTYSBURG, GETTYSBURG]), + Text::Format.new.paragraphs([GETTYSBURG, GETTYSBURG])) + assert_not_equal(@format_o.paragraphs([GETTYSBURG, GETTYSBURG, + GETTYSBURG]), + Text::Format.new.paragraphs([GETTYSBURG, GETTYSBURG, + GETTYSBURG])) + end + + def test_justify? + assert_nothing_raised { @format_o = Text::Format.new } + assert(!@format_o.justify?) + assert_nothing_raised { + @format_o.format_style = Text::Format::RIGHT_ALIGN + } + assert(!@format_o.justify?) + assert_nothing_raised { + @format_o.format_style = Text::Format::RIGHT_FILL + } + assert(!@format_o.justify?) + assert_nothing_raised { + @format_o.format_style = Text::Format::JUSTIFY + } + assert(@format_o.justify?) + # The format testing is done in test_format_style + end + + def test_left_align? + assert_nothing_raised { @format_o = Text::Format.new } + assert(@format_o.left_align?) + assert_nothing_raised { + @format_o.format_style = Text::Format::RIGHT_ALIGN + } + assert(!@format_o.left_align?) + assert_nothing_raised { + @format_o.format_style = Text::Format::RIGHT_FILL + } + assert(!@format_o.left_align?) + assert_nothing_raised { @format_o.format_style = Text::Format::JUSTIFY } + assert(!@format_o.left_align?) + # The format testing is done in test_format_style + end + + def test_left_margin + assert_nothing_raised { @format_o = Text::Format.new } + assert_equal(0, @format_o.left_margin) + assert_nothing_raised { @format_o.left_margin = -3 } + assert_equal(3, @format_o.left_margin) + assert_nothing_raised { @format_o.left_margin = "9" } + assert_equal(9, @format_o.left_margin) + assert_nothing_raised { @format_o.left_margin = "-2" } + assert_equal(2, @format_o.left_margin) + assert_nothing_raised { @format_o.left_margin = 7 } + assert_equal(7, @format_o.left_margin) + assert_nothing_raised { + ft = @format_o.format(GETTYSBURG).split("\n") + assert_match(/^ {11}Four score/, ft[0]) + assert_match(/^ {7}November/, ft[-1]) + } + end + + def test_hard_margins + assert_nothing_raised { @format_o = Text::Format.new } + assert(!@format_o.hard_margins) + assert_nothing_raised { + @format_o.hard_margins = true + @format_o.columns = 5 + @format_o.first_indent = 0 + @format_o.format_style = Text::Format::RIGHT_FILL + } + assert(@format_o.hard_margins) + assert_equal(FIVE_COL, @format_o.format(GETTYSBURG)) + assert_nothing_raised { + @format_o.split_rules |= Text::Format::SPLIT_CONTINUATION + assert_equal(Text::Format::SPLIT_CONTINUATION_FIXED, + @format_o.split_rules) + } + assert_equal(FIVE_CNT, @format_o.format(GETTYSBURG)) + end + + # Tests both nobreak and nobreak_regex, since one is only useful + # with the other. + def test_nobreak + assert_nothing_raised { @format_o = Text::Format.new } + assert(!@format_o.nobreak) + assert(@format_o.nobreak_regex.empty?) + assert_nothing_raised { + @format_o.nobreak = true + @format_o.nobreak_regex = { '^this$' => '^continent$' } + @format_o.columns = 77 + } + assert(@format_o.nobreak) + assert_equal({ '^this$' => '^continent$' }, @format_o.nobreak_regex) + assert_match(/^this continent/, + @format_o.format(GETTYSBURG).split("\n")[1]) + end + + def test_right_align? + assert_nothing_raised { @format_o = Text::Format.new } + assert(!@format_o.right_align?) + assert_nothing_raised { + @format_o.format_style = Text::Format::RIGHT_ALIGN + } + assert(@format_o.right_align?) + assert_nothing_raised { + @format_o.format_style = Text::Format::RIGHT_FILL + } + assert(!@format_o.right_align?) + assert_nothing_raised { @format_o.format_style = Text::Format::JUSTIFY } + assert(!@format_o.right_align?) + # The format testing is done in test_format_style + end + + def test_right_fill? + assert_nothing_raised { @format_o = Text::Format.new } + assert(!@format_o.right_fill?) + assert_nothing_raised { + @format_o.format_style = Text::Format::RIGHT_ALIGN + } + assert(!@format_o.right_fill?) + assert_nothing_raised { + @format_o.format_style = Text::Format::RIGHT_FILL + } + assert(@format_o.right_fill?) + assert_nothing_raised { + @format_o.format_style = Text::Format::JUSTIFY + } + assert(!@format_o.right_fill?) + # The format testing is done in test_format_style + end + + def test_right_margin + assert_nothing_raised { @format_o = Text::Format.new } + assert_equal(0, @format_o.right_margin) + assert_nothing_raised { @format_o.right_margin = -3 } + assert_equal(3, @format_o.right_margin) + assert_nothing_raised { @format_o.right_margin = "9" } + assert_equal(9, @format_o.right_margin) + assert_nothing_raised { @format_o.right_margin = "-2" } + assert_equal(2, @format_o.right_margin) + assert_nothing_raised { @format_o.right_margin = 7 } + assert_equal(7, @format_o.right_margin) + assert_nothing_raised { + ft = @format_o.format(GETTYSBURG).split("\n") + assert_match(/^ {4}Four score.*forth on$/, ft[0]) + assert_match(/^November/, ft[-1]) + } + end + + def test_tabstop + assert_nothing_raised { @format_o = Text::Format.new } + assert_equal(8, @format_o.tabstop) + assert_nothing_raised { @format_o.tabstop = 7 } + assert_equal(7, @format_o.tabstop) + assert_nothing_raised { @format_o.tabstop = -3 } + assert_equal(3, @format_o.tabstop) + assert_nothing_raised { @format_o.tabstop = "9" } + assert_equal(9, @format_o.tabstop) + assert_nothing_raised { @format_o.tabstop = "-2" } + assert_equal(2, @format_o.tabstop) + end + + def test_text + assert_nothing_raised { @format_o = Text::Format.new } + assert_equal([], @format_o.text) + assert_nothing_raised { @format_o.text = "Test Text" } + assert_equal("Test Text", @format_o.text) + assert_nothing_raised { @format_o.text = ["Line 1", "Line 2"] } + assert_equal(["Line 1", "Line 2"], @format_o.text) + end + + def test_s_new + # new(NilClass) { block } + assert_nothing_raised do + @format_o = Text::Format.new { + self.text = "Test 1, 2, 3" + } + end + assert_equal("Test 1, 2, 3", @format_o.text) + + # new(Hash Symbols) + assert_nothing_raised { @format_o = Text::Format.new(:columns => 72) } + assert_equal(72, @format_o.columns) + + # new(Hash String) + assert_nothing_raised { @format_o = Text::Format.new('columns' => 72) } + assert_equal(72, @format_o.columns) + + # new(Hash) { block } + assert_nothing_raised do + @format_o = Text::Format.new('columns' => 80) { + self.text = "Test 4, 5, 6" + } + end + assert_equal("Test 4, 5, 6", @format_o.text) + assert_equal(80, @format_o.columns) + + # new(Text::Format) + assert_nothing_raised do + fo = Text::Format.new(@format_o) + assert(fo == @format_o) + end + + # new(Text::Format) { block } + assert_nothing_raised do + fo = Text::Format.new(@format_o) { self.columns = 79 } + assert(fo != @format_o) + end + + # new(String) + assert_nothing_raised { @format_o = Text::Format.new("Test A, B, C") } + assert_equal("Test A, B, C", @format_o.text) + + # new(String) { block } + assert_nothing_raised do + @format_o = Text::Format.new("Test X, Y, Z") { self.columns = -5 } + end + assert_equal("Test X, Y, Z", @format_o.text) + assert_equal(5, @format_o.columns) + end + + def test_center + assert_nothing_raised { @format_o = Text::Format.new } + assert_nothing_raised do + ct = @format_o.center(GETTYSBURG.split("\n")).split("\n") + assert_match(/^ Four score and seven years ago our fathers brought forth on this/, ct[0]) + assert_match(/^ not perish from the earth./, ct[-3]) + end + end + + def test_expand + assert_nothing_raised { @format_o = Text::Format.new } + assert_equal(" ", @format_o.expand("\t ")) + assert_nothing_raised { @format_o.tabstop = 4 } + assert_equal(" ", @format_o.expand("\t ")) + end + + def test_unexpand + assert_nothing_raised { @format_o = Text::Format.new } + assert_equal("\t ", @format_o.unexpand(" ")) + assert_nothing_raised { @format_o.tabstop = 4 } + assert_equal("\t ", @format_o.unexpand(" ")) + end + + def test_space_only + assert_equal("", Text::Format.new.format(" ")) + assert_equal("", Text::Format.new.format("\n")) + assert_equal("", Text::Format.new.format(" ")) + assert_equal("", Text::Format.new.format(" \n")) + assert_equal("", Text::Format.new.paragraphs("\n")) + assert_equal("", Text::Format.new.paragraphs(" ")) + assert_equal("", Text::Format.new.paragraphs(" ")) + assert_equal("", Text::Format.new.paragraphs(" \n")) + assert_equal("", Text::Format.new.paragraphs(["\n"])) + assert_equal("", Text::Format.new.paragraphs([" "])) + assert_equal("", Text::Format.new.paragraphs([" "])) + assert_equal("", Text::Format.new.paragraphs([" \n"])) + end + + def test_splendiferous + h = nil + test = "This is a splendiferous test" + assert_nothing_raised { @format_o = Text::Format.new(:columns => 6, :left_margin => 0, :indent => 0, :first_indent => 0) } + assert_match(/^splendiferous$/, @format_o.format(test)) + assert_nothing_raised { @format_o.hard_margins = true } + assert_match(/^lendif$/, @format_o.format(test)) + assert_nothing_raised { h = Object.new } + assert_nothing_raised do + @format_o.split_rules = Text::Format::SPLIT_HYPHENATION + class << h #:nodoc: + def hyphenate_to(word, size) + return ["", word] if size < 2 + [word[0 ... size], word[size .. -1]] + end + end + @format_o.hyphenator = h + end + assert_match(/^iferou$/, @format_o.format(test)) + assert_nothing_raised { h = Object.new } + assert_nothing_raised do + class << h #:nodoc: + def hyphenate_to(word, size, formatter) + return ["", word] if word.size < formatter.columns + [word[0 ... size], word[size .. -1]] + end + end + @format_o.hyphenator = h + end + assert_match(/^ferous$/, @format_o.format(test)) + end + end +end diff --git a/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/text_format.rb b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/text_format.rb new file mode 100644 index 0000000..c6c8c39 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/text_format.rb @@ -0,0 +1,10 @@ +# Prefer gems to the bundled libs. +require 'rubygems' + +begin + gem 'text-format', '>= 0.6.3' +rescue Gem::LoadError + $:.unshift "#{File.dirname(__FILE__)}/text-format-0.6.3" +end + +require 'text/format' diff --git a/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail.rb b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail.rb new file mode 100644 index 0000000..1800365 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail.rb @@ -0,0 +1,5 @@ +require 'tmail/version' +require 'tmail/mail' +require 'tmail/mailbox' +require 'tmail/core_extensions' +require 'tmail/net' diff --git a/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/address.rb b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/address.rb new file mode 100644 index 0000000..982ad5b --- /dev/null +++ b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/address.rb @@ -0,0 +1,426 @@ +=begin rdoc + += Address handling class + +=end +#-- +# Copyright (c) 1998-2003 Minero Aoki +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Note: Originally licensed under LGPL v2+. Using MIT license for Rails +# with permission of Minero Aoki. +#++ + +require 'tmail/encode' +require 'tmail/parser' + + +module TMail + + # = Class Address + # + # Provides a complete handling library for email addresses. Can parse a string of an + # address directly or take in preformatted addresses themselves. Allows you to add + # and remove phrases from the front of the address and provides a compare function for + # email addresses. + # + # == Parsing and Handling a Valid Address: + # + # Just pass the email address in as a string to Address.parse: + # + # email = TMail::Address.parse('Mikel Lindsaar ) + # #=> # + # email.address + # #=> "mikel@lindsaar.net" + # email.local + # #=> "mikel" + # email.domain + # #=> "lindsaar.net" + # email.name # Aliased as phrase as well + # #=> "Mikel Lindsaar" + # + # == Detecting an Invalid Address + # + # If you want to check the syntactical validity of an email address, just pass it to + # Address.parse and catch any SyntaxError: + # + # begin + # TMail::Mail.parse("mikel 2@@@@@ me .com") + # rescue TMail::SyntaxError + # puts("Invalid Email Address Detected") + # else + # puts("Address is valid") + # end + # #=> "Invalid Email Address Detected" + class Address + + include TextUtils #:nodoc: + + # Sometimes you need to parse an address, TMail can do it for you and provide you with + # a fairly robust method of detecting a valid address. + # + # Takes in a string, returns a TMail::Address object. + # + # Raises a TMail::SyntaxError on invalid email format + def Address.parse( str ) + Parser.parse :ADDRESS, special_quote_address(str) + end + + def Address.special_quote_address(str) #:nodoc: + # Takes a string which is an address and adds quotation marks to special + # edge case methods that the RACC parser can not handle. + # + # Right now just handles two edge cases: + # + # Full stop as the last character of the display name: + # Mikel L. + # Returns: + # "Mikel L." + # + # Unquoted @ symbol in the display name: + # mikel@me.com + # Returns: + # "mikel@me.com" + # + # Any other address not matching these patterns just gets returned as is. + case + # This handles the missing "" in an older version of Apple Mail.app + # around the display name when the display name contains a '@' + # like 'mikel@me.com ' + # Just quotes it to: '"mikel@me.com" ' + when str =~ /\A([^"].+@.+[^"])\s(<.*?>)\Z/ + return "\"#{$1}\" #{$2}" + # This handles cases where 'Mikel A. ' which is a trailing + # full stop before the address section. Just quotes it to + # '"Mikel A. " + when str =~ /\A(.*?\.)\s(<.*?>)\Z/ + return "\"#{$1}\" #{$2}" + else + str + end + end + + def address_group? #:nodoc: + false + end + + # Address.new(local, domain) + # + # Accepts: + # + # * local - Left of the at symbol + # + # * domain - Array of the domain split at the periods. + # + # For example: + # + # Address.new("mikel", ["lindsaar", "net"]) + # #=> "#" + def initialize( local, domain ) + if domain + domain.each do |s| + raise SyntaxError, 'empty word in domain' if s.empty? + end + end + + # This is to catch an unquoted "@" symbol in the local part of the + # address. Handles addresses like <"@"@me.com> and makes sure they + # stay like <"@"@me.com> (previously were becoming <@@me.com>) + if local && (local.join == '@' || local.join =~ /\A[^"].*?@.*?[^"]\Z/) + @local = "\"#{local.join}\"" + else + @local = local + end + + @domain = domain + @name = nil + @routes = [] + end + + # Provides the name or 'phrase' of the email address. + # + # For Example: + # + # email = TMail::Address.parse("Mikel Lindsaar ") + # email.name + # #=> "Mikel Lindsaar" + def name + @name + end + + # Setter method for the name or phrase of the email + # + # For Example: + # + # email = TMail::Address.parse("mikel@lindsaar.net") + # email.name + # #=> nil + # email.name = "Mikel Lindsaar" + # email.to_s + # #=> "Mikel Lindsaar " + def name=( str ) + @name = str + @name = nil if str and str.empty? + end + + #:stopdoc: + alias phrase name + alias phrase= name= + #:startdoc: + + # This is still here from RFC 822, and is now obsolete per RFC2822 Section 4. + # + # "When interpreting addresses, the route portion SHOULD be ignored." + # + # It is still here, so you can access it. + # + # Routes return the route portion at the front of the email address, if any. + # + # For Example: + # email = TMail::Address.parse( "<@sa,@another:Mikel@me.com>") + # => # + # email.to_s + # => "<@sa,@another:Mikel@me.com>" + # email.routes + # => ["sa", "another"] + def routes + @routes + end + + def inspect #:nodoc: + "#<#{self.class} #{address()}>" + end + + # Returns the local part of the email address + # + # For Example: + # + # email = TMail::Address.parse("mikel@lindsaar.net") + # email.local + # #=> "mikel" + def local + return nil unless @local + return '""' if @local.size == 1 and @local[0].empty? + # Check to see if it is an array before trying to map it + if @local.respond_to?(:map) + @local.map {|i| quote_atom(i) }.join('.') + else + quote_atom(@local) + end + end + + # Returns the domain part of the email address + # + # For Example: + # + # email = TMail::Address.parse("mikel@lindsaar.net") + # email.local + # #=> "lindsaar.net" + def domain + return nil unless @domain + join_domain(@domain) + end + + # Returns the full specific address itself + # + # For Example: + # + # email = TMail::Address.parse("mikel@lindsaar.net") + # email.address + # #=> "mikel@lindsaar.net" + def spec + s = self.local + d = self.domain + if s and d + s + '@' + d + else + s + end + end + + alias address spec + + # Provides == function to the email. Only checks the actual address + # and ignores the name/phrase component + # + # For Example + # + # addr1 = TMail::Address.parse("My Address ") + # #=> "#" + # addr2 = TMail::Address.parse("Another ") + # #=> "#" + # addr1 == addr2 + # #=> true + def ==( other ) + other.respond_to? :spec and self.spec == other.spec + end + + alias eql? == + + # Provides a unique hash value for this record against the local and domain + # parts, ignores the name/phrase value + # + # email = TMail::Address.parse("mikel@lindsaar.net") + # email.hash + # #=> 18767598 + def hash + @local.hash ^ @domain.hash + end + + # Duplicates a TMail::Address object returning the duplicate + # + # addr1 = TMail::Address.parse("mikel@lindsaar.net") + # addr2 = addr1.dup + # addr1.id == addr2.id + # #=> false + def dup + obj = self.class.new(@local.dup, @domain.dup) + obj.name = @name.dup if @name + obj.routes.replace @routes + obj + end + + include StrategyInterface #:nodoc: + + def accept( strategy, dummy1 = nil, dummy2 = nil ) #:nodoc: + unless @local + strategy.meta '<>' # empty return-path + return + end + + spec_p = (not @name and @routes.empty?) + if @name + strategy.phrase @name + strategy.space + end + tmp = spec_p ? '' : '<' + unless @routes.empty? + tmp << @routes.map {|i| '@' + i }.join(',') << ':' + end + tmp << self.spec + tmp << '>' unless spec_p + strategy.meta tmp + strategy.lwsp '' + end + + end + + + class AddressGroup + + include Enumerable + + def address_group? + true + end + + def initialize( name, addrs ) + @name = name + @addresses = addrs + end + + attr_reader :name + + def ==( other ) + other.respond_to? :to_a and @addresses == other.to_a + end + + alias eql? == + + def hash + map {|i| i.hash }.hash + end + + def []( idx ) + @addresses[idx] + end + + def size + @addresses.size + end + + def empty? + @addresses.empty? + end + + def each( &block ) + @addresses.each(&block) + end + + def to_a + @addresses.dup + end + + alias to_ary to_a + + def include?( a ) + @addresses.include? a + end + + def flatten + set = [] + @addresses.each do |a| + if a.respond_to? :flatten + set.concat a.flatten + else + set.push a + end + end + set + end + + def each_address( &block ) + flatten.each(&block) + end + + def add( a ) + @addresses.push a + end + + alias push add + + def delete( a ) + @addresses.delete a + end + + include StrategyInterface + + def accept( strategy, dummy1 = nil, dummy2 = nil ) + strategy.phrase @name + strategy.meta ':' + strategy.space + first = true + each do |mbox| + if first + first = false + else + strategy.meta ',' + end + strategy.space + mbox.accept strategy + end + strategy.meta ';' + strategy.lwsp '' + end + + end + +end # module TMail diff --git a/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/attachments.rb b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/attachments.rb new file mode 100644 index 0000000..5dc5efa --- /dev/null +++ b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/attachments.rb @@ -0,0 +1,46 @@ +=begin rdoc + += Attachment handling file + +=end + +require 'stringio' + +module TMail + class Attachment < StringIO + attr_accessor :original_filename, :content_type + end + + class Mail + def has_attachments? + multipart? && parts.any? { |part| attachment?(part) } + end + + def attachment?(part) + part.disposition_is_attachment? || part.content_type_is_text? + end + + def attachments + if multipart? + parts.collect { |part| + if part.multipart? + part.attachments + elsif attachment?(part) + content = part.body # unquoted automatically by TMail#body + file_name = (part['content-location'] && + part['content-location'].body) || + part.sub_header("content-type", "name") || + part.sub_header("content-disposition", "filename") + + next if file_name.blank? || content.blank? + + attachment = Attachment.new(content) + attachment.original_filename = file_name.strip + attachment.content_type = part.content_type + attachment + end + }.flatten.compact + end + end + end +end diff --git a/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/base64.rb b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/base64.rb new file mode 100644 index 0000000..e294c62 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/base64.rb @@ -0,0 +1,46 @@ +#-- +# Copyright (c) 1998-2003 Minero Aoki +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Note: Originally licensed under LGPL v2+. Using MIT license for Rails +# with permission of Minero Aoki. +#++ +#:stopdoc: +module TMail + module Base64 + + module_function + + def folding_encode( str, eol = "\n", limit = 60 ) + [str].pack('m') + end + + def encode( str ) + [str].pack('m').tr( "\r\n", '' ) + end + + def decode( str, strict = false ) + str.unpack('m').first + end + + end +end +#:startdoc: diff --git a/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/compat.rb b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/compat.rb new file mode 100644 index 0000000..1275df7 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/compat.rb @@ -0,0 +1,41 @@ +#:stopdoc: +unless Enumerable.method_defined?(:map) + module Enumerable #:nodoc: + alias map collect + end +end + +unless Enumerable.method_defined?(:select) + module Enumerable #:nodoc: + alias select find_all + end +end + +unless Enumerable.method_defined?(:reject) + module Enumerable #:nodoc: + def reject + result = [] + each do |i| + result.push i unless yield(i) + end + result + end + end +end + +unless Enumerable.method_defined?(:sort_by) + module Enumerable #:nodoc: + def sort_by + map {|i| [yield(i), i] }.sort.map {|val, i| i } + end + end +end + +unless File.respond_to?(:read) + def File.read(fname) #:nodoc: + File.open(fname) {|f| + return f.read + } + end +end +#:startdoc: \ No newline at end of file diff --git a/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/config.rb b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/config.rb new file mode 100644 index 0000000..3a876dc --- /dev/null +++ b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/config.rb @@ -0,0 +1,67 @@ +#-- +# Copyright (c) 1998-2003 Minero Aoki +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Note: Originally licensed under LGPL v2+. Using MIT license for Rails +# with permission of Minero Aoki. +#++ +#:stopdoc: +module TMail + + class Config + + def initialize( strict ) + @strict_parse = strict + @strict_base64decode = strict + end + + def strict_parse? + @strict_parse + end + + attr_writer :strict_parse + + def strict_base64decode? + @strict_base64decode + end + + attr_writer :strict_base64decode + + def new_body_port( mail ) + StringPort.new + end + + alias new_preamble_port new_body_port + alias new_part_port new_body_port + + end + + DEFAULT_CONFIG = Config.new(false) + DEFAULT_STRICT_CONFIG = Config.new(true) + + def Config.to_config( arg ) + return DEFAULT_STRICT_CONFIG if arg == true + return DEFAULT_CONFIG if arg == false + arg or DEFAULT_CONFIG + end + +end +#:startdoc: \ No newline at end of file diff --git a/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/core_extensions.rb b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/core_extensions.rb new file mode 100644 index 0000000..da62c33 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/core_extensions.rb @@ -0,0 +1,63 @@ +#:stopdoc: +unless Object.respond_to?(:blank?) + class Object + # Check first to see if we are in a Rails environment, no need to + # define these methods if we are + + # An object is blank if it's nil, empty, or a whitespace string. + # For example, "", " ", nil, [], and {} are blank. + # + # This simplifies + # if !address.nil? && !address.empty? + # to + # if !address.blank? + def blank? + if respond_to?(:empty?) && respond_to?(:strip) + empty? or strip.empty? + elsif respond_to?(:empty?) + empty? + else + !self + end + end + end + + class NilClass + def blank? + true + end + end + + class FalseClass + def blank? + true + end + end + + class TrueClass + def blank? + false + end + end + + class Array + alias_method :blank?, :empty? + end + + class Hash + alias_method :blank?, :empty? + end + + class String + def blank? + empty? || strip.empty? + end + end + + class Numeric + def blank? + false + end + end +end +#:startdoc: \ No newline at end of file diff --git a/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/encode.rb b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/encode.rb new file mode 100644 index 0000000..458dbbf --- /dev/null +++ b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/encode.rb @@ -0,0 +1,581 @@ +#-- +# = COPYRIGHT: +# +# Copyright (c) 1998-2003 Minero Aoki +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Note: Originally licensed under LGPL v2+. Using MIT license for Rails +# with permission of Minero Aoki. +#++ +#:stopdoc: +require 'nkf' +require 'tmail/base64' +require 'tmail/stringio' +require 'tmail/utils' +#:startdoc: + + +module TMail + + #:stopdoc: + class << self + attr_accessor :KCODE + end + self.KCODE = 'NONE' + + module StrategyInterface + + def create_dest( obj ) + case obj + when nil + StringOutput.new + when String + StringOutput.new(obj) + when IO, StringOutput + obj + else + raise TypeError, 'cannot handle this type of object for dest' + end + end + module_function :create_dest + + #:startdoc: + # Returns the TMail object encoded and ready to be sent via SMTP etc. + # You should call this before you are packaging up your email to + # correctly escape all the values that need escaping in the email, line + # wrap the email etc. + # + # It is also a good idea to call this before you marshal or serialize + # a TMail object. + # + # For Example: + # + # email = TMail::Load(my_email_file) + # email_to_send = email.encoded + def encoded( eol = "\r\n", charset = 'j', dest = nil ) + accept_strategy Encoder, eol, charset, dest + end + + # Returns the TMail object decoded and ready to be used by you, your + # program etc. + # + # You should call this before you are packaging up your email to + # correctly escape all the values that need escaping in the email, line + # wrap the email etc. + # + # For Example: + # + # email = TMail::Load(my_email_file) + # email_to_send = email.encoded + def decoded( eol = "\n", charset = 'e', dest = nil ) + # Turn the E-Mail into a string and return it with all + # encoded characters decoded. alias for to_s + accept_strategy Decoder, eol, charset, dest + end + + alias to_s decoded + + def accept_strategy( klass, eol, charset, dest = nil ) #:nodoc: + dest ||= '' + accept klass.new( create_dest(dest), charset, eol ) + dest + end + + end + + #:stopdoc: + + ### + ### MIME B encoding decoder + ### + + class Decoder + + include TextUtils + + encoded = '=\?(?:iso-2022-jp|euc-jp|shift_jis)\?[QB]\?[a-z0-9+/=]+\?=' + ENCODED_WORDS = /#{encoded}(?:\s+#{encoded})*/i + + OUTPUT_ENCODING = { + 'EUC' => 'e', + 'SJIS' => 's', + } + + def self.decode( str, encoding = nil ) + encoding ||= (OUTPUT_ENCODING[TMail.KCODE] || 'j') + opt = '-mS' + encoding + str.gsub(ENCODED_WORDS) {|s| NKF.nkf(opt, s) } + end + + def initialize( dest, encoding = nil, eol = "\n" ) + @f = StrategyInterface.create_dest(dest) + @encoding = (/\A[ejs]/ === encoding) ? encoding[0,1] : nil + @eol = eol + end + + def decode( str ) + self.class.decode(str, @encoding) + end + private :decode + + def terminate + end + + def header_line( str ) + @f << decode(str) + end + + def header_name( nm ) + @f << nm << ': ' + end + + def header_body( str ) + @f << decode(str) + end + + def space + @f << ' ' + end + + alias spc space + + def lwsp( str ) + @f << str + end + + def meta( str ) + @f << str + end + + def text( str ) + @f << decode(str) + end + + def phrase( str ) + @f << quote_phrase(decode(str)) + end + + def kv_pair( k, v ) + v = dquote(v) unless token_safe?(v) + @f << k << '=' << v + end + + def puts( str = nil ) + @f << str if str + @f << @eol + end + + def write( str ) + @f << str + end + + end + + + ### + ### MIME B-encoding encoder + ### + + # + # FIXME: This class can handle only (euc-jp/shift_jis -> iso-2022-jp). + # + class Encoder + + include TextUtils + + BENCODE_DEBUG = false unless defined?(BENCODE_DEBUG) + + def Encoder.encode( str ) + e = new() + e.header_body str + e.terminate + e.dest.string + end + + SPACER = "\t" + MAX_LINE_LEN = 78 + RFC_2822_MAX_LENGTH = 998 + + OPTIONS = { + 'EUC' => '-Ej -m0', + 'SJIS' => '-Sj -m0', + 'UTF8' => nil, # FIXME + 'NONE' => nil + } + + def initialize( dest = nil, encoding = nil, eol = "\r\n", limit = nil ) + @f = StrategyInterface.create_dest(dest) + @opt = OPTIONS[TMail.KCODE] + @eol = eol + @folded = false + @preserve_quotes = true + reset + end + + def preserve_quotes=( bool ) + @preserve_quotes + end + + def preserve_quotes + @preserve_quotes + end + + def normalize_encoding( str ) + if @opt + then NKF.nkf(@opt, str) + else str + end + end + + def reset + @text = '' + @lwsp = '' + @curlen = 0 + end + + def terminate + add_lwsp '' + reset + end + + def dest + @f + end + + def puts( str = nil ) + @f << str if str + @f << @eol + end + + def write( str ) + @f << str + end + + # + # add + # + + def header_line( line ) + scanadd line + end + + def header_name( name ) + add_text name.split(/-/).map {|i| i.capitalize }.join('-') + add_text ':' + add_lwsp ' ' + end + + def header_body( str ) + scanadd normalize_encoding(str) + end + + def space + add_lwsp ' ' + end + + alias spc space + + def lwsp( str ) + add_lwsp str.sub(/[\r\n]+[^\r\n]*\z/, '') + end + + def meta( str ) + add_text str + end + + def text( str ) + scanadd normalize_encoding(str) + end + + def phrase( str ) + str = normalize_encoding(str) + if CONTROL_CHAR === str + scanadd str + else + add_text quote_phrase(str) + end + end + + # FIXME: implement line folding + # + def kv_pair( k, v ) + return if v.nil? + v = normalize_encoding(v) + if token_safe?(v) + add_text k + '=' + v + elsif not CONTROL_CHAR === v + add_text k + '=' + quote_token(v) + else + # apply RFC2231 encoding + kv = k + '*=' + "iso-2022-jp'ja'" + encode_value(v) + add_text kv + end + end + + def encode_value( str ) + str.gsub(TOKEN_UNSAFE) {|s| '%%%02x' % s[0] } + end + + private + + def scanadd( str, force = false ) + types = '' + strs = [] + if str.respond_to?(:encoding) + enc = str.encoding + str.force_encoding(Encoding::ASCII_8BIT) + end + until str.empty? + if m = /\A[^\e\t\r\n ]+/.match(str) + types << (force ? 'j' : 'a') + if str.respond_to?(:encoding) + strs.push m[0].force_encoding(enc) + else + strs.push m[0] + end + elsif m = /\A[\t\r\n ]+/.match(str) + types << 's' + if str.respond_to?(:encoding) + strs.push m[0].force_encoding(enc) + else + strs.push m[0] + end + + elsif m = /\A\e../.match(str) + esc = m[0] + str = m.post_match + if esc != "\e(B" and m = /\A[^\e]+/.match(str) + types << 'j' + if str.respond_to?(:encoding) + strs.push m[0].force_encoding(enc) + else + strs.push m[0] + end + end + + else + raise 'TMail FATAL: encoder scan fail' + end + (str = m.post_match) unless m.nil? + end + + do_encode types, strs + end + + def do_encode( types, strs ) + # + # result : (A|E)(S(A|E))* + # E : W(SW)* + # W : (J|A)+ but must contain J # (J|A)*J(J|A)* + # A : <> + # J : <> + # S : <> + # + # An encoding unit is `E'. + # Input (parameter `types') is (J|A)(J|A|S)*(J|A) + # + if BENCODE_DEBUG + puts + puts '-- do_encode ------------' + puts types.split(//).join(' ') + p strs + end + + e = /[ja]*j[ja]*(?:s[ja]*j[ja]*)*/ + + while m = e.match(types) + pre = m.pre_match + concat_A_S pre, strs[0, pre.size] unless pre.empty? + concat_E m[0], strs[m.begin(0) ... m.end(0)] + types = m.post_match + strs.slice! 0, m.end(0) + end + concat_A_S types, strs + end + + def concat_A_S( types, strs ) + if RUBY_VERSION < '1.9' + a = ?a; s = ?s + else + a = 'a'.ord; s = 's'.ord + end + i = 0 + types.each_byte do |t| + case t + when a then add_text strs[i] + when s then add_lwsp strs[i] + else + raise "TMail FATAL: unknown flag: #{t.chr}" + end + i += 1 + end + end + + METHOD_ID = { + ?j => :extract_J, + ?e => :extract_E, + ?a => :extract_A, + ?s => :extract_S + } + + def concat_E( types, strs ) + if BENCODE_DEBUG + puts '---- concat_E' + puts "types=#{types.split(//).join(' ')}" + puts "strs =#{strs.inspect}" + end + + flush() unless @text.empty? + + chunk = '' + strs.each_with_index do |s,i| + mid = METHOD_ID[types[i]] + until s.empty? + unless c = __send__(mid, chunk.size, s) + add_with_encode chunk unless chunk.empty? + flush + chunk = '' + fold + c = __send__(mid, 0, s) + raise 'TMail FATAL: extract fail' unless c + end + chunk << c + end + end + add_with_encode chunk unless chunk.empty? + end + + def extract_J( chunksize, str ) + size = max_bytes(chunksize, str.size) - 6 + size = (size % 2 == 0) ? (size) : (size - 1) + return nil if size <= 0 + if str.respond_to?(:encoding) + enc = str.encoding + str.force_encoding(Encoding::ASCII_8BIT) + "\e$B#{str.slice!(0, size)}\e(B".force_encoding(enc) + else + "\e$B#{str.slice!(0, size)}\e(B" + end + end + + def extract_A( chunksize, str ) + size = max_bytes(chunksize, str.size) + return nil if size <= 0 + str.slice!(0, size) + end + + alias extract_S extract_A + + def max_bytes( chunksize, ssize ) + (restsize() - '=?iso-2022-jp?B??='.size) / 4 * 3 - chunksize + end + + # + # free length buffer + # + + def add_text( str ) + @text << str + # puts '---- text -------------------------------------' + # puts "+ #{str.inspect}" + # puts "txt >>>#{@text.inspect}<<<" + end + + def add_with_encode( str ) + @text << "=?iso-2022-jp?B?#{Base64.encode(str)}?=" + end + + def add_lwsp( lwsp ) + # puts '---- lwsp -------------------------------------' + # puts "+ #{lwsp.inspect}" + fold if restsize() <= 0 + flush(@folded) + @lwsp = lwsp + end + + def flush(folded = false) + # puts '---- flush ----' + # puts "spc >>>#{@lwsp.inspect}<<<" + # puts "txt >>>#{@text.inspect}<<<" + @f << @lwsp << @text + if folded + @curlen = 0 + else + @curlen += (@lwsp.size + @text.size) + end + @text = '' + @lwsp = '' + end + + def fold + # puts '---- fold ----' + unless @f.string =~ /^.*?:$/ + @f << @eol + @lwsp = SPACER + else + fold_header + @folded = true + end + @curlen = 0 + end + + def fold_header + # Called because line is too long - so we need to wrap. + # First look for whitespace in the text + # if it has text, fold there + # check the remaining text, if too long, fold again + # if it doesn't, then don't fold unless the line goes beyond 998 chars + + # Check the text to see if there is whitespace, or if not + @wrapped_text = [] + until @text.blank? + fold_the_string + end + @text = @wrapped_text.join("#{@eol}#{SPACER}") + end + + def fold_the_string + whitespace_location = @text =~ /\s/ || @text.length + # Is the location of the whitespace shorter than the RCF_2822_MAX_LENGTH? + # if there is no whitespace in the string, then this + unless mazsize(whitespace_location) <= 0 + @text.strip! + @wrapped_text << @text.slice!(0...whitespace_location) + # If it is not less, we have to wrap it destructively + else + slice_point = RFC_2822_MAX_LENGTH - @curlen - @lwsp.length + @text.strip! + @wrapped_text << @text.slice!(0...slice_point) + end + end + + def restsize + MAX_LINE_LEN - (@curlen + @lwsp.size + @text.size) + end + + def mazsize(whitespace_location) + # Per RFC2822, the maximum length of a line is 998 chars + RFC_2822_MAX_LENGTH - (@curlen + @lwsp.size + whitespace_location) + end + + end + #:startdoc: +end # module TMail diff --git a/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/header.rb b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/header.rb new file mode 100644 index 0000000..dbdefcf --- /dev/null +++ b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/header.rb @@ -0,0 +1,960 @@ +#-- +# Copyright (c) 1998-2003 Minero Aoki +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Note: Originally licensed under LGPL v2+. Using MIT license for Rails +# with permission of Minero Aoki. +#++ + +require 'tmail/encode' +require 'tmail/address' +require 'tmail/parser' +require 'tmail/config' +require 'tmail/utils' + +#:startdoc: +module TMail + + # Provides methods to handle and manipulate headers in the email + class HeaderField + + include TextUtils + + class << self + + alias newobj new + + def new( name, body, conf = DEFAULT_CONFIG ) + klass = FNAME_TO_CLASS[name.downcase] || UnstructuredHeader + klass.newobj body, conf + end + + # Returns a HeaderField object matching the header you specify in the "name" param. + # Requires an initialized TMail::Port to be passed in. + # + # The method searches the header of the Port you pass into it to find a match on + # the header line you pass. Once a match is found, it will unwrap the matching line + # as needed to return an initialized HeaderField object. + # + # If you want to get the Envelope sender of the email object, pass in "EnvelopeSender", + # if you want the From address of the email itself, pass in 'From'. + # + # This is because a mailbox doesn't have the : after the From that designates the + # beginning of the envelope sender (which can be different to the from address of + # the email) + # + # Other fields can be passed as normal, "Reply-To", "Received" etc. + # + # Note: Change of behaviour in 1.2.1 => returns nil if it does not find the specified + # header field, otherwise returns an instantiated object of the correct header class + # + # For example: + # port = TMail::FilePort.new("/test/fixtures/raw_email_simple") + # h = TMail::HeaderField.new_from_port(port, "From") + # h.addrs.to_s #=> "Mikel Lindsaar " + # h = TMail::HeaderField.new_from_port(port, "EvelopeSender") + # h.addrs.to_s #=> "mike@anotherplace.com.au" + # h = TMail::HeaderField.new_from_port(port, "SomeWeirdHeaderField") + # h #=> nil + def new_from_port( port, name, conf = DEFAULT_CONFIG ) + if name == "EnvelopeSender" + name = "From" + re = Regexp.new('\A(From) ', 'i') + else + re = Regexp.new('\A(' + Regexp.quote(name) + '):', 'i') + end + str = nil + port.ropen {|f| + f.each do |line| + if m = re.match(line) then str = m.post_match.strip + elsif str and /\A[\t ]/ === line then str << ' ' << line.strip + elsif /\A-*\s*\z/ === line then break + elsif str then break + end + end + } + new(name, str, Config.to_config(conf)) if str + end + + def internal_new( name, conf ) + FNAME_TO_CLASS[name].newobj('', conf, true) + end + + end # class << self + + def initialize( body, conf, intern = false ) + @body = body + @config = conf + + @illegal = false + @parsed = false + + if intern + @parsed = true + parse_init + end + end + + def inspect + "#<#{self.class} #{@body.inspect}>" + end + + def illegal? + @illegal + end + + def empty? + ensure_parsed + return true if @illegal + isempty? + end + + private + + def ensure_parsed + return if @parsed + @parsed = true + parse + end + + # defabstract parse + # end + + def clear_parse_status + @parsed = false + @illegal = false + end + + public + + def body + ensure_parsed + v = Decoder.new(s = '') + do_accept v + v.terminate + s + end + + def body=( str ) + @body = str + clear_parse_status + end + + include StrategyInterface + + def accept( strategy ) + ensure_parsed + do_accept strategy + strategy.terminate + end + + # abstract do_accept + + end + + + class UnstructuredHeader < HeaderField + + def body + ensure_parsed + @body + end + + def body=( arg ) + ensure_parsed + @body = arg + end + + private + + def parse_init + end + + def parse + @body = Decoder.decode(@body.gsub(/\n|\r\n|\r/, '')) + end + + def isempty? + not @body + end + + def do_accept( strategy ) + strategy.text @body + end + + end + + + class StructuredHeader < HeaderField + + def comments + ensure_parsed + if @comments[0] + [Decoder.decode(@comments[0])] + else + @comments + end + end + + private + + def parse + save = nil + + begin + parse_init + do_parse + rescue SyntaxError + if not save and mime_encoded? @body + save = @body + @body = Decoder.decode(save) + retry + elsif save + @body = save + end + + @illegal = true + raise if @config.strict_parse? + end + end + + def parse_init + @comments = [] + init + end + + def do_parse + quote_boundary + obj = Parser.parse(self.class::PARSE_TYPE, @body, @comments) + set obj if obj + end + + end + + + class DateTimeHeader < StructuredHeader + + PARSE_TYPE = :DATETIME + + def date + ensure_parsed + @date + end + + def date=( arg ) + ensure_parsed + @date = arg + end + + private + + def init + @date = nil + end + + def set( t ) + @date = t + end + + def isempty? + not @date + end + + def do_accept( strategy ) + strategy.meta time2str(@date) + end + + end + + + class AddressHeader < StructuredHeader + + PARSE_TYPE = :MADDRESS + + def addrs + ensure_parsed + @addrs + end + + private + + def init + @addrs = [] + end + + def set( a ) + @addrs = a + end + + def isempty? + @addrs.empty? + end + + def do_accept( strategy ) + first = true + @addrs.each do |a| + if first + first = false + else + strategy.meta ',' + strategy.space + end + a.accept strategy + end + + @comments.each do |c| + strategy.space + strategy.meta '(' + strategy.text c + strategy.meta ')' + end + end + + end + + + class ReturnPathHeader < AddressHeader + + PARSE_TYPE = :RETPATH + + def addr + addrs()[0] + end + + def spec + a = addr() or return nil + a.spec + end + + def routes + a = addr() or return nil + a.routes + end + + private + + def do_accept( strategy ) + a = addr() + + strategy.meta '<' + unless a.routes.empty? + strategy.meta a.routes.map {|i| '@' + i }.join(',') + strategy.meta ':' + end + spec = a.spec + strategy.meta spec if spec + strategy.meta '>' + end + + end + + + class SingleAddressHeader < AddressHeader + + def addr + addrs()[0] + end + + private + + def do_accept( strategy ) + a = addr() + a.accept strategy + @comments.each do |c| + strategy.space + strategy.meta '(' + strategy.text c + strategy.meta ')' + end + end + + end + + + class MessageIdHeader < StructuredHeader + + def id + ensure_parsed + @id + end + + def id=( arg ) + ensure_parsed + @id = arg + end + + private + + def init + @id = nil + end + + def isempty? + not @id + end + + def do_parse + @id = @body.slice(MESSAGE_ID) or + raise SyntaxError, "wrong Message-ID format: #{@body}" + end + + def do_accept( strategy ) + strategy.meta @id + end + + end + + + class ReferencesHeader < StructuredHeader + + def refs + ensure_parsed + @refs + end + + def each_id + self.refs.each do |i| + yield i if MESSAGE_ID === i + end + end + + def ids + ensure_parsed + @ids + end + + def each_phrase + self.refs.each do |i| + yield i unless MESSAGE_ID === i + end + end + + def phrases + ret = [] + each_phrase {|i| ret.push i } + ret + end + + private + + def init + @refs = [] + @ids = [] + end + + def isempty? + @ids.empty? + end + + def do_parse + str = @body + while m = MESSAGE_ID.match(str) + pre = m.pre_match.strip + @refs.push pre unless pre.empty? + @refs.push s = m[0] + @ids.push s + str = m.post_match + end + str = str.strip + @refs.push str unless str.empty? + end + + def do_accept( strategy ) + first = true + @ids.each do |i| + if first + first = false + else + strategy.space + end + strategy.meta i + end + end + + end + + + class ReceivedHeader < StructuredHeader + + PARSE_TYPE = :RECEIVED + + def from + ensure_parsed + @from + end + + def from=( arg ) + ensure_parsed + @from = arg + end + + def by + ensure_parsed + @by + end + + def by=( arg ) + ensure_parsed + @by = arg + end + + def via + ensure_parsed + @via + end + + def via=( arg ) + ensure_parsed + @via = arg + end + + def with + ensure_parsed + @with + end + + def id + ensure_parsed + @id + end + + def id=( arg ) + ensure_parsed + @id = arg + end + + def _for + ensure_parsed + @_for + end + + def _for=( arg ) + ensure_parsed + @_for = arg + end + + def date + ensure_parsed + @date + end + + def date=( arg ) + ensure_parsed + @date = arg + end + + private + + def init + @from = @by = @via = @with = @id = @_for = nil + @with = [] + @date = nil + end + + def set( args ) + @from, @by, @via, @with, @id, @_for, @date = *args + end + + def isempty? + @with.empty? and not (@from or @by or @via or @id or @_for or @date) + end + + def do_accept( strategy ) + list = [] + list.push 'from ' + @from if @from + list.push 'by ' + @by if @by + list.push 'via ' + @via if @via + @with.each do |i| + list.push 'with ' + i + end + list.push 'id ' + @id if @id + list.push 'for <' + @_for + '>' if @_for + + first = true + list.each do |i| + strategy.space unless first + strategy.meta i + first = false + end + if @date + strategy.meta ';' + strategy.space + strategy.meta time2str(@date) + end + end + + end + + + class KeywordsHeader < StructuredHeader + + PARSE_TYPE = :KEYWORDS + + def keys + ensure_parsed + @keys + end + + private + + def init + @keys = [] + end + + def set( a ) + @keys = a + end + + def isempty? + @keys.empty? + end + + def do_accept( strategy ) + first = true + @keys.each do |i| + if first + first = false + else + strategy.meta ',' + end + strategy.meta i + end + end + + end + + + class EncryptedHeader < StructuredHeader + + PARSE_TYPE = :ENCRYPTED + + def encrypter + ensure_parsed + @encrypter + end + + def encrypter=( arg ) + ensure_parsed + @encrypter = arg + end + + def keyword + ensure_parsed + @keyword + end + + def keyword=( arg ) + ensure_parsed + @keyword = arg + end + + private + + def init + @encrypter = nil + @keyword = nil + end + + def set( args ) + @encrypter, @keyword = args + end + + def isempty? + not (@encrypter or @keyword) + end + + def do_accept( strategy ) + if @key + strategy.meta @encrypter + ',' + strategy.space + strategy.meta @keyword + else + strategy.meta @encrypter + end + end + + end + + + class MimeVersionHeader < StructuredHeader + + PARSE_TYPE = :MIMEVERSION + + def major + ensure_parsed + @major + end + + def major=( arg ) + ensure_parsed + @major = arg + end + + def minor + ensure_parsed + @minor + end + + def minor=( arg ) + ensure_parsed + @minor = arg + end + + def version + sprintf('%d.%d', major, minor) + end + + private + + def init + @major = nil + @minor = nil + end + + def set( args ) + @major, @minor = *args + end + + def isempty? + not (@major or @minor) + end + + def do_accept( strategy ) + strategy.meta sprintf('%d.%d', @major, @minor) + end + + end + + + class ContentTypeHeader < StructuredHeader + + PARSE_TYPE = :CTYPE + + def main_type + ensure_parsed + @main + end + + def main_type=( arg ) + ensure_parsed + @main = arg.downcase + end + + def sub_type + ensure_parsed + @sub + end + + def sub_type=( arg ) + ensure_parsed + @sub = arg.downcase + end + + def content_type + ensure_parsed + @sub ? sprintf('%s/%s', @main, @sub) : @main + end + + def params + ensure_parsed + unless @params.blank? + @params.each do |k, v| + @params[k] = unquote(v) + end + end + @params + end + + def []( key ) + ensure_parsed + @params and unquote(@params[key]) + end + + def []=( key, val ) + ensure_parsed + (@params ||= {})[key] = val + end + + private + + def init + @main = @sub = @params = nil + end + + def set( args ) + @main, @sub, @params = *args + end + + def isempty? + not (@main or @sub) + end + + def do_accept( strategy ) + if @sub + strategy.meta sprintf('%s/%s', @main, @sub) + else + strategy.meta @main + end + @params.each do |k,v| + if v + strategy.meta ';' + strategy.space + strategy.kv_pair k, v + end + end + end + + end + + + class ContentTransferEncodingHeader < StructuredHeader + + PARSE_TYPE = :CENCODING + + def encoding + ensure_parsed + @encoding + end + + def encoding=( arg ) + ensure_parsed + @encoding = arg + end + + private + + def init + @encoding = nil + end + + def set( s ) + @encoding = s + end + + def isempty? + not @encoding + end + + def do_accept( strategy ) + strategy.meta @encoding.capitalize + end + + end + + + class ContentDispositionHeader < StructuredHeader + + PARSE_TYPE = :CDISPOSITION + + def disposition + ensure_parsed + @disposition + end + + def disposition=( str ) + ensure_parsed + @disposition = str.downcase + end + + def params + ensure_parsed + unless @params.blank? + @params.each do |k, v| + @params[k] = unquote(v) + end + end + @params + end + + def []( key ) + ensure_parsed + @params and unquote(@params[key]) + end + + def []=( key, val ) + ensure_parsed + (@params ||= {})[key] = val + end + + private + + def init + @disposition = @params = nil + end + + def set( args ) + @disposition, @params = *args + end + + def isempty? + not @disposition and (not @params or @params.empty?) + end + + def do_accept( strategy ) + strategy.meta @disposition + @params.each do |k,v| + strategy.meta ';' + strategy.space + strategy.kv_pair k, unquote(v) + end + end + + end + + + class HeaderField # redefine + + FNAME_TO_CLASS = { + 'date' => DateTimeHeader, + 'resent-date' => DateTimeHeader, + 'to' => AddressHeader, + 'cc' => AddressHeader, + 'bcc' => AddressHeader, + 'from' => AddressHeader, + 'reply-to' => AddressHeader, + 'resent-to' => AddressHeader, + 'resent-cc' => AddressHeader, + 'resent-bcc' => AddressHeader, + 'resent-from' => AddressHeader, + 'resent-reply-to' => AddressHeader, + 'sender' => SingleAddressHeader, + 'resent-sender' => SingleAddressHeader, + 'return-path' => ReturnPathHeader, + 'message-id' => MessageIdHeader, + 'resent-message-id' => MessageIdHeader, + 'in-reply-to' => ReferencesHeader, + 'received' => ReceivedHeader, + 'references' => ReferencesHeader, + 'keywords' => KeywordsHeader, + 'encrypted' => EncryptedHeader, + 'mime-version' => MimeVersionHeader, + 'content-type' => ContentTypeHeader, + 'content-transfer-encoding' => ContentTransferEncodingHeader, + 'content-disposition' => ContentDispositionHeader, + 'content-id' => MessageIdHeader, + 'subject' => UnstructuredHeader, + 'comments' => UnstructuredHeader, + 'content-description' => UnstructuredHeader + } + + end + +end # module TMail diff --git a/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/index.rb b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/index.rb new file mode 100644 index 0000000..554e2fd --- /dev/null +++ b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/index.rb @@ -0,0 +1,9 @@ +#:stopdoc: +# This is here for Rolls. +# Rolls uses this instead of lib/tmail.rb. + +require 'tmail/version' +require 'tmail/mail' +require 'tmail/mailbox' +require 'tmail/core_extensions' +#:startdoc: \ No newline at end of file diff --git a/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/interface.rb b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/interface.rb new file mode 100644 index 0000000..2fc2dbd --- /dev/null +++ b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/interface.rb @@ -0,0 +1,1130 @@ +=begin rdoc + += interface.rb Provides an interface to the TMail object + +=end +#-- +# Copyright (c) 1998-2003 Minero Aoki +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Note: Originally licensed under LGPL v2+. Using MIT license for Rails +# with permission of Minero Aoki. +#++ + +# TMail::Mail objects get accessed primarily through the methods in this file. +# +# + +require 'tmail/utils' + +module TMail + + class Mail + + # Allows you to query the mail object with a string to get the contents + # of the field you want. + # + # Returns a string of the exact contents of the field + # + # mail.from = "mikel " + # mail.header_string("From") #=> "mikel " + def header_string( name, default = nil ) + h = @header[name.downcase] or return default + h.to_s + end + + #:stopdoc: + #-- + #== Attributes + + include TextUtils + + def set_string_array_attr( key, strs ) + strs.flatten! + if strs.empty? + @header.delete key.downcase + else + store key, strs.join(', ') + end + strs + end + private :set_string_array_attr + + def set_string_attr( key, str ) + if str + store key, str + else + @header.delete key.downcase + end + str + end + private :set_string_attr + + def set_addrfield( name, arg ) + if arg + h = HeaderField.internal_new(name, @config) + h.addrs.replace [arg].flatten + @header[name] = h + else + @header.delete name + end + arg + end + private :set_addrfield + + def addrs2specs( addrs ) + return nil unless addrs + list = addrs.map {|addr| + if addr.address_group? + then addr.map {|a| a.spec } + else addr.spec + end + }.flatten + return nil if list.empty? + list + end + private :addrs2specs + + #:startdoc: + + #== Date and Time methods + + # Returns the date of the email message as per the "date" header value or returns + # nil by default (if no date field exists). + # + # You can also pass whatever default you want into this method and it will return + # that instead of nil if there is no date already set. + def date( default = nil ) + if h = @header['date'] + h.date + else + default + end + end + + # Destructively sets the date of the mail object with the passed Time instance, + # returns a Time instance set to the date/time of the mail + # + # Example: + # + # now = Time.now + # mail.date = now + # mail.date #=> Sat Nov 03 18:47:50 +1100 2007 + # mail.date.class #=> Time + def date=( time ) + if time + store 'Date', time2str(time) + else + @header.delete 'date' + end + time + end + + # Returns the time of the mail message formatted to your taste using a + # strftime format string. If no date set returns nil by default or whatever value + # you pass as the second optional parameter. + # + # time = Time.now # (on Nov 16 2007) + # mail.date = time + # mail.strftime("%D") #=> "11/16/07" + def strftime( fmt, default = nil ) + if t = date + t.strftime(fmt) + else + default + end + end + + #== Destination methods + + # Return a TMail::Addresses instance for each entry in the "To:" field of the mail object header. + # + # If the "To:" field does not exist, will return nil by default or the value you + # pass as the optional parameter. + # + # Example: + # + # mail = TMail::Mail.new + # mail.to_addrs #=> nil + # mail.to_addrs([]) #=> [] + # mail.to = "Mikel , another Mikel " + # mail.to_addrs #=> [#, #] + def to_addrs( default = nil ) + if h = @header['to'] + h.addrs + else + default + end + end + + # Return a TMail::Addresses instance for each entry in the "Cc:" field of the mail object header. + # + # If the "Cc:" field does not exist, will return nil by default or the value you + # pass as the optional parameter. + # + # Example: + # + # mail = TMail::Mail.new + # mail.cc_addrs #=> nil + # mail.cc_addrs([]) #=> [] + # mail.cc = "Mikel , another Mikel " + # mail.cc_addrs #=> [#, #] + def cc_addrs( default = nil ) + if h = @header['cc'] + h.addrs + else + default + end + end + + # Return a TMail::Addresses instance for each entry in the "Bcc:" field of the mail object header. + # + # If the "Bcc:" field does not exist, will return nil by default or the value you + # pass as the optional parameter. + # + # Example: + # + # mail = TMail::Mail.new + # mail.bcc_addrs #=> nil + # mail.bcc_addrs([]) #=> [] + # mail.bcc = "Mikel , another Mikel " + # mail.bcc_addrs #=> [#, #] + def bcc_addrs( default = nil ) + if h = @header['bcc'] + h.addrs + else + default + end + end + + # Destructively set the to field of the "To:" header to equal the passed in string. + # + # TMail will parse your contents and turn each valid email address into a TMail::Address + # object before assigning it to the mail message. + # + # Example: + # + # mail = TMail::Mail.new + # mail.to = "Mikel , another Mikel " + # mail.to_addrs #=> [#, #] + def to_addrs=( arg ) + set_addrfield 'to', arg + end + + # Destructively set the to field of the "Cc:" header to equal the passed in string. + # + # TMail will parse your contents and turn each valid email address into a TMail::Address + # object before assigning it to the mail message. + # + # Example: + # + # mail = TMail::Mail.new + # mail.cc = "Mikel , another Mikel " + # mail.cc_addrs #=> [#, #] + def cc_addrs=( arg ) + set_addrfield 'cc', arg + end + + # Destructively set the to field of the "Bcc:" header to equal the passed in string. + # + # TMail will parse your contents and turn each valid email address into a TMail::Address + # object before assigning it to the mail message. + # + # Example: + # + # mail = TMail::Mail.new + # mail.bcc = "Mikel , another Mikel " + # mail.bcc_addrs #=> [#, #] + def bcc_addrs=( arg ) + set_addrfield 'bcc', arg + end + + # Returns who the email is to as an Array of email addresses as opposed to an Array of + # TMail::Address objects which is what Mail#to_addrs returns + # + # Example: + # + # mail = TMail::Mail.new + # mail.to = "Mikel , another Mikel " + # mail.to #=> ["mikel@me.org", "mikel@you.org"] + def to( default = nil ) + addrs2specs(to_addrs(nil)) || default + end + + # Returns who the email cc'd as an Array of email addresses as opposed to an Array of + # TMail::Address objects which is what Mail#to_addrs returns + # + # Example: + # + # mail = TMail::Mail.new + # mail.cc = "Mikel , another Mikel " + # mail.cc #=> ["mikel@me.org", "mikel@you.org"] + def cc( default = nil ) + addrs2specs(cc_addrs(nil)) || default + end + + # Returns who the email bcc'd as an Array of email addresses as opposed to an Array of + # TMail::Address objects which is what Mail#to_addrs returns + # + # Example: + # + # mail = TMail::Mail.new + # mail.bcc = "Mikel , another Mikel " + # mail.bcc #=> ["mikel@me.org", "mikel@you.org"] + def bcc( default = nil ) + addrs2specs(bcc_addrs(nil)) || default + end + + # Destructively sets the "To:" field to the passed array of strings (which should be valid + # email addresses) + # + # Example: + # + # mail = TMail::Mail.new + # mail.to = ["mikel@abc.com", "Mikel "] + # mail.to #=> ["mikel@abc.org", "mikel@xyz.org"] + # mail['to'].to_s #=> "mikel@abc.com, Mikel " + def to=( *strs ) + set_string_array_attr 'To', strs + end + + # Destructively sets the "Cc:" field to the passed array of strings (which should be valid + # email addresses) + # + # Example: + # + # mail = TMail::Mail.new + # mail.cc = ["mikel@abc.com", "Mikel "] + # mail.cc #=> ["mikel@abc.org", "mikel@xyz.org"] + # mail['cc'].to_s #=> "mikel@abc.com, Mikel " + def cc=( *strs ) + set_string_array_attr 'Cc', strs + end + + # Destructively sets the "Bcc:" field to the passed array of strings (which should be valid + # email addresses) + # + # Example: + # + # mail = TMail::Mail.new + # mail.bcc = ["mikel@abc.com", "Mikel "] + # mail.bcc #=> ["mikel@abc.org", "mikel@xyz.org"] + # mail['bcc'].to_s #=> "mikel@abc.com, Mikel " + def bcc=( *strs ) + set_string_array_attr 'Bcc', strs + end + + #== Originator methods + + # Return a TMail::Addresses instance for each entry in the "From:" field of the mail object header. + # + # If the "From:" field does not exist, will return nil by default or the value you + # pass as the optional parameter. + # + # Example: + # + # mail = TMail::Mail.new + # mail.from_addrs #=> nil + # mail.from_addrs([]) #=> [] + # mail.from = "Mikel , another Mikel " + # mail.from_addrs #=> [#, #] + def from_addrs( default = nil ) + if h = @header['from'] + h.addrs + else + default + end + end + + # Destructively set the to value of the "From:" header to equal the passed in string. + # + # TMail will parse your contents and turn each valid email address into a TMail::Address + # object before assigning it to the mail message. + # + # Example: + # + # mail = TMail::Mail.new + # mail.from_addrs = "Mikel , another Mikel " + # mail.from_addrs #=> [#, #] + def from_addrs=( arg ) + set_addrfield 'from', arg + end + + # Returns who the email is from as an Array of email address strings instead to an Array of + # TMail::Address objects which is what Mail#from_addrs returns + # + # Example: + # + # mail = TMail::Mail.new + # mail.from = "Mikel , another Mikel " + # mail.from #=> ["mikel@me.org", "mikel@you.org"] + def from( default = nil ) + addrs2specs(from_addrs(nil)) || default + end + + # Destructively sets the "From:" field to the passed array of strings (which should be valid + # email addresses) + # + # Example: + # + # mail = TMail::Mail.new + # mail.from = ["mikel@abc.com", "Mikel "] + # mail.from #=> ["mikel@abc.org", "mikel@xyz.org"] + # mail['from'].to_s #=> "mikel@abc.com, Mikel " + def from=( *strs ) + set_string_array_attr 'From', strs + end + + # Returns the "friendly" human readable part of the address + # + # Example: + # + # mail = TMail::Mail.new + # mail.from = "Mikel Lindsaar " + # mail.friendly_from #=> "Mikel Lindsaar" + def friendly_from( default = nil ) + h = @header['from'] + a, = h.addrs + return default unless a + return a.phrase if a.phrase + return h.comments.join(' ') unless h.comments.empty? + a.spec + end + + # Return a TMail::Addresses instance for each entry in the "Reply-To:" field of the mail object header. + # + # If the "Reply-To:" field does not exist, will return nil by default or the value you + # pass as the optional parameter. + # + # Example: + # + # mail = TMail::Mail.new + # mail.reply_to_addrs #=> nil + # mail.reply_to_addrs([]) #=> [] + # mail.reply_to = "Mikel , another Mikel " + # mail.reply_to_addrs #=> [#, #] + def reply_to_addrs( default = nil ) + if h = @header['reply-to'] + h.addrs.blank? ? default : h.addrs + else + default + end + end + + # Destructively set the to value of the "Reply-To:" header to equal the passed in argument. + # + # TMail will parse your contents and turn each valid email address into a TMail::Address + # object before assigning it to the mail message. + # + # Example: + # + # mail = TMail::Mail.new + # mail.reply_to_addrs = "Mikel , another Mikel " + # mail.reply_to_addrs #=> [#, #] + def reply_to_addrs=( arg ) + set_addrfield 'reply-to', arg + end + + # Returns who the email is from as an Array of email address strings instead to an Array of + # TMail::Address objects which is what Mail#reply_to_addrs returns + # + # Example: + # + # mail = TMail::Mail.new + # mail.reply_to = "Mikel , another Mikel " + # mail.reply_to #=> ["mikel@me.org", "mikel@you.org"] + def reply_to( default = nil ) + addrs2specs(reply_to_addrs(nil)) || default + end + + # Destructively sets the "Reply-To:" field to the passed array of strings (which should be valid + # email addresses) + # + # Example: + # + # mail = TMail::Mail.new + # mail.reply_to = ["mikel@abc.com", "Mikel "] + # mail.reply_to #=> ["mikel@abc.org", "mikel@xyz.org"] + # mail['reply_to'].to_s #=> "mikel@abc.com, Mikel " + def reply_to=( *strs ) + set_string_array_attr 'Reply-To', strs + end + + # Return a TMail::Addresses instance of the "Sender:" field of the mail object header. + # + # If the "Sender:" field does not exist, will return nil by default or the value you + # pass as the optional parameter. + # + # Example: + # + # mail = TMail::Mail.new + # mail.sender #=> nil + # mail.sender([]) #=> [] + # mail.sender = "Mikel " + # mail.reply_to_addrs #=> [#] + def sender_addr( default = nil ) + f = @header['sender'] or return default + f.addr or return default + end + + # Destructively set the to value of the "Sender:" header to equal the passed in argument. + # + # TMail will parse your contents and turn each valid email address into a TMail::Address + # object before assigning it to the mail message. + # + # Example: + # + # mail = TMail::Mail.new + # mail.sender_addrs = "Mikel , another Mikel " + # mail.sender_addrs #=> [#, #] + def sender_addr=( addr ) + if addr + h = HeaderField.internal_new('sender', @config) + h.addr = addr + @header['sender'] = h + else + @header.delete 'sender' + end + addr + end + + # Returns who the sender of this mail is as string instead to an Array of + # TMail::Address objects which is what Mail#sender_addr returns + # + # Example: + # + # mail = TMail::Mail.new + # mail.sender = "Mikel " + # mail.sender #=> "mikel@me.org" + def sender( default = nil ) + f = @header['sender'] or return default + a = f.addr or return default + a.spec + end + + # Destructively sets the "Sender:" field to the passed string (which should be a valid + # email address) + # + # Example: + # + # mail = TMail::Mail.new + # mail.sender = "mikel@abc.com" + # mail.sender #=> "mikel@abc.org" + # mail['sender'].to_s #=> "mikel@abc.com" + def sender=( str ) + set_string_attr 'Sender', str + end + + #== Subject methods + + # Returns the subject of the mail instance. + # + # If the subject field does not exist, returns nil by default or you can pass in as + # the parameter for what you want the default value to be. + # + # Example: + # + # mail = TMail::Mail.new + # mail.subject #=> nil + # mail.subject("") #=> "" + # mail.subject = "Hello" + # mail.subject #=> "Hello" + def subject( default = nil ) + if h = @header['subject'] + h.body + else + default + end + end + alias quoted_subject subject + + # Destructively sets the passed string as the subject of the mail message. + # + # Example + # + # mail = TMail::Mail.new + # mail.subject #=> "This subject" + # mail.subject = "Another subject" + # mail.subject #=> "Another subject" + def subject=( str ) + set_string_attr 'Subject', str + end + + #== Message Identity & Threading Methods + + # Returns the message ID for this mail object instance. + # + # If the message_id field does not exist, returns nil by default or you can pass in as + # the parameter for what you want the default value to be. + # + # Example: + # + # mail = TMail::Mail.new + # mail.message_id #=> nil + # mail.message_id(TMail.new_message_id) #=> "<47404c5326d9c_2ad4fbb80161@baci.local.tmail>" + # mail.message_id = TMail.new_message_id + # mail.message_id #=> "<47404c5326d9c_2ad4fbb80161@baci.local.tmail>" + def message_id( default = nil ) + if h = @header['message-id'] + h.id || default + else + default + end + end + + # Destructively sets the message ID of the mail object instance to the passed in string + # + # Invalid message IDs are ignored (silently, unless configured otherwise) and result in + # a nil message ID. Left and right angle brackets are required. + # + # Example: + # + # mail = TMail::Mail.new + # mail.message_id = "<348F04F142D69C21-291E56D292BC@xxxx.net>" + # mail.message_id #=> "<348F04F142D69C21-291E56D292BC@xxxx.net>" + # mail.message_id = "this_is_my_badly_formatted_message_id" + # mail.message_id #=> nil + def message_id=( str ) + set_string_attr 'Message-Id', str + end + + # Returns the "In-Reply-To:" field contents as an array of this mail instance if it exists + # + # If the in_reply_to field does not exist, returns nil by default or you can pass in as + # the parameter for what you want the default value to be. + # + # Example: + # + # mail = TMail::Mail.new + # mail.in_reply_to #=> nil + # mail.in_reply_to([]) #=> [] + # TMail::Mail.load("../test/fixtures/raw_email_reply") + # mail.in_reply_to #=> ["<348F04F142D69C21-291E56D292BC@xxxx.net>"] + def in_reply_to( default = nil ) + if h = @header['in-reply-to'] + h.ids + else + default + end + end + + # Destructively sets the value of the "In-Reply-To:" field of an email. + # + # Accepts an array of a single string of a message id + # + # Example: + # + # mail = TMail::Mail.new + # mail.in_reply_to = ["<348F04F142D69C21-291E56D292BC@xxxx.net>"] + # mail.in_reply_to #=> ["<348F04F142D69C21-291E56D292BC@xxxx.net>"] + def in_reply_to=( *idstrs ) + set_string_array_attr 'In-Reply-To', idstrs + end + + # Returns the references of this email (prior messages relating to this message) + # as an array of message ID strings. Useful when you are trying to thread an + # email. + # + # If the references field does not exist, returns nil by default or you can pass in as + # the parameter for what you want the default value to be. + # + # Example: + # + # mail = TMail::Mail.new + # mail.references #=> nil + # mail.references([]) #=> [] + # mail = TMail::Mail.load("../test/fixtures/raw_email_reply") + # mail.references #=> ["<473FF3B8.9020707@xxx.org>", "<348F04F142D69C21-291E56D292BC@xxxx.net>"] + def references( default = nil ) + if h = @header['references'] + h.refs + else + default + end + end + + # Destructively sets the value of the "References:" field of an email. + # + # Accepts an array of strings of message IDs + # + # Example: + # + # mail = TMail::Mail.new + # mail.references = ["<348F04F142D69C21-291E56D292BC@xxxx.net>"] + # mail.references #=> ["<348F04F142D69C21-291E56D292BC@xxxx.net>"] + def references=( *strs ) + set_string_array_attr 'References', strs + end + + #== MIME header methods + + # Returns the listed MIME version of this email from the "Mime-Version:" header field + # + # If the mime_version field does not exist, returns nil by default or you can pass in as + # the parameter for what you want the default value to be. + # + # Example: + # + # mail = TMail::Mail.new + # mail.mime_version #=> nil + # mail.mime_version([]) #=> [] + # mail = TMail::Mail.load("../test/fixtures/raw_email") + # mail.mime_version #=> "1.0" + def mime_version( default = nil ) + if h = @header['mime-version'] + h.version || default + else + default + end + end + + def mime_version=( m, opt = nil ) + if opt + if h = @header['mime-version'] + h.major = m + h.minor = opt + else + store 'Mime-Version', "#{m}.#{opt}" + end + else + store 'Mime-Version', m + end + m + end + + # Returns the current "Content-Type" of the mail instance. + # + # If the content_type field does not exist, returns nil by default or you can pass in as + # the parameter for what you want the default value to be. + # + # Example: + # + # mail = TMail::Mail.new + # mail.content_type #=> nil + # mail.content_type([]) #=> [] + # mail = TMail::Mail.load("../test/fixtures/raw_email") + # mail.content_type #=> "text/plain" + def content_type( default = nil ) + if h = @header['content-type'] + h.content_type || default + else + default + end + end + + # Returns the current main type of the "Content-Type" of the mail instance. + # + # If the content_type field does not exist, returns nil by default or you can pass in as + # the parameter for what you want the default value to be. + # + # Example: + # + # mail = TMail::Mail.new + # mail.main_type #=> nil + # mail.main_type([]) #=> [] + # mail = TMail::Mail.load("../test/fixtures/raw_email") + # mail.main_type #=> "text" + def main_type( default = nil ) + if h = @header['content-type'] + h.main_type || default + else + default + end + end + + # Returns the current sub type of the "Content-Type" of the mail instance. + # + # If the content_type field does not exist, returns nil by default or you can pass in as + # the parameter for what you want the default value to be. + # + # Example: + # + # mail = TMail::Mail.new + # mail.sub_type #=> nil + # mail.sub_type([]) #=> [] + # mail = TMail::Mail.load("../test/fixtures/raw_email") + # mail.sub_type #=> "plain" + def sub_type( default = nil ) + if h = @header['content-type'] + h.sub_type || default + else + default + end + end + + # Destructively sets the "Content-Type:" header field of this mail object + # + # Allows you to set the main type, sub type as well as parameters to the field. + # The main type and sub type need to be a string. + # + # The optional params hash can be passed with keys as symbols and values as a string, + # or strings as keys and values. + # + # Example: + # + # mail = TMail::Mail.new + # mail.set_content_type("text", "plain") + # mail.to_s #=> "Content-Type: text/plain\n\n" + # + # mail.set_content_type("text", "plain", {:charset => "EUC-KR", :format => "flowed"}) + # mail.to_s #=> "Content-Type: text/plain; charset=EUC-KR; format=flowed\n\n" + # + # mail.set_content_type("text", "plain", {"charset" => "EUC-KR", "format" => "flowed"}) + # mail.to_s #=> "Content-Type: text/plain; charset=EUC-KR; format=flowed\n\n" + def set_content_type( str, sub = nil, param = nil ) + if sub + main, sub = str, sub + else + main, sub = str.split(%r, 2) + raise ArgumentError, "sub type missing: #{str.inspect}" unless sub + end + if h = @header['content-type'] + h.main_type = main + h.sub_type = sub + h.params.clear + else + store 'Content-Type', "#{main}/#{sub}" + end + @header['content-type'].params.replace param if param + str + end + + alias content_type= set_content_type + + # Returns the named type parameter as a string, from the "Content-Type:" header. + # + # Example: + # + # mail = TMail::Mail.new + # mail.type_param("charset") #=> nil + # mail.type_param("charset", []) #=> [] + # mail.set_content_type("text", "plain", {:charset => "EUC-KR", :format => "flowed"}) + # mail.type_param("charset") #=> "EUC-KR" + # mail.type_param("format") #=> "flowed" + def type_param( name, default = nil ) + if h = @header['content-type'] + h[name] || default + else + default + end + end + + # Returns the character set of the email. Returns nil if no encoding set or returns + # whatever default you pass as a parameter - note passing the parameter does NOT change + # the mail object in any way. + # + # Example: + # + # mail = TMail::Mail.load("path_to/utf8_email") + # mail.charset #=> "UTF-8" + # + # mail = TMail::Mail.new + # mail.charset #=> nil + # mail.charset("US-ASCII") #=> "US-ASCII" + def charset( default = nil ) + if h = @header['content-type'] + h['charset'] or default + else + default + end + end + + # Destructively sets the character set used by this mail object to the passed string, you + # should note though that this does nothing to the mail body, just changes the header + # value, you will need to transliterate the body as well to match whatever you put + # in this header value if you are changing character sets. + # + # Example: + # + # mail = TMail::Mail.new + # mail.charset #=> nil + # mail.charset = "UTF-8" + # mail.charset #=> "UTF-8" + def charset=( str ) + if str + if h = @header[ 'content-type' ] + h['charset'] = str + else + store 'Content-Type', "text/plain; charset=#{str}" + end + end + str + end + + # Returns the transfer encoding of the email. Returns nil if no encoding set or returns + # whatever default you pass as a parameter - note passing the parameter does NOT change + # the mail object in any way. + # + # Example: + # + # mail = TMail::Mail.load("path_to/base64_encoded_email") + # mail.transfer_encoding #=> "base64" + # + # mail = TMail::Mail.new + # mail.transfer_encoding #=> nil + # mail.transfer_encoding("base64") #=> "base64" + def transfer_encoding( default = nil ) + if h = @header['content-transfer-encoding'] + h.encoding || default + else + default + end + end + + # Destructively sets the transfer encoding of the mail object to the passed string, you + # should note though that this does nothing to the mail body, just changes the header + # value, you will need to encode or decode the body as well to match whatever you put + # in this header value. + # + # Example: + # + # mail = TMail::Mail.new + # mail.transfer_encoding #=> nil + # mail.transfer_encoding = "base64" + # mail.transfer_encoding #=> "base64" + def transfer_encoding=( str ) + set_string_attr 'Content-Transfer-Encoding', str + end + + alias encoding transfer_encoding + alias encoding= transfer_encoding= + alias content_transfer_encoding transfer_encoding + alias content_transfer_encoding= transfer_encoding= + + # Returns the content-disposition of the mail object, returns nil or the passed + # default value if given + # + # Example: + # + # mail = TMail::Mail.load("path_to/raw_mail_with_attachment") + # mail.disposition #=> "attachment" + # + # mail = TMail::Mail.load("path_to/plain_simple_email") + # mail.disposition #=> nil + # mail.disposition(false) #=> false + def disposition( default = nil ) + if h = @header['content-disposition'] + h.disposition || default + else + default + end + end + + alias content_disposition disposition + + # Allows you to set the content-disposition of the mail object. Accepts a type + # and a hash of parameters. + # + # Example: + # + # mail.set_disposition("attachment", {:filename => "test.rb"}) + # mail.disposition #=> "attachment" + # mail['content-disposition'].to_s #=> "attachment; filename=test.rb" + def set_disposition( str, params = nil ) + if h = @header['content-disposition'] + h.disposition = str + h.params.clear + else + store('Content-Disposition', str) + h = @header['content-disposition'] + end + h.params.replace params if params + end + + alias disposition= set_disposition + alias set_content_disposition set_disposition + alias content_disposition= set_disposition + + # Returns the value of a parameter in an existing content-disposition header + # + # Example: + # + # mail.set_disposition("attachment", {:filename => "test.rb"}) + # mail['content-disposition'].to_s #=> "attachment; filename=test.rb" + # mail.disposition_param("filename") #=> "test.rb" + # mail.disposition_param("missing_param_key") #=> nil + # mail.disposition_param("missing_param_key", false) #=> false + # mail.disposition_param("missing_param_key", "Nothing to see here") #=> "Nothing to see here" + def disposition_param( name, default = nil ) + if h = @header['content-disposition'] + h[name] || default + else + default + end + end + + # Convert the Mail object's body into a Base64 encoded email + # returning the modified Mail object + def base64_encode! + store 'Content-Transfer-Encoding', 'Base64' + self.body = base64_encode + end + + # Return the result of encoding the TMail::Mail object body + # without altering the current body + def base64_encode + Base64.folding_encode(self.body) + end + + # Convert the Mail object's body into a Base64 decoded email + # returning the modified Mail object + def base64_decode! + if /base64/i === self.transfer_encoding('') + store 'Content-Transfer-Encoding', '8bit' + self.body = base64_decode + end + end + + # Returns the result of decoding the TMail::Mail object body + # without altering the current body + def base64_decode + Base64.decode(self.body, @config.strict_base64decode?) + end + + # Returns an array of each destination in the email message including to: cc: or bcc: + # + # Example: + # + # mail.to = "Mikel " + # mail.cc = "Trans " + # mail.bcc = "bob " + # mail.destinations #=> ["mikel@lindsaar.net", "t@t.com", "bob@me.com"] + def destinations( default = nil ) + ret = [] + %w( to cc bcc ).each do |nm| + if h = @header[nm] + h.addrs.each {|i| ret.push i.address } + end + end + ret.empty? ? default : ret + end + + # Yields a block of destination, yielding each as a string. + # (from the destinations example) + # mail.each_destination { |d| puts "#{d.class}: #{d}" } + # String: mikel@lindsaar.net + # String: t@t.com + # String: bob@me.com + def each_destination( &block ) + destinations([]).each do |i| + if Address === i + yield i + else + i.each(&block) + end + end + end + + alias each_dest each_destination + + # Returns an array of reply to addresses that the Mail object has, + # or if the Mail message has no reply-to, returns an array of the + # Mail objects from addresses. Else returns the default which can + # either be passed as a parameter or defaults to nil + # + # Example: + # mail.from = "Mikel " + # mail.reply_to = nil + # mail.reply_addresses #=> [""] + # + def reply_addresses( default = nil ) + reply_to_addrs(nil) or from_addrs(nil) or default + end + + # Returns the "sender" field as an array -> useful to find out who to + # send an error email to. + def error_reply_addresses( default = nil ) + if s = sender(nil) + [s] + else + from_addrs(default) + end + end + + # Returns true if the Mail object is a multipart message + def multipart? + main_type('').downcase == 'multipart' + end + + # Creates a new email in reply to self. Sets the In-Reply-To and + # References headers for you automagically. + # + # Example: + # mail = TMail::Mail.load("my_email") + # reply_email = mail.create_reply + # reply_email.class #=> TMail::Mail + # reply_email.references #=> [""] + # reply_email.in_reply_to #=> [""] + def create_reply + setup_reply create_empty_mail() + end + + # Creates a new email in reply to self. Sets the In-Reply-To and + # References headers for you automagically. + # + # Example: + # mail = TMail::Mail.load("my_email") + # forward_email = mail.create_forward + # forward_email.class #=> TMail::Mail + # forward_email.content_type #=> "multipart/mixed" + # forward_email.body #=> "Attachment: (unnamed)" + # forward_email.encoded #=> Returns the original email as a MIME attachment + def create_forward + setup_forward create_empty_mail() + end + + #:stopdoc: + private + + def create_empty_mail + self.class.new(StringPort.new(''), @config) + end + + def setup_reply( mail ) + if tmp = reply_addresses(nil) + mail.to_addrs = tmp + end + + mid = message_id(nil) + tmp = references(nil) || [] + tmp.push mid if mid + mail.in_reply_to = [mid] if mid + mail.references = tmp unless tmp.empty? + mail.subject = 'Re: ' + subject('').sub(/\A(?:\[[^\]]+\])?(?:\s*Re:)*\s*/i, '') + mail.mime_version = '1.0' + mail + end + + def setup_forward( mail ) + m = Mail.new(StringPort.new('')) + m.body = decoded + m.set_content_type 'message', 'rfc822' + m.encoding = encoding('7bit') + mail.parts.push m + # call encoded to reparse the message + mail.encoded + mail + end + + #:startdoc: + end # class Mail + +end # module TMail diff --git a/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/loader.rb b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/loader.rb new file mode 100644 index 0000000..6c0e251 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/loader.rb @@ -0,0 +1,3 @@ +#:stopdoc: +require 'tmail/mailbox' +#:startdoc: \ No newline at end of file diff --git a/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/mail.rb b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/mail.rb new file mode 100644 index 0000000..c3a8803 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/mail.rb @@ -0,0 +1,578 @@ +=begin rdoc + += Mail class + +=end +#-- +# Copyright (c) 1998-2003 Minero Aoki +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Note: Originally licensed under LGPL v2+. Using MIT license for Rails +# with permission of Minero Aoki. +#++ + + + +require 'tmail/interface' +require 'tmail/encode' +require 'tmail/header' +require 'tmail/port' +require 'tmail/config' +require 'tmail/utils' +require 'tmail/attachments' +require 'tmail/quoting' +require 'socket' + +module TMail + + # == Mail Class + # + # Accessing a TMail object done via the TMail::Mail class. As email can be fairly complex + # creatures, you will find a large amount of accessor and setter methods in this class! + # + # Most of the below methods handle the header, in fact, what TMail does best is handle the + # header of the email object. There are only a few methods that deal directly with the body + # of the email, such as base64_encode and base64_decode. + # + # === Using TMail inside your code + # + # The usual way is to install the gem (see the {README}[link:/README] on how to do this) and + # then put at the top of your class: + # + # require 'tmail' + # + # You can then create a new TMail object in your code with: + # + # @email = TMail::Mail.new + # + # Or if you have an email as a string, you can initialize a new TMail::Mail object and get it + # to parse that string for you like so: + # + # @email = TMail::Mail.parse(email_text) + # + # You can also read a single email off the disk, for example: + # + # @email = TMail::Mail.load('filename.txt') + # + # Also, you can read a mailbox (usual unix mbox format) and end up with an array of TMail + # objects by doing something like this: + # + # # Note, we pass true as the last variable to open the mailbox read only + # mailbox = TMail::UNIXMbox.new("mailbox", nil, true) + # @emails = [] + # mailbox.each_port { |m| @emails << TMail::Mail.new(m) } + # + class Mail + + class << self + + # Opens an email that has been saved out as a file by itself. + # + # This function will read a file non-destructively and then parse + # the contents and return a TMail::Mail object. + # + # Does not handle multiple email mailboxes (like a unix mbox) for that + # use the TMail::UNIXMbox class. + # + # Example: + # mail = TMail::Mail.load('filename') + # + def load( fname ) + new(FilePort.new(fname)) + end + + alias load_from load + alias loadfrom load + + # Parses an email from the supplied string and returns a TMail::Mail + # object. + # + # Example: + # require 'rubygems'; require 'tmail' + # email_string =< # bodyport=nil> + # mail.body + # #=> "Hello there Mikel!\n\n" + def parse( str ) + new(StringPort.new(str)) + end + + end + + def initialize( port = nil, conf = DEFAULT_CONFIG ) #:nodoc: + @port = port || StringPort.new + @config = Config.to_config(conf) + + @header = {} + @body_port = nil + @body_parsed = false + @epilogue = '' + @parts = [] + + @port.ropen {|f| + parse_header f + parse_body f unless @port.reproducible? + } + end + + # Provides access to the port this email is using to hold it's data + # + # Example: + # mail = TMail::Mail.parse(email_string) + # mail.port + # #=> # + attr_reader :port + + def inspect + "\#<#{self.class} port=#{@port.inspect} bodyport=#{@body_port.inspect}>" + end + + # + # to_s interfaces + # + + public + + include StrategyInterface + + def write_back( eol = "\n", charset = 'e' ) + parse_body + @port.wopen {|stream| encoded eol, charset, stream } + end + + def accept( strategy ) + with_multipart_encoding(strategy) { + ordered_each do |name, field| + next if field.empty? + strategy.header_name canonical(name) + field.accept strategy + strategy.puts + end + strategy.puts + body_port().ropen {|r| + strategy.write r.read + } + } + end + + private + + def canonical( name ) + name.split(/-/).map {|s| s.capitalize }.join('-') + end + + def with_multipart_encoding( strategy ) + if parts().empty? # DO NOT USE @parts + yield + + else + bound = ::TMail.new_boundary + if @header.key? 'content-type' + @header['content-type'].params['boundary'] = bound + else + store 'Content-Type', % + end + + yield + + parts().each do |tm| + strategy.puts + strategy.puts '--' + bound + tm.accept strategy + end + strategy.puts + strategy.puts '--' + bound + '--' + strategy.write epilogue() + end + end + + ### + ### header + ### + + public + + ALLOW_MULTIPLE = { + 'received' => true, + 'resent-date' => true, + 'resent-from' => true, + 'resent-sender' => true, + 'resent-to' => true, + 'resent-cc' => true, + 'resent-bcc' => true, + 'resent-message-id' => true, + 'comments' => true, + 'keywords' => true + } + USE_ARRAY = ALLOW_MULTIPLE + + def header + @header.dup + end + + # Returns a TMail::AddressHeader object of the field you are querying. + # Examples: + # @mail['from'] #=> # + # @mail['to'] #=> # + # + # You can get the string value of this by passing "to_s" to the query: + # Example: + # @mail['to'].to_s #=> "mikel@test.com.au" + def []( key ) + @header[key.downcase] + end + + def sub_header(key, param) + (hdr = self[key]) ? hdr[param] : nil + end + + alias fetch [] + + # Allows you to set or delete TMail header objects at will. + # Examples: + # @mail = TMail::Mail.new + # @mail['to'].to_s # => 'mikel@test.com.au' + # @mail['to'] = 'mikel@elsewhere.org' + # @mail['to'].to_s # => 'mikel@elsewhere.org' + # @mail.encoded # => "To: mikel@elsewhere.org\r\n\r\n" + # @mail['to'] = nil + # @mail['to'].to_s # => nil + # @mail.encoded # => "\r\n" + # + # Note: setting mail[] = nil actually deletes the header field in question from the object, + # it does not just set the value of the hash to nil + def []=( key, val ) + dkey = key.downcase + + if val.nil? + @header.delete dkey + return nil + end + + case val + when String + header = new_hf(key, val) + when HeaderField + ; + when Array + ALLOW_MULTIPLE.include? dkey or + raise ArgumentError, "#{key}: Header must not be multiple" + @header[dkey] = val + return val + else + header = new_hf(key, val.to_s) + end + if ALLOW_MULTIPLE.include? dkey + (@header[dkey] ||= []).push header + else + @header[dkey] = header + end + + val + end + + alias store []= + + # Allows you to loop through each header in the TMail::Mail object in a block + # Example: + # @mail['to'] = 'mikel@elsewhere.org' + # @mail['from'] = 'me@me.com' + # @mail.each_header { |k,v| puts "#{k} = #{v}" } + # # => from = me@me.com + # # => to = mikel@elsewhere.org + def each_header + @header.each do |key, val| + [val].flatten.each {|v| yield key, v } + end + end + + alias each_pair each_header + + def each_header_name( &block ) + @header.each_key(&block) + end + + alias each_key each_header_name + + def each_field( &block ) + @header.values.flatten.each(&block) + end + + alias each_value each_field + + FIELD_ORDER = %w( + return-path received + resent-date resent-from resent-sender resent-to + resent-cc resent-bcc resent-message-id + date from sender reply-to to cc bcc + message-id in-reply-to references + subject comments keywords + mime-version content-type content-transfer-encoding + content-disposition content-description + ) + + def ordered_each + list = @header.keys + FIELD_ORDER.each do |name| + if list.delete(name) + [@header[name]].flatten.each {|v| yield name, v } + end + end + list.each do |name| + [@header[name]].flatten.each {|v| yield name, v } + end + end + + def clear + @header.clear + end + + def delete( key ) + @header.delete key.downcase + end + + def delete_if + @header.delete_if do |key,val| + if Array === val + val.delete_if {|v| yield key, v } + val.empty? + else + yield key, val + end + end + end + + def keys + @header.keys + end + + def key?( key ) + @header.key? key.downcase + end + + def values_at( *args ) + args.map {|k| @header[k.downcase] }.flatten + end + + alias indexes values_at + alias indices values_at + + private + + def parse_header( f ) + name = field = nil + unixfrom = nil + + while line = f.gets + case line + when /\A[ \t]/ # continue from prev line + raise SyntaxError, 'mail is began by space' unless field + field << ' ' << line.strip + + when /\A([^\: \t]+):\s*/ # new header line + add_hf name, field if field + name = $1 + field = $' #.strip + + when /\A\-*\s*\z/ # end of header + add_hf name, field if field + name = field = nil + break + + when /\AFrom (\S+)/ + unixfrom = $1 + + when /^charset=.*/ + + else + raise SyntaxError, "wrong mail header: '#{line.inspect}'" + end + end + add_hf name, field if name + + if unixfrom + add_hf 'Return-Path', "<#{unixfrom}>" unless @header['return-path'] + end + end + + def add_hf( name, field ) + key = name.downcase + field = new_hf(name, field) + + if ALLOW_MULTIPLE.include? key + (@header[key] ||= []).push field + else + @header[key] = field + end + end + + def new_hf( name, field ) + HeaderField.new(name, field, @config) + end + + ### + ### body + ### + + public + + def body_port + parse_body + @body_port + end + + def each( &block ) + body_port().ropen {|f| f.each(&block) } + end + + def quoted_body + body_port.ropen {|f| return f.read } + end + + def quoted_body= str + body_port.wopen { |f| f.write str } + str + end + + def body=( str ) + # Sets the body of the email to a new (encoded) string. + # + # We also reparses the email if the body is ever reassigned, this is a performance hit, however when + # you assign the body, you usually want to be able to make sure that you can access the attachments etc. + # + # Usage: + # + # mail.body = "Hello, this is\nthe body text" + # # => "Hello, this is\nthe body" + # mail.body + # # => "Hello, this is\nthe body" + @body_parsed = false + parse_body(StringInput.new(str)) + parse_body + @body_port.wopen {|f| f.write str } + str + end + + alias preamble quoted_body + alias preamble= quoted_body= + + def epilogue + parse_body + @epilogue.dup + end + + def epilogue=( str ) + parse_body + @epilogue = str + str + end + + def parts + parse_body + @parts + end + + def each_part( &block ) + parts().each(&block) + end + + # Returns true if the content type of this part of the email is + # a disposition attachment + def disposition_is_attachment? + (self['content-disposition'] && self['content-disposition'].disposition == "attachment") + end + + # Returns true if this part's content main type is text, else returns false. + # By main type is meant "text/plain" is text. "text/html" is text + def content_type_is_text? + self.header['content-type'] && (self.header['content-type'].main_type != "text") + end + + private + + def parse_body( f = nil ) + return if @body_parsed + if f + parse_body_0 f + else + @port.ropen {|f| + skip_header f + parse_body_0 f + } + end + @body_parsed = true + end + + def skip_header( f ) + while line = f.gets + return if /\A[\r\n]*\z/ === line + end + end + + def parse_body_0( f ) + if multipart? + read_multipart f + else + @body_port = @config.new_body_port(self) + @body_port.wopen {|w| + w.write f.read + } + end + end + + def read_multipart( src ) + bound = @header['content-type'].params['boundary'] + is_sep = /\A--#{Regexp.quote bound}(?:--)?[ \t]*(?:\n|\r\n|\r)/ + lastbound = "--#{bound}--" + + ports = [ @config.new_preamble_port(self) ] + begin + f = ports.last.wopen + while line = src.gets + if is_sep === line + f.close + break if line.strip == lastbound + ports.push @config.new_part_port(self) + f = ports.last.wopen + else + f << line + end + end + @epilogue = (src.read || '') + ensure + f.close if f and not f.closed? + end + + @body_port = ports.shift + @parts = ports.map {|p| self.class.new(p, @config) } + end + + end # class Mail + +end # module TMail diff --git a/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/mailbox.rb b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/mailbox.rb new file mode 100644 index 0000000..b0bc6a7 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/mailbox.rb @@ -0,0 +1,495 @@ +=begin rdoc + += Mailbox and Mbox interaction class + +=end +#-- +# Copyright (c) 1998-2003 Minero Aoki +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Note: Originally licensed under LGPL v2+. Using MIT license for Rails +# with permission of Minero Aoki. +#++ + +require 'tmail/port' +require 'socket' +require 'mutex_m' + + +unless [].respond_to?(:sort_by) +module Enumerable#:nodoc: + def sort_by + map {|i| [yield(i), i] }.sort {|a,b| a.first <=> b.first }.map {|i| i[1] } + end +end +end + + +module TMail + + class MhMailbox + + PORT_CLASS = MhPort + + def initialize( dir ) + edir = File.expand_path(dir) + raise ArgumentError, "not directory: #{dir}"\ + unless FileTest.directory? edir + @dirname = edir + @last_file = nil + @last_atime = nil + end + + def directory + @dirname + end + + alias dirname directory + + attr_accessor :last_atime + + def inspect + "#<#{self.class} #{@dirname}>" + end + + def close + end + + def new_port + PORT_CLASS.new(next_file_name()) + end + + def each_port + mail_files().each do |path| + yield PORT_CLASS.new(path) + end + @last_atime = Time.now + end + + alias each each_port + + def reverse_each_port + mail_files().reverse_each do |path| + yield PORT_CLASS.new(path) + end + @last_atime = Time.now + end + + alias reverse_each reverse_each_port + + # old #each_mail returns Port + #def each_mail + # each_port do |port| + # yield Mail.new(port) + # end + #end + + def each_new_port( mtime = nil, &block ) + mtime ||= @last_atime + return each_port(&block) unless mtime + return unless File.mtime(@dirname) >= mtime + + mail_files().each do |path| + yield PORT_CLASS.new(path) if File.mtime(path) > mtime + end + @last_atime = Time.now + end + + private + + def mail_files + Dir.entries(@dirname)\ + .select {|s| /\A\d+\z/ === s }\ + .map {|s| s.to_i }\ + .sort\ + .map {|i| "#{@dirname}/#{i}" }\ + .select {|path| FileTest.file? path } + end + + def next_file_name + unless n = @last_file + n = 0 + Dir.entries(@dirname)\ + .select {|s| /\A\d+\z/ === s }\ + .map {|s| s.to_i }.sort\ + .each do |i| + next unless FileTest.file? "#{@dirname}/#{i}" + n = i + end + end + begin + n += 1 + end while FileTest.exist? "#{@dirname}/#{n}" + @last_file = n + + "#{@dirname}/#{n}" + end + + end # MhMailbox + + MhLoader = MhMailbox + + + class UNIXMbox + + class << self + alias newobj new + end + + # Creates a new mailbox object that you can iterate through to collect the + # emails from with "each_port". + # + # You need to pass it a filename of a unix mailbox format file, the format of this + # file can be researched at this page at {wikipedia}[link:http://en.wikipedia.org/wiki/Mbox] + # + # ==== Parameters + # + # +filename+: The filename of the mailbox you want to open + # + # +tmpdir+: Can be set to override TMail using the system environment's temp dir. TMail will first + # use the temp dir specified by you (if any) or then the temp dir specified in the Environment's TEMP + # value then the value in the Environment's TMP value or failing all of the above, '/tmp' + # + # +readonly+: If set to false, each email you take from the mail box will be removed from the mailbox. + # default is *false* - ie, it *WILL* truncate your mailbox file to ZERO once it has read the emails out. + # + # ==== Options: + # + # None + # + # ==== Examples: + # + # # First show using readonly true: + # + # require 'ftools' + # File.size("../test/fixtures/mailbox") + # #=> 20426 + # + # mailbox = TMail::UNIXMbox.new("../test/fixtures/mailbox", nil, true) + # #=> # + # + # mailbox.each_port do |port| + # mail = TMail::Mail.new(port) + # puts mail.subject + # end + # #Testing mailbox 1 + # #Testing mailbox 2 + # #Testing mailbox 3 + # #Testing mailbox 4 + # require 'ftools' + # File.size?("../test/fixtures/mailbox") + # #=> 20426 + # + # # Now show with readonly set to the default false + # + # mailbox = TMail::UNIXMbox.new("../test/fixtures/mailbox") + # #=> # + # + # mailbox.each_port do |port| + # mail = TMail::Mail.new(port) + # puts mail.subject + # end + # #Testing mailbox 1 + # #Testing mailbox 2 + # #Testing mailbox 3 + # #Testing mailbox 4 + # + # File.size?("../test/fixtures/mailbox") + # #=> nil + def UNIXMbox.new( filename, tmpdir = nil, readonly = false ) + tmpdir = ENV['TEMP'] || ENV['TMP'] || '/tmp' + newobj(filename, "#{tmpdir}/ruby_tmail_#{$$}_#{rand()}", readonly, false) + end + + def UNIXMbox.lock( fname ) + begin + f = File.open(fname, 'r+') + f.flock File::LOCK_EX + yield f + ensure + f.flock File::LOCK_UN + f.close if f and not f.closed? + end + end + + def UNIXMbox.static_new( fname, dir, readonly = false ) + newobj(fname, dir, readonly, true) + end + + def initialize( fname, mhdir, readonly, static ) + @filename = fname + @readonly = readonly + @closed = false + + Dir.mkdir mhdir + @real = MhMailbox.new(mhdir) + @finalizer = UNIXMbox.mkfinal(@real, @filename, !@readonly, !static) + ObjectSpace.define_finalizer self, @finalizer + end + + def UNIXMbox.mkfinal( mh, mboxfile, writeback_p, cleanup_p ) + lambda { + if writeback_p + lock(mboxfile) {|f| + mh.each_port do |port| + f.puts create_from_line(port) + port.ropen {|r| + f.puts r.read + } + end + } + end + if cleanup_p + Dir.foreach(mh.dirname) do |fname| + next if /\A\.\.?\z/ === fname + File.unlink "#{mh.dirname}/#{fname}" + end + Dir.rmdir mh.dirname + end + } + end + + # make _From line + def UNIXMbox.create_from_line( port ) + sprintf 'From %s %s', + fromaddr(), TextUtils.time2str(File.mtime(port.filename)) + end + + def UNIXMbox.fromaddr(port) + h = HeaderField.new_from_port(port, 'Return-Path') || + HeaderField.new_from_port(port, 'From') || + HeaderField.new_from_port(port, 'EnvelopeSender') or return 'nobody' + a = h.addrs[0] or return 'nobody' + a.spec + end + + def close + return if @closed + + ObjectSpace.undefine_finalizer self + @finalizer.call + @finalizer = nil + @real = nil + @closed = true + @updated = nil + end + + def each_port( &block ) + close_check + update + @real.each_port(&block) + end + + alias each each_port + + def reverse_each_port( &block ) + close_check + update + @real.reverse_each_port(&block) + end + + alias reverse_each reverse_each_port + + # old #each_mail returns Port + #def each_mail( &block ) + # each_port do |port| + # yield Mail.new(port) + # end + #end + + def each_new_port( mtime = nil ) + close_check + update + @real.each_new_port(mtime) {|p| yield p } + end + + def new_port + close_check + @real.new_port + end + + private + + def close_check + @closed and raise ArgumentError, 'accessing already closed mbox' + end + + def update + return if FileTest.zero?(@filename) + return if @updated and File.mtime(@filename) < @updated + w = nil + port = nil + time = nil + UNIXMbox.lock(@filename) {|f| + begin + f.each do |line| + if /\AFrom / === line + w.close if w + File.utime time, time, port.filename if time + + port = @real.new_port + w = port.wopen + time = fromline2time(line) + else + w.print line if w + end + end + ensure + if w and not w.closed? + w.close + File.utime time, time, port.filename if time + end + end + f.truncate(0) unless @readonly + @updated = Time.now + } + end + + def fromline2time( line ) + m = /\AFrom \S+ \w+ (\w+) (\d+) (\d+):(\d+):(\d+) (\d+)/.match(line) \ + or return nil + Time.local(m[6].to_i, m[1], m[2].to_i, m[3].to_i, m[4].to_i, m[5].to_i) + end + + end # UNIXMbox + + MboxLoader = UNIXMbox + + + class Maildir + + extend Mutex_m + + PORT_CLASS = MaildirPort + + @seq = 0 + def Maildir.unique_number + synchronize { + @seq += 1 + return @seq + } + end + + def initialize( dir = nil ) + @dirname = dir || ENV['MAILDIR'] + raise ArgumentError, "not directory: #{@dirname}"\ + unless FileTest.directory? @dirname + @new = "#{@dirname}/new" + @tmp = "#{@dirname}/tmp" + @cur = "#{@dirname}/cur" + end + + def directory + @dirname + end + + def inspect + "#<#{self.class} #{@dirname}>" + end + + def close + end + + def each_port + mail_files(@cur).each do |path| + yield PORT_CLASS.new(path) + end + end + + alias each each_port + + def reverse_each_port + mail_files(@cur).reverse_each do |path| + yield PORT_CLASS.new(path) + end + end + + alias reverse_each reverse_each_port + + def new_port + fname = nil + tmpfname = nil + newfname = nil + + begin + fname = "#{Time.now.to_i}.#{$$}_#{Maildir.unique_number}.#{Socket.gethostname}" + + tmpfname = "#{@tmp}/#{fname}" + newfname = "#{@new}/#{fname}" + end while FileTest.exist? tmpfname + + if block_given? + File.open(tmpfname, 'w') {|f| yield f } + File.rename tmpfname, newfname + PORT_CLASS.new(newfname) + else + File.open(tmpfname, 'w') {|f| f.write "\n\n" } + PORT_CLASS.new(tmpfname) + end + end + + def each_new_port + mail_files(@new).each do |path| + dest = @cur + '/' + File.basename(path) + File.rename path, dest + yield PORT_CLASS.new(dest) + end + + check_tmp + end + + TOO_OLD = 60 * 60 * 36 # 36 hour + + def check_tmp + old = Time.now.to_i - TOO_OLD + + each_filename(@tmp) do |full, fname| + if FileTest.file? full and + File.stat(full).mtime.to_i < old + File.unlink full + end + end + end + + private + + def mail_files( dir ) + Dir.entries(dir)\ + .select {|s| s[0] != ?. }\ + .sort_by {|s| s.slice(/\A\d+/).to_i }\ + .map {|s| "#{dir}/#{s}" }\ + .select {|path| FileTest.file? path } + end + + def each_filename( dir ) + Dir.foreach(dir) do |fname| + path = "#{dir}/#{fname}" + if fname[0] != ?. and FileTest.file? path + yield path, fname + end + end + end + + end # Maildir + + MaildirLoader = Maildir + +end # module TMail diff --git a/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/main.rb b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/main.rb new file mode 100644 index 0000000..e527727 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/main.rb @@ -0,0 +1,6 @@ +#:stopdoc: +require 'tmail/version' +require 'tmail/mail' +require 'tmail/mailbox' +require 'tmail/core_extensions' +#:startdoc: \ No newline at end of file diff --git a/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/mbox.rb b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/mbox.rb new file mode 100644 index 0000000..6c0e251 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/mbox.rb @@ -0,0 +1,3 @@ +#:stopdoc: +require 'tmail/mailbox' +#:startdoc: \ No newline at end of file diff --git a/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/net.rb b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/net.rb new file mode 100644 index 0000000..6514722 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/net.rb @@ -0,0 +1,248 @@ +#-- +# Copyright (c) 1998-2003 Minero Aoki +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Note: Originally licensed under LGPL v2+. Using MIT license for Rails +# with permission of Minero Aoki. +#++ + +#:stopdoc: +require 'nkf' +#:startdoc: + +module TMail + + class Mail + + def send_to( smtp ) + do_send_to(smtp) do + ready_to_send + end + end + + def send_text_to( smtp ) + do_send_to(smtp) do + ready_to_send + mime_encode + end + end + + def do_send_to( smtp ) + from = from_address or raise ArgumentError, 'no from address' + (dests = destinations).empty? and raise ArgumentError, 'no receipient' + yield + send_to_0 smtp, from, dests + end + private :do_send_to + + def send_to_0( smtp, from, to ) + smtp.ready(from, to) do |f| + encoded "\r\n", 'j', f, '' + end + end + + def ready_to_send + delete_no_send_fields + add_message_id + add_date + end + + NOSEND_FIELDS = %w( + received + bcc + ) + + def delete_no_send_fields + NOSEND_FIELDS.each do |nm| + delete nm + end + delete_if {|n,v| v.empty? } + end + + def add_message_id( fqdn = nil ) + self.message_id = ::TMail::new_message_id(fqdn) + end + + def add_date + self.date = Time.now + end + + def mime_encode + if parts.empty? + mime_encode_singlepart + else + mime_encode_multipart true + end + end + + def mime_encode_singlepart + self.mime_version = '1.0' + b = body + if NKF.guess(b) != NKF::BINARY + mime_encode_text b + else + mime_encode_binary b + end + end + + def mime_encode_text( body ) + self.body = NKF.nkf('-j -m0', body) + self.set_content_type 'text', 'plain', {'charset' => 'iso-2022-jp'} + self.encoding = '7bit' + end + + def mime_encode_binary( body ) + self.body = [body].pack('m') + self.set_content_type 'application', 'octet-stream' + self.encoding = 'Base64' + end + + def mime_encode_multipart( top = true ) + self.mime_version = '1.0' if top + self.set_content_type 'multipart', 'mixed' + e = encoding(nil) + if e and not /\A(?:7bit|8bit|binary)\z/i === e + raise ArgumentError, + 'using C.T.Encoding with multipart mail is not permitted' + end + end + + end + + #:stopdoc: + class DeleteFields + + NOSEND_FIELDS = %w( + received + bcc + ) + + def initialize( nosend = nil, delempty = true ) + @no_send_fields = nosend || NOSEND_FIELDS.dup + @delete_empty_fields = delempty + end + + attr :no_send_fields + attr :delete_empty_fields, true + + def exec( mail ) + @no_send_fields.each do |nm| + delete nm + end + delete_if {|n,v| v.empty? } if @delete_empty_fields + end + + end + #:startdoc: + + #:stopdoc: + class AddMessageId + + def initialize( fqdn = nil ) + @fqdn = fqdn + end + + attr :fqdn, true + + def exec( mail ) + mail.message_id = ::TMail::new_msgid(@fqdn) + end + + end + #:startdoc: + + #:stopdoc: + class AddDate + + def exec( mail ) + mail.date = Time.now + end + + end + #:startdoc: + + #:stopdoc: + class MimeEncodeAuto + + def initialize( s = nil, m = nil ) + @singlepart_composer = s || MimeEncodeSingle.new + @multipart_composer = m || MimeEncodeMulti.new + end + + attr :singlepart_composer + attr :multipart_composer + + def exec( mail ) + if mail._builtin_multipart? + then @multipart_composer + else @singlepart_composer end.exec mail + end + + end + #:startdoc: + + #:stopdoc: + class MimeEncodeSingle + + def exec( mail ) + mail.mime_version = '1.0' + b = mail.body + if NKF.guess(b) != NKF::BINARY + on_text b + else + on_binary b + end + end + + def on_text( body ) + mail.body = NKF.nkf('-j -m0', body) + mail.set_content_type 'text', 'plain', {'charset' => 'iso-2022-jp'} + mail.encoding = '7bit' + end + + def on_binary( body ) + mail.body = [body].pack('m') + mail.set_content_type 'application', 'octet-stream' + mail.encoding = 'Base64' + end + + end + #:startdoc: + + #:stopdoc: + class MimeEncodeMulti + + def exec( mail, top = true ) + mail.mime_version = '1.0' if top + mail.set_content_type 'multipart', 'mixed' + e = encoding(nil) + if e and not /\A(?:7bit|8bit|binary)\z/i === e + raise ArgumentError, + 'using C.T.Encoding with multipart mail is not permitted' + end + mail.parts.each do |m| + exec m, false if m._builtin_multipart? + end + end + + end + #:startdoc: +end # module TMail diff --git a/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/obsolete.rb b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/obsolete.rb new file mode 100644 index 0000000..22b0a12 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/obsolete.rb @@ -0,0 +1,132 @@ +=begin rdoc + += Obsolete methods that are depriciated + +If you really want to see them, go to lib/tmail/obsolete.rb and view to your +heart's content. + +=end +#-- +# Copyright (c) 1998-2003 Minero Aoki +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Note: Originally licensed under LGPL v2+. Using MIT license for Rails +# with permission of Minero Aoki. +#++ +#:stopdoc: +module TMail #:nodoc: + + class Mail + alias include? key? + alias has_key? key? + + def values + ret = [] + each_field {|v| ret.push v } + ret + end + + def value?( val ) + HeaderField === val or return false + + [ @header[val.name.downcase] ].flatten.include? val + end + + alias has_value? value? + end + + class Mail + def from_addr( default = nil ) + addr, = from_addrs(nil) + addr || default + end + + def from_address( default = nil ) + if a = from_addr(nil) + a.spec + else + default + end + end + + alias from_address= from_addrs= + + def from_phrase( default = nil ) + if a = from_addr(nil) + a.phrase + else + default + end + end + + alias msgid message_id + alias msgid= message_id= + + alias each_dest each_destination + end + + class Address + alias route routes + alias addr spec + + def spec=( str ) + @local, @domain = str.split(/@/,2).map {|s| s.split(/\./) } + end + + alias addr= spec= + alias address= spec= + end + + class MhMailbox + alias new_mail new_port + alias each_mail each_port + alias each_newmail each_new_port + end + class UNIXMbox + alias new_mail new_port + alias each_mail each_port + alias each_newmail each_new_port + end + class Maildir + alias new_mail new_port + alias each_mail each_port + alias each_newmail each_new_port + end + + extend TextUtils + + class << self + alias msgid? message_id? + alias boundary new_boundary + alias msgid new_message_id + alias new_msgid new_message_id + end + + def Mail.boundary + ::TMail.new_boundary + end + + def Mail.msgid + ::TMail.new_message_id + end + +end # module TMail +#:startdoc: \ No newline at end of file diff --git a/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/parser.rb b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/parser.rb new file mode 100644 index 0000000..ab1a828 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/parser.rb @@ -0,0 +1,1476 @@ +#:stopdoc: +# DO NOT MODIFY!!!! +# This file is automatically generated by racc 1.4.5 +# from racc grammer file "parser.y". +# +# +# parser.rb: generated by racc (runtime embedded) +# +###### racc/parser.rb begin +unless $".index 'racc/parser.rb' +$".push 'racc/parser.rb' + +self.class.module_eval <<'..end racc/parser.rb modeval..id8076474214', 'racc/parser.rb', 1 +# +# $Id: parser.rb,v 1.7 2005/11/20 17:31:32 aamine Exp $ +# +# Copyright (c) 1999-2005 Minero Aoki +# +# This program is free software. +# You can distribute/modify this program under the same terms of ruby. +# +# As a special exception, when this code is copied by Racc +# into a Racc output file, you may use that output file +# without restriction. +# + +unless defined?(NotImplementedError) + NotImplementedError = NotImplementError +end + +module Racc + class ParseError < StandardError; end +end +unless defined?(::ParseError) + ParseError = Racc::ParseError +end + +module Racc + + unless defined?(Racc_No_Extentions) + Racc_No_Extentions = false + end + + class Parser + + Racc_Runtime_Version = '1.4.5' + Racc_Runtime_Revision = '$Revision: 1.7 $'.split[1] + + Racc_Runtime_Core_Version_R = '1.4.5' + Racc_Runtime_Core_Revision_R = '$Revision: 1.7 $'.split[1] + begin + require 'racc/cparse' + # Racc_Runtime_Core_Version_C = (defined in extention) + Racc_Runtime_Core_Revision_C = Racc_Runtime_Core_Id_C.split[2] + unless new.respond_to?(:_racc_do_parse_c, true) + raise LoadError, 'old cparse.so' + end + if Racc_No_Extentions + raise LoadError, 'selecting ruby version of racc runtime core' + end + + Racc_Main_Parsing_Routine = :_racc_do_parse_c + Racc_YY_Parse_Method = :_racc_yyparse_c + Racc_Runtime_Core_Version = Racc_Runtime_Core_Version_C + Racc_Runtime_Core_Revision = Racc_Runtime_Core_Revision_C + Racc_Runtime_Type = 'c' + rescue LoadError + Racc_Main_Parsing_Routine = :_racc_do_parse_rb + Racc_YY_Parse_Method = :_racc_yyparse_rb + Racc_Runtime_Core_Version = Racc_Runtime_Core_Version_R + Racc_Runtime_Core_Revision = Racc_Runtime_Core_Revision_R + Racc_Runtime_Type = 'ruby' + end + + def Parser.racc_runtime_type + Racc_Runtime_Type + end + + private + + def _racc_setup + @yydebug = false unless self.class::Racc_debug_parser + @yydebug = false unless defined?(@yydebug) + if @yydebug + @racc_debug_out = $stderr unless defined?(@racc_debug_out) + @racc_debug_out ||= $stderr + end + arg = self.class::Racc_arg + arg[13] = true if arg.size < 14 + arg + end + + def _racc_init_sysvars + @racc_state = [0] + @racc_tstack = [] + @racc_vstack = [] + + @racc_t = nil + @racc_val = nil + + @racc_read_next = true + + @racc_user_yyerror = false + @racc_error_status = 0 + end + + ### + ### do_parse + ### + + def do_parse + __send__(Racc_Main_Parsing_Routine, _racc_setup(), false) + end + + def next_token + raise NotImplementedError, "#{self.class}\#next_token is not defined" + end + + def _racc_do_parse_rb(arg, in_debug) + action_table, action_check, action_default, action_pointer, + goto_table, goto_check, goto_default, goto_pointer, + nt_base, reduce_table, token_table, shift_n, + reduce_n, use_result, * = arg + + _racc_init_sysvars + tok = act = i = nil + nerr = 0 + + catch(:racc_end_parse) { + while true + if i = action_pointer[@racc_state[-1]] + if @racc_read_next + if @racc_t != 0 # not EOF + tok, @racc_val = next_token() + unless tok # EOF + @racc_t = 0 + else + @racc_t = (token_table[tok] or 1) # error token + end + racc_read_token(@racc_t, tok, @racc_val) if @yydebug + @racc_read_next = false + end + end + i += @racc_t + unless i >= 0 and + act = action_table[i] and + action_check[i] == @racc_state[-1] + act = action_default[@racc_state[-1]] + end + else + act = action_default[@racc_state[-1]] + end + while act = _racc_evalact(act, arg) + ; + end + end + } + end + + ### + ### yyparse + ### + + def yyparse(recv, mid) + __send__(Racc_YY_Parse_Method, recv, mid, _racc_setup(), true) + end + + def _racc_yyparse_rb(recv, mid, arg, c_debug) + action_table, action_check, action_default, action_pointer, + goto_table, goto_check, goto_default, goto_pointer, + nt_base, reduce_table, token_table, shift_n, + reduce_n, use_result, * = arg + + _racc_init_sysvars + tok = nil + act = nil + i = nil + nerr = 0 + + catch(:racc_end_parse) { + until i = action_pointer[@racc_state[-1]] + while act = _racc_evalact(action_default[@racc_state[-1]], arg) + ; + end + end + recv.__send__(mid) do |tok, val| + unless tok + @racc_t = 0 + else + @racc_t = (token_table[tok] or 1) # error token + end + @racc_val = val + @racc_read_next = false + + i += @racc_t + unless i >= 0 and + act = action_table[i] and + action_check[i] == @racc_state[-1] + act = action_default[@racc_state[-1]] + end + while act = _racc_evalact(act, arg) + ; + end + + while not (i = action_pointer[@racc_state[-1]]) or + not @racc_read_next or + @racc_t == 0 # $ + unless i and i += @racc_t and + i >= 0 and + act = action_table[i] and + action_check[i] == @racc_state[-1] + act = action_default[@racc_state[-1]] + end + while act = _racc_evalact(act, arg) + ; + end + end + end + } + end + + ### + ### common + ### + + def _racc_evalact(act, arg) + action_table, action_check, action_default, action_pointer, + goto_table, goto_check, goto_default, goto_pointer, + nt_base, reduce_table, token_table, shift_n, + reduce_n, use_result, * = arg + nerr = 0 # tmp + + if act > 0 and act < shift_n + # + # shift + # + if @racc_error_status > 0 + @racc_error_status -= 1 unless @racc_t == 1 # error token + end + @racc_vstack.push @racc_val + @racc_state.push act + @racc_read_next = true + if @yydebug + @racc_tstack.push @racc_t + racc_shift @racc_t, @racc_tstack, @racc_vstack + end + + elsif act < 0 and act > -reduce_n + # + # reduce + # + code = catch(:racc_jump) { + @racc_state.push _racc_do_reduce(arg, act) + false + } + if code + case code + when 1 # yyerror + @racc_user_yyerror = true # user_yyerror + return -reduce_n + when 2 # yyaccept + return shift_n + else + raise '[Racc Bug] unknown jump code' + end + end + + elsif act == shift_n + # + # accept + # + racc_accept if @yydebug + throw :racc_end_parse, @racc_vstack[0] + + elsif act == -reduce_n + # + # error + # + case @racc_error_status + when 0 + unless arg[21] # user_yyerror + nerr += 1 + on_error @racc_t, @racc_val, @racc_vstack + end + when 3 + if @racc_t == 0 # is $ + throw :racc_end_parse, nil + end + @racc_read_next = true + end + @racc_user_yyerror = false + @racc_error_status = 3 + while true + if i = action_pointer[@racc_state[-1]] + i += 1 # error token + if i >= 0 and + (act = action_table[i]) and + action_check[i] == @racc_state[-1] + break + end + end + throw :racc_end_parse, nil if @racc_state.size <= 1 + @racc_state.pop + @racc_vstack.pop + if @yydebug + @racc_tstack.pop + racc_e_pop @racc_state, @racc_tstack, @racc_vstack + end + end + return act + + else + raise "[Racc Bug] unknown action #{act.inspect}" + end + + racc_next_state(@racc_state[-1], @racc_state) if @yydebug + + nil + end + + def _racc_do_reduce(arg, act) + action_table, action_check, action_default, action_pointer, + goto_table, goto_check, goto_default, goto_pointer, + nt_base, reduce_table, token_table, shift_n, + reduce_n, use_result, * = arg + state = @racc_state + vstack = @racc_vstack + tstack = @racc_tstack + + i = act * -3 + len = reduce_table[i] + reduce_to = reduce_table[i+1] + method_id = reduce_table[i+2] + void_array = [] + + tmp_t = tstack[-len, len] if @yydebug + tmp_v = vstack[-len, len] + tstack[-len, len] = void_array if @yydebug + vstack[-len, len] = void_array + state[-len, len] = void_array + + # tstack must be updated AFTER method call + if use_result + vstack.push __send__(method_id, tmp_v, vstack, tmp_v[0]) + else + vstack.push __send__(method_id, tmp_v, vstack) + end + tstack.push reduce_to + + racc_reduce(tmp_t, reduce_to, tstack, vstack) if @yydebug + + k1 = reduce_to - nt_base + if i = goto_pointer[k1] + i += state[-1] + if i >= 0 and (curstate = goto_table[i]) and goto_check[i] == k1 + return curstate + end + end + goto_default[k1] + end + + def on_error(t, val, vstack) + raise ParseError, sprintf("\nparse error on value %s (%s)", + val.inspect, token_to_str(t) || '?') + end + + def yyerror + throw :racc_jump, 1 + end + + def yyaccept + throw :racc_jump, 2 + end + + def yyerrok + @racc_error_status = 0 + end + + # + # for debugging output + # + + def racc_read_token(t, tok, val) + @racc_debug_out.print 'read ' + @racc_debug_out.print tok.inspect, '(', racc_token2str(t), ') ' + @racc_debug_out.puts val.inspect + @racc_debug_out.puts + end + + def racc_shift(tok, tstack, vstack) + @racc_debug_out.puts "shift #{racc_token2str tok}" + racc_print_stacks tstack, vstack + @racc_debug_out.puts + end + + def racc_reduce(toks, sim, tstack, vstack) + out = @racc_debug_out + out.print 'reduce ' + if toks.empty? + out.print ' ' + else + toks.each {|t| out.print ' ', racc_token2str(t) } + end + out.puts " --> #{racc_token2str(sim)}" + + racc_print_stacks tstack, vstack + @racc_debug_out.puts + end + + def racc_accept + @racc_debug_out.puts 'accept' + @racc_debug_out.puts + end + + def racc_e_pop(state, tstack, vstack) + @racc_debug_out.puts 'error recovering mode: pop token' + racc_print_states state + racc_print_stacks tstack, vstack + @racc_debug_out.puts + end + + def racc_next_state(curstate, state) + @racc_debug_out.puts "goto #{curstate}" + racc_print_states state + @racc_debug_out.puts + end + + def racc_print_stacks(t, v) + out = @racc_debug_out + out.print ' [' + t.each_index do |i| + out.print ' (', racc_token2str(t[i]), ' ', v[i].inspect, ')' + end + out.puts ' ]' + end + + def racc_print_states(s) + out = @racc_debug_out + out.print ' [' + s.each {|st| out.print ' ', st } + out.puts ' ]' + end + + def racc_token2str(tok) + self.class::Racc_token_to_s_table[tok] or + raise "[Racc Bug] can't convert token #{tok} to string" + end + + def token_to_str(t) + self.class::Racc_token_to_s_table[t] + end + + end + +end +..end racc/parser.rb modeval..id8076474214 +end +###### racc/parser.rb end + + +# +# parser.rb +# +# Copyright (c) 1998-2007 Minero Aoki +# +# This program is free software. +# You can distribute/modify this program under the terms of +# the GNU Lesser General Public License version 2.1. +# + +require 'tmail/scanner' +require 'tmail/utils' + + +module TMail + + class Parser < Racc::Parser + +module_eval <<'..end parser.y modeval..id7b0b3dccb7', 'parser.y', 340 + + include TextUtils + + def self.parse( ident, str, cmt = nil ) + new.parse(ident, str, cmt) + end + + MAILP_DEBUG = false + + def initialize + self.debug = MAILP_DEBUG + end + + def debug=( flag ) + @yydebug = flag && Racc_debug_parser + @scanner_debug = flag + end + + def debug + @yydebug + end + + def parse( ident, str, comments = nil ) + @scanner = Scanner.new(str, ident, comments) + @scanner.debug = @scanner_debug + @first = [ident, ident] + result = yyparse(self, :parse_in) + comments.map! {|c| to_kcode(c) } if comments + result + end + + private + + def parse_in( &block ) + yield @first + @scanner.scan(&block) + end + + def on_error( t, val, vstack ) + raise SyntaxError, "parse error on token #{racc_token2str t}" + end + +..end parser.y modeval..id7b0b3dccb7 + +##### racc 1.4.5 generates ### + +racc_reduce_table = [ + 0, 0, :racc_error, + 2, 35, :_reduce_1, + 2, 35, :_reduce_2, + 2, 35, :_reduce_3, + 2, 35, :_reduce_4, + 2, 35, :_reduce_5, + 2, 35, :_reduce_6, + 2, 35, :_reduce_7, + 2, 35, :_reduce_8, + 2, 35, :_reduce_9, + 2, 35, :_reduce_10, + 2, 35, :_reduce_11, + 2, 35, :_reduce_12, + 6, 36, :_reduce_13, + 0, 48, :_reduce_none, + 2, 48, :_reduce_none, + 3, 49, :_reduce_16, + 5, 49, :_reduce_17, + 1, 50, :_reduce_18, + 7, 37, :_reduce_19, + 0, 51, :_reduce_none, + 2, 51, :_reduce_21, + 0, 52, :_reduce_none, + 2, 52, :_reduce_23, + 1, 58, :_reduce_24, + 3, 58, :_reduce_25, + 2, 58, :_reduce_26, + 0, 53, :_reduce_none, + 2, 53, :_reduce_28, + 0, 54, :_reduce_29, + 3, 54, :_reduce_30, + 0, 55, :_reduce_none, + 2, 55, :_reduce_32, + 2, 55, :_reduce_33, + 0, 56, :_reduce_none, + 2, 56, :_reduce_35, + 1, 61, :_reduce_36, + 1, 61, :_reduce_37, + 0, 57, :_reduce_none, + 2, 57, :_reduce_39, + 1, 38, :_reduce_none, + 1, 38, :_reduce_none, + 3, 38, :_reduce_none, + 1, 46, :_reduce_none, + 1, 46, :_reduce_none, + 1, 46, :_reduce_none, + 1, 39, :_reduce_none, + 2, 39, :_reduce_47, + 1, 64, :_reduce_48, + 3, 64, :_reduce_49, + 1, 68, :_reduce_none, + 1, 68, :_reduce_none, + 1, 69, :_reduce_52, + 3, 69, :_reduce_53, + 1, 47, :_reduce_none, + 1, 47, :_reduce_none, + 2, 47, :_reduce_56, + 2, 67, :_reduce_none, + 3, 65, :_reduce_58, + 2, 65, :_reduce_59, + 1, 70, :_reduce_60, + 2, 70, :_reduce_61, + 4, 62, :_reduce_62, + 3, 62, :_reduce_63, + 2, 72, :_reduce_none, + 2, 73, :_reduce_65, + 4, 73, :_reduce_66, + 3, 63, :_reduce_67, + 1, 63, :_reduce_68, + 1, 74, :_reduce_none, + 2, 74, :_reduce_70, + 1, 71, :_reduce_71, + 3, 71, :_reduce_72, + 1, 59, :_reduce_73, + 3, 59, :_reduce_74, + 1, 76, :_reduce_75, + 2, 76, :_reduce_76, + 1, 75, :_reduce_none, + 1, 75, :_reduce_none, + 1, 75, :_reduce_none, + 1, 77, :_reduce_none, + 1, 77, :_reduce_none, + 1, 77, :_reduce_none, + 1, 66, :_reduce_none, + 2, 66, :_reduce_none, + 3, 60, :_reduce_85, + 1, 40, :_reduce_86, + 3, 40, :_reduce_87, + 1, 79, :_reduce_none, + 2, 79, :_reduce_89, + 1, 41, :_reduce_90, + 2, 41, :_reduce_91, + 3, 42, :_reduce_92, + 5, 43, :_reduce_93, + 3, 43, :_reduce_94, + 0, 80, :_reduce_95, + 5, 80, :_reduce_96, + 5, 80, :_reduce_97, + 1, 44, :_reduce_98, + 3, 45, :_reduce_99, + 0, 81, :_reduce_none, + 1, 81, :_reduce_none, + 1, 78, :_reduce_none, + 1, 78, :_reduce_none, + 1, 78, :_reduce_none, + 1, 78, :_reduce_none, + 1, 78, :_reduce_none, + 1, 78, :_reduce_none, + 1, 78, :_reduce_none ] + +racc_reduce_n = 109 + +racc_shift_n = 167 + +racc_action_table = [ + -70, -69, 23, 25, 145, 146, 29, 31, 105, 106, + 16, 17, 20, 22, 136, 27, -70, -69, 32, 101, + -70, -69, 153, 100, 113, 115, -70, -69, -70, 109, + 75, 23, 25, 101, 154, 29, 31, 142, 143, 16, + 17, 20, 22, 107, 27, 23, 25, 32, 98, 29, + 31, 96, 94, 16, 17, 20, 22, 78, 27, 23, + 25, 32, 112, 29, 31, 74, 91, 16, 17, 20, + 22, 88, 117, 92, 81, 32, 23, 25, 80, 123, + 29, 31, 100, 125, 16, 17, 20, 22, 126, 23, + 25, 109, 32, 29, 31, 91, 128, 16, 17, 20, + 22, 129, 27, 23, 25, 32, 101, 29, 31, 101, + 130, 16, 17, 20, 22, 79, 52, 23, 25, 32, + 78, 29, 31, 133, 78, 16, 17, 20, 22, 77, + 23, 25, 75, 32, 29, 31, 65, 62, 16, 17, + 20, 22, 139, 23, 25, 101, 32, 29, 31, 60, + 100, 16, 17, 20, 22, 44, 27, 101, 147, 32, + 23, 25, 120, 148, 29, 31, 151, 152, 16, 17, + 20, 22, 42, 27, 156, 158, 32, 23, 25, 120, + 40, 29, 31, 15, 163, 16, 17, 20, 22, 40, + 27, 23, 25, 32, 68, 29, 31, 165, 166, 16, + 17, 20, 22, nil, 27, 23, 25, 32, nil, 29, + 31, 74, nil, 16, 17, 20, 22, nil, 23, 25, + nil, 32, 29, 31, nil, nil, 16, 17, 20, 22, + nil, 23, 25, nil, 32, 29, 31, nil, nil, 16, + 17, 20, 22, nil, 23, 25, nil, 32, 29, 31, + nil, nil, 16, 17, 20, 22, nil, 23, 25, nil, + 32, 29, 31, nil, nil, 16, 17, 20, 22, nil, + 27, 23, 25, 32, nil, 29, 31, nil, nil, 16, + 17, 20, 22, nil, 23, 25, nil, 32, 29, 31, + nil, nil, 16, 17, 20, 22, nil, 23, 25, nil, + 32, 29, 31, nil, nil, 16, 17, 20, 22, nil, + 84, 25, nil, 32, 29, 31, nil, 87, 16, 17, + 20, 22, 4, 6, 7, 8, 9, 10, 11, 12, + 13, 1, 2, 3, 84, 25, nil, nil, 29, 31, + nil, 87, 16, 17, 20, 22, 84, 25, nil, nil, + 29, 31, nil, 87, 16, 17, 20, 22, 84, 25, + nil, nil, 29, 31, nil, 87, 16, 17, 20, 22, + 84, 25, nil, nil, 29, 31, nil, 87, 16, 17, + 20, 22, 84, 25, nil, nil, 29, 31, nil, 87, + 16, 17, 20, 22, 84, 25, nil, nil, 29, 31, + nil, 87, 16, 17, 20, 22 ] + +racc_action_check = [ + 75, 28, 68, 68, 136, 136, 68, 68, 72, 72, + 68, 68, 68, 68, 126, 68, 75, 28, 68, 67, + 75, 28, 143, 66, 86, 86, 75, 28, 75, 75, + 28, 3, 3, 86, 143, 3, 3, 134, 134, 3, + 3, 3, 3, 73, 3, 151, 151, 3, 62, 151, + 151, 60, 56, 151, 151, 151, 151, 51, 151, 52, + 52, 151, 80, 52, 52, 52, 50, 52, 52, 52, + 52, 45, 89, 52, 42, 52, 71, 71, 41, 96, + 71, 71, 97, 98, 71, 71, 71, 71, 100, 7, + 7, 101, 71, 7, 7, 102, 104, 7, 7, 7, + 7, 105, 7, 8, 8, 7, 108, 8, 8, 111, + 112, 8, 8, 8, 8, 40, 8, 9, 9, 8, + 36, 9, 9, 117, 121, 9, 9, 9, 9, 33, + 10, 10, 70, 9, 10, 10, 13, 12, 10, 10, + 10, 10, 130, 2, 2, 131, 10, 2, 2, 11, + 135, 2, 2, 2, 2, 6, 2, 138, 139, 2, + 90, 90, 90, 140, 90, 90, 141, 142, 90, 90, + 90, 90, 5, 90, 147, 150, 90, 127, 127, 127, + 4, 127, 127, 1, 156, 127, 127, 127, 127, 158, + 127, 26, 26, 127, 26, 26, 26, 162, 163, 26, + 26, 26, 26, nil, 26, 27, 27, 26, nil, 27, + 27, 27, nil, 27, 27, 27, 27, nil, 154, 154, + nil, 27, 154, 154, nil, nil, 154, 154, 154, 154, + nil, 122, 122, nil, 154, 122, 122, nil, nil, 122, + 122, 122, 122, nil, 76, 76, nil, 122, 76, 76, + nil, nil, 76, 76, 76, 76, nil, 38, 38, nil, + 76, 38, 38, nil, nil, 38, 38, 38, 38, nil, + 38, 55, 55, 38, nil, 55, 55, nil, nil, 55, + 55, 55, 55, nil, 94, 94, nil, 55, 94, 94, + nil, nil, 94, 94, 94, 94, nil, 59, 59, nil, + 94, 59, 59, nil, nil, 59, 59, 59, 59, nil, + 114, 114, nil, 59, 114, 114, nil, 114, 114, 114, + 114, 114, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 77, 77, nil, nil, 77, 77, + nil, 77, 77, 77, 77, 77, 44, 44, nil, nil, + 44, 44, nil, 44, 44, 44, 44, 44, 113, 113, + nil, nil, 113, 113, nil, 113, 113, 113, 113, 113, + 88, 88, nil, nil, 88, 88, nil, 88, 88, 88, + 88, 88, 74, 74, nil, nil, 74, 74, nil, 74, + 74, 74, 74, 74, 129, 129, nil, nil, 129, 129, + nil, 129, 129, 129, 129, 129 ] + +racc_action_pointer = [ + 320, 152, 129, 17, 165, 172, 137, 75, 89, 103, + 116, 135, 106, 105, nil, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, 177, 191, 1, nil, + nil, nil, nil, 109, nil, nil, 94, nil, 243, nil, + 99, 64, 74, nil, 332, 52, nil, nil, nil, nil, + 50, 31, 45, nil, nil, 257, 36, nil, nil, 283, + 22, nil, 16, nil, nil, nil, -3, -10, -12, nil, + 103, 62, -8, 15, 368, 0, 230, 320, nil, nil, + 47, nil, nil, nil, nil, nil, 4, nil, 356, 50, + 146, nil, nil, nil, 270, nil, 65, 56, 52, nil, + 57, 62, 79, nil, 68, 81, nil, nil, 77, nil, + nil, 80, 96, 344, 296, nil, nil, 108, nil, nil, + nil, 98, 217, nil, nil, nil, -19, 163, nil, 380, + 128, 116, nil, nil, 14, 124, -26, nil, 128, 141, + 148, 141, 152, 7, nil, nil, nil, 160, nil, nil, + 149, 31, nil, nil, 204, nil, 167, nil, 174, nil, + nil, nil, 169, 184, nil, nil, nil ] + +racc_action_default = [ + -109, -109, -109, -109, -14, -109, -20, -109, -109, -109, + -109, -109, -109, -109, -10, -95, -105, -106, -77, -44, + -107, -11, -108, -79, -43, -102, -109, -109, -60, -103, + -55, -104, -78, -68, -54, -71, -45, -12, -109, -1, + -109, -109, -109, -2, -109, -22, -51, -48, -50, -3, + -40, -41, -109, -46, -4, -86, -5, -88, -6, -90, + -109, -7, -95, -8, -9, -98, -100, -61, -59, -56, + -69, -109, -109, -109, -109, -75, -109, -109, -57, -15, + -109, 167, -73, -80, -82, -21, -24, -81, -109, -27, + -109, -83, -47, -89, -109, -91, -109, -100, -109, -99, + -101, -75, -58, -52, -109, -109, -64, -63, -65, -76, + -72, -67, -109, -109, -109, -26, -23, -109, -29, -49, + -84, -42, -87, -92, -94, -95, -109, -109, -62, -109, + -109, -25, -74, -28, -31, -100, -109, -53, -66, -109, + -109, -34, -109, -109, -93, -96, -97, -109, -18, -13, + -38, -109, -30, -33, -109, -32, -16, -19, -14, -35, + -36, -37, -109, -109, -39, -85, -17 ] + +racc_goto_table = [ + 39, 67, 70, 73, 38, 66, 69, 24, 37, 57, + 59, 36, 55, 67, 99, 90, 85, 157, 69, 108, + 83, 134, 111, 76, 49, 53, 141, 70, 73, 150, + 118, 89, 45, 155, 159, 149, 140, 21, 14, 19, + 119, 102, 64, 63, 61, 124, 70, 104, 58, 132, + 83, 56, 97, 83, 54, 93, 43, 5, 131, 95, + 116, nil, 76, nil, 83, 76, nil, 127, nil, 38, + nil, nil, nil, 103, 138, nil, 110, nil, nil, nil, + nil, nil, nil, 144, nil, nil, nil, nil, nil, 83, + 83, nil, nil, nil, 57, nil, nil, 122, nil, 121, + nil, nil, nil, nil, nil, 83, nil, nil, nil, nil, + nil, nil, nil, nil, nil, 135, nil, nil, nil, nil, + nil, nil, 93, nil, nil, nil, 70, 161, 38, 70, + 162, 160, 137, nil, nil, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, + nil, nil, nil, nil, 164 ] + +racc_goto_check = [ + 2, 37, 37, 29, 36, 46, 28, 13, 13, 41, + 41, 31, 45, 37, 47, 32, 24, 23, 28, 25, + 44, 20, 25, 42, 4, 4, 21, 37, 29, 22, + 19, 18, 17, 26, 27, 16, 15, 12, 11, 33, + 34, 35, 10, 9, 8, 47, 37, 29, 7, 43, + 44, 6, 46, 44, 5, 41, 3, 1, 25, 41, + 24, nil, 42, nil, 44, 42, nil, 32, nil, 36, + nil, nil, nil, 13, 25, nil, 41, nil, nil, nil, + nil, nil, nil, 47, nil, nil, nil, nil, nil, 44, + 44, nil, nil, nil, 41, nil, nil, 45, nil, 31, + nil, nil, nil, nil, nil, 44, nil, nil, nil, nil, + nil, nil, nil, nil, nil, 46, nil, nil, nil, nil, + nil, nil, 41, nil, nil, nil, 37, 29, 36, 37, + 29, 28, 13, nil, nil, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, + nil, nil, nil, nil, 2 ] + +racc_goto_pointer = [ + nil, 57, -4, 50, 17, 46, 42, 38, 33, 31, + 29, 37, 35, 5, nil, -94, -105, 26, -14, -59, + -97, -108, -112, -133, -28, -55, -110, -117, -20, -24, + nil, 9, -35, 37, -50, -27, 1, -25, nil, nil, + nil, 0, -5, -65, -24, 3, -10, -52 ] + +racc_goto_default = [ + nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, + nil, nil, nil, 48, 41, nil, nil, nil, nil, nil, + nil, nil, nil, nil, nil, 86, nil, nil, 30, 34, + 50, 51, nil, 46, 47, nil, 26, 28, 71, 72, + 33, 35, 114, 82, 18, nil, nil, nil ] + +racc_token_table = { + false => 0, + Object.new => 1, + :DATETIME => 2, + :RECEIVED => 3, + :MADDRESS => 4, + :RETPATH => 5, + :KEYWORDS => 6, + :ENCRYPTED => 7, + :MIMEVERSION => 8, + :CTYPE => 9, + :CENCODING => 10, + :CDISPOSITION => 11, + :ADDRESS => 12, + :MAILBOX => 13, + :DIGIT => 14, + :ATOM => 15, + "," => 16, + ":" => 17, + :FROM => 18, + :BY => 19, + "@" => 20, + :DOMLIT => 21, + :VIA => 22, + :WITH => 23, + :ID => 24, + :FOR => 25, + ";" => 26, + "<" => 27, + ">" => 28, + "." => 29, + :QUOTED => 30, + :TOKEN => 31, + "/" => 32, + "=" => 33 } + +racc_use_result_var = false + +racc_nt_base = 34 + +Racc_arg = [ + racc_action_table, + racc_action_check, + racc_action_default, + racc_action_pointer, + racc_goto_table, + racc_goto_check, + racc_goto_default, + racc_goto_pointer, + racc_nt_base, + racc_reduce_table, + racc_token_table, + racc_shift_n, + racc_reduce_n, + racc_use_result_var ] + +Racc_token_to_s_table = [ +'$end', +'error', +'DATETIME', +'RECEIVED', +'MADDRESS', +'RETPATH', +'KEYWORDS', +'ENCRYPTED', +'MIMEVERSION', +'CTYPE', +'CENCODING', +'CDISPOSITION', +'ADDRESS', +'MAILBOX', +'DIGIT', +'ATOM', +'","', +'":"', +'FROM', +'BY', +'"@"', +'DOMLIT', +'VIA', +'WITH', +'ID', +'FOR', +'";"', +'"<"', +'">"', +'"."', +'QUOTED', +'TOKEN', +'"/"', +'"="', +'$start', +'content', +'datetime', +'received', +'addrs_TOP', +'retpath', +'keys', +'enc', +'version', +'ctype', +'cencode', +'cdisp', +'addr_TOP', +'mbox', +'day', +'hour', +'zone', +'from', +'by', +'via', +'with', +'id', +'for', +'received_datetime', +'received_domain', +'domain', +'msgid', +'received_addrspec', +'routeaddr', +'spec', +'addrs', +'group_bare', +'commas', +'group', +'addr', +'mboxes', +'addr_phrase', +'local_head', +'routes', +'at_domains', +'local', +'word', +'dots', +'domword', +'atom', +'phrase', +'params', +'opt_semicolon'] + +Racc_debug_parser = false + +##### racc system variables end ##### + + # reduce 0 omitted + +module_eval <<'.,.,', 'parser.y', 16 + def _reduce_1( val, _values) + val[1] + end +.,., + +module_eval <<'.,.,', 'parser.y', 17 + def _reduce_2( val, _values) + val[1] + end +.,., + +module_eval <<'.,.,', 'parser.y', 18 + def _reduce_3( val, _values) + val[1] + end +.,., + +module_eval <<'.,.,', 'parser.y', 19 + def _reduce_4( val, _values) + val[1] + end +.,., + +module_eval <<'.,.,', 'parser.y', 20 + def _reduce_5( val, _values) + val[1] + end +.,., + +module_eval <<'.,.,', 'parser.y', 21 + def _reduce_6( val, _values) + val[1] + end +.,., + +module_eval <<'.,.,', 'parser.y', 22 + def _reduce_7( val, _values) + val[1] + end +.,., + +module_eval <<'.,.,', 'parser.y', 23 + def _reduce_8( val, _values) + val[1] + end +.,., + +module_eval <<'.,.,', 'parser.y', 24 + def _reduce_9( val, _values) + val[1] + end +.,., + +module_eval <<'.,.,', 'parser.y', 25 + def _reduce_10( val, _values) + val[1] + end +.,., + +module_eval <<'.,.,', 'parser.y', 26 + def _reduce_11( val, _values) + val[1] + end +.,., + +module_eval <<'.,.,', 'parser.y', 27 + def _reduce_12( val, _values) + val[1] + end +.,., + +module_eval <<'.,.,', 'parser.y', 36 + def _reduce_13( val, _values) + t = Time.gm(val[3].to_i, val[2], val[1].to_i, 0, 0, 0) + (t + val[4] - val[5]).localtime + end +.,., + + # reduce 14 omitted + + # reduce 15 omitted + +module_eval <<'.,.,', 'parser.y', 45 + def _reduce_16( val, _values) + (val[0].to_i * 60 * 60) + + (val[2].to_i * 60) + end +.,., + +module_eval <<'.,.,', 'parser.y', 51 + def _reduce_17( val, _values) + (val[0].to_i * 60 * 60) + + (val[2].to_i * 60) + + (val[4].to_i) + end +.,., + +module_eval <<'.,.,', 'parser.y', 56 + def _reduce_18( val, _values) + timezone_string_to_unixtime(val[0]) + end +.,., + +module_eval <<'.,.,', 'parser.y', 61 + def _reduce_19( val, _values) + val + end +.,., + + # reduce 20 omitted + +module_eval <<'.,.,', 'parser.y', 67 + def _reduce_21( val, _values) + val[1] + end +.,., + + # reduce 22 omitted + +module_eval <<'.,.,', 'parser.y', 73 + def _reduce_23( val, _values) + val[1] + end +.,., + +module_eval <<'.,.,', 'parser.y', 79 + def _reduce_24( val, _values) + join_domain(val[0]) + end +.,., + +module_eval <<'.,.,', 'parser.y', 83 + def _reduce_25( val, _values) + join_domain(val[2]) + end +.,., + +module_eval <<'.,.,', 'parser.y', 87 + def _reduce_26( val, _values) + join_domain(val[0]) + end +.,., + + # reduce 27 omitted + +module_eval <<'.,.,', 'parser.y', 93 + def _reduce_28( val, _values) + val[1] + end +.,., + +module_eval <<'.,.,', 'parser.y', 98 + def _reduce_29( val, _values) + [] + end +.,., + +module_eval <<'.,.,', 'parser.y', 103 + def _reduce_30( val, _values) + val[0].push val[2] + val[0] + end +.,., + + # reduce 31 omitted + +module_eval <<'.,.,', 'parser.y', 109 + def _reduce_32( val, _values) + val[1] + end +.,., + +module_eval <<'.,.,', 'parser.y', 113 + def _reduce_33( val, _values) + val[1] + end +.,., + + # reduce 34 omitted + +module_eval <<'.,.,', 'parser.y', 119 + def _reduce_35( val, _values) + val[1] + end +.,., + +module_eval <<'.,.,', 'parser.y', 125 + def _reduce_36( val, _values) + val[0].spec + end +.,., + +module_eval <<'.,.,', 'parser.y', 129 + def _reduce_37( val, _values) + val[0].spec + end +.,., + + # reduce 38 omitted + +module_eval <<'.,.,', 'parser.y', 136 + def _reduce_39( val, _values) + val[1] + end +.,., + + # reduce 40 omitted + + # reduce 41 omitted + + # reduce 42 omitted + + # reduce 43 omitted + + # reduce 44 omitted + + # reduce 45 omitted + + # reduce 46 omitted + +module_eval <<'.,.,', 'parser.y', 146 + def _reduce_47( val, _values) + [ Address.new(nil, nil) ] + end +.,., + +module_eval <<'.,.,', 'parser.y', 152 + def _reduce_48( val, _values) + val + end +.,., + +module_eval <<'.,.,', 'parser.y', 157 + def _reduce_49( val, _values) + val[0].push val[2] + val[0] + end +.,., + + # reduce 50 omitted + + # reduce 51 omitted + +module_eval <<'.,.,', 'parser.y', 165 + def _reduce_52( val, _values) + val + end +.,., + +module_eval <<'.,.,', 'parser.y', 170 + def _reduce_53( val, _values) + val[0].push val[2] + val[0] + end +.,., + + # reduce 54 omitted + + # reduce 55 omitted + +module_eval <<'.,.,', 'parser.y', 178 + def _reduce_56( val, _values) + val[1].phrase = Decoder.decode(val[0]) + val[1] + end +.,., + + # reduce 57 omitted + +module_eval <<'.,.,', 'parser.y', 185 + def _reduce_58( val, _values) + AddressGroup.new(val[0], val[2]) + end +.,., + +module_eval <<'.,.,', 'parser.y', 185 + def _reduce_59( val, _values) + AddressGroup.new(val[0], []) + end +.,., + +module_eval <<'.,.,', 'parser.y', 188 + def _reduce_60( val, _values) + val[0].join('.') + end +.,., + +module_eval <<'.,.,', 'parser.y', 189 + def _reduce_61( val, _values) + val[0] << ' ' << val[1].join('.') + end +.,., + +module_eval <<'.,.,', 'parser.y', 196 + def _reduce_62( val, _values) + val[2].routes.replace val[1] + val[2] + end +.,., + +module_eval <<'.,.,', 'parser.y', 200 + def _reduce_63( val, _values) + val[1] + end +.,., + + # reduce 64 omitted + +module_eval <<'.,.,', 'parser.y', 203 + def _reduce_65( val, _values) + [ val[1].join('.') ] + end +.,., + +module_eval <<'.,.,', 'parser.y', 204 + def _reduce_66( val, _values) + val[0].push val[3].join('.'); val[0] + end +.,., + +module_eval <<'.,.,', 'parser.y', 206 + def _reduce_67( val, _values) + Address.new( val[0], val[2] ) + end +.,., + +module_eval <<'.,.,', 'parser.y', 207 + def _reduce_68( val, _values) + Address.new( val[0], nil ) + end +.,., + + # reduce 69 omitted + +module_eval <<'.,.,', 'parser.y', 210 + def _reduce_70( val, _values) + val[0].push ''; val[0] + end +.,., + +module_eval <<'.,.,', 'parser.y', 213 + def _reduce_71( val, _values) + val + end +.,., + +module_eval <<'.,.,', 'parser.y', 222 + def _reduce_72( val, _values) + val[1].times do + val[0].push '' + end + val[0].push val[2] + val[0] + end +.,., + +module_eval <<'.,.,', 'parser.y', 224 + def _reduce_73( val, _values) + val + end +.,., + +module_eval <<'.,.,', 'parser.y', 233 + def _reduce_74( val, _values) + val[1].times do + val[0].push '' + end + val[0].push val[2] + val[0] + end +.,., + +module_eval <<'.,.,', 'parser.y', 234 + def _reduce_75( val, _values) + 0 + end +.,., + +module_eval <<'.,.,', 'parser.y', 235 + def _reduce_76( val, _values) + 1 + end +.,., + + # reduce 77 omitted + + # reduce 78 omitted + + # reduce 79 omitted + + # reduce 80 omitted + + # reduce 81 omitted + + # reduce 82 omitted + + # reduce 83 omitted + + # reduce 84 omitted + +module_eval <<'.,.,', 'parser.y', 253 + def _reduce_85( val, _values) + val[1] = val[1].spec + val.join('') + end +.,., + +module_eval <<'.,.,', 'parser.y', 254 + def _reduce_86( val, _values) + val + end +.,., + +module_eval <<'.,.,', 'parser.y', 255 + def _reduce_87( val, _values) + val[0].push val[2]; val[0] + end +.,., + + # reduce 88 omitted + +module_eval <<'.,.,', 'parser.y', 258 + def _reduce_89( val, _values) + val[0] << ' ' << val[1] + end +.,., + +module_eval <<'.,.,', 'parser.y', 265 + def _reduce_90( val, _values) + val.push nil + val + end +.,., + +module_eval <<'.,.,', 'parser.y', 269 + def _reduce_91( val, _values) + val + end +.,., + +module_eval <<'.,.,', 'parser.y', 274 + def _reduce_92( val, _values) + [ val[0].to_i, val[2].to_i ] + end +.,., + +module_eval <<'.,.,', 'parser.y', 279 + def _reduce_93( val, _values) + [ val[0].downcase, val[2].downcase, decode_params(val[3]) ] + end +.,., + +module_eval <<'.,.,', 'parser.y', 283 + def _reduce_94( val, _values) + [ val[0].downcase, nil, decode_params(val[1]) ] + end +.,., + +module_eval <<'.,.,', 'parser.y', 288 + def _reduce_95( val, _values) + {} + end +.,., + +module_eval <<'.,.,', 'parser.y', 293 + def _reduce_96( val, _values) + val[0][ val[2].downcase ] = ('"' + val[4].to_s + '"') + val[0] + end +.,., + +module_eval <<'.,.,', 'parser.y', 298 + def _reduce_97( val, _values) + val[0][ val[2].downcase ] = val[4] + val[0] + end +.,., + +module_eval <<'.,.,', 'parser.y', 303 + def _reduce_98( val, _values) + val[0].downcase + end +.,., + +module_eval <<'.,.,', 'parser.y', 308 + def _reduce_99( val, _values) + [ val[0].downcase, decode_params(val[1]) ] + end +.,., + + # reduce 100 omitted + + # reduce 101 omitted + + # reduce 102 omitted + + # reduce 103 omitted + + # reduce 104 omitted + + # reduce 105 omitted + + # reduce 106 omitted + + # reduce 107 omitted + + # reduce 108 omitted + + def _reduce_none( val, _values) + val[0] + end + + end # class Parser + +end # module TMail diff --git a/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/port.rb b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/port.rb new file mode 100644 index 0000000..445f0e6 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/port.rb @@ -0,0 +1,379 @@ +=begin rdoc + += Port class + +=end +#-- +# Copyright (c) 1998-2003 Minero Aoki +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Note: Originally licensed under LGPL v2+. Using MIT license for Rails +# with permission of Minero Aoki. +#++ + +require 'tmail/stringio' + + +module TMail + + class Port + def reproducible? + false + end + end + + + ### + ### FilePort + ### + + class FilePort < Port + + def initialize( fname ) + @filename = File.expand_path(fname) + super() + end + + attr_reader :filename + + alias ident filename + + def ==( other ) + other.respond_to?(:filename) and @filename == other.filename + end + + alias eql? == + + def hash + @filename.hash + end + + def inspect + "#<#{self.class}:#{@filename}>" + end + + def reproducible? + true + end + + def size + File.size @filename + end + + + def ropen( &block ) + File.open(@filename, &block) + end + + def wopen( &block ) + File.open(@filename, 'w', &block) + end + + def aopen( &block ) + File.open(@filename, 'a', &block) + end + + + def read_all + ropen {|f| + return f.read + } + end + + + def remove + File.unlink @filename + end + + def move_to( port ) + begin + File.link @filename, port.filename + rescue Errno::EXDEV + copy_to port + end + File.unlink @filename + end + + alias mv move_to + + def copy_to( port ) + if FilePort === port + copy_file @filename, port.filename + else + File.open(@filename) {|r| + port.wopen {|w| + while s = r.sysread(4096) + w.write << s + end + } } + end + end + + alias cp copy_to + + private + + # from fileutils.rb + def copy_file( src, dest ) + st = r = w = nil + + File.open(src, 'rb') {|r| + File.open(dest, 'wb') {|w| + st = r.stat + begin + while true + w.write r.sysread(st.blksize) + end + rescue EOFError + end + } } + end + + end + + + module MailFlags + + def seen=( b ) + set_status 'S', b + end + + def seen? + get_status 'S' + end + + def replied=( b ) + set_status 'R', b + end + + def replied? + get_status 'R' + end + + def flagged=( b ) + set_status 'F', b + end + + def flagged? + get_status 'F' + end + + private + + def procinfostr( str, tag, true_p ) + a = str.upcase.split(//) + a.push true_p ? tag : nil + a.delete tag unless true_p + a.compact.sort.join('').squeeze + end + + end + + + class MhPort < FilePort + + include MailFlags + + private + + def set_status( tag, flag ) + begin + tmpfile = @filename + '.tmailtmp.' + $$.to_s + File.open(tmpfile, 'w') {|f| + write_status f, tag, flag + } + File.unlink @filename + File.link tmpfile, @filename + ensure + File.unlink tmpfile + end + end + + def write_status( f, tag, flag ) + stat = '' + File.open(@filename) {|r| + while line = r.gets + if line.strip.empty? + break + elsif m = /\AX-TMail-Status:/i.match(line) + stat = m.post_match.strip + else + f.print line + end + end + + s = procinfostr(stat, tag, flag) + f.puts 'X-TMail-Status: ' + s unless s.empty? + f.puts + + while s = r.read(2048) + f.write s + end + } + end + + def get_status( tag ) + File.foreach(@filename) {|line| + return false if line.strip.empty? + if m = /\AX-TMail-Status:/i.match(line) + return m.post_match.strip.include?(tag[0]) + end + } + false + end + + end + + + class MaildirPort < FilePort + + def move_to_new + new = replace_dir(@filename, 'new') + File.rename @filename, new + @filename = new + end + + def move_to_cur + new = replace_dir(@filename, 'cur') + File.rename @filename, new + @filename = new + end + + def replace_dir( path, dir ) + "#{File.dirname File.dirname(path)}/#{dir}/#{File.basename path}" + end + private :replace_dir + + + include MailFlags + + private + + MAIL_FILE = /\A(\d+\.[\d_]+\.[^:]+)(?:\:(\d),(\w+)?)?\z/ + + def set_status( tag, flag ) + if m = MAIL_FILE.match(File.basename(@filename)) + s, uniq, type, info, = m.to_a + return if type and type != '2' # do not change anything + newname = File.dirname(@filename) + '/' + + uniq + ':2,' + procinfostr(info.to_s, tag, flag) + else + newname = @filename + ':2,' + tag + end + + File.link @filename, newname + File.unlink @filename + @filename = newname + end + + def get_status( tag ) + m = MAIL_FILE.match(File.basename(@filename)) or return false + m[2] == '2' and m[3].to_s.include?(tag[0]) + end + + end + + + ### + ### StringPort + ### + + class StringPort < Port + + def initialize( str = '' ) + @buffer = str + super() + end + + def string + @buffer + end + + def to_s + @buffer.dup + end + + alias read_all to_s + + def size + @buffer.size + end + + def ==( other ) + StringPort === other and @buffer.equal? other.string + end + + alias eql? == + + def hash + @buffer.object_id.hash + end + + def inspect + "#<#{self.class}:id=#{sprintf '0x%x', @buffer.object_id}>" + end + + def reproducible? + true + end + + def ropen( &block ) + @buffer or raise Errno::ENOENT, "#{inspect} is already removed" + StringInput.open(@buffer, &block) + end + + def wopen( &block ) + @buffer = '' + StringOutput.new(@buffer, &block) + end + + def aopen( &block ) + @buffer ||= '' + StringOutput.new(@buffer, &block) + end + + def remove + @buffer = nil + end + + alias rm remove + + def copy_to( port ) + port.wopen {|f| + f.write @buffer + } + end + + alias cp copy_to + + def move_to( port ) + if StringPort === port + str = @buffer + port.instance_eval { @buffer = str } + else + copy_to port + end + remove + end + + end + +end # module TMail diff --git a/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/quoting.rb b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/quoting.rb new file mode 100644 index 0000000..cb9f428 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/quoting.rb @@ -0,0 +1,118 @@ +=begin rdoc + += Quoting methods + +=end +module TMail + class Mail + def subject(to_charset = 'utf-8') + Unquoter.unquote_and_convert_to(quoted_subject, to_charset) + end + + def unquoted_body(to_charset = 'utf-8') + from_charset = sub_header("content-type", "charset") + case (content_transfer_encoding || "7bit").downcase + when "quoted-printable" + # the default charset is set to iso-8859-1 instead of 'us-ascii'. + # This is needed as many mailer do not set the charset but send in ISO. This is only used if no charset is set. + if !from_charset.blank? && from_charset.downcase == 'us-ascii' + from_charset = 'iso-8859-1' + end + + Unquoter.unquote_quoted_printable_and_convert_to(quoted_body, + to_charset, from_charset, true) + when "base64" + Unquoter.unquote_base64_and_convert_to(quoted_body, to_charset, + from_charset) + when "7bit", "8bit" + Unquoter.convert_to(quoted_body, to_charset, from_charset) + when "binary" + quoted_body + else + quoted_body + end + end + + def body(to_charset = 'utf-8', &block) + attachment_presenter = block || Proc.new { |file_name| "Attachment: #{file_name}\n" } + + if multipart? + parts.collect { |part| + header = part["content-type"] + + if part.multipart? + part.body(to_charset, &attachment_presenter) + elsif header.nil? + "" + elsif !attachment?(part) + part.unquoted_body(to_charset) + else + attachment_presenter.call(header["name"] || "(unnamed)") + end + }.join + else + unquoted_body(to_charset) + end + end + end + + class Unquoter + class << self + def unquote_and_convert_to(text, to_charset, from_charset = "iso-8859-1", preserve_underscores=false) + return "" if text.nil? + text.gsub(/(.*?)(?:(?:=\?(.*?)\?(.)\?(.*?)\?=)|$)/) do + before = $1 + from_charset = $2 + quoting_method = $3 + text = $4 + + before = convert_to(before, to_charset, from_charset) if before.length > 0 + before + case quoting_method + when "q", "Q" then + unquote_quoted_printable_and_convert_to(text, to_charset, from_charset, preserve_underscores) + when "b", "B" then + unquote_base64_and_convert_to(text, to_charset, from_charset) + when nil then + # will be nil at the end of the string, due to the nature of + # the regex used. + "" + else + raise "unknown quoting method #{quoting_method.inspect}" + end + end + end + + def unquote_quoted_printable_and_convert_to(text, to, from, preserve_underscores=false) + text = text.gsub(/_/, " ") unless preserve_underscores + text = text.gsub(/\r\n|\r/, "\n") # normalize newlines + convert_to(text.unpack("M*").first, to, from) + end + + def unquote_base64_and_convert_to(text, to, from) + convert_to(Base64.decode(text), to, from) + end + + begin + require 'iconv' + def convert_to(text, to, from) + return text unless to && from + text ? Iconv.iconv(to, from, text).first : "" + rescue Iconv::IllegalSequence, Iconv::InvalidEncoding, Errno::EINVAL + # the 'from' parameter specifies a charset other than what the text + # actually is...not much we can do in this case but just return the + # unconverted text. + # + # Ditto if either parameter represents an unknown charset, like + # X-UNKNOWN. + text + end + rescue LoadError + # Not providing quoting support + def convert_to(text, to, from) + warn "Action Mailer: iconv not loaded; ignoring conversion from #{from} to #{to} (#{__FILE__}:#{__LINE__})" + text + end + end + end + end +end diff --git a/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/require_arch.rb b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/require_arch.rb new file mode 100644 index 0000000..b4fffb8 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/require_arch.rb @@ -0,0 +1,58 @@ +#:stopdoc: +require 'rbconfig' + +# Attempts to require anative extension. +# Falls back to pure-ruby version, if it fails. +# +# This uses Config::CONFIG['arch'] from rbconfig. + +def require_arch(fname) + arch = Config::CONFIG['arch'] + begin + path = File.join("tmail", arch, fname) + require path + rescue LoadError => e + # try pre-built Windows binaries + if arch =~ /mswin/ + require File.join("tmail", 'mswin32', fname) + else + raise e + end + end +end + + +# def require_arch(fname) +# dext = Config::CONFIG['DLEXT'] +# begin +# if File.extname(fname) == dext +# path = fname +# else +# path = File.join("tmail","#{fname}.#{dext}") +# end +# require path +# rescue LoadError => e +# begin +# arch = Config::CONFIG['arch'] +# path = File.join("tmail", arch, "#{fname}.#{dext}") +# require path +# rescue LoadError +# case path +# when /i686/ +# path.sub!('i686', 'i586') +# when /i586/ +# path.sub!('i586', 'i486') +# when /i486/ +# path.sub!('i486', 'i386') +# else +# begin +# require fname + '.rb' +# rescue LoadError +# raise e +# end +# end +# retry +# end +# end +# end +#:startdoc: \ No newline at end of file diff --git a/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/scanner.rb b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/scanner.rb new file mode 100644 index 0000000..a5d0139 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/scanner.rb @@ -0,0 +1,49 @@ +=begin rdoc + += Scanner for TMail + +=end +#-- +# Copyright (c) 1998-2003 Minero Aoki +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Note: Originally licensed under LGPL v2+. Using MIT license for Rails +# with permission of Minero Aoki. +#++ +#:stopdoc: +#require 'tmail/require_arch' +require 'tmail/utils' +require 'tmail/config' + +module TMail + # NOTE: It woiuld be nice if these two libs could boith be called "tmailscanner", and + # the native extension would have precedence. However RubyGems boffs that up b/c + # it does not gaurantee load_path order. + begin + raise LoadError, 'Turned off native extentions by user choice' if ENV['NORUBYEXT'] + require('tmail/tmailscanner') # c extension + Scanner = TMailScanner + rescue LoadError + require 'tmail/scanner_r' + Scanner = TMailScanner + end +end +#:stopdoc: \ No newline at end of file diff --git a/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/scanner_r.rb b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/scanner_r.rb new file mode 100644 index 0000000..f207550 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/scanner_r.rb @@ -0,0 +1,261 @@ +# scanner_r.rb +# +#-- +# Copyright (c) 1998-2003 Minero Aoki +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Note: Originally licensed under LGPL v2+. Using MIT license for Rails +# with permission of Minero Aoki. +#++ +#:stopdoc: +require 'tmail/config' + +module TMail + + class TMailScanner + + Version = '1.2.3' + Version.freeze + + MIME_HEADERS = { + :CTYPE => true, + :CENCODING => true, + :CDISPOSITION => true + } + + alnum = 'a-zA-Z0-9' + atomsyms = %q[ _#!$%&`'*+-{|}~^/=? ].strip + tokensyms = %q[ _#!$%&`'*+-{|}~^@. ].strip + atomchars = alnum + Regexp.quote(atomsyms) + tokenchars = alnum + Regexp.quote(tokensyms) + iso2022str = '\e(?!\(B)..(?:[^\e]+|\e(?!\(B)..)*\e\(B' + + eucstr = "(?:[\xa1-\xfe][\xa1-\xfe])+" + sjisstr = "(?:[\x81-\x9f\xe0-\xef][\x40-\x7e\x80-\xfc])+" + utf8str = "(?:[\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf][\x80-\xbf])+" + + quoted_with_iso2022 = /\A(?:[^\\\e"]+|#{iso2022str})+/n + domlit_with_iso2022 = /\A(?:[^\\\e\]]+|#{iso2022str})+/n + comment_with_iso2022 = /\A(?:[^\\\e()]+|#{iso2022str})+/n + + quoted_without_iso2022 = /\A[^\\"]+/n + domlit_without_iso2022 = /\A[^\\\]]+/n + comment_without_iso2022 = /\A[^\\()]+/n + + PATTERN_TABLE = {} + PATTERN_TABLE['EUC'] = + [ + /\A(?:[#{atomchars}]+|#{iso2022str}|#{eucstr})+/n, + /\A(?:[#{tokenchars}]+|#{iso2022str}|#{eucstr})+/n, + quoted_with_iso2022, + domlit_with_iso2022, + comment_with_iso2022 + ] + PATTERN_TABLE['SJIS'] = + [ + /\A(?:[#{atomchars}]+|#{iso2022str}|#{sjisstr})+/n, + /\A(?:[#{tokenchars}]+|#{iso2022str}|#{sjisstr})+/n, + quoted_with_iso2022, + domlit_with_iso2022, + comment_with_iso2022 + ] + PATTERN_TABLE['UTF8'] = + [ + /\A(?:[#{atomchars}]+|#{utf8str})+/n, + /\A(?:[#{tokenchars}]+|#{utf8str})+/n, + quoted_without_iso2022, + domlit_without_iso2022, + comment_without_iso2022 + ] + PATTERN_TABLE['NONE'] = + [ + /\A[#{atomchars}]+/n, + /\A[#{tokenchars}]+/n, + quoted_without_iso2022, + domlit_without_iso2022, + comment_without_iso2022 + ] + + + def initialize( str, scantype, comments ) + init_scanner str + @comments = comments || [] + @debug = false + + # fix scanner mode + @received = (scantype == :RECEIVED) + @is_mime_header = MIME_HEADERS[scantype] + + atom, token, @quoted_re, @domlit_re, @comment_re = PATTERN_TABLE[TMail.KCODE] + @word_re = (MIME_HEADERS[scantype] ? token : atom) + end + + attr_accessor :debug + + def scan( &block ) + if @debug + scan_main do |arr| + s, v = arr + printf "%7d %-10s %s\n", + rest_size(), + s.respond_to?(:id2name) ? s.id2name : s.inspect, + v.inspect + yield arr + end + else + scan_main(&block) + end + end + + private + + RECV_TOKEN = { + 'from' => :FROM, + 'by' => :BY, + 'via' => :VIA, + 'with' => :WITH, + 'id' => :ID, + 'for' => :FOR + } + + def scan_main + until eof? + if skip(/\A[\n\r\t ]+/n) # LWSP + break if eof? + end + + if s = readstr(@word_re) + if @is_mime_header + yield [:TOKEN, s] + else + # atom + if /\A\d+\z/ === s + yield [:DIGIT, s] + elsif @received + yield [RECV_TOKEN[s.downcase] || :ATOM, s] + else + yield [:ATOM, s] + end + end + + elsif skip(/\A"/) + yield [:QUOTED, scan_quoted_word()] + + elsif skip(/\A\[/) + yield [:DOMLIT, scan_domain_literal()] + + elsif skip(/\A\(/) + @comments.push scan_comment() + + else + c = readchar() + yield [c, c] + end + end + + yield [false, '$'] + end + + def scan_quoted_word + scan_qstr(@quoted_re, /\A"/, 'quoted-word') + end + + def scan_domain_literal + '[' + scan_qstr(@domlit_re, /\A\]/, 'domain-literal') + ']' + end + + def scan_qstr( pattern, terminal, type ) + result = '' + until eof? + if s = readstr(pattern) then result << s + elsif skip(terminal) then return result + elsif skip(/\A\\/) then result << readchar() + else + raise "TMail FATAL: not match in #{type}" + end + end + scan_error! "found unterminated #{type}" + end + + def scan_comment + result = '' + nest = 1 + content = @comment_re + + until eof? + if s = readstr(content) then result << s + elsif skip(/\A\)/) then nest -= 1 + return result if nest == 0 + result << ')' + elsif skip(/\A\(/) then nest += 1 + result << '(' + elsif skip(/\A\\/) then result << readchar() + else + raise 'TMail FATAL: not match in comment' + end + end + scan_error! 'found unterminated comment' + end + + # string scanner + + def init_scanner( str ) + @src = str + end + + def eof? + @src.empty? + end + + def rest_size + @src.size + end + + def readstr( re ) + if m = re.match(@src) + @src = m.post_match + m[0] + else + nil + end + end + + def readchar + readstr(/\A./) + end + + def skip( re ) + if m = re.match(@src) + @src = m.post_match + true + else + false + end + end + + def scan_error!( msg ) + raise SyntaxError, msg + end + + end + +end # module TMail +#:startdoc: \ No newline at end of file diff --git a/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/stringio.rb b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/stringio.rb new file mode 100644 index 0000000..8357398 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/stringio.rb @@ -0,0 +1,280 @@ +# encoding: utf-8 +=begin rdoc + += String handling class + +=end +#-- +# Copyright (c) 1998-2003 Minero Aoki +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Note: Originally licensed under LGPL v2+. Using MIT license for Rails +# with permission of Minero Aoki. +#++ + +class StringInput#:nodoc: + + include Enumerable + + class << self + + def new( str ) + if block_given? + begin + f = super + yield f + ensure + f.close if f + end + else + super + end + end + + alias open new + + end + + def initialize( str ) + @src = str + @pos = 0 + @closed = false + @lineno = 0 + end + + attr_reader :lineno + + def string + @src + end + + def inspect + "#<#{self.class}:#{@closed ? 'closed' : 'open'},src=#{@src[0,30].inspect}>" + end + + def close + stream_check! + @pos = nil + @closed = true + end + + def closed? + @closed + end + + def pos + stream_check! + [@pos, @src.size].min + end + + alias tell pos + + def seek( offset, whence = IO::SEEK_SET ) + stream_check! + case whence + when IO::SEEK_SET + @pos = offset + when IO::SEEK_CUR + @pos += offset + when IO::SEEK_END + @pos = @src.size - offset + else + raise ArgumentError, "unknown seek flag: #{whence}" + end + @pos = 0 if @pos < 0 + @pos = [@pos, @src.size + 1].min + offset + end + + def rewind + stream_check! + @pos = 0 + end + + def eof? + stream_check! + @pos > @src.size + end + + def each( &block ) + stream_check! + begin + @src.each(&block) + ensure + @pos = 0 + end + end + + def gets + stream_check! + if idx = @src.index(?\n, @pos) + idx += 1 # "\n".size + line = @src[ @pos ... idx ] + @pos = idx + @pos += 1 if @pos == @src.size + else + line = @src[ @pos .. -1 ] + @pos = @src.size + 1 + end + @lineno += 1 + + line + end + + def getc + stream_check! + ch = @src[@pos] + @pos += 1 + @pos += 1 if @pos == @src.size + ch + end + + def read( len = nil ) + stream_check! + return read_all unless len + str = @src[@pos, len] + @pos += len + @pos += 1 if @pos == @src.size + str + end + + alias sysread read + + def read_all + stream_check! + return nil if eof? + rest = @src[@pos ... @src.size] + @pos = @src.size + 1 + rest + end + + def stream_check! + @closed and raise IOError, 'closed stream' + end + +end + + +class StringOutput#:nodoc: + + class << self + + def new( str = '' ) + if block_given? + begin + f = super + yield f + ensure + f.close if f + end + else + super + end + end + + alias open new + + end + + def initialize( str = '' ) + @dest = str + @closed = false + end + + def close + @closed = true + end + + def closed? + @closed + end + + def string + @dest + end + + alias value string + alias to_str string + + def size + @dest.size + end + + alias pos size + + def inspect + "#<#{self.class}:#{@dest ? 'open' : 'closed'},#{object_id}>" + end + + def print( *args ) + stream_check! + raise ArgumentError, 'wrong # of argument (0 for >1)' if args.empty? + args.each do |s| + raise ArgumentError, 'nil not allowed' if s.nil? + @dest << s.to_s + end + nil + end + + def puts( *args ) + stream_check! + args.each do |str| + @dest << (s = str.to_s) + @dest << "\n" unless s[-1] == ?\n + end + @dest << "\n" if args.empty? + nil + end + + def putc( ch ) + stream_check! + @dest << ch.chr + nil + end + + def printf( *args ) + stream_check! + @dest << sprintf(*args) + nil + end + + def write( str ) + stream_check! + s = str.to_s + @dest << s + s.size + end + + alias syswrite write + + def <<( str ) + stream_check! + @dest << str.to_s + self + end + + private + + def stream_check! + @closed and raise IOError, 'closed stream' + end + +end diff --git a/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/utils.rb b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/utils.rb new file mode 100644 index 0000000..dc594a4 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/utils.rb @@ -0,0 +1,337 @@ +#-- +# Copyright (c) 1998-2003 Minero Aoki +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Note: Originally licensed under LGPL v2+. Using MIT license for Rails +# with permission of Minero Aoki. +#++ + +# = TMail - The EMail Swiss Army Knife for Ruby +# +# The TMail library provides you with a very complete way to handle and manipulate EMails +# from within your Ruby programs. +# +# Used as the backbone for email handling by the Ruby on Rails and Nitro web frameworks as +# well as a bunch of other Ruby apps including the Ruby-Talk mailing list to newsgroup email +# gateway, it is a proven and reliable email handler that won't let you down. +# +# Originally created by Minero Aoki, TMail has been recently picked up by Mikel Lindsaar and +# is being actively maintained. Numerous backlogged bug fixes have been applied as well as +# Ruby 1.9 compatibility and a swath of documentation to boot. +# +# TMail allows you to treat an email totally as an object and allow you to get on with your +# own programming without having to worry about crafting the perfect email address validation +# parser, or assembling an email from all it's component parts. +# +# TMail handles the most complex part of the email - the header. It generates and parses +# headers and provides you with instant access to their innards through simple and logically +# named accessor and setter methods. +# +# TMail also provides a wrapper to Net/SMTP as well as Unix Mailbox handling methods to +# directly read emails from your unix mailbox, parse them and use them. +# +# Following is the comprehensive list of methods to access TMail::Mail objects. You can also +# check out TMail::Mail, TMail::Address and TMail::Headers for other lists. +module TMail + + # Provides an exception to throw on errors in Syntax within TMail's parsers + class SyntaxError < StandardError; end + + # Provides a new email boundary to separate parts of the email. This is a random + # string based off the current time, so should be fairly unique. + # + # For Example: + # + # TMail.new_boundary + # #=> "mimepart_47bf656968207_25a8fbb80114" + # TMail.new_boundary + # #=> "mimepart_47bf66051de4_25a8fbb80240" + def TMail.new_boundary + 'mimepart_' + random_tag + end + + # Provides a new email message ID. You can use this to generate unique email message + # id's for your email so you can track them. + # + # Optionally takes a fully qualified domain name (default to the current hostname + # returned by Socket.gethostname) that will be appended to the message ID. + # + # For Example: + # + # email.message_id = TMail.new_message_id + # #=> "<47bf66845380e_25a8fbb80332@baci.local.tmail>" + # email.to_s + # #=> "Message-Id: <47bf668b633f1_25a8fbb80475@baci.local.tmail>\n\n" + # email.message_id = TMail.new_message_id("lindsaar.net") + # #=> "<47bf668b633f1_25a8fbb80475@lindsaar.net.tmail>" + # email.to_s + # #=> "Message-Id: <47bf668b633f1_25a8fbb80475@lindsaar.net.tmail>\n\n" + def TMail.new_message_id( fqdn = nil ) + fqdn ||= ::Socket.gethostname + "<#{random_tag()}@#{fqdn}.tmail>" + end + + #:stopdoc: + def TMail.random_tag #:nodoc: + @uniq += 1 + t = Time.now + sprintf('%x%x_%x%x%d%x', + t.to_i, t.tv_usec, + $$, Thread.current.object_id, @uniq, rand(255)) + end + private_class_method :random_tag + + @uniq = 0 + + #:startdoc: + + # Text Utils provides a namespace to define TOKENs, ATOMs, PHRASEs and CONTROL characters that + # are OK per RFC 2822. + # + # It also provides methods you can call to determine if a string is safe + module TextUtils + + aspecial = %Q|()<>[]:;.\\,"| + tspecial = %Q|()<>[];:\\,"/?=| + lwsp = %Q| \t\r\n| + control = %Q|\x00-\x1f\x7f-\xff| + + CONTROL_CHAR = /[#{control}]/n + ATOM_UNSAFE = /[#{Regexp.quote aspecial}#{control}#{lwsp}]/n + PHRASE_UNSAFE = /[#{Regexp.quote aspecial}#{control}]/n + TOKEN_UNSAFE = /[#{Regexp.quote tspecial}#{control}#{lwsp}]/n + + # Returns true if the string supplied is free from characters not allowed as an ATOM + def atom_safe?( str ) + not ATOM_UNSAFE === str + end + + # If the string supplied has ATOM unsafe characters in it, will return the string quoted + # in double quotes, otherwise returns the string unmodified + def quote_atom( str ) + (ATOM_UNSAFE === str) ? dquote(str) : str + end + + # If the string supplied has PHRASE unsafe characters in it, will return the string quoted + # in double quotes, otherwise returns the string unmodified + def quote_phrase( str ) + (PHRASE_UNSAFE === str) ? dquote(str) : str + end + + # Returns true if the string supplied is free from characters not allowed as a TOKEN + def token_safe?( str ) + not TOKEN_UNSAFE === str + end + + # If the string supplied has TOKEN unsafe characters in it, will return the string quoted + # in double quotes, otherwise returns the string unmodified + def quote_token( str ) + (TOKEN_UNSAFE === str) ? dquote(str) : str + end + + # Wraps supplied string in double quotes unless it is already wrapped + # Returns double quoted string + def dquote( str ) #:nodoc: + unless str =~ /^".*?"$/ + '"' + str.gsub(/["\\]/n) {|s| '\\' + s } + '"' + else + str + end + end + private :dquote + + # Unwraps supplied string from inside double quotes + # Returns unquoted string + def unquote( str ) + str =~ /^"(.*?)"$/ ? $1 : str + end + + # Provides a method to join a domain name by it's parts and also makes it + # ATOM safe by quoting it as needed + def join_domain( arr ) + arr.map {|i| + if /\A\[.*\]\z/ === i + i + else + quote_atom(i) + end + }.join('.') + end + + #:stopdoc: + ZONESTR_TABLE = { + 'jst' => 9 * 60, + 'eet' => 2 * 60, + 'bst' => 1 * 60, + 'met' => 1 * 60, + 'gmt' => 0, + 'utc' => 0, + 'ut' => 0, + 'nst' => -(3 * 60 + 30), + 'ast' => -4 * 60, + 'edt' => -4 * 60, + 'est' => -5 * 60, + 'cdt' => -5 * 60, + 'cst' => -6 * 60, + 'mdt' => -6 * 60, + 'mst' => -7 * 60, + 'pdt' => -7 * 60, + 'pst' => -8 * 60, + 'a' => -1 * 60, + 'b' => -2 * 60, + 'c' => -3 * 60, + 'd' => -4 * 60, + 'e' => -5 * 60, + 'f' => -6 * 60, + 'g' => -7 * 60, + 'h' => -8 * 60, + 'i' => -9 * 60, + # j not use + 'k' => -10 * 60, + 'l' => -11 * 60, + 'm' => -12 * 60, + 'n' => 1 * 60, + 'o' => 2 * 60, + 'p' => 3 * 60, + 'q' => 4 * 60, + 'r' => 5 * 60, + 's' => 6 * 60, + 't' => 7 * 60, + 'u' => 8 * 60, + 'v' => 9 * 60, + 'w' => 10 * 60, + 'x' => 11 * 60, + 'y' => 12 * 60, + 'z' => 0 * 60 + } + #:startdoc: + + # Takes a time zone string from an EMail and converts it to Unix Time (seconds) + def timezone_string_to_unixtime( str ) + if m = /([\+\-])(\d\d?)(\d\d)/.match(str) + sec = (m[2].to_i * 60 + m[3].to_i) * 60 + m[1] == '-' ? -sec : sec + else + min = ZONESTR_TABLE[str.downcase] or + raise SyntaxError, "wrong timezone format '#{str}'" + min * 60 + end + end + + #:stopdoc: + WDAY = %w( Sun Mon Tue Wed Thu Fri Sat TMailBUG ) + MONTH = %w( TMailBUG Jan Feb Mar Apr May Jun + Jul Aug Sep Oct Nov Dec TMailBUG ) + + def time2str( tm ) + # [ruby-list:7928] + gmt = Time.at(tm.to_i) + gmt.gmtime + offset = tm.to_i - Time.local(*gmt.to_a[0,6].reverse).to_i + + # DO NOT USE strftime: setlocale() breaks it + sprintf '%s, %s %s %d %02d:%02d:%02d %+.2d%.2d', + WDAY[tm.wday], tm.mday, MONTH[tm.month], + tm.year, tm.hour, tm.min, tm.sec, + *(offset / 60).divmod(60) + end + + + MESSAGE_ID = /<[^\@>]+\@[^>\@]+>/ + + def message_id?( str ) + MESSAGE_ID === str + end + + + MIME_ENCODED = /=\?[^\s?=]+\?[QB]\?[^\s?=]+\?=/i + + def mime_encoded?( str ) + MIME_ENCODED === str + end + + + def decode_params( hash ) + new = Hash.new + encoded = nil + hash.each do |key, value| + if m = /\*(?:(\d+)\*)?\z/.match(key) + ((encoded ||= {})[m.pre_match] ||= [])[(m[1] || 0).to_i] = value + else + new[key] = to_kcode(value) + end + end + if encoded + encoded.each do |key, strings| + new[key] = decode_RFC2231(strings.join('')) + end + end + + new + end + + NKF_FLAGS = { + 'EUC' => '-e -m', + 'SJIS' => '-s -m' + } + + def to_kcode( str ) + flag = NKF_FLAGS[TMail.KCODE] or return str + NKF.nkf(flag, str) + end + + RFC2231_ENCODED = /\A(?:iso-2022-jp|euc-jp|shift_jis|us-ascii)?'[a-z]*'/in + + def decode_RFC2231( str ) + m = RFC2231_ENCODED.match(str) or return str + begin + to_kcode(m.post_match.gsub(/%[\da-f]{2}/in) {|s| s[1,2].hex.chr }) + rescue + m.post_match.gsub(/%[\da-f]{2}/in, "") + end + end + + def quote_boundary + # Make sure the Content-Type boundary= parameter is quoted if it contains illegal characters + # (to ensure any special characters in the boundary text are escaped from the parser + # (such as = in MS Outlook's boundary text)) + if @body =~ /^(.*)boundary=(.*)$/m + preamble = $1 + remainder = $2 + if remainder =~ /;/ + remainder =~ /^(.*?)(;.*)$/m + boundary_text = $1 + post = $2.chomp + else + boundary_text = remainder.chomp + end + if boundary_text =~ /[\/\?\=]/ + boundary_text = "\"#{boundary_text}\"" unless boundary_text =~ /^".*?"$/ + @body = "#{preamble}boundary=#{boundary_text}#{post}" + end + end + end + #:startdoc: + + + end + +end diff --git a/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/version.rb b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/version.rb new file mode 100644 index 0000000..9522849 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail-1.2.3/tmail/version.rb @@ -0,0 +1,39 @@ +# +# version.rb +# +#-- +# Copyright (c) 1998-2003 Minero Aoki +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Note: Originally licensed under LGPL v2+. Using MIT license for Rails +# with permission of Minero Aoki. +#++ + +#:stopdoc: +module TMail + module VERSION + MAJOR = 1 + MINOR = 2 + TINY = 3 + + STRING = [MAJOR, MINOR, TINY].join('.') + end +end diff --git a/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail.rb b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail.rb new file mode 100644 index 0000000..51d36cd --- /dev/null +++ b/presidents/vendor/rails/actionmailer/lib/action_mailer/vendor/tmail.rb @@ -0,0 +1,17 @@ +# Prefer gems to the bundled libs. +require 'rubygems' + +begin + gem 'tmail', '~> 1.2.3' +rescue Gem::LoadError + $:.unshift "#{File.dirname(__FILE__)}/tmail-1.2.3" +end + +module TMail +end + +require 'tmail' + +silence_warnings do + TMail::Encoder.const_set("MAX_LINE_LEN", 200) +end diff --git a/presidents/vendor/rails/actionmailer/lib/action_mailer/version.rb b/presidents/vendor/rails/actionmailer/lib/action_mailer/version.rb new file mode 100644 index 0000000..855b0ef --- /dev/null +++ b/presidents/vendor/rails/actionmailer/lib/action_mailer/version.rb @@ -0,0 +1,9 @@ +module ActionMailer + module VERSION #:nodoc: + MAJOR = 2 + MINOR = 3 + TINY = 4 + + STRING = [MAJOR, MINOR, TINY].join('.') + end +end diff --git a/presidents/vendor/rails/actionmailer/lib/actionmailer.rb b/presidents/vendor/rails/actionmailer/lib/actionmailer.rb new file mode 100644 index 0000000..5064162 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/lib/actionmailer.rb @@ -0,0 +1 @@ +require 'action_mailer' diff --git a/presidents/vendor/rails/actionmailer/test/abstract_unit.rb b/presidents/vendor/rails/actionmailer/test/abstract_unit.rb new file mode 100644 index 0000000..9728ae5 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/abstract_unit.rb @@ -0,0 +1,62 @@ +require 'rubygems' +require 'test/unit' + +$:.unshift "#{File.dirname(__FILE__)}/../lib" +$:.unshift "#{File.dirname(__FILE__)}/../../activesupport/lib" +$:.unshift "#{File.dirname(__FILE__)}/../../actionpack/lib" +require 'action_mailer' +require 'action_mailer/test_case' + +# Show backtraces for deprecated behavior for quicker cleanup. +ActiveSupport::Deprecation.debug = true + +# Bogus template processors +ActionView::Template.register_template_handler :haml, lambda { |template| "Look its HAML!".inspect } +ActionView::Template.register_template_handler :bak, lambda { |template| "Lame backup".inspect } + +$:.unshift "#{File.dirname(__FILE__)}/fixtures/helpers" + +ActionView::Base.cache_template_loading = true +FIXTURE_LOAD_PATH = File.join(File.dirname(__FILE__), 'fixtures') +ActionMailer::Base.template_root = FIXTURE_LOAD_PATH + +class MockSMTP + def self.deliveries + @@deliveries + end + + def initialize + @@deliveries = [] + end + + def sendmail(mail, from, to) + @@deliveries << [mail, from, to] + end + + def start(*args) + yield self + end +end + +class Net::SMTP + def self.new(*args) + MockSMTP.new + end +end + +def uses_gem(gem_name, test_name, version = '> 0') + gem gem_name.to_s, version + require gem_name.to_s + yield +rescue LoadError + $stderr.puts "Skipping #{test_name} tests. `gem install #{gem_name}` and try again." +end + +def set_delivery_method(delivery_method) + @old_delivery_method = ActionMailer::Base.delivery_method + ActionMailer::Base.delivery_method = delivery_method +end + +def restore_delivery_method + ActionMailer::Base.delivery_method = @old_delivery_method +end diff --git a/presidents/vendor/rails/actionmailer/test/asset_host_test.rb b/presidents/vendor/rails/actionmailer/test/asset_host_test.rb new file mode 100644 index 0000000..1c92dd2 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/asset_host_test.rb @@ -0,0 +1,54 @@ +require 'abstract_unit' + +class AssetHostMailer < ActionMailer::Base + def email_with_asset(recipient) + recipients recipient + subject "testing email containing asset path while asset_host is set" + from "tester@example.com" + end +end + +class AssetHostTest < Test::Unit::TestCase + def setup + set_delivery_method :test + ActionMailer::Base.perform_deliveries = true + ActionMailer::Base.deliveries = [] + + @recipient = 'test@localhost' + end + + def teardown + restore_delivery_method + end + + def test_asset_host_as_string + ActionController::Base.asset_host = "http://www.example.com" + mail = AssetHostMailer.deliver_email_with_asset(@recipient) + assert_equal "\"Somelogo\"", mail.body.strip + end + + def test_asset_host_as_one_arguement_proc + ActionController::Base.asset_host = Proc.new { |source| + if source.starts_with?('/images') + "http://images.example.com" + else + "http://assets.example.com" + end + } + mail = AssetHostMailer.deliver_email_with_asset(@recipient) + assert_equal "\"Somelogo\"", mail.body.strip + end + + def test_asset_host_as_two_arguement_proc + ActionController::Base.asset_host = Proc.new {|source,request| + if request && request.ssl? + "https://www.example.com" + else + "http://www.example.com" + end + } + mail = nil + assert_nothing_raised { mail = AssetHostMailer.deliver_email_with_asset(@recipient) } + assert_equal "\"Somelogo\"", mail.body.strip + end +end \ No newline at end of file diff --git a/presidents/vendor/rails/actionmailer/test/delivery_method_test.rb b/presidents/vendor/rails/actionmailer/test/delivery_method_test.rb new file mode 100644 index 0000000..0731512 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/delivery_method_test.rb @@ -0,0 +1,51 @@ +require 'abstract_unit' + +class DefaultDeliveryMethodMailer < ActionMailer::Base +end + +class NonDefaultDeliveryMethodMailer < ActionMailer::Base + self.delivery_method = :sendmail +end + +class ActionMailerBase_delivery_method_Test < Test::Unit::TestCase + def setup + set_delivery_method :smtp + end + + def teardown + restore_delivery_method + end + + def test_should_be_the_default_smtp + assert_equal :smtp, ActionMailer::Base.delivery_method + end +end + +class DefaultDeliveryMethodMailer_delivery_method_Test < Test::Unit::TestCase + def setup + set_delivery_method :smtp + end + + def teardown + restore_delivery_method + end + + def test_should_be_the_default_smtp + assert_equal :smtp, DefaultDeliveryMethodMailer.delivery_method + end +end + +class NonDefaultDeliveryMethodMailer_delivery_method_Test < Test::Unit::TestCase + def setup + set_delivery_method :smtp + end + + def teardown + restore_delivery_method + end + + def test_should_be_the_set_delivery_method + assert_equal :sendmail, NonDefaultDeliveryMethodMailer.delivery_method + end +end + diff --git a/presidents/vendor/rails/actionmailer/test/fixtures/asset_host_mailer/email_with_asset.html.erb b/presidents/vendor/rails/actionmailer/test/fixtures/asset_host_mailer/email_with_asset.html.erb new file mode 100644 index 0000000..b3f0438 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/fixtures/asset_host_mailer/email_with_asset.html.erb @@ -0,0 +1 @@ +<%= image_tag "somelogo.png" %> \ No newline at end of file diff --git a/presidents/vendor/rails/actionmailer/test/fixtures/auto_layout_mailer/hello.html.erb b/presidents/vendor/rails/actionmailer/test/fixtures/auto_layout_mailer/hello.html.erb new file mode 100644 index 0000000..5495078 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/fixtures/auto_layout_mailer/hello.html.erb @@ -0,0 +1 @@ +Inside \ No newline at end of file diff --git a/presidents/vendor/rails/actionmailer/test/fixtures/auto_layout_mailer/multipart.text.html.erb b/presidents/vendor/rails/actionmailer/test/fixtures/auto_layout_mailer/multipart.text.html.erb new file mode 100644 index 0000000..6d73f19 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/fixtures/auto_layout_mailer/multipart.text.html.erb @@ -0,0 +1 @@ +text/html multipart \ No newline at end of file diff --git a/presidents/vendor/rails/actionmailer/test/fixtures/auto_layout_mailer/multipart.text.plain.erb b/presidents/vendor/rails/actionmailer/test/fixtures/auto_layout_mailer/multipart.text.plain.erb new file mode 100644 index 0000000..f4b91e4 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/fixtures/auto_layout_mailer/multipart.text.plain.erb @@ -0,0 +1 @@ +text/plain multipart \ No newline at end of file diff --git a/presidents/vendor/rails/actionmailer/test/fixtures/explicit_layout_mailer/logout.html.erb b/presidents/vendor/rails/actionmailer/test/fixtures/explicit_layout_mailer/logout.html.erb new file mode 100644 index 0000000..0533a3b --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/fixtures/explicit_layout_mailer/logout.html.erb @@ -0,0 +1 @@ +You logged out \ No newline at end of file diff --git a/presidents/vendor/rails/actionmailer/test/fixtures/explicit_layout_mailer/signup.html.erb b/presidents/vendor/rails/actionmailer/test/fixtures/explicit_layout_mailer/signup.html.erb new file mode 100644 index 0000000..4789e88 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/fixtures/explicit_layout_mailer/signup.html.erb @@ -0,0 +1 @@ +We do not spam \ No newline at end of file diff --git a/presidents/vendor/rails/actionmailer/test/fixtures/first_mailer/share.erb b/presidents/vendor/rails/actionmailer/test/fixtures/first_mailer/share.erb new file mode 100644 index 0000000..da43638 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/fixtures/first_mailer/share.erb @@ -0,0 +1 @@ +first mail diff --git a/presidents/vendor/rails/actionmailer/test/fixtures/helper_mailer/use_example_helper.erb b/presidents/vendor/rails/actionmailer/test/fixtures/helper_mailer/use_example_helper.erb new file mode 100644 index 0000000..fcff3bb --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/fixtures/helper_mailer/use_example_helper.erb @@ -0,0 +1 @@ +So, <%= example_format(@text) %> diff --git a/presidents/vendor/rails/actionmailer/test/fixtures/helper_mailer/use_helper.erb b/presidents/vendor/rails/actionmailer/test/fixtures/helper_mailer/use_helper.erb new file mode 100644 index 0000000..378777f --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/fixtures/helper_mailer/use_helper.erb @@ -0,0 +1 @@ +Hello, <%= person_name %>. Thanks for registering! diff --git a/presidents/vendor/rails/actionmailer/test/fixtures/helper_mailer/use_helper_method.erb b/presidents/vendor/rails/actionmailer/test/fixtures/helper_mailer/use_helper_method.erb new file mode 100644 index 0000000..d5b8b28 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/fixtures/helper_mailer/use_helper_method.erb @@ -0,0 +1 @@ +This message brought to you by <%= name_of_the_mailer_class %>. diff --git a/presidents/vendor/rails/actionmailer/test/fixtures/helper_mailer/use_mail_helper.erb b/presidents/vendor/rails/actionmailer/test/fixtures/helper_mailer/use_mail_helper.erb new file mode 100644 index 0000000..96ec49d --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/fixtures/helper_mailer/use_mail_helper.erb @@ -0,0 +1,5 @@ +From "Romeo and Juliet": + +<%= block_format @text %> + +Good ol' Shakespeare. diff --git a/presidents/vendor/rails/actionmailer/test/fixtures/helpers/example_helper.rb b/presidents/vendor/rails/actionmailer/test/fixtures/helpers/example_helper.rb new file mode 100644 index 0000000..d66927a --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/fixtures/helpers/example_helper.rb @@ -0,0 +1,5 @@ +module ExampleHelper + def example_format(text) + "#{text}" + end +end diff --git a/presidents/vendor/rails/actionmailer/test/fixtures/layouts/auto_layout_mailer.html.erb b/presidents/vendor/rails/actionmailer/test/fixtures/layouts/auto_layout_mailer.html.erb new file mode 100644 index 0000000..9322714 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/fixtures/layouts/auto_layout_mailer.html.erb @@ -0,0 +1 @@ +Hello from layout <%= yield %> \ No newline at end of file diff --git a/presidents/vendor/rails/actionmailer/test/fixtures/layouts/auto_layout_mailer.text.erb b/presidents/vendor/rails/actionmailer/test/fixtures/layouts/auto_layout_mailer.text.erb new file mode 100644 index 0000000..111576b --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/fixtures/layouts/auto_layout_mailer.text.erb @@ -0,0 +1 @@ +text/plain layout - <%= yield %> \ No newline at end of file diff --git a/presidents/vendor/rails/actionmailer/test/fixtures/layouts/spam.html.erb b/presidents/vendor/rails/actionmailer/test/fixtures/layouts/spam.html.erb new file mode 100644 index 0000000..619d6b1 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/fixtures/layouts/spam.html.erb @@ -0,0 +1 @@ +Spammer layout <%= yield %> \ No newline at end of file diff --git a/presidents/vendor/rails/actionmailer/test/fixtures/path.with.dots/funky_path_mailer/multipart_with_template_path_with_dots.erb b/presidents/vendor/rails/actionmailer/test/fixtures/path.with.dots/funky_path_mailer/multipart_with_template_path_with_dots.erb new file mode 100644 index 0000000..897a506 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/fixtures/path.with.dots/funky_path_mailer/multipart_with_template_path_with_dots.erb @@ -0,0 +1 @@ +Have a lovely picture, from me. Enjoy! \ No newline at end of file diff --git a/presidents/vendor/rails/actionmailer/test/fixtures/raw_email b/presidents/vendor/rails/actionmailer/test/fixtures/raw_email new file mode 100644 index 0000000..43f7a59 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/fixtures/raw_email @@ -0,0 +1,14 @@ +From jamis_buck@byu.edu Mon May 2 16:07:05 2005 +Mime-Version: 1.0 (Apple Message framework v622) +Content-Transfer-Encoding: base64 +Message-Id: +Content-Type: text/plain; + charset=EUC-KR; + format=flowed +To: willard15georgina@jamis.backpackit.com +From: Jamis Buck +Subject: =?EUC-KR?Q?NOTE:_=C7=D1=B1=B9=B8=BB=B7=CE_=C7=CF=B4=C2_=B0=CD?= +Date: Mon, 2 May 2005 16:07:05 -0600 + +tOu6zrrQwMcguLbC+bChwfa3ziwgv+y4rrTCIMfPs6q01MC7ILnPvcC0z7TZLg0KDQrBpiDAzLin +wLogSmFtaXPA1LTPtNku diff --git a/presidents/vendor/rails/actionmailer/test/fixtures/raw_email10 b/presidents/vendor/rails/actionmailer/test/fixtures/raw_email10 new file mode 100644 index 0000000..b1fc2b2 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/fixtures/raw_email10 @@ -0,0 +1,20 @@ +Return-Path: +Received: from xxx.xxxx.xxx by xxx.xxxx.xxx with ESMTP id C1B953B4CB6 for ; Tue, 10 May 2005 15:27:05 -0500 +Received: from SMS-GTYxxx.xxxx.xxx by xxx.xxxx.xxx with ESMTP id ca for ; Tue, 10 May 2005 15:27:04 -0500 +Received: from xxx.xxxx.xxx by SMS-GTYxxx.xxxx.xxx with ESMTP id j4AKR3r23323 for ; Tue, 10 May 2005 15:27:03 -0500 +Date: Tue, 10 May 2005 15:27:03 -0500 +From: xxx@xxxx.xxx +Sender: xxx@xxxx.xxx +To: xxxxxxxxxxx@xxxx.xxxx.xxx +Message-Id: +X-Original-To: xxxxxxxxxxx@xxxx.xxxx.xxx +Delivered-To: xxx@xxxx.xxx +Importance: normal +Content-Type: text/plain; charset=X-UNKNOWN + +Test test. Hi. Waving. m + +---------------------------------------------------------------- +Sent via Bell Mobility's Text Messaging service. +Envoyé par le service de messagerie texte de Bell Mobilité. +---------------------------------------------------------------- diff --git a/presidents/vendor/rails/actionmailer/test/fixtures/raw_email12 b/presidents/vendor/rails/actionmailer/test/fixtures/raw_email12 new file mode 100644 index 0000000..2cd3172 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/fixtures/raw_email12 @@ -0,0 +1,32 @@ +Mime-Version: 1.0 (Apple Message framework v730) +Content-Type: multipart/mixed; boundary=Apple-Mail-13-196941151 +Message-Id: <9169D984-4E0B-45EF-82D4-8F5E53AD7012@example.com> +From: foo@example.com +Subject: testing +Date: Mon, 6 Jun 2005 22:21:22 +0200 +To: blah@example.com + + +--Apple-Mail-13-196941151 +Content-Transfer-Encoding: quoted-printable +Content-Type: text/plain; + charset=ISO-8859-1; + delsp=yes; + format=flowed + +This is the first part. + +--Apple-Mail-13-196941151 +Content-Type: image/jpeg +Content-Transfer-Encoding: base64 +Content-Location: Photo25.jpg +Content-ID: +Content-Disposition: inline + +jamisSqGSIb3DQEHAqCAMIjamisxCzAJBgUrDgMCGgUAMIAGCSqGSjamisEHAQAAoIIFSjCCBUYw +ggQujamisQICBD++ukQwDQYJKojamisNAQEFBQAwMTELMAkGA1UEBhMCRjamisAKBgNVBAoTA1RE +QzEUMBIGjamisxMLVERDIE9DRVMgQ0jamisNMDQwMjI5MTE1OTAxWhcNMDYwMjamisIyOTAxWjCB +gDELMAkGA1UEjamisEsxKTAnBgNVBAoTIEjamisuIG9yZ2FuaXNhdG9yaXNrIHRpbjamisRuaW5= + +--Apple-Mail-13-196941151-- + diff --git a/presidents/vendor/rails/actionmailer/test/fixtures/raw_email13 b/presidents/vendor/rails/actionmailer/test/fixtures/raw_email13 new file mode 100644 index 0000000..7d9314e --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/fixtures/raw_email13 @@ -0,0 +1,29 @@ +Mime-Version: 1.0 (Apple Message framework v730) +Content-Type: multipart/mixed; boundary=Apple-Mail-13-196941151 +Message-Id: <9169D984-4E0B-45EF-82D4-8F5E53AD7012@example.com> +From: foo@example.com +Subject: testing +Date: Mon, 6 Jun 2005 22:21:22 +0200 +To: blah@example.com + + +--Apple-Mail-13-196941151 +Content-Transfer-Encoding: quoted-printable +Content-Type: text/plain; + charset=ISO-8859-1; + delsp=yes; + format=flowed + +This is the first part. + +--Apple-Mail-13-196941151 +Content-Type: text/x-ruby-script; name="hello.rb" +Content-Transfer-Encoding: 7bit +Content-Disposition: attachment; + filename="api.rb" + +puts "Hello, world!" +gets + +--Apple-Mail-13-196941151-- + diff --git a/presidents/vendor/rails/actionmailer/test/fixtures/raw_email2 b/presidents/vendor/rails/actionmailer/test/fixtures/raw_email2 new file mode 100644 index 0000000..3999fcc --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/fixtures/raw_email2 @@ -0,0 +1,114 @@ +From xxxxxxxxx.xxxxxxx@gmail.com Sun May 8 19:07:09 2005 +Return-Path: +X-Original-To: xxxxx@xxxxx.xxxxxxxxx.com +Delivered-To: xxxxx@xxxxx.xxxxxxxxx.com +Received: from localhost (localhost [127.0.0.1]) + by xxxxx.xxxxxxxxx.com (Postfix) with ESMTP id 06C9DA98D + for ; Sun, 8 May 2005 19:09:13 +0000 (GMT) +Received: from xxxxx.xxxxxxxxx.com ([127.0.0.1]) + by localhost (xxxxx.xxxxxxxxx.com [127.0.0.1]) (amavisd-new, port 10024) + with LMTP id 88783-08 for ; + Sun, 8 May 2005 19:09:12 +0000 (GMT) +Received: from xxxxxxx.xxxxxxxxx.com (xxxxxxx.xxxxxxxxx.com [69.36.39.150]) + by xxxxx.xxxxxxxxx.com (Postfix) with ESMTP id 10D8BA960 + for ; Sun, 8 May 2005 19:09:12 +0000 (GMT) +Received: from zproxy.gmail.com (zproxy.gmail.com [64.233.162.199]) + by xxxxxxx.xxxxxxxxx.com (Postfix) with ESMTP id 9EBC4148EAB + for ; Sun, 8 May 2005 14:09:11 -0500 (CDT) +Received: by zproxy.gmail.com with SMTP id 13so1233405nzp + for ; Sun, 08 May 2005 12:09:11 -0700 (PDT) +DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; + s=beta; d=gmail.com; + h=received:message-id:date:from:reply-to:to:subject:in-reply-to:mime-version:content-type:references; + b=cid1mzGEFa3gtRa06oSrrEYfKca2CTKu9sLMkWxjbvCsWMtp9RGEILjUz0L5RySdH5iO661LyNUoHRFQIa57bylAbXM3g2DTEIIKmuASDG3x3rIQ4sHAKpNxP7Pul+mgTaOKBv+spcH7af++QEJ36gHFXD2O/kx9RePs3JNf/K8= +Received: by 10.36.10.16 with SMTP id 16mr1012493nzj; + Sun, 08 May 2005 12:09:11 -0700 (PDT) +Received: by 10.36.5.10 with HTTP; Sun, 8 May 2005 12:09:11 -0700 (PDT) +Message-ID: +Date: Sun, 8 May 2005 14:09:11 -0500 +From: xxxxxxxxx xxxxxxx +Reply-To: xxxxxxxxx xxxxxxx +To: xxxxx xxxx +Subject: Fwd: Signed email causes file attachments +In-Reply-To: +Mime-Version: 1.0 +Content-Type: multipart/mixed; + boundary="----=_Part_5028_7368284.1115579351471" +References: + +------=_Part_5028_7368284.1115579351471 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: quoted-printable +Content-Disposition: inline + +We should not include these files or vcards as attachments. + +---------- Forwarded message ---------- +From: xxxxx xxxxxx +Date: May 8, 2005 1:17 PM +Subject: Signed email causes file attachments +To: xxxxxxx@xxxxxxxxxx.com + + +Hi, + +Just started to use my xxxxxxxx account (to set-up a GTD system, +natch) and noticed that when I send content via email the signature/ +certificate from my email account gets added as a file (e.g. +"smime.p7s"). + +Obviously I can uncheck the signature option in the Mail compose +window but how often will I remember to do that? + +Is there any way these kind of files could be ignored, e.g. via some +sort of exclusions list? + +------=_Part_5028_7368284.1115579351471 +Content-Type: application/pkcs7-signature; name=smime.p7s +Content-Transfer-Encoding: base64 +Content-Disposition: attachment; filename="smime.p7s" + +MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIGFDCCAs0w +ggI2oAMCAQICAw5c+TANBgkqhkiG9w0BAQQFADBiMQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhh +d3RlIENvbnN1bHRpbmcgKFB0eSkgTHRkLjEsMCoGA1UEAxMjVGhhd3RlIFBlcnNvbmFsIEZyZWVt +YWlsIElzc3VpbmcgQ0EwHhcNMDUwMzI5MDkzOTEwWhcNMDYwMzI5MDkzOTEwWjBCMR8wHQYDVQQD +ExZUaGF3dGUgRnJlZW1haWwgTWVtYmVyMR8wHQYJKoZIhvcNAQkBFhBzbWhhdW5jaEBtYWMuY29t +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn90dPsYS3LjfMY211OSYrDQLzwNYPlAL +7+/0XA+kdy8/rRnyEHFGwhNCDmg0B6pxC7z3xxJD/8GfCd+IYUUNUQV5m9MkxfP9pTVXZVIYLaBw +o8xS3A0a1LXealcmlEbJibmKkEaoXci3MhryLgpaa+Kk/sH02SNatDO1vS28bPsibZpcc6deFrla +hSYnL+PW54mDTGHIcCN2fbx/Y6qspzqmtKaXrv75NBtuy9cB6KzU4j2xXbTkAwz3pRSghJJaAwdp ++yIivAD3vr0kJE3p+Ez34HMh33EXEpFoWcN+MCEQZD9WnmFViMrvfvMXLGVFQfAAcC060eGFSRJ1 +ZQ9UVQIDAQABoy0wKzAbBgNVHREEFDASgRBzbWhhdW5jaEBtYWMuY29tMAwGA1UdEwEB/wQCMAAw +DQYJKoZIhvcNAQEEBQADgYEAQMrg1n2pXVWteP7BBj+Pk3UfYtbuHb42uHcLJjfjnRlH7AxnSwrd +L3HED205w3Cq8T7tzVxIjRRLO/ljq0GedSCFBky7eYo1PrXhztGHCTSBhsiWdiyLWxKlOxGAwJc/ +lMMnwqLOdrQcoF/YgbjeaUFOQbUh94w9VDNpWZYCZwcwggM/MIICqKADAgECAgENMA0GCSqGSIb3 +DQEBBQUAMIHRMQswCQYDVQQGEwJaQTEVMBMGA1UECBMMV2VzdGVybiBDYXBlMRIwEAYDVQQHEwlD +YXBlIFRvd24xGjAYBgNVBAoTEVRoYXd0ZSBDb25zdWx0aW5nMSgwJgYDVQQLEx9DZXJ0aWZpY2F0 +aW9uIFNlcnZpY2VzIERpdmlzaW9uMSQwIgYDVQQDExtUaGF3dGUgUGVyc29uYWwgRnJlZW1haWwg +Q0ExKzApBgkqhkiG9w0BCQEWHHBlcnNvbmFsLWZyZWVtYWlsQHRoYXd0ZS5jb20wHhcNMDMwNzE3 +MDAwMDAwWhcNMTMwNzE2MjM1OTU5WjBiMQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3RlIENv +bnN1bHRpbmcgKFB0eSkgTHRkLjEsMCoGA1UEAxMjVGhhd3RlIFBlcnNvbmFsIEZyZWVtYWlsIElz +c3VpbmcgQ0EwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMSmPFVzVftOucqZWh5owHUEcJ3f +6f+jHuy9zfVb8hp2vX8MOmHyv1HOAdTlUAow1wJjWiyJFXCO3cnwK4Vaqj9xVsuvPAsH5/EfkTYk +KhPPK9Xzgnc9A74r/rsYPge/QIACZNenprufZdHFKlSFD0gEf6e20TxhBEAeZBlyYLf7AgMBAAGj +gZQwgZEwEgYDVR0TAQH/BAgwBgEB/wIBADBDBgNVHR8EPDA6MDigNqA0hjJodHRwOi8vY3JsLnRo +YXd0ZS5jb20vVGhhd3RlUGVyc29uYWxGcmVlbWFpbENBLmNybDALBgNVHQ8EBAMCAQYwKQYDVR0R +BCIwIKQeMBwxGjAYBgNVBAMTEVByaXZhdGVMYWJlbDItMTM4MA0GCSqGSIb3DQEBBQUAA4GBAEiM +0VCD6gsuzA2jZqxnD3+vrL7CF6FDlpSdf0whuPg2H6otnzYvwPQcUCCTcDz9reFhYsPZOhl+hLGZ +GwDFGguCdJ4lUJRix9sncVcljd2pnDmOjCBPZV+V2vf3h9bGCE6u9uo05RAaWzVNd+NWIXiC3CEZ +Nd4ksdMdRv9dX2VPMYIC5zCCAuMCAQEwaTBiMQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhhd3Rl +IENvbnN1bHRpbmcgKFB0eSkgTHRkLjEsMCoGA1UEAxMjVGhhd3RlIFBlcnNvbmFsIEZyZWVtYWls +IElzc3VpbmcgQ0ECAw5c+TAJBgUrDgMCGgUAoIIBUzAYBgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcB +MBwGCSqGSIb3DQEJBTEPFw0wNTA1MDgxODE3NDZaMCMGCSqGSIb3DQEJBDEWBBQSkG9j6+hB0pKp +fV9tCi/iP59sNTB4BgkrBgEEAYI3EAQxazBpMGIxCzAJBgNVBAYTAlpBMSUwIwYDVQQKExxUaGF3 +dGUgQ29uc3VsdGluZyAoUHR5KSBMdGQuMSwwKgYDVQQDEyNUaGF3dGUgUGVyc29uYWwgRnJlZW1h +aWwgSXNzdWluZyBDQQIDDlz5MHoGCyqGSIb3DQEJEAILMWugaTBiMQswCQYDVQQGEwJaQTElMCMG +A1UEChMcVGhhd3RlIENvbnN1bHRpbmcgKFB0eSkgTHRkLjEsMCoGA1UEAxMjVGhhd3RlIFBlcnNv +bmFsIEZyZWVtYWlsIElzc3VpbmcgQ0ECAw5c+TANBgkqhkiG9w0BAQEFAASCAQAm1GeF7dWfMvrW +8yMPjkhE+R8D1DsiCoWSCp+5gAQm7lcK7V3KrZh5howfpI3TmCZUbbaMxOH+7aKRKpFemxoBY5Q8 +rnCkbpg/++/+MI01T69hF/rgMmrGcrv2fIYy8EaARLG0xUVFSZHSP+NQSYz0TTmh4cAESHMzY3JA +nHOoUkuPyl8RXrimY1zn0lceMXlweZRouiPGuPNl1hQKw8P+GhOC5oLlM71UtStnrlk3P9gqX5v7 +Tj7Hx057oVfY8FMevjxGwU3EK5TczHezHbWWgTyum9l2ZQbUQsDJxSniD3BM46C1VcbDLPaotAZ0 +fTYLZizQfm5hcWEbfYVzkSzLAAAAAAAA +------=_Part_5028_7368284.1115579351471-- + diff --git a/presidents/vendor/rails/actionmailer/test/fixtures/raw_email3 b/presidents/vendor/rails/actionmailer/test/fixtures/raw_email3 new file mode 100644 index 0000000..771a963 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/fixtures/raw_email3 @@ -0,0 +1,70 @@ +From xxxx@xxxx.com Tue May 10 11:28:07 2005 +Return-Path: +X-Original-To: xxxx@xxxx.com +Delivered-To: xxxx@xxxx.com +Received: from localhost (localhost [127.0.0.1]) + by xxx.xxxxx.com (Postfix) with ESMTP id 50FD3A96F + for ; Tue, 10 May 2005 17:26:50 +0000 (GMT) +Received: from xxx.xxxxx.com ([127.0.0.1]) + by localhost (xxx.xxxxx.com [127.0.0.1]) (amavisd-new, port 10024) + with LMTP id 70060-03 for ; + Tue, 10 May 2005 17:26:49 +0000 (GMT) +Received: from xxx.xxxxx.com (xxx.xxxxx.com [69.36.39.150]) + by xxx.xxxxx.com (Postfix) with ESMTP id 8B957A94B + for ; Tue, 10 May 2005 17:26:48 +0000 (GMT) +Received: from xxx.xxxxx.com (xxx.xxxxx.com [64.233.184.203]) + by xxx.xxxxx.com (Postfix) with ESMTP id 9972514824C + for ; Tue, 10 May 2005 12:26:40 -0500 (CDT) +Received: by xxx.xxxxx.com with SMTP id 68so1694448wri + for ; Tue, 10 May 2005 10:26:40 -0700 (PDT) +DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; + s=beta; d=xxxxx.com; + h=received:message-id:date:from:reply-to:to:subject:mime-version:content-type; + b=g8ZO5ttS6GPEMAz9WxrRk9+9IXBUfQIYsZLL6T88+ECbsXqGIgfGtzJJFn6o9CE3/HMrrIGkN5AisxVFTGXWxWci5YA/7PTVWwPOhJff5BRYQDVNgRKqMl/SMttNrrRElsGJjnD1UyQ/5kQmcBxq2PuZI5Zc47u6CILcuoBcM+A= +Received: by 10.54.96.19 with SMTP id t19mr621017wrb; + Tue, 10 May 2005 10:26:39 -0700 (PDT) +Received: by 10.54.110.5 with HTTP; Tue, 10 May 2005 10:26:39 -0700 (PDT) +Message-ID: +Date: Tue, 10 May 2005 11:26:39 -0600 +From: Test Tester +Reply-To: Test Tester +To: xxxx@xxxx.com, xxxx@xxxx.com +Subject: Another PDF +Mime-Version: 1.0 +Content-Type: multipart/mixed; + boundary="----=_Part_2192_32400445.1115745999735" +X-Virus-Scanned: amavisd-new at textdrive.com + +------=_Part_2192_32400445.1115745999735 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: quoted-printable +Content-Disposition: inline + +Just attaching another PDF, here, to see what the message looks like, +and to see if I can figure out what is going wrong here. + +------=_Part_2192_32400445.1115745999735 +Content-Type: application/pdf; name="broken.pdf" +Content-Transfer-Encoding: base64 +Content-Disposition: attachment; filename="broken.pdf" + +JVBERi0xLjQNCiXk9tzfDQoxIDAgb2JqDQo8PCAvTGVuZ3RoIDIgMCBSDQogICAvRmlsdGVyIC9G +bGF0ZURlY29kZQ0KPj4NCnN0cmVhbQ0KeJy9Wt2KJbkNvm/od6jrhZxYln9hWEh2p+8HBvICySaE +ycLuTV4/1ifJ9qnq09NpSBimu76yLUuy/qzqcPz7+em3Ixx/CDc6CsXxs3b5+fvfjr/8cPz6/BRu +rbfAx/n3739/fuJylJ5u5fjX81OuDr4deK4Bz3z/aDP+8fz0yw8g0Ofq7ktr1Mn+u28rvhy/jVeD +QSa+9YNKHP/pxjvDNfVAx/m3MFz54FhvTbaseaxiDoN2LeMVMw+yA7RbHSCDzxZuaYB2E1Yay7QU +x89vz0+tyFDKMlAHK5yqLmnjF+c4RjEiQIUeKwblXMe+AsZjN1J5yGQL5DHpDHksurM81rF6PKab +gK6zAarIDzIiUY23rJsN9iorAE816aIu6lsgAdQFsuhhkHOUFgVjp2GjMqSewITXNQ27jrMeamkg +1rPI3iLWG2CIaSBB+V1245YVRICGbbpYKHc2USFDl6M09acQVQYhlwIrkBNLISvXhGlF1wi5FHCw +wxZkoGNJlVeJCEsqKA+3YAV5AMb6KkeaqEJQmFKKQU8T1pRi2ihE1Y4CDrqoYFFXYjJJOatsyzuI +8SIlykuxKTMibWK8H1PgEvqYgs4GmQSrEjJAalgGirIhik+p4ZQN9E3ETFPAHE1b8pp1l/0Rc1gl +fQs0ABWvyoZZzU8VnPXwVVcO9BEsyjEJaO6eBoZRyKGlrKoYoOygA8BGIzgwN3RQ15ouigG5idZQ +fx2U4Db2CqiLO0WHAZoylGiCAqhniNQjFjQPSkmjwfNTgQ6M1Ih+eWo36wFmjIxDJZiGUBiWsAyR +xX3EekGOizkGI96Ol9zVZTAivikURhRsHh2E3JhWMpSTZCnnonrLhMCodgrNcgo4uyJUJc6qnVss +nrGd1Ptr0YwisCOYyIbUwVjV4xBUNLbguSO2YHujonAMJkMdSI7bIw91Akq2AUlMUWGFTMAOamjU +OvZQCxIkY2pCpMFo/IwLdVLHs6nddwTRrgoVbvLU9eB0G4EMndV0TNoxHbt3JBWwK6hhv3iHfDtF +yokB302IpEBTnWICde4uYc/1khDbSIkQopO6lcqamGBu1OSE3N5IPSsZX00CkSHRiiyx6HQIShsS +HSVNswdVsaOUSAWq9aYhDtGDaoG5a3lBGkYt/lFlBFt1UqrYnzVtUpUQnLiZeouKgf1KhRBViRRk +ExepJCzTwEmFDalIRbLEGtw0gfpESOpIAF/NnpPzcVCG86s0g2DuSyd41uhNGbEgaSrWEXORErbw +------=_Part_2192_32400445.1115745999735-- + diff --git a/presidents/vendor/rails/actionmailer/test/fixtures/raw_email4 b/presidents/vendor/rails/actionmailer/test/fixtures/raw_email4 new file mode 100644 index 0000000..639ad40 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/fixtures/raw_email4 @@ -0,0 +1,59 @@ +Return-Path: +Received: from xxx.xxxx.xxx by xxx.xxxx.xxx with ESMTP id 6AAEE3B4D23 for ; Sun, 8 May 2005 12:30:23 -0500 +Received: from xxx.xxxx.xxx by xxx.xxxx.xxx with ESMTP id j48HUC213279 for ; Sun, 8 May 2005 12:30:13 -0500 +Received: from conversion-xxx.xxxx.xxx.net by xxx.xxxx.xxx id <0IG600901LQ64I@xxx.xxxx.xxx> for ; Sun, 8 May 2005 12:30:12 -0500 +Received: from agw1 by xxx.xxxx.xxx with ESMTP id <0IG600JFYLYCAxxx@xxxx.xxx> for ; Sun, 8 May 2005 12:30:12 -0500 +Date: Sun, 8 May 2005 12:30:08 -0500 +From: xxx@xxxx.xxx +To: xxx@xxxx.xxx +Message-Id: <7864245.1115573412626.JavaMxxx@xxxx.xxx> +Subject: Filth +Mime-Version: 1.0 +Content-Type: multipart/mixed; boundary=mimepart_427e4cb4ca329_133ae40413c81ef +X-Mms-Priority: 1 +X-Mms-Transaction-Id: 3198421808-0 +X-Mms-Message-Type: 0 +X-Mms-Sender-Visibility: 1 +X-Mms-Read-Reply: 1 +X-Original-To: xxx@xxxx.xxx +X-Mms-Message-Class: 0 +X-Mms-Delivery-Report: 0 +X-Mms-Mms-Version: 16 +Delivered-To: xxx@xxxx.xxx +X-Nokia-Ag-Version: 2.0 + +This is a multi-part message in MIME format. + +--mimepart_427e4cb4ca329_133ae40413c81ef +Content-Type: multipart/mixed; boundary=mimepart_427e4cb4cbd97_133ae40413c8217 + + + +--mimepart_427e4cb4cbd97_133ae40413c8217 +Content-Type: text/plain; charset=utf-8 +Content-Transfer-Encoding: 7bit +Content-Disposition: inline +Content-Location: text.txt + +Some text + +--mimepart_427e4cb4cbd97_133ae40413c8217-- + +--mimepart_427e4cb4ca329_133ae40413c81ef +Content-Type: text/plain; charset=us-ascii +Content-Transfer-Encoding: 7bit + + +-- +This Orange Multi Media Message was sent wirefree from an Orange +MMS phone. If you would like to reply, please text or phone the +sender directly by using the phone number listed in the sender's +address. To learn more about Orange's Multi Media Messaging +Service, find us on the Web at xxx.xxxx.xxx.uk/mms + + +--mimepart_427e4cb4ca329_133ae40413c81ef + + +--mimepart_427e4cb4ca329_133ae40413c81ef- + diff --git a/presidents/vendor/rails/actionmailer/test/fixtures/raw_email5 b/presidents/vendor/rails/actionmailer/test/fixtures/raw_email5 new file mode 100644 index 0000000..151c631 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/fixtures/raw_email5 @@ -0,0 +1,19 @@ +Return-Path: +Received: from xxx.xxxx.xxx by xxx.xxxx.xxx with ESMTP id C1B953B4CB6 for ; Tue, 10 May 2005 15:27:05 -0500 +Received: from SMS-GTYxxx.xxxx.xxx by xxx.xxxx.xxx with ESMTP id ca for ; Tue, 10 May 2005 15:27:04 -0500 +Received: from xxx.xxxx.xxx by SMS-GTYxxx.xxxx.xxx with ESMTP id j4AKR3r23323 for ; Tue, 10 May 2005 15:27:03 -0500 +Date: Tue, 10 May 2005 15:27:03 -0500 +From: xxx@xxxx.xxx +Sender: xxx@xxxx.xxx +To: xxxxxxxxxxx@xxxx.xxxx.xxx +Message-Id: +X-Original-To: xxxxxxxxxxx@xxxx.xxxx.xxx +Delivered-To: xxx@xxxx.xxx +Importance: normal + +Test test. Hi. Waving. m + +---------------------------------------------------------------- +Sent via Bell Mobility's Text Messaging service. +Envoyé par le service de messagerie texte de Bell Mobilité. +---------------------------------------------------------------- diff --git a/presidents/vendor/rails/actionmailer/test/fixtures/raw_email6 b/presidents/vendor/rails/actionmailer/test/fixtures/raw_email6 new file mode 100644 index 0000000..93289c4 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/fixtures/raw_email6 @@ -0,0 +1,20 @@ +Return-Path: +Received: from xxx.xxxx.xxx by xxx.xxxx.xxx with ESMTP id C1B953B4CB6 for ; Tue, 10 May 2005 15:27:05 -0500 +Received: from SMS-GTYxxx.xxxx.xxx by xxx.xxxx.xxx with ESMTP id ca for ; Tue, 10 May 2005 15:27:04 -0500 +Received: from xxx.xxxx.xxx by SMS-GTYxxx.xxxx.xxx with ESMTP id j4AKR3r23323 for ; Tue, 10 May 2005 15:27:03 -0500 +Date: Tue, 10 May 2005 15:27:03 -0500 +From: xxx@xxxx.xxx +Sender: xxx@xxxx.xxx +To: xxxxxxxxxxx@xxxx.xxxx.xxx +Message-Id: +X-Original-To: xxxxxxxxxxx@xxxx.xxxx.xxx +Delivered-To: xxx@xxxx.xxx +Importance: normal +Content-Type: text/plain; charset=us-ascii + +Test test. Hi. Waving. m + +---------------------------------------------------------------- +Sent via Bell Mobility's Text Messaging service. +Envoyé par le service de messagerie texte de Bell Mobilité. +---------------------------------------------------------------- diff --git a/presidents/vendor/rails/actionmailer/test/fixtures/raw_email7 b/presidents/vendor/rails/actionmailer/test/fixtures/raw_email7 new file mode 100644 index 0000000..da64ada --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/fixtures/raw_email7 @@ -0,0 +1,66 @@ +Mime-Version: 1.0 (Apple Message framework v730) +Content-Type: multipart/mixed; boundary=Apple-Mail-13-196941151 +Message-Id: <9169D984-4E0B-45EF-82D4-8F5E53AD7012@example.com> +From: foo@example.com +Subject: testing +Date: Mon, 6 Jun 2005 22:21:22 +0200 +To: blah@example.com + + +--Apple-Mail-13-196941151 +Content-Type: multipart/mixed; + boundary=Apple-Mail-12-196940926 + + +--Apple-Mail-12-196940926 +Content-Transfer-Encoding: quoted-printable +Content-Type: text/plain; + charset=ISO-8859-1; + delsp=yes; + format=flowed + +This is the first part. + +--Apple-Mail-12-196940926 +Content-Transfer-Encoding: 7bit +Content-Type: text/x-ruby-script; + x-unix-mode=0666; + name="test.rb" +Content-Disposition: attachment; + filename=test.rb + +puts "testing, testing" + +--Apple-Mail-12-196940926 +Content-Transfer-Encoding: base64 +Content-Type: application/pdf; + x-unix-mode=0666; + name="test.pdf" +Content-Disposition: inline; + filename=test.pdf + +YmxhaCBibGFoIGJsYWg= + +--Apple-Mail-12-196940926 +Content-Transfer-Encoding: 7bit +Content-Type: text/plain; + charset=US-ASCII; + format=flowed + + + +--Apple-Mail-12-196940926-- + +--Apple-Mail-13-196941151 +Content-Transfer-Encoding: base64 +Content-Type: application/pkcs7-signature; + name=smime.p7s +Content-Disposition: attachment; + filename=smime.p7s + +jamisSqGSIb3DQEHAqCAMIjamisxCzAJBgUrDgMCGgUAMIAGCSqGSjamisEHAQAAoIIFSjCCBUYw +ggQujamisQICBD++ukQwDQYJKojamisNAQEFBQAwMTELMAkGA1UEBhMCRjamisAKBgNVBAoTA1RE +QzEUMBIGjamisxMLVERDIE9DRVMgQ0jamisNMDQwMjI5MTE1OTAxWhcNMDYwMjamisIyOTAxWjCB +gDELMAkGA1UEjamisEsxKTAnBgNVBAoTIEjamisuIG9yZ2FuaXNhdG9yaXNrIHRpbjamisRuaW5= + +--Apple-Mail-13-196941151-- diff --git a/presidents/vendor/rails/actionmailer/test/fixtures/raw_email8 b/presidents/vendor/rails/actionmailer/test/fixtures/raw_email8 new file mode 100644 index 0000000..2382dfd --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/fixtures/raw_email8 @@ -0,0 +1,47 @@ +From xxxxxxxxx.xxxxxxx@gmail.com Sun May 8 19:07:09 2005 +Return-Path: +Message-ID: +Date: Sun, 8 May 2005 14:09:11 -0500 +From: xxxxxxxxx xxxxxxx +Reply-To: xxxxxxxxx xxxxxxx +To: xxxxx xxxx +Subject: Fwd: Signed email causes file attachments +In-Reply-To: +Mime-Version: 1.0 +Content-Type: multipart/mixed; + boundary="----=_Part_5028_7368284.1115579351471" +References: + +------=_Part_5028_7368284.1115579351471 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: quoted-printable +Content-Disposition: inline + +We should not include these files or vcards as attachments. + +---------- Forwarded message ---------- +From: xxxxx xxxxxx +Date: May 8, 2005 1:17 PM +Subject: Signed email causes file attachments +To: xxxxxxx@xxxxxxxxxx.com + + +Hi, + +Test attachments oddly encoded with japanese charset. + + +------=_Part_5028_7368284.1115579351471 +Content-Type: application/octet-stream; name*=iso-2022-jp'ja'01%20Quien%20Te%20Dij%8aat.%20Pitbull.mp3 +Content-Transfer-Encoding: base64 +Content-Disposition: attachment + +MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIGFDCCAs0w +ggI2oAMCAQICAw5c+TANBgkqhkiG9w0BAQQFADBiMQswCQYDVQQGEwJaQTElMCMGA1UEChMcVGhh +d3RlIENvbnN1bHRpbmcgKFB0eSkgTHRkLjEsMCoGA1UEAxMjVGhhd3RlIFBlcnNvbmFsIEZyZWVt +YWlsIElzc3VpbmcgQ0EwHhcNMDUwMzI5MDkzOTEwWhcNMDYwMzI5MDkzOTEwWjBCMR8wHQYDVQQD +ExZUaGF3dGUgRnJlZW1haWwgTWVtYmVyMR8wHQYJKoZIhvcNAQkBFhBzbWhhdW5jaEBtYWMuY29t +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn90dPsYS3LjfMY211OSYrDQLzwNYPlAL +7+/0XA+kdy8/rRnyEHFGwhNCDmg0B6pxC7z3xxJD/8GfCd+IYUUNUQV5m9MkxfP9pTVXZVIYLaBw +------=_Part_5028_7368284.1115579351471-- + diff --git a/presidents/vendor/rails/actionmailer/test/fixtures/raw_email9 b/presidents/vendor/rails/actionmailer/test/fixtures/raw_email9 new file mode 100644 index 0000000..8b9b1ea --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/fixtures/raw_email9 @@ -0,0 +1,28 @@ +Received: from xxx.xxx.xxx ([xxx.xxx.xxx.xxx] verified) + by xxx.com (CommuniGate Pro SMTP 4.2.8) + with SMTP id 2532598 for xxx@xxx.com; Wed, 23 Feb 2005 17:51:49 -0500 +Received-SPF: softfail + receiver=xxx.com; client-ip=xxx.xxx.xxx.xxx; envelope-from=xxx@xxx.xxx +quite Delivered-To: xxx@xxx.xxx +Received: by xxx.xxx.xxx (Wostfix, from userid xxx) + id 0F87F333; Wed, 23 Feb 2005 16:16:17 -0600 +Date: Wed, 23 Feb 2005 18:20:17 -0400 +From: "xxx xxx" +Message-ID: <4D6AA7EB.6490534@xxx.xxx> +To: xxx@xxx.com +Subject: Stop adware/spyware once and for all. +X-Scanned-By: MIMEDefang 2.11 (www dot roaringpenguin dot com slash mimedefang) + +You are infected with: +Ad Ware and Spy Ware + +Get your free scan and removal download now, +before it gets any worse. + +http://xxx.xxx.info?aid=3D13&?stat=3D4327kdzt + + + + +no more? (you will still be infected) +http://xxx.xxx.info/discon/?xxx@xxx.com diff --git a/presidents/vendor/rails/actionmailer/test/fixtures/raw_email_quoted_with_0d0a b/presidents/vendor/rails/actionmailer/test/fixtures/raw_email_quoted_with_0d0a new file mode 100644 index 0000000..8a2c25a --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/fixtures/raw_email_quoted_with_0d0a @@ -0,0 +1,14 @@ +Mime-Version: 1.0 (Apple Message framework v730) +Message-Id: <9169D984-4E0B-45EF-82D4-8F5E53AD7012@example.com> +From: foo@example.com +Subject: testing +Date: Mon, 6 Jun 2005 22:21:22 +0200 +To: blah@example.com +Content-Transfer-Encoding: quoted-printable +Content-Type: text/plain + +A fax has arrived from remote ID ''.=0D=0A-----------------------= +-------------------------------------=0D=0ATime: 3/9/2006 3:50:52= + PM=0D=0AReceived from remote ID: =0D=0AInbound user ID XXXXXXXXXX, r= +outing code XXXXXXXXX=0D=0AResult: (0/352;0/0) Successful Send=0D=0AP= +age record: 1 - 1=0D=0AElapsed time: 00:58 on channel 11=0D=0A diff --git a/presidents/vendor/rails/actionmailer/test/fixtures/raw_email_with_invalid_characters_in_content_type b/presidents/vendor/rails/actionmailer/test/fixtures/raw_email_with_invalid_characters_in_content_type new file mode 100644 index 0000000..a8ff7ed --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/fixtures/raw_email_with_invalid_characters_in_content_type @@ -0,0 +1,104 @@ +Return-Path: +Received: from some.isp.com by baci with ESMTP id 632BD5758 for ; Sun, 21 Oct 2007 19:38:21 +1000 +Date: Sun, 21 Oct 2007 19:38:13 +1000 +From: Mikel Lindsaar +Reply-To: Mikel Lindsaar +To: mikel.lindsaar@baci +Message-Id: <009601c813c6$19df3510$0437d30a@mikel091a> +Subject: Testing outlook +Mime-Version: 1.0 +Content-Type: multipart/alternative; boundary=----=_NextPart_000_0093_01C81419.EB75E850 +Delivered-To: mikel.lindsaar@baci +X-Mimeole: Produced By Microsoft MimeOLE V6.00.2900.3138 +X-Msmail-Priority: Normal + +This is a multi-part message in MIME format. + + +------=_NextPart_000_0093_01C81419.EB75E850 +Content-Type: text/plain; charset=iso-8859-1 +Content-Transfer-Encoding: Quoted-printable + +Hello +This is an outlook test + +So there. + +Me. + +------=_NextPart_000_0093_01C81419.EB75E850 +Content-Type: text/html; charset=iso-8859-1 +Content-Transfer-Encoding: Quoted-printable + + + + + + + + +
    Hello
    +
    This is an outlook=20 +test
    +
     
    +
    So there.
    +
     
    +
    Me.
    + + +------=_NextPart_000_0093_01C81419.EB75E850-- + + +Return-Path: +Received: from some.isp.com by baci with ESMTP id 632BD5758 for ; Sun, 21 Oct 2007 19:38:21 +1000 +Date: Sun, 21 Oct 2007 19:38:13 +1000 +From: Mikel Lindsaar +Reply-To: Mikel Lindsaar +To: mikel.lindsaar@baci +Message-Id: <009601c813c6$19df3510$0437d30a@mikel091a> +Subject: Testing outlook +Mime-Version: 1.0 +Content-Type: multipart/alternative; boundary=----=_NextPart_000_0093_01C81419.EB75E850 +Delivered-To: mikel.lindsaar@baci +X-Mimeole: Produced By Microsoft MimeOLE V6.00.2900.3138 +X-Msmail-Priority: Normal + +This is a multi-part message in MIME format. + + +------=_NextPart_000_0093_01C81419.EB75E850 +Content-Type: text/plain; charset=iso-8859-1 +Content-Transfer-Encoding: Quoted-printable + +Hello +This is an outlook test + +So there. + +Me. + +------=_NextPart_000_0093_01C81419.EB75E850 +Content-Type: text/html; charset=iso-8859-1 +Content-Transfer-Encoding: Quoted-printable + + + + + + + + +
    Hello
    +
    This is an outlook=20 +test
    +
     
    +
    So there.
    +
     
    +
    Me.
    + + +------=_NextPart_000_0093_01C81419.EB75E850-- + + diff --git a/presidents/vendor/rails/actionmailer/test/fixtures/raw_email_with_nested_attachment b/presidents/vendor/rails/actionmailer/test/fixtures/raw_email_with_nested_attachment new file mode 100644 index 0000000..429c408 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/fixtures/raw_email_with_nested_attachment @@ -0,0 +1,100 @@ +From jamis@37signals.com Thu Feb 22 11:20:31 2007 +Mime-Version: 1.0 (Apple Message framework v752.3) +Message-Id: <2CCE0408-10C7-4045-9B16-A1C11C31469B@37signals.com> +Content-Type: multipart/signed; + micalg=sha1; + boundary=Apple-Mail-42-587703407; + protocol="application/pkcs7-signature" +To: Jamis Buck +Subject: Testing attachments +From: Jamis Buck +Date: Thu, 22 Feb 2007 11:20:31 -0700 + + +--Apple-Mail-42-587703407 +Content-Type: multipart/mixed; + boundary=Apple-Mail-41-587703287 + + +--Apple-Mail-41-587703287 +Content-Transfer-Encoding: 7bit +Content-Type: text/plain; + charset=US-ASCII; + format=flowed + +Here is a test of an attachment via email. + +- Jamis + + +--Apple-Mail-41-587703287 +Content-Transfer-Encoding: base64 +Content-Type: image/png; + x-unix-mode=0644; + name=byo-ror-cover.png +Content-Disposition: inline; + filename=truncated.png + +iVBORw0KGgoAAAANSUhEUgAAAKUAAADXCAYAAAB7wZEQAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz +AAALEgAACxIB0t1+/AAAABd0RVh0Q3JlYXRpb24gVGltZQAxLzI1LzIwMDeD9CJVAAAAGHRFWHRT +b2Z0d2FyZQBBZG9iZSBGaXJld29ya3NPsx9OAAAyBWlUWHRYTUw6Y29tLmFkb2JlLnhtcDw/eHBh +Y2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1l +dGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDQuMS1j +MDIwIDEuMjU1NzE2LCBUdWUgT2N0IDEwIDIwMDYgMjM6MTY6MzQiPgogICA8cmRmOlJERiB4bWxu +czpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAg +ICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4YXA9Imh0 +dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iPgogICAgICAgICA8eGFwOkNyZWF0b3JUb29sPkFk +b2JlIEZpcmV3b3JrcyBDUzM8L3hhcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhhcDpDcmVhdGVE +YXRlPjIwMDctMDEtMjVUMDU6Mjg6MjFaPC94YXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhhcDpN +b2RpZnlEYXRlPjIwMDctMDEtMjVUMDU6Mjg6MjFaPC94YXA6TW9kaWZ5RGF0ZT4KICAgICAgPC9y +ZGY6RGVzY3JpcHRpb24+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAg +ICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+CiAgICAg +ICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgIDwvcmRmOkRlc2NyaXB0 +hhojpmnJMfaYFmSkXWg5PGCmHXVj/c9At0hSK2xGdd8F3muk0VFjb4f5Ue0ksQ8qAcq0delaXhdb +DjKNnF+3B3t9kObZYmk7AZgWYqO9anpR3wpM9sQ5XslB9a+kWyTtNb0fOmudzGHfPFBQDKesyycm +DBL7Cw5bXjIEuci+SSOm/LYnXDZu6iuPEj8lYBb+OU8xx1f9m+e5rhJiYKqjo5vHfiZp+VUkW9xc +Ufd6JHNWc47PkQqb9ie3SLEZB/ZqyAssiqURY+G35iOMZUrHbasHnb80QAPv9FHtAbJIyro7bi5b +ai2TEAKen5+LJNWrglZjm3UbZvt7KryA2J5b5J1jZF8kL6GzvG1Zqx54Y1y7J7n20wMOt9frG2sW +uwGP07kNz3732vf6bfvAvLldfS+9fts2euXY37D+R29FGZdlnhzV4TTFmPJduBP2RbNNua4rTqcT +Qt7Xy1KUB0AHSdP5AZQYvHZg7WD1XvYeMO1A9HhZPqMX5KXbMBrn2efxns/ee21674efxz4Tp/fq +2HZ648dgYaC1i3Vq1IbNPq3PvDTPezY9FaRISjvnzWqdgcWN8EJgjnNq+Z7ktOm9l2Nfth28EZi4 +bG/we5JwxM+Tql47/D/X6b38I8/RyxvxPJrX6zvQbo3h9jyJx+C0ALX327QETHl5eYlaYCT5rPTb ++5/rAq26t3lKIxV/p88hq6ptngdgCzoPjJqndiLfc/6y5A14WeDFGNPct4iUsJBV2bYzLEV7m83s +6Rp63VPhHKC/g/LzaU9qexJRr56043JWinqAtfZqsSm1sjoznthl54dtCqv+uL4nIY+oYWuc3+nH +kGfn8b0HQpvOYLQAZUDanbJs3jQhITZEgdarZK+cO6ySlL13rut5nFaN23s7u3Snz6eRPTkCoc2/ +Vp1zHfZVFpZ87FiMVLV1iqyK5rlzfji2GzjfDsodlD+Weo5UD4h6PwKqzQMqID0tq2VjjFVSMpis +ZLRAs7sePZBZAHI+gIanB8I7MD+femAceeUe2Kxa5jS950kZ1p5eNEdeX1+jFmSpZ+1EdWCsDcne +NPNgUHNw3aYpnzv9PGTX0uo94EtN9qq1rOdxe3kc79T8ukeHJJ8Fnxej6qlylbLLsjQLOy6Xy2a1 +kefs/N+nM7+S7IG5/E5Yc7F003pWErLjbH0O5cGadiMptSB/DZ5U5DI9yeg5MFYyMj8lC/Y7/Xjq +OZlWcnpg9aQfXz2HRq+Wn5xOp6gN8tWq8R44e2pfyzLYemEgprst+XXk2Zj2nXlbsG05BprndTMv +C3QRaXczshhVsHnMgfYn80Y2g5JureA6wBasPeP7LkE/jvZMJAaf/g/U2RelHsisvan5FqweIAHg +Pwc7L68GxvVDAAAAAElFTkSuQmCC + +--Apple-Mail-41-587703287-- + +--Apple-Mail-42-587703407 +Content-Transfer-Encoding: base64 +Content-Type: application/pkcs7-signature; + name=smime.p7s +Content-Disposition: attachment; + filename=smime.p7s + +MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIGJzCCAuAw +ggJJoAMCAQICEFjnFNYXwDEZRWY5EkfzopUwDQYJKoZIhvcNAQEFBQAwYjELMAkGA1UEBhMCWkEx +JTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMTI1RoYXd0ZSBQ +ZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBMB4XDTA2MDkxMjE3MDExMloXDTA3MDkxMjE3MDEx +MlowRTEfMB0GA1UEAxMWVGhhd3RlIEZyZWVtYWlsIE1lbWJlcjEiMCAGCSqGSIb3DQEJARYTamFt +aXNAMzdzaWduYWxzLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAO2A9JeOFIFJ +G6z8pTcAldrZ2nMe+Xb1tNrbHgoVzN/QhHXM4qst2Ml93cmFLjMmwG7P9RJeU4oNx+jTqVoBB7NV +Ne1/o56Do0KhfMZ9iUDQdPLbkZMq4EEpFMdm6PyM3muRKwPhj66iAWe/osCb8DowUK2f66vaRx0Z +Y0MQHIIrXE02Ta4IfAhIfPqBLkZ4WgTYBHN9vMdYea1jF0GO4gqGk1wqwb3yxv2QMYMbwJ6SI+k/ +ZjkSR/OilTCBhwYLKoZIhvcNAQkQAgsxeKB2MGIxCzAJBgNVBAYTAlpBMSUwIwYDVQQKExxUaGF3 +dGUgQ29uc3VsdGluZyAoUHR5KSBMdGQuMSwwKgYDVQQDEyNUaGF3dGUgUGVyc29uYWwgRnJlZW1h +aWwgSXNzdWluZyBDQQIQWOcU1hfAMRlFZjkSR/OilTANBgkqhkiG9w0BAQEFAASCAQCfwQiC3v6/ +yleRDGv3bJ4nQYQ+c3mz3+mn3Xi6uU35n3piwxZZaWRdmLyiXPvU+QReHpSf3l2qsEZM3sdE0XF9 +eRul/+QTFJcDNXOEAxG1zC2Gpz+6c6RrX4Ou12Pwkp+pNrZWTSY/mZgdqcArupOBcZi7qBjoWcy5 +wb54dfvSSjrjmqLbkH/E8ww/6gGQuU/xXpAUZgUrTmQHrNKeIdSh5oDkOxFaFWvnmb8Z/2ixKqW/ +Ux6WqamyvBtTs/5YBEtnpZOk+uVoscYEUBhU+DVJ2OSvTdXSivMtBdXmGTsG22k+P1NGUHi/A7ev +xPaO0uk4V8xyjNlN4HPuGpkrlXwPAAAAAAAA + +--Apple-Mail-42-587703407-- diff --git a/presidents/vendor/rails/actionmailer/test/fixtures/raw_email_with_partially_quoted_subject b/presidents/vendor/rails/actionmailer/test/fixtures/raw_email_with_partially_quoted_subject new file mode 100644 index 0000000..e86108d --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/fixtures/raw_email_with_partially_quoted_subject @@ -0,0 +1,14 @@ +From jamis@37signals.com Mon May 2 16:07:05 2005 +Mime-Version: 1.0 (Apple Message framework v622) +Content-Transfer-Encoding: base64 +Message-Id: +Content-Type: text/plain; + charset=EUC-KR; + format=flowed +To: jamis@37signals.com +From: Jamis Buck +Subject: Re: Test: =?UTF-8?B?Iua8ouWtlyI=?= mid =?UTF-8?B?Iua8ouWtlyI=?= tail +Date: Mon, 2 May 2005 16:07:05 -0600 + +tOu6zrrQwMcguLbC+bChwfa3ziwgv+y4rrTCIMfPs6q01MC7ILnPvcC0z7TZLg0KDQrBpiDAzLin +wLogSmFtaXPA1LTPtNku diff --git a/presidents/vendor/rails/actionmailer/test/fixtures/second_mailer/share.erb b/presidents/vendor/rails/actionmailer/test/fixtures/second_mailer/share.erb new file mode 100644 index 0000000..9a54010 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/fixtures/second_mailer/share.erb @@ -0,0 +1 @@ +second mail diff --git a/presidents/vendor/rails/actionmailer/test/fixtures/templates/signed_up.erb b/presidents/vendor/rails/actionmailer/test/fixtures/templates/signed_up.erb new file mode 100644 index 0000000..a85d5fa --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/fixtures/templates/signed_up.erb @@ -0,0 +1,3 @@ +Hello there, + +Mr. <%= @recipient %> \ No newline at end of file diff --git a/presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/_subtemplate.text.plain.erb b/presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/_subtemplate.text.plain.erb new file mode 100644 index 0000000..3b4ba35 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/_subtemplate.text.plain.erb @@ -0,0 +1 @@ +let's go! \ No newline at end of file diff --git a/presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/body_ivar.erb b/presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/body_ivar.erb new file mode 100644 index 0000000..1421e5c --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/body_ivar.erb @@ -0,0 +1,2 @@ +body: <%= @body %> +bar: <%= @bar %> \ No newline at end of file diff --git a/presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/custom_templating_extension.text.html.haml b/presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/custom_templating_extension.text.html.haml new file mode 100644 index 0000000..847d065 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/custom_templating_extension.text.html.haml @@ -0,0 +1,6 @@ +%p Hello there, + +%p + Mr. + = @recipient + from haml \ No newline at end of file diff --git a/presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/custom_templating_extension.text.plain.haml b/presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/custom_templating_extension.text.plain.haml new file mode 100644 index 0000000..847d065 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/custom_templating_extension.text.plain.haml @@ -0,0 +1,6 @@ +%p Hello there, + +%p + Mr. + = @recipient + from haml \ No newline at end of file diff --git a/presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.ignored.erb b/presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.ignored.erb new file mode 100644 index 0000000..6940419 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.ignored.erb @@ -0,0 +1 @@ +Ignored when searching for implicitly multipart parts. diff --git a/presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.rhtml.bak b/presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.rhtml.bak new file mode 100644 index 0000000..6940419 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.rhtml.bak @@ -0,0 +1 @@ +Ignored when searching for implicitly multipart parts. diff --git a/presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.text.html.erb b/presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.text.html.erb new file mode 100644 index 0000000..946d99e --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.text.html.erb @@ -0,0 +1,10 @@ + + + HTML formatted message to <%= @recipient %>. + + + + + HTML formatted message to <%= @recipient %>. + + diff --git a/presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.text.html.erb~ b/presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.text.html.erb~ new file mode 100644 index 0000000..946d99e --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.text.html.erb~ @@ -0,0 +1,10 @@ + + + HTML formatted message to <%= @recipient %>. + + + + + HTML formatted message to <%= @recipient %>. + + diff --git a/presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.text.plain.erb b/presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.text.plain.erb new file mode 100644 index 0000000..a6c8d54 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.text.plain.erb @@ -0,0 +1,2 @@ +Plain text to <%= @recipient %>. +Plain text to <%= @recipient %>. diff --git a/presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.text.yaml.erb b/presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.text.yaml.erb new file mode 100644 index 0000000..c14348c --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/implicitly_multipart_example.text.yaml.erb @@ -0,0 +1 @@ +yaml to: <%= @recipient %> \ No newline at end of file diff --git a/presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/included_subtemplate.text.plain.erb b/presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/included_subtemplate.text.plain.erb new file mode 100644 index 0000000..a93c30e --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/included_subtemplate.text.plain.erb @@ -0,0 +1 @@ +Hey Ho, <%= render :partial => "subtemplate" %> \ No newline at end of file diff --git a/presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/rxml_template.builder b/presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/rxml_template.builder new file mode 100644 index 0000000..d566bd8 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/rxml_template.builder @@ -0,0 +1,2 @@ +xml.instruct! +xml.test \ No newline at end of file diff --git a/presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/rxml_template.rxml b/presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/rxml_template.rxml new file mode 100644 index 0000000..d566bd8 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/rxml_template.rxml @@ -0,0 +1,2 @@ +xml.instruct! +xml.test \ No newline at end of file diff --git a/presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/signed_up.html.erb b/presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/signed_up.html.erb new file mode 100644 index 0000000..a85d5fa --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/signed_up.html.erb @@ -0,0 +1,3 @@ +Hello there, + +Mr. <%= @recipient %> \ No newline at end of file diff --git a/presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/signed_up_with_url.erb b/presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/signed_up_with_url.erb new file mode 100644 index 0000000..4c5806d --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/fixtures/test_mailer/signed_up_with_url.erb @@ -0,0 +1,5 @@ +Hello there, + +Mr. <%= @recipient %>. Please see our greeting at <%= @welcome_url %> <%= welcome_url %> + +<%= image_tag "somelogo.png" %> \ No newline at end of file diff --git a/presidents/vendor/rails/actionmailer/test/mail_helper_test.rb b/presidents/vendor/rails/actionmailer/test/mail_helper_test.rb new file mode 100644 index 0000000..e94aeff --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/mail_helper_test.rb @@ -0,0 +1,95 @@ +require 'abstract_unit' + +module MailerHelper + def person_name + "Mr. Joe Person" + end +end + +class HelperMailer < ActionMailer::Base + helper MailerHelper + helper :example + + def use_helper(recipient) + recipients recipient + subject "using helpers" + from "tester@example.com" + end + + def use_example_helper(recipient) + recipients recipient + subject "using helpers" + from "tester@example.com" + self.body = { :text => "emphasize me!" } + end + + def use_mail_helper(recipient) + recipients recipient + subject "using mailing helpers" + from "tester@example.com" + self.body = { :text => + "But soft! What light through yonder window breaks? It is the east, " + + "and Juliet is the sun. Arise, fair sun, and kill the envious moon, " + + "which is sick and pale with grief that thou, her maid, art far more " + + "fair than she. Be not her maid, for she is envious! Her vestal " + + "livery is but sick and green, and none but fools do wear it. Cast " + + "it off!" + } + end + + def use_helper_method(recipient) + recipients recipient + subject "using helpers" + from "tester@example.com" + self.body = { :text => "emphasize me!" } + end + + private + + def name_of_the_mailer_class + self.class.name + end + helper_method :name_of_the_mailer_class +end + +class MailerHelperTest < Test::Unit::TestCase + def new_mail( charset="utf-8" ) + mail = TMail::Mail.new + mail.set_content_type "text", "plain", { "charset" => charset } if charset + mail + end + + def setup + set_delivery_method :test + ActionMailer::Base.perform_deliveries = true + ActionMailer::Base.deliveries = [] + + @recipient = 'test@localhost' + end + + def teardown + restore_delivery_method + end + + def test_use_helper + mail = HelperMailer.create_use_helper(@recipient) + assert_match %r{Mr. Joe Person}, mail.encoded + end + + def test_use_example_helper + mail = HelperMailer.create_use_example_helper(@recipient) + assert_match %r{emphasize me!}, mail.encoded + end + + def test_use_helper_method + mail = HelperMailer.create_use_helper_method(@recipient) + assert_match %r{HelperMailer}, mail.encoded + end + + def test_use_mail_helper + mail = HelperMailer.create_use_mail_helper(@recipient) + assert_match %r{ But soft!}, mail.encoded + assert_match %r{east, and\n Juliet}, mail.encoded + end +end + diff --git a/presidents/vendor/rails/actionmailer/test/mail_layout_test.rb b/presidents/vendor/rails/actionmailer/test/mail_layout_test.rb new file mode 100644 index 0000000..50901f5 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/mail_layout_test.rb @@ -0,0 +1,123 @@ +require 'abstract_unit' + +class AutoLayoutMailer < ActionMailer::Base + def hello(recipient) + recipients recipient + subject "You have a mail" + from "tester@example.com" + end + + def spam(recipient) + recipients recipient + subject "You have a mail" + from "tester@example.com" + body render(:inline => "Hello, <%= @world %>", :layout => 'spam', :body => { :world => "Earth" }) + end + + def nolayout(recipient) + recipients recipient + subject "You have a mail" + from "tester@example.com" + body render(:inline => "Hello, <%= @world %>", :layout => false, :body => { :world => "Earth" }) + end + + def multipart(recipient, type = nil) + recipients recipient + subject "You have a mail" + from "tester@example.com" + + content_type(type) if type + end +end + +class ExplicitLayoutMailer < ActionMailer::Base + layout 'spam', :except => [:logout] + + def signup(recipient) + recipients recipient + subject "You have a mail" + from "tester@example.com" + end + + def logout(recipient) + recipients recipient + subject "You have a mail" + from "tester@example.com" + end +end + +class LayoutMailerTest < Test::Unit::TestCase + def setup + set_delivery_method :test + ActionMailer::Base.perform_deliveries = true + ActionMailer::Base.deliveries = [] + + @recipient = 'test@localhost' + end + + def teardown + restore_delivery_method + end + + def test_should_pickup_default_layout + mail = AutoLayoutMailer.create_hello(@recipient) + assert_equal "Hello from layout Inside", mail.body.strip + end + + def test_should_pickup_multipart_layout + mail = AutoLayoutMailer.create_multipart(@recipient) + assert_equal "multipart/alternative", mail.content_type + assert_equal 2, mail.parts.size + + assert_equal 'text/plain', mail.parts.first.content_type + assert_equal "text/plain layout - text/plain multipart", mail.parts.first.body + + assert_equal 'text/html', mail.parts.last.content_type + assert_equal "Hello from layout text/html multipart", mail.parts.last.body + end + + def test_should_pickup_multipartmixed_layout + mail = AutoLayoutMailer.create_multipart(@recipient, "multipart/mixed") + assert_equal "multipart/mixed", mail.content_type + assert_equal 2, mail.parts.size + + assert_equal 'text/plain', mail.parts.first.content_type + assert_equal "text/plain layout - text/plain multipart", mail.parts.first.body + + assert_equal 'text/html', mail.parts.last.content_type + assert_equal "Hello from layout text/html multipart", mail.parts.last.body + end + + def test_should_fix_multipart_layout + mail = AutoLayoutMailer.create_multipart(@recipient, "text/plain") + assert_equal "multipart/alternative", mail.content_type + assert_equal 2, mail.parts.size + + assert_equal 'text/plain', mail.parts.first.content_type + assert_equal "text/plain layout - text/plain multipart", mail.parts.first.body + + assert_equal 'text/html', mail.parts.last.content_type + assert_equal "Hello from layout text/html multipart", mail.parts.last.body + end + + + def test_should_pickup_layout_given_to_render + mail = AutoLayoutMailer.create_spam(@recipient) + assert_equal "Spammer layout Hello, Earth", mail.body.strip + end + + def test_should_respect_layout_false + mail = AutoLayoutMailer.create_nolayout(@recipient) + assert_equal "Hello, Earth", mail.body.strip + end + + def test_explicit_class_layout + mail = ExplicitLayoutMailer.create_signup(@recipient) + assert_equal "Spammer layout We do not spam", mail.body.strip + end + + def test_explicit_layout_exceptions + mail = ExplicitLayoutMailer.create_logout(@recipient) + assert_equal "You logged out", mail.body.strip + end +end diff --git a/presidents/vendor/rails/actionmailer/test/mail_render_test.rb b/presidents/vendor/rails/actionmailer/test/mail_render_test.rb new file mode 100644 index 0000000..4581161 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/mail_render_test.rb @@ -0,0 +1,116 @@ +require 'abstract_unit' + +class RenderMailer < ActionMailer::Base + def inline_template(recipient) + recipients recipient + subject "using helpers" + from "tester@example.com" + body render(:inline => "Hello, <%= @world %>", :body => { :world => "Earth" }) + end + + def file_template(recipient) + recipients recipient + subject "using helpers" + from "tester@example.com" + body render(:file => "signed_up", :body => { :recipient => recipient }) + end + + def rxml_template(recipient) + recipients recipient + subject "rendering rxml template" + from "tester@example.com" + end + + def included_subtemplate(recipient) + recipients recipient + subject "Including another template in the one being rendered" + from "tester@example.com" + end + + def included_old_subtemplate(recipient) + recipients recipient + subject "Including another template in the one being rendered" + from "tester@example.com" + body render(:inline => "Hello, <%= render \"subtemplate\" %>", :body => { :world => "Earth" }) + end + + def initialize_defaults(method_name) + super + mailer_name "test_mailer" + end +end + +class FirstMailer < ActionMailer::Base + def share(recipient) + recipients recipient + subject "using helpers" + from "tester@example.com" + end +end + +class SecondMailer < ActionMailer::Base + def share(recipient) + recipients recipient + subject "using helpers" + from "tester@example.com" + end +end + +class RenderHelperTest < Test::Unit::TestCase + def setup + set_delivery_method :test + ActionMailer::Base.perform_deliveries = true + ActionMailer::Base.deliveries = [] + + @recipient = 'test@localhost' + end + + def teardown + restore_delivery_method + end + + def test_inline_template + mail = RenderMailer.create_inline_template(@recipient) + assert_equal "Hello, Earth", mail.body.strip + end + + def test_file_template + mail = RenderMailer.create_file_template(@recipient) + assert_equal "Hello there, \n\nMr. test@localhost", mail.body.strip + end + + def test_rxml_template + mail = RenderMailer.deliver_rxml_template(@recipient) + assert_equal "\n", mail.body.strip + end + + def test_included_subtemplate + mail = RenderMailer.deliver_included_subtemplate(@recipient) + assert_equal "Hey Ho, let's go!", mail.body.strip + end +end + +class FirstSecondHelperTest < Test::Unit::TestCase + def setup + set_delivery_method :test + ActionMailer::Base.perform_deliveries = true + ActionMailer::Base.deliveries = [] + + @recipient = 'test@localhost' + end + + def teardown + restore_delivery_method + end + + def test_ordering + mail = FirstMailer.create_share(@recipient) + assert_equal "first mail", mail.body.strip + mail = SecondMailer.create_share(@recipient) + assert_equal "second mail", mail.body.strip + mail = FirstMailer.create_share(@recipient) + assert_equal "first mail", mail.body.strip + mail = SecondMailer.create_share(@recipient) + assert_equal "second mail", mail.body.strip + end +end diff --git a/presidents/vendor/rails/actionmailer/test/mail_service_test.rb b/presidents/vendor/rails/actionmailer/test/mail_service_test.rb new file mode 100644 index 0000000..3244aad --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/mail_service_test.rb @@ -0,0 +1,1079 @@ +# encoding: utf-8 +require 'abstract_unit' + +class FunkyPathMailer < ActionMailer::Base + self.template_root = "#{File.dirname(__FILE__)}/fixtures/path.with.dots" + + def multipart_with_template_path_with_dots(recipient) + recipients recipient + subject "Have a lovely picture" + from "Chad Fowler " + attachment :content_type => "image/jpeg", + :body => "not really a jpeg, we're only testing, after all" + end +end + +class TestMailer < ActionMailer::Base + def signed_up(recipient) + @recipients = recipient + @subject = "[Signed up] Welcome #{recipient}" + @from = "system@loudthinking.com" + @body["recipient"] = recipient + end + + def cancelled_account(recipient) + self.recipients = recipient + self.subject = "[Cancelled] Goodbye #{recipient}" + self.from = "system@loudthinking.com" + self.sent_on = Time.local(2004, 12, 12) + self.body = "Goodbye, Mr. #{recipient}" + end + + def cc_bcc(recipient) + recipients recipient + subject "testing bcc/cc" + from "system@loudthinking.com" + sent_on Time.local(2004, 12, 12) + cc "nobody@loudthinking.com" + bcc "root@loudthinking.com" + body "Nothing to see here." + end + + def different_reply_to(recipient) + recipients recipient + subject "testing reply_to" + from "system@loudthinking.com" + sent_on Time.local(2008, 5, 23) + reply_to "atraver@gmail.com" + body "Nothing to see here." + end + + def iso_charset(recipient) + @recipients = recipient + @subject = "testing isø charsets" + @from = "system@loudthinking.com" + @sent_on = Time.local 2004, 12, 12 + @cc = "nobody@loudthinking.com" + @bcc = "root@loudthinking.com" + @body = "Nothing to see here." + @charset = "iso-8859-1" + end + + def unencoded_subject(recipient) + @recipients = recipient + @subject = "testing unencoded subject" + @from = "system@loudthinking.com" + @sent_on = Time.local 2004, 12, 12 + @cc = "nobody@loudthinking.com" + @bcc = "root@loudthinking.com" + @body = "Nothing to see here." + end + + def extended_headers(recipient) + @recipients = recipient + @subject = "testing extended headers" + @from = "Grytøyr " + @sent_on = Time.local 2004, 12, 12 + @cc = "Grytøyr " + @bcc = "Grytøyr " + @body = "Nothing to see here." + @charset = "iso-8859-1" + end + + def utf8_body(recipient) + @recipients = recipient + @subject = "testing utf-8 body" + @from = "Foo áëô îü " + @sent_on = Time.local 2004, 12, 12 + @cc = "Foo áëô îü " + @bcc = "Foo áëô îü " + @body = "åœö blah" + @charset = "utf-8" + end + + def multipart_with_mime_version(recipient) + recipients recipient + subject "multipart with mime_version" + from "test@example.com" + sent_on Time.local(2004, 12, 12) + mime_version "1.1" + content_type "multipart/alternative" + + part "text/plain" do |p| + p.body = "blah" + end + + part "text/html" do |p| + p.body = "blah" + end + end + + def multipart_with_utf8_subject(recipient) + recipients recipient + subject "Foo áëô îü" + from "test@example.com" + charset "utf-8" + + part "text/plain" do |p| + p.body = "blah" + end + + part "text/html" do |p| + p.body = "blah" + end + end + + def explicitly_multipart_example(recipient, ct=nil) + recipients recipient + subject "multipart example" + from "test@example.com" + sent_on Time.local(2004, 12, 12) + body "plain text default" + content_type ct if ct + + part "text/html" do |p| + p.charset = "iso-8859-1" + p.body = "blah" + end + + attachment :content_type => "image/jpeg", :filename => "foo.jpg", + :body => "123456789" + end + + def implicitly_multipart_example(recipient, cs = nil, order = nil) + @recipients = recipient + @subject = "multipart example" + @from = "test@example.com" + @sent_on = Time.local 2004, 12, 12 + @body = { "recipient" => recipient } + @charset = cs if cs + @implicit_parts_order = order if order + end + + def implicitly_multipart_with_utf8 + recipients "no.one@nowhere.test" + subject "Foo áëô îü" + from "some.one@somewhere.test" + template "implicitly_multipart_example" + body ({ "recipient" => "no.one@nowhere.test" }) + end + + def html_mail(recipient) + recipients recipient + subject "html mail" + from "test@example.com" + body "Emphasize this" + content_type "text/html" + end + + def html_mail_with_underscores(recipient) + subject "html mail with underscores" + body %{
    _Google} + end + + def custom_template(recipient) + recipients recipient + subject "[Signed up] Welcome #{recipient}" + from "system@loudthinking.com" + sent_on Time.local(2004, 12, 12) + template "signed_up" + + body["recipient"] = recipient + end + + def custom_templating_extension(recipient) + recipients recipient + subject "[Signed up] Welcome #{recipient}" + from "system@loudthinking.com" + sent_on Time.local(2004, 12, 12) + + body["recipient"] = recipient + end + + def various_newlines(recipient) + recipients recipient + subject "various newlines" + from "test@example.com" + body "line #1\nline #2\rline #3\r\nline #4\r\r" + + "line #5\n\nline#6\r\n\r\nline #7" + end + + def various_newlines_multipart(recipient) + recipients recipient + subject "various newlines multipart" + from "test@example.com" + content_type "multipart/alternative" + part :content_type => "text/plain", :body => "line #1\nline #2\rline #3\r\nline #4\r\r" + part :content_type => "text/html", :body => "

    line #1

    \n

    line #2

    \r

    line #3

    \r\n

    line #4

    \r\r" + end + + def nested_multipart(recipient) + recipients recipient + subject "nested multipart" + from "test@example.com" + content_type "multipart/mixed" + part :content_type => "multipart/alternative", :content_disposition => "inline", :headers => { "foo" => "bar" } do |p| + p.part :content_type => "text/plain", :body => "test text\nline #2" + p.part :content_type => "text/html", :body => "test HTML
    \nline #2" + end + attachment :content_type => "application/octet-stream",:filename => "test.txt", :body => "test abcdefghijklmnopqstuvwxyz" + end + + def nested_multipart_with_body(recipient) + recipients recipient + subject "nested multipart with body" + from "test@example.com" + content_type "multipart/mixed" + part :content_type => "multipart/alternative", :content_disposition => "inline", :body => "Nothing to see here." do |p| + p.part :content_type => "text/html", :body => "test HTML
    " + end + end + + def attachment_with_custom_header(recipient) + recipients recipient + subject "custom header in attachment" + from "test@example.com" + content_type "multipart/related" + part :content_type => "text/html", :body => 'yo' + attachment :content_type => "image/jpeg",:filename => "test.jpeg", :body => "i am not a real picture", :headers => { 'Content-ID' => '' } + end + + def unnamed_attachment(recipient) + recipients recipient + subject "nested multipart" + from "test@example.com" + content_type "multipart/mixed" + part :content_type => "text/plain", :body => "hullo" + attachment :content_type => "application/octet-stream", :body => "test abcdefghijklmnopqstuvwxyz" + end + + def headers_with_nonalpha_chars(recipient) + recipients recipient + subject "nonalpha chars" + from "One: Two " + cc "Three: Four " + bcc "Five: Six " + body "testing" + end + + def custom_content_type_attributes + recipients "no.one@nowhere.test" + subject "custom content types" + from "some.one@somewhere.test" + content_type "text/plain; format=flowed" + body "testing" + end + + def return_path + recipients "no.one@nowhere.test" + subject "return path test" + from "some.one@somewhere.test" + body "testing" + headers "return-path" => "another@somewhere.test" + end + + def body_ivar(recipient) + recipients recipient + subject "Body as a local variable" + from "test@example.com" + body :body => "foo", :bar => "baz" + end + + class < charset } + end + mail + end + + # Replacing logger work around for mocha bug. Should be fixed in mocha 0.3.3 + def setup + set_delivery_method :test + ActionMailer::Base.perform_deliveries = true + ActionMailer::Base.raise_delivery_errors = true + ActionMailer::Base.deliveries = [] + + @original_logger = TestMailer.logger + @recipient = 'test@localhost' + end + + def teardown + TestMailer.logger = @original_logger + restore_delivery_method + end + + def test_nested_parts + created = nil + assert_nothing_raised { created = TestMailer.create_nested_multipart(@recipient)} + assert_equal 2,created.parts.size + assert_equal 2,created.parts.first.parts.size + + assert_equal "multipart/mixed", created.content_type + assert_equal "multipart/alternative", created.parts.first.content_type + assert_equal "bar", created.parts.first.header['foo'].to_s + assert_nil created.parts.first.charset + assert_equal "text/plain", created.parts.first.parts.first.content_type + assert_equal "text/html", created.parts.first.parts[1].content_type + assert_equal "application/octet-stream", created.parts[1].content_type + end + + def test_nested_parts_with_body + created = nil + assert_nothing_raised { created = TestMailer.create_nested_multipart_with_body(@recipient)} + assert_equal 1,created.parts.size + assert_equal 2,created.parts.first.parts.size + + assert_equal "multipart/mixed", created.content_type + assert_equal "multipart/alternative", created.parts.first.content_type + assert_equal "Nothing to see here.", created.parts.first.parts.first.body + assert_equal "text/plain", created.parts.first.parts.first.content_type + assert_equal "text/html", created.parts.first.parts[1].content_type + end + + def test_attachment_with_custom_header + created = nil + assert_nothing_raised { created = TestMailer.create_attachment_with_custom_header(@recipient)} + assert_equal "", created.parts[1].header['content-id'].to_s + end + + def test_signed_up + Time.stubs(:now => Time.now) + + expected = new_mail + expected.to = @recipient + expected.subject = "[Signed up] Welcome #{@recipient}" + expected.body = "Hello there, \n\nMr. #{@recipient}" + expected.from = "system@loudthinking.com" + expected.date = Time.now + + created = nil + assert_nothing_raised { created = TestMailer.create_signed_up(@recipient) } + assert_not_nil created + assert_equal expected.encoded, created.encoded + + assert_nothing_raised { TestMailer.deliver_signed_up(@recipient) } + assert_not_nil ActionMailer::Base.deliveries.first + assert_equal expected.encoded, ActionMailer::Base.deliveries.first.encoded + end + + def test_custom_template + expected = new_mail + expected.to = @recipient + expected.subject = "[Signed up] Welcome #{@recipient}" + expected.body = "Hello there, \n\nMr. #{@recipient}" + expected.from = "system@loudthinking.com" + expected.date = Time.local(2004, 12, 12) + + created = nil + assert_nothing_raised { created = TestMailer.create_custom_template(@recipient) } + assert_not_nil created + assert_equal expected.encoded, created.encoded + end + + def test_custom_templating_extension + assert ActionView::Template.template_handler_extensions.include?("haml"), "haml extension was not registered" + + # N.b., custom_templating_extension.text.plain.haml is expected to be in fixtures/test_mailer directory + expected = new_mail + expected.to = @recipient + expected.subject = "[Signed up] Welcome #{@recipient}" + expected.body = "Hello there, \n\nMr. #{@recipient}" + expected.from = "system@loudthinking.com" + expected.date = Time.local(2004, 12, 12) + + # Stub the render method so no alternative renderers need be present. + ActionView::Base.any_instance.stubs(:render).returns("Hello there, \n\nMr. #{@recipient}") + + # Now that the template is registered, there should be one part. The text/plain part. + created = nil + assert_nothing_raised { created = TestMailer.create_custom_templating_extension(@recipient) } + assert_not_nil created + assert_equal 2, created.parts.length + assert_equal 'text/plain', created.parts[0].content_type + assert_equal 'text/html', created.parts[1].content_type + end + + def test_cancelled_account + expected = new_mail + expected.to = @recipient + expected.subject = "[Cancelled] Goodbye #{@recipient}" + expected.body = "Goodbye, Mr. #{@recipient}" + expected.from = "system@loudthinking.com" + expected.date = Time.local(2004, 12, 12) + + created = nil + assert_nothing_raised { created = TestMailer.create_cancelled_account(@recipient) } + assert_not_nil created + assert_equal expected.encoded, created.encoded + + assert_nothing_raised { TestMailer.deliver_cancelled_account(@recipient) } + assert_not_nil ActionMailer::Base.deliveries.first + assert_equal expected.encoded, ActionMailer::Base.deliveries.first.encoded + end + + def test_cc_bcc + expected = new_mail + expected.to = @recipient + expected.subject = "testing bcc/cc" + expected.body = "Nothing to see here." + expected.from = "system@loudthinking.com" + expected.cc = "nobody@loudthinking.com" + expected.bcc = "root@loudthinking.com" + expected.date = Time.local 2004, 12, 12 + + created = nil + assert_nothing_raised do + created = TestMailer.create_cc_bcc @recipient + end + assert_not_nil created + assert_equal expected.encoded, created.encoded + + assert_nothing_raised do + TestMailer.deliver_cc_bcc @recipient + end + + assert_not_nil ActionMailer::Base.deliveries.first + assert_equal expected.encoded, ActionMailer::Base.deliveries.first.encoded + end + + def test_reply_to + expected = new_mail + + expected.to = @recipient + expected.subject = "testing reply_to" + expected.body = "Nothing to see here." + expected.from = "system@loudthinking.com" + expected.reply_to = "atraver@gmail.com" + expected.date = Time.local 2008, 5, 23 + + created = nil + assert_nothing_raised do + created = TestMailer.create_different_reply_to @recipient + end + assert_not_nil created + assert_equal expected.encoded, created.encoded + + assert_nothing_raised do + TestMailer.deliver_different_reply_to @recipient + end + + assert_not_nil ActionMailer::Base.deliveries.first + assert_equal expected.encoded, ActionMailer::Base.deliveries.first.encoded + end + + def test_iso_charset + expected = new_mail( "iso-8859-1" ) + expected.to = @recipient + expected.subject = encode "testing isø charsets", "iso-8859-1" + expected.body = "Nothing to see here." + expected.from = "system@loudthinking.com" + expected.cc = "nobody@loudthinking.com" + expected.bcc = "root@loudthinking.com" + expected.date = Time.local 2004, 12, 12 + + created = nil + assert_nothing_raised do + created = TestMailer.create_iso_charset @recipient + end + assert_not_nil created + assert_equal expected.encoded, created.encoded + + assert_nothing_raised do + TestMailer.deliver_iso_charset @recipient + end + + assert_not_nil ActionMailer::Base.deliveries.first + assert_equal expected.encoded, ActionMailer::Base.deliveries.first.encoded + end + + def test_unencoded_subject + expected = new_mail + expected.to = @recipient + expected.subject = "testing unencoded subject" + expected.body = "Nothing to see here." + expected.from = "system@loudthinking.com" + expected.cc = "nobody@loudthinking.com" + expected.bcc = "root@loudthinking.com" + expected.date = Time.local 2004, 12, 12 + + created = nil + assert_nothing_raised do + created = TestMailer.create_unencoded_subject @recipient + end + assert_not_nil created + assert_equal expected.encoded, created.encoded + + assert_nothing_raised do + TestMailer.deliver_unencoded_subject @recipient + end + + assert_not_nil ActionMailer::Base.deliveries.first + assert_equal expected.encoded, ActionMailer::Base.deliveries.first.encoded + end + + def test_instances_are_nil + assert_nil ActionMailer::Base.new + assert_nil TestMailer.new + end + + def test_deliveries_array + assert_not_nil ActionMailer::Base.deliveries + assert_equal 0, ActionMailer::Base.deliveries.size + TestMailer.deliver_signed_up(@recipient) + assert_equal 1, ActionMailer::Base.deliveries.size + assert_not_nil ActionMailer::Base.deliveries.first + end + + def test_perform_deliveries_flag + ActionMailer::Base.perform_deliveries = false + TestMailer.deliver_signed_up(@recipient) + assert_equal 0, ActionMailer::Base.deliveries.size + ActionMailer::Base.perform_deliveries = true + TestMailer.deliver_signed_up(@recipient) + assert_equal 1, ActionMailer::Base.deliveries.size + end + + def test_doesnt_raise_errors_when_raise_delivery_errors_is_false + ActionMailer::Base.raise_delivery_errors = false + TestMailer.any_instance.expects(:perform_delivery_test).raises(Exception) + assert_nothing_raised { TestMailer.deliver_signed_up(@recipient) } + end + + def test_performs_delivery_via_sendmail + sm = mock() + sm.expects(:print).with(anything) + sm.expects(:flush) + IO.expects(:popen).once.with('/usr/sbin/sendmail -i -t', 'w+').yields(sm) + ActionMailer::Base.delivery_method = :sendmail + TestMailer.deliver_signed_up(@recipient) + end + + def test_delivery_logs_sent_mail + mail = TestMailer.create_signed_up(@recipient) + logger = mock() + logger.expects(:info).with("Sent mail to #{@recipient}") + logger.expects(:debug).with("\n#{mail.encoded}") + TestMailer.logger = logger + TestMailer.deliver_signed_up(@recipient) + end + + def test_unquote_quoted_printable_subject + msg = <" + + expected = new_mail "iso-8859-1" + expected.to = quote_address_if_necessary @recipient, "iso-8859-1" + expected.subject = "testing extended headers" + expected.body = "Nothing to see here." + expected.from = quote_address_if_necessary "Grytøyr ", "iso-8859-1" + expected.cc = quote_address_if_necessary "Grytøyr ", "iso-8859-1" + expected.bcc = quote_address_if_necessary "Grytøyr ", "iso-8859-1" + expected.date = Time.local 2004, 12, 12 + + created = nil + assert_nothing_raised do + created = TestMailer.create_extended_headers @recipient + end + + assert_not_nil created + assert_equal expected.encoded, created.encoded + + assert_nothing_raised do + TestMailer.deliver_extended_headers @recipient + end + + assert_not_nil ActionMailer::Base.deliveries.first + assert_equal expected.encoded, ActionMailer::Base.deliveries.first.encoded + end + + def test_utf8_body_is_not_quoted + @recipient = "Foo áëô îü " + expected = new_mail "utf-8" + expected.to = quote_address_if_necessary @recipient, "utf-8" + expected.subject = "testing utf-8 body" + expected.body = "åœö blah" + expected.from = quote_address_if_necessary @recipient, "utf-8" + expected.cc = quote_address_if_necessary @recipient, "utf-8" + expected.bcc = quote_address_if_necessary @recipient, "utf-8" + expected.date = Time.local 2004, 12, 12 + + created = TestMailer.create_utf8_body @recipient + assert_match(/åœö blah/, created.encoded) + end + + def test_multiple_utf8_recipients + @recipient = ["\"Foo áëô îü\" ", "\"Example Recipient\" "] + expected = new_mail "utf-8" + expected.to = quote_address_if_necessary @recipient, "utf-8" + expected.subject = "testing utf-8 body" + expected.body = "åœö blah" + expected.from = quote_address_if_necessary @recipient.first, "utf-8" + expected.cc = quote_address_if_necessary @recipient, "utf-8" + expected.bcc = quote_address_if_necessary @recipient, "utf-8" + expected.date = Time.local 2004, 12, 12 + + created = TestMailer.create_utf8_body @recipient + assert_match(/\nFrom: =\?utf-8\?Q\?Foo_.*?\?= \r/, created.encoded) + assert_match(/\nTo: =\?utf-8\?Q\?Foo_.*?\?= , Example Recipient _Google}, mail.body + end + + def test_various_newlines + mail = TestMailer.create_various_newlines(@recipient) + assert_equal("line #1\nline #2\nline #3\nline #4\n\n" + + "line #5\n\nline#6\n\nline #7", mail.body) + end + + def test_various_newlines_multipart + mail = TestMailer.create_various_newlines_multipart(@recipient) + assert_equal "line #1\nline #2\nline #3\nline #4\n\n", mail.parts[0].body + assert_equal "

    line #1

    \n

    line #2

    \n

    line #3

    \n

    line #4

    \n\n", mail.parts[1].body + end + + def test_headers_removed_on_smtp_delivery + ActionMailer::Base.delivery_method = :smtp + TestMailer.deliver_cc_bcc(@recipient) + assert MockSMTP.deliveries[0][2].include?("root@loudthinking.com") + assert MockSMTP.deliveries[0][2].include?("nobody@loudthinking.com") + assert MockSMTP.deliveries[0][2].include?(@recipient) + assert_match %r{^Cc: nobody@loudthinking.com}, MockSMTP.deliveries[0][0] + assert_match %r{^To: #{@recipient}}, MockSMTP.deliveries[0][0] + assert_no_match %r{^Bcc: root@loudthinking.com}, MockSMTP.deliveries[0][0] + end + + def test_recursive_multipart_processing + fixture = File.read(File.dirname(__FILE__) + "/fixtures/raw_email7") + mail = TMail::Mail.parse(fixture) + assert_equal "This is the first part.\n\nAttachment: test.rb\nAttachment: test.pdf\n\n\nAttachment: smime.p7s\n", mail.body + end + + def test_decode_encoded_attachment_filename + fixture = File.read(File.dirname(__FILE__) + "/fixtures/raw_email8") + mail = TMail::Mail.parse(fixture) + attachment = mail.attachments.last + + expected = "01 Quien Te Dij\212at. Pitbull.mp3" + expected.force_encoding(Encoding::ASCII_8BIT) if expected.respond_to?(:force_encoding) + + assert_equal expected, attachment.original_filename + end + + def test_wrong_mail_header + fixture = File.read(File.dirname(__FILE__) + "/fixtures/raw_email9") + assert_raise(TMail::SyntaxError) { TMail::Mail.parse(fixture) } + end + + def test_decode_message_with_unknown_charset + fixture = File.read(File.dirname(__FILE__) + "/fixtures/raw_email10") + mail = TMail::Mail.parse(fixture) + assert_nothing_raised { mail.body } + end + + def test_empty_header_values_omitted + result = TestMailer.create_unnamed_attachment(@recipient).encoded + assert_match %r{Content-Type: application/octet-stream[^;]}, result + assert_match %r{Content-Disposition: attachment[^;]}, result + end + + def test_headers_with_nonalpha_chars + mail = TestMailer.create_headers_with_nonalpha_chars(@recipient) + assert !mail.from_addrs.empty? + assert !mail.cc_addrs.empty? + assert !mail.bcc_addrs.empty? + assert_match(/:/, mail.from_addrs.to_s) + assert_match(/:/, mail.cc_addrs.to_s) + assert_match(/:/, mail.bcc_addrs.to_s) + end + + def test_deliver_with_mail_object + mail = TestMailer.create_headers_with_nonalpha_chars(@recipient) + assert_nothing_raised { TestMailer.deliver(mail) } + assert_equal 1, TestMailer.deliveries.length + end + + def test_multipart_with_template_path_with_dots + mail = FunkyPathMailer.create_multipart_with_template_path_with_dots(@recipient) + assert_equal 2, mail.parts.length + assert_equal 'text/plain', mail.parts[0].content_type + assert_equal 'utf-8', mail.parts[0].charset + end + + def test_custom_content_type_attributes + mail = TestMailer.create_custom_content_type_attributes + assert_match %r{format=flowed}, mail['content-type'].to_s + assert_match %r{charset=utf-8}, mail['content-type'].to_s + end + + def test_return_path_with_create + mail = TestMailer.create_return_path + assert_equal "", mail['return-path'].to_s + end + + def test_return_path_with_deliver + ActionMailer::Base.delivery_method = :smtp + TestMailer.deliver_return_path + assert_match %r{^Return-Path: }, MockSMTP.deliveries[0][0] + assert_equal "another@somewhere.test", MockSMTP.deliveries[0][1].to_s + end + + def test_body_is_stored_as_an_ivar + mail = TestMailer.create_body_ivar(@recipient) + assert_equal "body: foo\nbar: baz", mail.body + end + + def test_starttls_is_enabled_if_supported + ActionMailer::Base.smtp_settings[:enable_starttls_auto] = true + MockSMTP.any_instance.expects(:respond_to?).with(:enable_starttls_auto).returns(true) + MockSMTP.any_instance.expects(:enable_starttls_auto) + ActionMailer::Base.delivery_method = :smtp + TestMailer.deliver_signed_up(@recipient) + end + + def test_starttls_is_disabled_if_not_supported + ActionMailer::Base.smtp_settings[:enable_starttls_auto] = true + MockSMTP.any_instance.expects(:respond_to?).with(:enable_starttls_auto).returns(false) + MockSMTP.any_instance.expects(:enable_starttls_auto).never + ActionMailer::Base.delivery_method = :smtp + TestMailer.deliver_signed_up(@recipient) + end + + def test_starttls_is_not_enabled + ActionMailer::Base.smtp_settings[:enable_starttls_auto] = false + MockSMTP.any_instance.expects(:respond_to?).never + MockSMTP.any_instance.expects(:enable_starttls_auto).never + ActionMailer::Base.delivery_method = :smtp + TestMailer.deliver_signed_up(@recipient) + ensure + ActionMailer::Base.smtp_settings[:enable_starttls_auto] = true + end +end + +class InheritableTemplateRootTest < Test::Unit::TestCase + def test_attr + expected = "#{File.dirname(__FILE__)}/fixtures/path.with.dots" + assert_equal expected, FunkyPathMailer.template_root.to_s + + sub = Class.new(FunkyPathMailer) + sub.template_root = 'test/path' + + assert_equal 'test/path', sub.template_root.to_s + assert_equal expected, FunkyPathMailer.template_root.to_s + end +end + +class MethodNamingTest < Test::Unit::TestCase + class TestMailer < ActionMailer::Base + def send + body 'foo' + end + end + + def setup + set_delivery_method :test + ActionMailer::Base.perform_deliveries = true + ActionMailer::Base.deliveries = [] + end + + def teardown + restore_delivery_method + end + + def test_send_method + assert_nothing_raised do + assert_emails 1 do + TestMailer.deliver_send + end + end + end +end + +class RespondToTest < Test::Unit::TestCase + class RespondToMailer < ActionMailer::Base; end + + def setup + set_delivery_method :test + end + + def teardown + restore_delivery_method + end + + def test_should_respond_to_new + assert RespondToMailer.respond_to?(:new) + end + + def test_should_respond_to_create_with_template_suffix + assert RespondToMailer.respond_to?(:create_any_old_template) + end + + def test_should_respond_to_deliver_with_template_suffix + assert RespondToMailer.respond_to?(:deliver_any_old_template) + end + + def test_should_not_respond_to_new_with_template_suffix + assert !RespondToMailer.respond_to?(:new_any_old_template) + end + + def test_should_not_respond_to_create_with_template_suffix_unless_it_is_separated_by_an_underscore + assert !RespondToMailer.respond_to?(:createany_old_template) + end + + def test_should_not_respond_to_deliver_with_template_suffix_unless_it_is_separated_by_an_underscore + assert !RespondToMailer.respond_to?(:deliverany_old_template) + end + + def test_should_not_respond_to_create_with_template_suffix_if_it_begins_with_a_uppercase_letter + assert !RespondToMailer.respond_to?(:create_Any_old_template) + end + + def test_should_not_respond_to_deliver_with_template_suffix_if_it_begins_with_a_uppercase_letter + assert !RespondToMailer.respond_to?(:deliver_Any_old_template) + end + + def test_should_not_respond_to_create_with_template_suffix_if_it_begins_with_a_digit + assert !RespondToMailer.respond_to?(:create_1_template) + end + + def test_should_not_respond_to_deliver_with_template_suffix_if_it_begins_with_a_digit + assert !RespondToMailer.respond_to?(:deliver_1_template) + end + + def test_should_not_respond_to_method_where_deliver_is_not_a_suffix + assert !RespondToMailer.respond_to?(:foo_deliver_template) + end + + def test_should_still_raise_exception_with_expected_message_when_calling_an_undefined_method + error = assert_raise NoMethodError do + RespondToMailer.not_a_method + end + + assert_match /undefined method.*not_a_method/, error.message + end +end diff --git a/presidents/vendor/rails/actionmailer/test/quoting_test.rb b/presidents/vendor/rails/actionmailer/test/quoting_test.rb new file mode 100644 index 0000000..2fee137 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/quoting_test.rb @@ -0,0 +1,99 @@ +# encoding: utf-8 +require 'abstract_unit' +require 'tempfile' + +class QuotingTest < Test::Unit::TestCase + # Move some tests from TMAIL here + def test_unquote_quoted_printable + a ="=?ISO-8859-1?Q?[166417]_Bekr=E6ftelse_fra_Rejsefeber?=" + b = TMail::Unquoter.unquote_and_convert_to(a, 'utf-8') + assert_equal "[166417] Bekr\303\246ftelse fra Rejsefeber", b + end + + def test_unquote_base64 + a ="=?ISO-8859-1?B?WzE2NjQxN10gQmVrcuZmdGVsc2UgZnJhIFJlanNlZmViZXI=?=" + b = TMail::Unquoter.unquote_and_convert_to(a, 'utf-8') + assert_equal "[166417] Bekr\303\246ftelse fra Rejsefeber", b + end + + def test_unquote_without_charset + a ="[166417]_Bekr=E6ftelse_fra_Rejsefeber" + b = TMail::Unquoter.unquote_and_convert_to(a, 'utf-8') + assert_equal "[166417]_Bekr=E6ftelse_fra_Rejsefeber", b + end + + def test_unqoute_multiple + a ="=?utf-8?q?Re=3A_=5B12=5D_=23137=3A_Inkonsistente_verwendung_von_=22Hin?==?utf-8?b?enVmw7xnZW4i?=" + b = TMail::Unquoter.unquote_and_convert_to(a, 'utf-8') + assert_equal "Re: [12] #137: Inkonsistente verwendung von \"Hinzuf\303\274gen\"", b + end + + def test_unqoute_in_the_middle + a ="Re: Photos =?ISO-8859-1?Q?Brosch=FCre_Rand?=" + b = TMail::Unquoter.unquote_and_convert_to(a, 'utf-8') + assert_equal "Re: Photos Brosch\303\274re Rand", b + end + + def test_unqoute_iso + a ="=?ISO-8859-1?Q?Brosch=FCre_Rand?=" + b = TMail::Unquoter.unquote_and_convert_to(a, 'iso-8859-1') + expected = "Brosch\374re Rand" + expected.force_encoding 'iso-8859-1' if expected.respond_to?(:force_encoding) + assert_equal expected, b + end + + def test_quote_multibyte_chars + original = "\303\246 \303\270 and \303\245" + original.force_encoding('ASCII-8BIT') if original.respond_to?(:force_encoding) + + result = execute_in_sandbox(<<-CODE) + $:.unshift(File.dirname(__FILE__) + "/../lib/") + if RUBY_VERSION < '1.9' + $KCODE = 'u' + require 'jcode' + end + require 'action_mailer/quoting' + include ActionMailer::Quoting + quoted_printable(#{original.inspect}, "UTF-8") + CODE + + unquoted = TMail::Unquoter.unquote_and_convert_to(result, nil) + assert_equal unquoted, original + end + + + # test an email that has been created using \r\n newlines, instead of + # \n newlines. + def test_email_quoted_with_0d0a + mail = TMail::Mail.parse(IO.read("#{File.dirname(__FILE__)}/fixtures/raw_email_quoted_with_0d0a")) + assert_match %r{Elapsed time}, mail.body + end + + def test_email_with_partially_quoted_subject + mail = TMail::Mail.parse(IO.read("#{File.dirname(__FILE__)}/fixtures/raw_email_with_partially_quoted_subject")) + assert_equal "Re: Test: \"\346\274\242\345\255\227\" mid \"\346\274\242\345\255\227\" tail", mail.subject + end + + private + # This whole thing *could* be much simpler, but I don't think Tempfile, + # popen and others exist on all platforms (like Windows). + def execute_in_sandbox(code) + test_name = "#{File.dirname(__FILE__)}/am-quoting-test.#{$$}.rb" + res_name = "#{File.dirname(__FILE__)}/am-quoting-test.#{$$}.out" + + File.open(test_name, "w+") do |file| + file.write(<<-CODE) + block = Proc.new do + #{code} + end + puts block.call + CODE + end + + system("ruby #{test_name} > #{res_name}") or raise "could not run test in sandbox" + File.read(res_name).chomp + ensure + File.delete(test_name) rescue nil + File.delete(res_name) rescue nil + end +end diff --git a/presidents/vendor/rails/actionmailer/test/test_helper_test.rb b/presidents/vendor/rails/actionmailer/test/test_helper_test.rb new file mode 100644 index 0000000..65b07a7 --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/test_helper_test.rb @@ -0,0 +1,129 @@ +require 'abstract_unit' + +class TestHelperMailer < ActionMailer::Base + def test + recipients "test@example.com" + from "tester@example.com" + body render(:inline => "Hello, <%= @world %>", :body => { :world => "Earth" }) + end +end + +class TestHelperMailerTest < ActionMailer::TestCase + def test_setup_sets_right_action_mailer_options + assert_equal :test, ActionMailer::Base.delivery_method + assert ActionMailer::Base.perform_deliveries + assert_equal [], ActionMailer::Base.deliveries + end + + def test_setup_creates_the_expected_mailer + assert @expected.is_a?(TMail::Mail) + assert_equal "1.0", @expected.mime_version + assert_equal "text/plain", @expected.content_type + end + + def test_mailer_class_is_correctly_inferred + assert_equal TestHelperMailer, self.class.mailer_class + end + + def test_determine_default_mailer_raises_correct_error + assert_raise(ActionMailer::NonInferrableMailerError) do + self.class.determine_default_mailer("NotAMailerTest") + end + end + + def test_charset_is_utf_8 + assert_equal "utf-8", charset + end + + def test_encode + assert_equal "=?utf-8?Q?=0Aasdf=0A?=", encode("\nasdf\n") + end + + def test_assert_emails + assert_nothing_raised do + assert_emails 1 do + TestHelperMailer.deliver_test + end + end + end + + def test_repeated_assert_emails_calls + assert_nothing_raised do + assert_emails 1 do + TestHelperMailer.deliver_test + end + end + + assert_nothing_raised do + assert_emails 2 do + TestHelperMailer.deliver_test + TestHelperMailer.deliver_test + end + end + end + + def test_assert_emails_with_no_block + assert_nothing_raised do + TestHelperMailer.deliver_test + assert_emails 1 + end + + assert_nothing_raised do + TestHelperMailer.deliver_test + TestHelperMailer.deliver_test + assert_emails 3 + end + end + + def test_assert_no_emails + assert_nothing_raised do + assert_no_emails do + TestHelperMailer.create_test + end + end + end + + def test_assert_emails_too_few_sent + error = assert_raise ActiveSupport::TestCase::Assertion do + assert_emails 2 do + TestHelperMailer.deliver_test + end + end + + assert_match /2 .* but 1/, error.message + end + + def test_assert_emails_too_many_sent + error = assert_raise ActiveSupport::TestCase::Assertion do + assert_emails 1 do + TestHelperMailer.deliver_test + TestHelperMailer.deliver_test + end + end + + assert_match /1 .* but 2/, error.message + end + + def test_assert_no_emails_failure + error = assert_raise ActiveSupport::TestCase::Assertion do + assert_no_emails do + TestHelperMailer.deliver_test + end + end + + assert_match /0 .* but 1/, error.message + end +end + +class AnotherTestHelperMailerTest < ActionMailer::TestCase + tests TestHelperMailer + + def setup + @test_var = "a value" + end + + def test_setup_shouldnt_conflict_with_mailer_setup + assert @expected.is_a?(TMail::Mail) + assert_equal 'a value', @test_var + end +end diff --git a/presidents/vendor/rails/actionmailer/test/tmail_test.rb b/presidents/vendor/rails/actionmailer/test/tmail_test.rb new file mode 100644 index 0000000..718990e --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/tmail_test.rb @@ -0,0 +1,22 @@ +require 'abstract_unit' + +class TMailMailTest < Test::Unit::TestCase + def test_body + m = TMail::Mail.new + expected = 'something_with_underscores' + m.encoding = 'quoted-printable' + quoted_body = [expected].pack('*M') + m.body = quoted_body + assert_equal "something_with_underscores=\n", m.quoted_body + assert_equal expected, m.body + end + + def test_nested_attachments_are_recognized_correctly + fixture = File.read("#{File.dirname(__FILE__)}/fixtures/raw_email_with_nested_attachment") + mail = TMail::Mail.parse(fixture) + assert_equal 2, mail.attachments.length + assert_equal "image/png", mail.attachments.first.content_type + assert_equal 1902, mail.attachments.first.length + assert_equal "application/pkcs7-signature", mail.attachments.last.content_type + end +end diff --git a/presidents/vendor/rails/actionmailer/test/url_test.rb b/presidents/vendor/rails/actionmailer/test/url_test.rb new file mode 100644 index 0000000..71286bd --- /dev/null +++ b/presidents/vendor/rails/actionmailer/test/url_test.rb @@ -0,0 +1,76 @@ +require 'abstract_unit' + +class TestMailer < ActionMailer::Base + + default_url_options[:host] = 'www.basecamphq.com' + + def signed_up_with_url(recipient) + @recipients = recipient + @subject = "[Signed up] Welcome #{recipient}" + @from = "system@loudthinking.com" + @sent_on = Time.local(2004, 12, 12) + + @body["recipient"] = recipient + @body["welcome_url"] = url_for :host => "example.com", :controller => "welcome", :action => "greeting" + end + + class < charset } + end + mail + end + + def setup + set_delivery_method :test + ActionMailer::Base.perform_deliveries = true + ActionMailer::Base.deliveries = [] + + @recipient = 'test@localhost' + end + + def teardown + restore_delivery_method + end + + def test_signed_up_with_url + ActionController::Routing::Routes.draw do |map| + map.connect ':controller/:action/:id' + map.welcome 'welcome', :controller=>"foo", :action=>"bar" + end + + expected = new_mail + expected.to = @recipient + expected.subject = "[Signed up] Welcome #{@recipient}" + expected.body = "Hello there, \n\nMr. #{@recipient}. Please see our greeting at http://example.com/welcome/greeting http://www.basecamphq.com/welcome\n\n\"Somelogo\"" + expected.from = "system@loudthinking.com" + expected.date = Time.local(2004, 12, 12) + + created = nil + assert_nothing_raised { created = TestMailer.create_signed_up_with_url(@recipient) } + assert_not_nil created + assert_equal expected.encoded, created.encoded + + assert_nothing_raised { TestMailer.deliver_signed_up_with_url(@recipient) } + assert_not_nil ActionMailer::Base.deliveries.first + assert_equal expected.encoded, ActionMailer::Base.deliveries.first.encoded + end +end diff --git a/presidents/vendor/rails/actionpack/CHANGELOG b/presidents/vendor/rails/actionpack/CHANGELOG new file mode 100644 index 0000000..94894c0 --- /dev/null +++ b/presidents/vendor/rails/actionpack/CHANGELOG @@ -0,0 +1,5172 @@ +*2.3.4 (September 4, 2009)* + +* Sanitize multibyte strings before escaping them with escape_once. CVE-2009-3009 + +* Introduce grouped_collection_select helper. #1249 [Dan Codeape, Erik Ostrom] + +* Ruby 1.9: fix Content-Length for multibyte send_data streaming. #2661 [Sava Chankov] + + +*2.3.3 (July 12, 2009)* + +* Fixed that TestResponse.cookies was returning cookies unescaped #1867 [Doug McInnes] + + +*2.3.2 [Final] (March 15, 2009)* + +* Fixed that redirection would just log the options, not the final url (which lead to "Redirected to #") [DHH] + +* Don't check authenticity tokens for any AJAX requests [Ross Kaffenberger/Bryan Helmkamp] + +* Added ability to pass in :public => true to fresh_when, stale?, and expires_in to make the request proxy cachable #2095 [Gregg Pollack] + +* Fixed that passing a custom form builder would be forwarded to nested fields_for calls #2023 [Eloy Duran/Nate Wiger] + +* Form option helpers now support disabled option tags and the use of lambdas for selecting/disabling option tags from collections #837 [Tekin] + +* Added partial scoping to TranslationHelper#translate, so if you call translate(".foo") from the people/index.html.erb template, you'll actually be calling I18n.translate("people.index.foo") [DHH] + +* Fix a syntax error in current_page?() that was prevent matches against URL's with multiple query parameters #1385, #1868 [chris finne/Andrew White] + +* Added localized rescue template when I18n.locale is set (ex: public/404.da.html) #1835 [José Valim] + +* Make the form_for and fields_for helpers support the new Active Record nested update options. #1202 [Eloy Duran] + + <% form_for @person do |person_form| %> + ... + <% person_form.fields_for :projects do |project_fields| %> + <% if project_fields.object.active? %> + Name: <%= project_fields.text_field :name %> + <% end %> + <% end %> + <% end %> + + +* Added grouped_options_for_select helper method for wrapping option tags in optgroups. #977 [Jon Crawford] + +* Implement HTTP Digest authentication. #1230 [Gregg Kellogg, Pratik Naik] Example : + + class DummyDigestController < ActionController::Base + USERS = { "lifo" => 'world' } + + before_filter :authenticate + + def index + render :text => "Hello Secret" + end + + private + + def authenticate + authenticate_or_request_with_http_digest("Super Secret") do |username| + # Return the user's password + USERS[username] + end + end + end + +* Improved i18n support for the number_to_human_size helper. Changes the storage_units translation data; update your translations accordingly. #1634 [Yaroslav Markin] + storage_units: + # %u is the storage unit, %n is the number (default: 2 MB) + format: "%n %u" + units: + byte: + one: "Byte" + other: "Bytes" + kb: "KB" + mb: "MB" + gb: "GB" + tb: "TB" + +* Added :silence option to BenchmarkHelper#benchmark and turned log_level into a hash parameter and deprecated the old use [DHH] + +* Fixed the AssetTagHelper cache to use the computed asset host as part of the cache key instead of just assuming the its a string #1299 [DHH] + +* Make ActionController#render(string) work as a shortcut for render :file/:template/:action => string. [#1435] [Pratik Naik] Examples: + + # Instead of render(:action => 'other_action') + render('other_action') # argument has no '/' + render(:other_action) + + # Instead of render(:template => 'controller/action') + render('controller/action') # argument must not begin with a '/', but contain a '/' + + # Instead of render(:file => '/Users/lifo/home.html.erb') + render('/Users/lifo/home.html.erb') # argument must begin with a '/' + +* Add :prompt option to date/time select helpers. #561 [Sam Oliver] + +* Fixed that send_file shouldn't set an etag #1578 [Hongli Lai] + +* Allow users to opt out of the spoofing checks in Request#remote_ip. Useful for sites whose traffic regularly triggers false positives. [Darren Boyd] + +* Deprecated formatted_polymorphic_url. [Jeremy Kemper] + +* Added the option to declare an asset_host as an object that responds to call (see http://github.com/dhh/asset-hosting-with-minimum-ssl for an example) [David Heinemeier Hansson] + +* Added support for multiple routes.rb files (useful for plugin engines). This also means that draw will no longer clear the route set, you have to do that by hand (shouldn't make a difference to you unless you're doing some funky stuff) [David Heinemeier Hansson] + +* Dropped formatted_* routes in favor of just passing in :format as an option. This cuts resource routes generation in half #1359 [aaronbatalion] + +* Remove support for old double-encoded cookies from the cookie store. These values haven't been generated since before 2.1.0, and any users who have visited the app in the intervening 6 months will have had their cookie upgraded. [Michael Koziarski] + +* Allow helpers directory to be overridden via ActionController::Base.helpers_dir #1424 [Sam Pohlenz] + +* Remove deprecated ActionController::Base#assign_default_content_type_and_charset + +* Changed the default of ActionView#render to assume partials instead of files when not given an options hash [David Heinemeier Hansson]. Examples: + + # Instead of <%= render :partial => "account" %> + <%= render "account" %> + + # Instead of <%= render :partial => "account", :locals => { :account => @buyer } %> + <%= render "account", :account => @buyer %> + + # @account is an Account instance, so it uses the RecordIdentifier to replace + # <%= render :partial => "accounts/account", :locals => { :account => @account } %> + <%= render(@account) %> + + # @posts is an array of Post instances, so it uses the RecordIdentifier to replace + # <%= render :partial => "posts/post", :collection => @posts %> + <%= render(@posts) %> + +* Remove deprecated render_component. Please use the plugin from http://github.com/rails/render_component/tree/master [Pratik Naik] + +* Fixed RedCloth and BlueCloth shouldn't preload. Instead just assume that they're available if you want to use textilize and markdown and let autoload require them [David Heinemeier Hansson] + + +*2.2.2 (November 21st, 2008)* + +* I18n: translate number_to_human_size. Add storage_units: [Bytes, KB, MB, GB, TB] to your translations. #1448 [Yaroslav Markin] + +* Restore backwards compatible functionality for setting relative_url_root. Include deprecation + +* Switched the CSRF module to use the request content type to decide if the request is forgeable. #1145 [Jeff Cohen] + +* Added :only and :except to map.resources to let people cut down on the number of redundant routes in an application. Typically only useful for huge routesets. #1215 [Tom Stuart] + + map.resources :products, :only => :show do |product| + product.resources :images, :except => :destroy + end + +* Added render :js for people who want to render inline JavaScript replies without using RJS [David Heinemeier Hansson] + +* Fixed that polymorphic_url should compact given array #1317 [hiroshi] + +* Fixed the sanitize helper to avoid double escaping already properly escaped entities #683 [antonmos/Ryan McGeary] + +* Fixed that FormTagHelper generated illegal html if name contained square brackets #1238 [Vladimir Dobriakov] + +* Fix regression bug that made date_select and datetime_select raise a Null Pointer Exception when a nil date/datetime was passed and only month and year were displayed #1289 [Bernardo Padua/Tor Erik] + +* Simplified the logging format for parameters (don't include controller, action, and format as duplicates) [David Heinemeier Hansson] + +* Remove the logging of the Session ID when the session store is CookieStore [David Heinemeier Hansson] + +* Fixed regex in redirect_to to fully support URI schemes #1247 [Seth Fitzsimmons] + +* Fixed bug with asset timestamping when using relative_url_root #1265 [Joe Goldwasser] + + +*2.2.0 [RC1] (October 24th, 2008)* + +* Fix incorrect closing CDATA delimiter and that HTML::Node.parse would blow up on unclosed CDATA sections [packagethief] + +* Added stale? and fresh_when methods to provide a layer of abstraction above request.fresh? and friends [David Heinemeier Hansson]. Example: + + class ArticlesController < ApplicationController + def show_with_respond_to_block + @article = Article.find(params[:id]) + + + # If the request sends headers that differs from the options provided to stale?, then + # the request is indeed stale and the respond_to block is triggered (and the options + # to the stale? call is set on the response). + # + # If the request headers match, then the request is fresh and the respond_to block is + # not triggered. Instead the default render will occur, which will check the last-modified + # and etag headers and conclude that it only needs to send a "304 Not Modified" instead + # of rendering the template. + if stale?(:last_modified => @article.published_at.utc, :etag => @article) + respond_to do |wants| + # normal response processing + end + end + end + + def show_with_implied_render + @article = Article.find(params[:id]) + + # Sets the response headers and checks them against the request, if the request is stale + # (i.e. no match of either etag or last-modified), then the default render of the template happens. + # If the request is fresh, then the default render will return a "304 Not Modified" + # instead of rendering the template. + fresh_when(:last_modified => @article.published_at.utc, :etag => @article) + end + end + + +* Added inline builder yield to atom_feed_helper tags where appropriate [Sam Ruby]. Example: + + entry.summary :type => 'xhtml' do |xhtml| + xhtml.p pluralize(order.line_items.count, "line item") + xhtml.p "Shipped to #{order.address}" + xhtml.p "Paid by #{order.pay_type}" + end + +* Make PrototypeHelper#submit_to_remote a wrapper around PrototypeHelper#button_to_remote. [Tarmo Tänav] + +* Set HttpOnly for the cookie session store's cookie. #1046 + +* Added FormTagHelper#image_submit_tag confirm option #784 [Alastair Brunton] + +* Fixed FormTagHelper#submit_tag with :disable_with option wouldn't submit the button's value when was clicked #633 [Jose Fernandez] + +* Stopped logging template compiles as it only clogs up the log [David Heinemeier Hansson] + +* Changed the X-Runtime header to report in milliseconds [David Heinemeier Hansson] + +* Changed BenchmarkHelper#benchmark to report in milliseconds [David Heinemeier Hansson] + +* Changed logging format to be millisecond based and skip misleading stats [David Heinemeier Hansson]. Went from: + + Completed in 0.10000 (4 reqs/sec) | Rendering: 0.04000 (40%) | DB: 0.00400 (4%) | 200 OK [http://example.com] + + ...to: + + Completed in 100ms (View: 40, DB: 4) | 200 OK [http://example.com] + +* Add support for shallow nesting of routes. #838 [S. Brent Faulkner] + + Example : + + map.resources :users, :shallow => true do |user| + user.resources :posts + end + + - GET /users/1/posts (maps to PostsController#index action as usual) + named route "user_posts" is added as usual. + + - GET /posts/2 (maps to PostsController#show action as if it were not nested) + Additionally, named route "post" is added too. + +* Added button_to_remote helper. #3641 [Donald Piret, Tarmo Tänav] + +* Deprecate render_component. Please use render_component plugin from http://github.com/rails/render_component/tree/master [Pratik Naik] + +* Routes may be restricted to lists of HTTP methods instead of a single method or :any. #407 [Brennan Dunn, Gaius Centus Novus] + map.resource :posts, :collection => { :search => [:get, :post] } + map.session 'session', :requirements => { :method => [:get, :post, :delete] } + +* Deprecated implicit local assignments when rendering partials [Josh Peek] + +* Introduce current_cycle helper method to return the current value without bumping the cycle. #417 [Ken Collins] + +* Allow polymorphic_url helper to take url options. #880 [Tarmo Tänav] + +* Switched integration test runner to use Rack processor instead of CGI [Josh Peek] + +* Made AbstractRequest.if_modified_sense return nil if the header could not be parsed [Jamis Buck] + +* Added back ActionController::Base.allow_concurrency flag [Josh Peek] + +* AbstractRequest.relative_url_root is no longer automatically configured by a HTTP header. It can now be set in your configuration environment with config.action_controller.relative_url_root [Josh Peek] + +* Update Prototype to 1.6.0.2 #599 [Patrick Joyce] + +* Conditional GET utility methods. [Jeremy Kemper] + response.last_modified = @post.updated_at + response.etag = [:admin, @post, current_user] + + if request.fresh?(response) + head :not_modified + else + # render ... + end + +* All 2xx requests are considered successful [Josh Peek] + +* Fixed that AssetTagHelper#compute_public_path shouldn't cache the asset_host along with the source or per-request proc's won't run [David Heinemeier Hansson] + +* Removed config.action_view.cache_template_loading, use config.cache_classes instead [Josh Peek] + +* Get buffer for fragment cache from template's @output_buffer [Josh Peek] + +* Set config.action_view.warn_cache_misses = true to receive a warning if you perform an action that results in an expensive disk operation that could be cached [Josh Peek] + +* Refactor template preloading. New abstractions include Renderable mixins and a refactored Template class [Josh Peek] + +* Changed ActionView::TemplateHandler#render API method signature to render(template, local_assigns = {}) [Josh Peek] + +* Changed PrototypeHelper#submit_to_remote to PrototypeHelper#button_to_remote to stay consistent with link_to_remote (submit_to_remote still works as an alias) #8994 [clemens] + +* Add :recursive option to javascript_include_tag and stylesheet_link_tag to be used along with :all. #480 [Damian Janowski] + +* Allow users to disable the use of the Accept header [Michael Koziarski] + + The accept header is poorly implemented by browsers and causes strange + errors when used on public sites where crawlers make requests too. You + can use formatted urls (e.g. /people/1.xml) to support API clients in a + much simpler way. + + To disable the header you need to set: + + config.action_controller.use_accept_header = false + +* Do not stat template files in production mode before rendering. You will no longer be able to modify templates in production mode without restarting the server [Josh Peek] + +* Deprecated TemplateHandler line offset [Josh Peek] + +* Allow caches_action to accept cache store options. #416. [José Valim]. Example: + + caches_action :index, :redirected, :if => Proc.new { |c| !c.request.format.json? }, :expires_in => 1.hour + +* Remove define_javascript_functions, javascript_include_tag and friends are far superior. [Michael Koziarski] + +* Deprecate :use_full_path render option. The supplying the option no longer has an effect [Josh Peek] + +* Add :as option to render a collection of partials with a custom local variable name. #509 [Simon Jefford, Pratik Naik] + + render :partial => 'other_people', :collection => @people, :as => :person + + This will let you access objects of @people as 'person' local variable inside 'other_people' partial template. + +* time_zone_select: support for regexp matching of priority zones. Resolves #195 [Ernie Miller] + +* Made ActionView::Base#render_file private [Josh Peek] + +* Refactor and simplify the implementation of assert_redirected_to. Arguments are now normalised relative to the controller being tested, not the root of the application. [Michael Koziarski] + + This could cause some erroneous test failures if you were redirecting between controllers + in different namespaces and wrote your assertions relative to the root of the application. + +* Remove follow_redirect from controller functional tests. + + If you want to follow redirects you can use integration tests. The functional test + version was only useful if you were using redirect_to :id=>... + +* Fix polymorphic_url with singleton resources. #461 [Tammer Saleh] + +* Replaced TemplateFinder abstraction with ViewLoadPaths [Josh Peek] + +* Added block-call style to link_to [Sam Stephenson/David Heinemeier Hansson]. Example: + + <% link_to(@profile) do %> + <%= @profile.name %> -- Check it out!! + <% end %> + +* Performance: integration test benchmarking and profiling. [Jeremy Kemper] + +* Make caching more aware of mime types. Ensure request format is not considered while expiring cache. [Jonathan del Strother] + +* Drop ActionController::Base.allow_concurrency flag [Josh Peek] + +* More efficient concat and capture helpers. Remove ActionView::Base.erb_variable. [Jeremy Kemper] + +* Added page.reload functionality. Resolves #277. [Sean Huber] + +* Fixed Request#remote_ip to only raise hell if the HTTP_CLIENT_IP and HTTP_X_FORWARDED_FOR doesn't match (not just if they're both present) [Mark Imbriaco, Bradford Folkens] + +* Allow caches_action to accept a layout option [José Valim] + +* Added Rack processor [Ezra Zygmuntowicz, Josh Peek] + + +*2.1.0 (May 31st, 2008)* + +* InstanceTag#default_time_from_options overflows to DateTime [Geoff Buesing] + +* Fixed that forgery protection can be used without session tracking (Peter Jones) [#139] + +* Added session(:on) to turn session management back on in a controller subclass if the superclass turned it off (Peter Jones) [#136] + +* Change the request forgery protection to go by Content-Type instead of request.format so that you can't bypass it by POSTing to "#{request.uri}.xml" [Rick Olson] +* InstanceTag#default_time_from_options with hash args uses Time.current as default; respects hash settings when time falls in system local spring DST gap [Geoff Buesing] + +* select_date defaults to Time.zone.today when config.time_zone is set [Geoff Buesing] + +* Fixed that TextHelper#text_field would corrypt when raw HTML was used as the value (mchenryc, Kevin Glowacz) [#80] + +* Added ActionController::TestCase#rescue_action_in_public! to control whether the action under test should use the regular rescue_action path instead of simply raising the exception inline (great for error testing) [David Heinemeier Hansson] + +* Reduce number of instance variables being copied from controller to view. [Pratik Naik] + +* select_datetime and select_time default to Time.zone.now when config.time_zone is set [Geoff Buesing] + +* datetime_select defaults to Time.zone.now when config.time_zone is set [Geoff Buesing] + +* Remove ActionController::Base#view_controller_internals flag. [Pratik Naik] + +* Add conditional options to caches_page method. [Paul Horsfall] + +* Move missing template logic to ActionView. [Pratik Naik] + +* Introduce ActionView::InlineTemplate class. [Pratik Naik] + +* Automatically parse posted JSON content for Mime::JSON requests. [Rick Olson] + + POST /posts + {"post": {"title": "Breaking News"}} + + def create + @post = Post.create params[:post] + # ... + end + +* add json_escape ERB util to escape html entities in json strings that are output in HTML pages. [Rick Olson] + +* Provide a helper proxy to access helper methods from outside views. Closes #10839 [Josh Peek] + e.g. ApplicationController.helpers.simple_format(text) + +* Improve documentation. [Xavier Noria, leethal, jerome] + +* Ensure RJS redirect_to doesn't html-escapes string argument. Closes #8546 [Josh Peek, eventualbuddha, Pratik Naik] + +* Support render :partial => collection of heterogeneous elements. #11491 [Zach Dennis] + +* Avoid remote_ip spoofing. [Brian Candler] + +* Added support for regexp flags like ignoring case in the :requirements part of routes declarations #11421 [NeilW] + +* Fixed that ActionController::Base#read_multipart would fail if boundary was exactly 10240 bytes #10886 [ariejan] + +* Fixed HTML::Tokenizer (used in sanitize helper) didn't handle unclosed CDATA tags #10071 [esad, packagethief] + +* Improve documentation. [Ryan Bigg, Jan De Poorter, Cheah Chu Yeow, Xavier Shay, Jack Danger Canty, Emilio Tagua, Xavier Noria, Sunny Ripert] + +* Fixed that FormHelper#radio_button would produce invalid ids #11298 [harlancrystal] + +* Added :confirm option to submit_tag #11415 [Emilio Tagua] + +* Fixed NumberHelper#number_with_precision to properly round in a way that works equally on Mac, Windows, Linux (closes #11409, #8275, #10090, #8027) [zhangyuanyi] + +* Allow the #simple_format text_helper to take an html_options hash for each paragraph. #2448 [François Beausoleil, Chris O'Sullivan] + +* Fix regression from filter refactoring where re-adding a skipped filter resulted in it being called twice. [Rick Olson] + +* Refactor filters to use Active Support callbacks. #11235 [Josh Peek] + +* Fixed that polymorphic routes would modify the input array #11363 [thomas.lee] + +* Added :format option to NumberHelper#number_to_currency to enable better localization support #11149 [lylo] + +* Fixed that TextHelper#excerpt would include one character too many #11268 [Irfy] + +* Fix more obscure nested parameter hash parsing bug. #10797 [thomas.lee] + +* Added ActionView::Helpers::register_javascript/stylesheet_expansion to make it easier for plugin developers to inject multiple assets. #10350 [lotswholetime] + +* Fix nested parameter hash parsing bug. #10797 [thomas.lee] + +* Allow using named routes in ActionController::TestCase before any request has been made. Closes #11273 [Eloy Duran] + +* Fixed that sweepers defined by cache_sweeper will be added regardless of the perform_caching setting. Instead, control whether the sweeper should be run with the perform_caching setting. This makes testing easier when you want to turn perform_caching on/off [David Heinemeier Hansson] + +* Make MimeResponds::Responder#any work without explicit types. Closes #11140 [jaw6] + +* Better error message for type conflicts when parsing params. Closes #7962 [spicycode, matt] + +* Remove unused ActionController::Base.template_class. Closes #10787 [Pratik Naik] + +* Moved template handlers related code from ActionView::Base to ActionView::Template. [Pratik Naik] + +* Tests for div_for and content_tag_for helpers. Closes #11223 [Chris O'Sullivan] + +* Allow file uploads in Integration Tests. Closes #11091 [RubyRedRick] + +* Refactor partial rendering into a PartialTemplate class. [Pratik Naik] + +* Added that requests with JavaScript as the priority mime type in the accept header and no format extension in the parameters will be treated as though their format was :js when it comes to determining which template to render. This makes it possible for JS requests to automatically render action.js.rjs files without an explicit respond_to block [David Heinemeier Hansson] + +* Tests for distance_of_time_in_words with TimeWithZone instances. Closes #10914 [Ernesto Jimenez] + +* Remove support for multivalued (e.g., '&'-delimited) cookies. [Jamis Buck] + +* Fix problem with render :partial collections, records, and locals. #11057 [lotswholetime] + +* Added support for naming concrete classes in sweeper declarations [David Heinemeier Hansson] + +* Remove ERB trim variables from trace template in case ActionView::Base.erb_trim_mode is changed in the application. #10098 [Tim Pope, Chris Kampmeier] + +* Fix typo in form_helper documentation. #10650 [Xavier Shay, Chris Kampmeier] + +* Fix bug with setting Request#format= after the getter has cached the value. #10889 [cch1] + +* Correct inconsistencies in RequestForgeryProtection docs. #11032 [Mislav Marohnić] + +* Introduce a Template class to ActionView. #11024 [Pratik Naik] + +* Introduce the :index option for form_for and fields_for to simplify multi-model forms (see http://railscasts.com/episodes/75). #9883 [rmm5t] + +* Introduce map.resources :cards, :as => 'tarjetas' to use a custom resource name in the URL: cards_path == '/tarjetas'. #10578 [blj] + +* TestSession supports indifferent access. #7372 [tamc, Arsen7, mhackett, julik, jean.helou] + +* Make assert_routing aware of the HTTP method used. #8039 [mpalmer] + e.g. assert_routing({ :method => 'put', :path => '/product/321' }, { :controller => "product", :action => "update", :id => "321" }) + +* Make map.root accept a single symbol as an argument to declare an alias. #10818 [bscofield] + + e.g. map.dashboard '/dashboard', :controller=>'dashboard' + map.root :dashboard + +* Handle corner case with image_tag when passed 'messed up' image names. #9018 [Duncan Beevers, mpalmer] + +* Add label_tag helper for generating elements. #10802 [DefV] + +* Introduce TemplateFinder to handle view paths and lookups. #10800 [Pratik Naik] + +* Performance: optimize route recognition. Large speedup for apps with many resource routes. #10835 [oleganza] + +* Make render :partial recognise form builders and use the _form partial. #10814 [Damian Janowski] + +* Allow users to declare other namespaces when using the atom feed helpers. #10304 [david.calavera] + +* Introduce send_file :x_sendfile => true to send an X-Sendfile response header. [Jeremy Kemper] + +* Fixed ActionView::Helpers::ActiveRecordHelper::form for when protect_from_forgery is used #10739 [Jeremy Evans] + +* Provide nicer access to HTTP Headers. Instead of request.env["HTTP_REFERRER"] you can now use request.headers["Referrer"]. [Michael Koziarski] + +* UrlWriter respects relative_url_root. #10748 [Cheah Chu Yeow] + +* The asset_host block takes the controller request as an optional second argument. Example: use a single asset host for SSL requests. #10549 [Cheah Chu Yeow, Peter B, Tom Taylor] + +* Support render :text => nil. #6684 [tjennings, PotatoSalad, Cheah Chu Yeow] + +* assert_response failures include the exception message. #10688 [Seth Rasmussen] + +* All fragment cache keys are now by default prefixed with the "views/" namespace [David Heinemeier Hansson] + +* Moved the caching stores from ActionController::Caching::Fragments::* to ActiveSupport::Cache::*. If you're explicitly referring to a store, like ActionController::Caching::Fragments::MemoryStore, you need to update that reference with ActiveSupport::Cache::MemoryStore [David Heinemeier Hansson] + +* Deprecated ActionController::Base.fragment_cache_store for ActionController::Base.cache_store [David Heinemeier Hansson] + +* Made fragment caching in views work for rjs and builder as well #6642 [Dee Zsombor] + +* Fixed rendering of partials with layout when done from site layout #9209 [antramm] + +* Fix atom_feed_helper to comply with the atom spec. Closes #10672 [Xavier Shay] + + * The tags created do not contain a date (http://feedvalidator.org/docs/error/InvalidTAG.html) + * IDs are not guaranteed unique + * A default self link was not provided, contrary to the documentation + * NOTE: This changes tags for existing atom entries, but at least they validate now. + +* Correct indentation in tests. Closes #10671 [Luca Guidi] + +* Fix that auto_link looks for ='s in url paths (Amazon urls have them). Closes #10640 [Brad Greenlee] + +* Ensure that test case setup is run even if overridden. #10382 [Josh Peek] + +* Fix HTML Sanitizer to allow trailing spaces in CSS style attributes. Closes #10566 [wesley.moxam] + +* Add :default option to time_zone_select. #10590 [Matt Aimonetti] + + +*2.0.2* (December 16th, 2007) + +* Added delete_via_redirect and put_via_redirect to integration testing #10497 [philodespotos] + +* Allow headers['Accept'] to be set by hand when calling xml_http_request #10461 [BMorearty] + +* Added OPTIONS to list of default accepted HTTP methods #10449 [holoway] + +* Added option to pass proc to ActionController::Base.asset_host for maximum configurability #10521 [Cheah Chu Yeow]. Example: + + ActionController::Base.asset_host = Proc.new { |source| + if source.starts_with?('/images') + "http://images.example.com" + else + "http://assets.example.com" + end + } + +* Fixed that ActionView#file_exists? would be incorrect if @first_render is set #10569 [dbussink] + +* Added that Array#to_param calls to_param on all it's elements #10473 [brandon] + +* Ensure asset cache directories are automatically created. #10337 [Josh Peek, Cheah Chu Yeow] + +* render :xml and :json preserve custom content types. #10388 [jmettraux, Cheah Chu Yeow] + +* Refactor Action View template handlers. #10437, #10455 [Josh Peek] + +* Fix DoubleRenderError message and leave out mention of returning false from filters. Closes #10380 [Frederick Cheung] + +* Clean up some cruft around ActionController::Base#head. Closes #10417 [ssoroka] + + +*2.0.1* (December 7th, 2007) + +* Fixed send_file/binary_content for testing #8044 [tolsen] + +* When a NonInferrableControllerError is raised, make the proposed fix clearer in the error message. Closes #10199 [Jack Danger Canty] + +* Update Prototype to 1.6.0.1. [sam] + +* Update script.aculo.us to 1.8.0.1. [madrobby] + +* Add 'disabled' attribute to