Sha256: 1a96c13f7016cb6daaf269aff691710a9e4c8cc1f505d72b41af8a6f7d8cecff

Contents?: true

Size: 1.11 KB

Versions: 13

Compression:

Stored size: 1.11 KB

Contents

module TrkDatatables
  class Neo4j < Base
    def filter_by_search_all(filtered)
      return filtered unless @dt_params.search_all.present?

      # https://neo4jrb.readthedocs.io/en/stable/QueryClauseMethods.html?highlight=where#where
      sql = @column_key_options.searchable_and_global_search.map do |column_key_option|
        "#{column_key_option[:column_key]} =~ ?"
      end.join(' or ')

      filtered.where sql, ".*#{@dt_params.search_all}.*"
    end

    def filter_by_columns(all)
      all
    end

    def order_and_paginate_items(filtered)
      filtered = order_items filtered
      filtered = filtered.offset(@dt_params.dt_offset).limit(dt_per_page_or_default)
      filtered
    end

    def order_items(filtered)
      order_by = dt_orders_or_default_index_and_direction.each_with_object([]) do |(index, direction), queries|
        column_key_option = @column_key_options[index]
        next if column_key_option[:column_options][ColumnKeyOptions::ORDER_OPTION] == false

        queries << "#{column_key_option[:column_key]} #{direction}"
      end
      filtered.order(order_by.join(', '))
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
trk_datatables-0.2.15 lib/trk_datatables/neo4j.rb
trk_datatables-0.2.14 lib/trk_datatables/neo4j.rb
trk_datatables-0.2.13 lib/trk_datatables/neo4j.rb
trk_datatables-0.2.12 lib/trk_datatables/neo4j.rb
trk_datatables-0.2.11 lib/trk_datatables/neo4j.rb
trk_datatables-0.2.10 lib/trk_datatables/neo4j.rb
trk_datatables-0.2.9 lib/trk_datatables/neo4j.rb
trk_datatables-0.2.8 lib/trk_datatables/neo4j.rb
trk_datatables-0.2.7 lib/trk_datatables/neo4j.rb
trk_datatables-0.2.6 lib/trk_datatables/neo4j.rb
trk_datatables-0.2.5 lib/trk_datatables/neo4j.rb
trk_datatables-0.2.4 lib/trk_datatables/neo4j.rb
trk_datatables-0.2.3 lib/trk_datatables/neo4j.rb