v 0.8.3 - fix a bug to allow sorting of computed attributes on sets that include nil values v 0.8.2 - fix a bug that prevents enumerable sets from being filtered down to empty sets v 0.8.1 - fix a small bug when doing ARel filtering against binary fields - add the ARel operators to the README - update the ARel operator spec v 0.8.0 - simplify the `inspect` method for ActiveSet instances, only showing the instructions - split the strategy files from the operation files - update how ActiveRecord filtering works + instruction operators must now be ARel methods, not SQL operators - memoize the `transform_to_sortable_numeric` method v 0.7.1 - Fix a small bug with Enumberable filtering of metaprogrammatically defined getter methods v 0.7.0 - another rewrite from the ground up - allow each operation to exist and function in its own way and in its own context - only write tests against the public interface of the ActiveSet class, not any internal classes - attempt a proper and complete sorting implementation that offers multi-dimensional, multi-directional sorting for either ActiveRecord or Enumerable sets v 0.6.5 - Fix the ActiveRecord filtering adapter to use the correct operator (=) for Oracle WHERE clauses v 0.6.4 - Add multi-column sorting for ActiveRecord collections - Fix the ActiveRecord `attribute_model` method to always return the class, and not an ActiveRecord::Relation object v 0.6.3 - Fix a typo in the CSV transform adapter v 0.6.2 - ensure that the default paginate instructions are saved into the ActiveSet#instructions attr v 0.6.1 - fix bug with ActiveSet#method_missing blowing up when the delegated method properly returned a false Boolean v 0.6.0 - rewrite from the ground up v 0.5.8 - Avoid a possible error path where relations with a '#union' would blow up when using '#merge' because the '#order' operation was being built with the relation and not with the relation's base class v 0.5.7 - Fix bug where filtering wasn't updating the new ActiveSet instances #total_count - Add that this gem now does transformations to the README v 0.5.6 - Ensure that the default value for instructions when building filtering queries is '=' and not '==' - Allow the default value for the instructions keypath's operator to be passed in v 0.5.5 - In the ActiveRecord adapter for pagination, avoid an odd low-level AR bug when counting complex queries by using a simple Enumerable `length` call instead of the AR `count` method v 0.5.4 - Ensure that Instructions wrap a Hash with indifferent access - Wire up both adapters for the PaginateProcessor - Fix bug where ActiveRecord Paginator didn’t offset pages correctly v 0.5.3 - Extract logic for creating new ActiveSet instance after an operation into separate method - Ensure that the instructions logged for the paginate operation handle defaults v 0.5.2 - Add an ActiveRecord adapter for the PaginateProcessor - Update the EnumerableAdapter for the PaginateProcessor to more consistently handle edgecases When asking for a page number that is outside of the meaningful range (e.g. page 10 of a collection that would only have 5 meaningful pages), should return an empty collection. - Ensure that the built up intstruction and the base size of the original set are readable from any chained instance of ActiveSet v 0.5.1 - Fix bug where `transform` method tried to return a new instance of ActiveSet. It should simply returned the transformed value. - Fail if tranformer can’t handle passed format - Fix bug where Paginator wasn’t returning the proper result - Ensure the `String#titleize` method is available for the Instruction::Entry v 0.5.0 - Ensure the titleized method is delegated from the Instructions::Entry class - Make the Instructions Keypath class more resilient against nils - Add a new Transfrom processor This allows users to transform a dataset into (right now only) CSV using hash column definitions of the sort: ``` [ { key: ‘Explit Column Header’, value: ‘path.to.resource.from.dataset.instance’ }, { value: ->(item) { mutate(item.attribute(=) } } ] ``` v 0.4.4 - Ensure that the ActiveRecord filterer can handle Rails4 AR::Relations not responding to :methods on the underlying class - Test scopes defined using the helper but also as simply class methods v 0.4.3 - Properly specify the version dependency on ActiveSupport v 0.4.2 - Ensure that the `transform_keys` method is available for Hashes by bringing in the ActiveSupport module - Fix bug in handling string keypaths passed in from Processors - Set the Ruby version for this project v 0.4.1 - Soften the constraint on the ActiveSupport dependency - Don't require ActiveSupport methods that are no longer used in the processors - Add a `titleized` method to the KeyPath object v 0.4.0 - fix bug with filtering against falsey values - remove hack of casting DateTime and Time objects to Integer for filtering - add support for ActiveRecord :time columns - ensure that an adapter is only run if necessary for a particular instruction; that is, try to process the instruction with the first adapter, if it succeeds, don't run any other adapters, if it doesn't, try the next adapter, etc. - allow ActiveRecord sets to be filtered by a scope method v 0.3.1 - Implement an Instructions object layer for handling the hashes passed into Processors v 0.3.0 - remove the typecasting functionality - bug fixes - improved specs v 0.2.0 - allows for filtering and sorting enumerable collections via associated attributes v 0.1.0 - initial version - allows for filtering, sorting, and pagination enumerable collections via direct attributes