v 0.8.1 - add a case-insensitive filtering/sorting option (`/i/`) - standardize how filtering by class scopes behaves + only collection-returning class methods are handled + scopes defined on computed associations aren't handled - refactor parts of the strategy implemention layer + create generalize "set instruction" classes for ActiveRecord and Enumerable strategies + handle default operators in the strategy layer, not the instruction layer - refactor parts of the instruction implementation layer + memoize instruction getters to avoid recomputing on access - refactor specs + update filtering by data types when using an invalid field test + remove case-insensitive sorting example + simplify the sorted collection expectation + add some helper methods for generating unique factory data + print a detailed report of the state data on spec failure + update the filtering request specs to run more of then, but still running random subsets v 0.8.0 - merge ActiveSet and ActionSet into a monorepo - merge and overhaul the specs + run a random subset of request specs to test ActionSet wiring to ActiveSet + polish the ActiveSet specs - update the scopes filtering specs to be more generalized and exhaustive - get all new features/fixes from current ActiveSet + fix a bug where ActiveRecord sorting didn't treat NULL values in the same way as Enumerable sorting * where NULL values are sorted as if larger than any non-null value + fix a bug with ActiveRecord scope filtering * if we try to use a class method scope that returns something other than an ActiveRecord::Relation + fix a bug in Enumerable class method filtering when method returns object, not array + fix a bug transforming Date objects into sortable integers to ensure UTC + fix a bug to allow sorting of computed attributes on sets that include nil values + fix a bug that prevents enumerable sets from being filtered down to empty sets - fix Rubocop offenses (safely) - use Bundler version 2.x v 0.7.0 - overhaul the specs + update the data model to be more extensive and expressive + update to the new FactoryBot gem + write programmatic specs for extensive coverage + ensure factories don't have duplicate attributes + add specs for ARel operators in filtering - update the README - add another exception to the Ruby typcaster (`to_onum`) - update dependency on ActiveSet to 0.8.x v 0.6.0 - Refactor to work with versions 0.7.x of ActiveSet - Move and rename the typecasting class for attribute values v 0.5.4 - Allow the `form_for_object_from_param` helper to accept defaults hash v 0.5.3 - allow attributes to be passed to the `sort_link_for` and `pagination_links_for` helper methods v 0.5.2 - Fix the pagination total_pages_for helper to properly handle the case when the set has no members v 0.5.1 - Fix the sorting path helper to only ever allow single-vector sorting - Fix the pagination description helper to have proper HTML spacing - Add an `export_path_for(format)` helper for generating a path v 0.5.0 - Replace the use of `@filters` with the helper method `form_for_object_from_param(:filter)` - Fix the pagination and sorting path helper methods to ensure they don't remove pre-existing params - Rearrange the pagination helpers into a loose collection of micro-helpers v 0.4.2 - Ensure that the sort_link_for helper method can work with symbol attributes v 0.4.1 - Fix the helper methods to work properly with the new version of ActiveSet v 0.4.0 - Update to work with the new version of ActiveSet v 0.3.5 - Don't rely on an instance variable for the `filter_structure` - Use the `ensure_active_set` method inside of `process_set` v 0.3.4 - Ensure that the sort_link_for helper method make the title param optional - Ensure that the view helpers are properly included into the ActionView context v 0.3.3 - Ensure the page link url uses a deep merge to retain any previously set paginate params v 0.3.2 - Ensure that we always call ActiveSet#paginate so that even default pagination instructions are inserted into the ActiveSet instace v 0.3.1 - Change the name of the view helper method from `sort_link` to `sort_link_for` - Change the name of the view helper method from `paginate` to `pagination_links_for` v 0.3.0 - Add a `paginate_set` method that is a part of the `process_set` chain now - Add `paginate` view helper for rendering a pagination navigation v 0.2.1 - Extract the `set_filters_ivar` method so that app controllers can use it in a before action for filter forms that are present on multiple actions v 0.2.0 - Add a new `export_set` method This allows datasets to be transformed into CSV and exported - Create distinct controller methods for filtering and sorting, not just the one 'process_set' method v 0.1.3 - Ensure that the ActiveModelAdapter for the typcastor properly downgrades from using ActiveModel::Type to using ActiveRecord::Type - Ensure that OpenStuct is explicly required - Ensure that the internal dummy app has the actionpack infrastructure properly in place for view specs - Fix the filter view specs v 0.1.2 - Properly specify the version dependency on ActiveSupport v 0.1.1 - Fix bug in handling sort links when no sort params are present v 0.1.0 - make ActionSet a Railtie - add a view helper method for building sort links (`sort_link`) - typecast all params values before passing to ActiveSet - reject any blank param values - instantiate a `@filters` ivar for use in building the filters form