danielefongo / queryable

Enhance Ecto with powerful queries.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Queryable

GitHub Workflow Status Coveralls Hex pm Hex.pm

Enhance Ecto with powerful queries.

Installation

The package can be installed by adding queryable to your list of dependencies in mix.exs:

def deps do
  [
    {:queryable, "~> 0.1.0"}
  ]
end

Documentation

Documentation can be found at https://hexdocs.pm/queryable.

Usage

Extend an Ecto Schema by adding criteria:

defmodule Person do
  use Queryable #instead of Ecto.Schema

  schema "persons" do
    field :name, :string
    field :surname, :string
    field :age, :integer
  end

  criteria(under: age, where: el.age < ^age)
  criteria(ordered_by: field, order_by: ^field)
end

Then create an Ecto Query in one of the following modes:

Person.query(name: "John", under: 18)
Person.name("John") |> Person.under(18)

This query can then be passed to methods like Repo.all.

About

Enhance Ecto with powerful queries.

License:GNU General Public License v3.0


Languages

Language:Elixir 99.7%Language:Dockerfile 0.3%