- It was only ignoring attributes defined as symbols.
- It now ignores when attributes are either defined as symbols or Hashes.
- Consolidates calculation to be shared when determining if changed and not ignored.
Resolves#1240
* Drop support for ruby 2.3
* Docs: appraisal
* Drop support for rails <= 5.1
* Upgrade rubocop to 0.80
* Remove defunct code for EoL rails versions
* Rails 5+ style controller test params keyword
* Squash me
Co-Authored-By: Todd Lynam <TLynam@gmail.com>
Co-authored-by: Todd Lynam <TLynam@gmail.com>
Sean's approach to dropping/re-adding the column during the test run
worked, but it had a few disadvantages:
1. it required a `before(:all)` callback, which is frowned upon by rubocop-rspec
2. more importantly, it could have prevented us from using test parallelization
in the future
3. least importantly, it produced annoying output in the middle of the test run
This PR addresses #1015
Starting from Rails version 5.0.2 the default serializer of PostgreSQL columns returns an ActiveRecord::ConnectionAdapters::PostgreSQL::OID::Array object instead of a string. This new object is not suitable for JSON encoding and breaks versioning of any array fields backed by Postgres.
Whenever a PostgreSQL array is used, instead of asking Active Record for a serializer we introduce our own, which simply returns the underlying array without any modifications.
When a record is inserted into the `versions` table, it is given an `item_type` like `Foo::Bar`, but the association reification queries were searching for an `item_type` like `::Foo::Bar`.
- Convert serializers/mixin_json_test.rb to rspec
- Convert functional/thread_safety_test.rb to rspec
- Convert functional/controller_test.rb to rspec
- Move the dummy app from test to spec, delete test dir