Rummage Ecto Versions Save

Search, Sort and Pagination for ecto queries

2.0.0-rc.0

5 years ago

Version 2.0.0-rc.0

  • Change in namespace/module names:

    • Replace Rummage.Ecto.Hooks with Rummage.Ecto.Hook.
    • Replace Rummage.Ecto.CustomHooks with Rummage.Ecto.CustomHook.
  • Introducing Rummage.Ecto.Schema:

  • Changes to Rummage.Ecto.Hook.Search:

  • Changes to Rummage.Ecto.Hook.Sort:

  • Changes to Rummage.Ecto.Hook.Paginate:

  • Changes in Configurations:

1.3.0-rc.schema

5 years ago

This Release has ways to abstract and override schema/rummage functionalities.

1.3.0-rc.0

6 years ago

Revamped Rummage

  • Better Behaviour definition for Hooks.

    • Add __using__ macro, instead of using module_attribute @behviour.
    • Use better function names run/2 and format_params,
    • Use defoverridable for @behaviour callbacks.
  • Make Native hooks more generalized instead of targeted for phoenix.

    • Use atoms over strings for keys in maps and params.
    • Keep hooks more agnostic of configurations.
    • Make Rummage.Ecto delegate configurations to hooks.
  • The return of Rummage.Ecto.__using__/1 macro.

    • This allows rummage_ecto to resolve configurations at compile time.
    • This allows better/easier usage of Rummage.Ecto.
  • App specific configurations.

    • config :appname, Rummage.Ecto ..... instead of config: :rummage_ecto, Rummage.Ecto.
    • This allows using rummage with two different apps in an umbrella app with different rummage configurations.
    • These configurations are loaded with the help of __using__ macro, based on the application the module belongs to.
  • Search hook has search_expr.

    • This allows usage of or_where and not_where queries.
    • Defaults to where.
  • Search hook has search_type : is_null

    • This allows for searching for NULL or NOT NULL
  • Tested/Examples with different field_types, boolean, float, string etc.

  • Paginate hook works with or without a primary_key:

    • the default paginate hook used to work only for Schemas with id as primary keys, now it works for all and even Schemas without a primary key.
  • Keyset Pagination CustomHook.

    • Adds faster/lighter weight pagination option.
    • Documentation specifies when to use it and when not to.
  • SimpleSort and SimpleSearch CustomHook updates.

    • Same as sort and search, but without associations, so cleaner and faster.
  • Better documentation.

    • Search and Sort associations are better documented.
    • CustomHooks are better documented.

1.1.0

7 years ago

Changes to Rummage as whole:

  • This release is to illustrate the actual behavior of Rummage, which is functional:

    • Instead of EctoSchema.rummage(query, rummage), call Rummage.Ecto.rummage(query, rummage)
  • Default Hooks can handle any number of associations.

Changes to complexity:

  • Hooks are more independent of each other due to a newly introduced before_hook feature. This allows us to format rummage_params based on what a hook is expecting and keep the code clean.

In Progress:

  • A CustomHook with key-set pagination based on this link.

1.0.0

7 years ago
  • Fully tested
  • Added associations sort feature
  • Added association search feature
  • Added like, case-insensitive like, greater than, less than, equals etc features to search hooks
  • Added examples of custom hooks

0.6.0

7 years ago

Has Rummage.Phoenix support

0.2.0

7 years ago

Fully configurable. The hooks are independent, yet work well on top of each other.