Module: ElasticRansack

Defined in:
lib/elastic_ransack.rb,
lib/elastic_ransack/model.rb,
lib/elastic_ransack/naming.rb,
lib/elastic_ransack/search.rb,
lib/elastic_ransack/version.rb,
lib/elastic_ransack/predicate.rb

Defined Under Namespace

Modules: ClassMethods, Model, Naming Classes: Name, Predicate, Search

Constant Summary collapse

BASE_PREDICATES =
[
    ['eq', {query: proc { |attr, v| {term: {attr => v}} }}],
    ['in', {query: proc { |attr, v| {terms: {attr => ElasticRansack.val_to_array(v)}} }}],
    ['in_all', {query: proc { |attr, v| {terms: {attr => ElasticRansack.val_to_array(v), execution: 'and'}} }}],
    ['gt', {query: proc { |attr, v| {range: {attr => {gt: v}}} }}],
    ['lt', {query: proc { |attr, v| {range: {attr => {lt: v}}} }}],
    ['gteq', {query: proc { |attr, v| {range: {attr => {gte: v}}} }}],
    ['lteq', {query: proc { |attr, v| {range: {attr => {lte: v}}} }}]
]
VERSION =
'0.0.1'

Class Method Summary collapse

Class Method Details

.add_predicate(*args) ⇒ Object



28
29
30
# File 'lib/elastic_ransack.rb', line 28

def add_predicate(*args)
  self.predicates << Predicate.new(*args)
end

.setup {|_self| ... } ⇒ Object

Yields:

  • (_self)

Yield Parameters:



24
25
26
# File 'lib/elastic_ransack.rb', line 24

def setup
  yield self
end

.val_to_array(val) ⇒ Object



32
33
34
35
36
# File 'lib/elastic_ransack.rb', line 32

def val_to_array(val)
  return [] unless val
  return val if val.is_a?(Array)
  val.to_s.split(',').map(&:to_i).reject(&:zero?)
end