Module: DataTables::Responder

Defined in:
lib/data_tables/responder.rb,
lib/data_tables/responder/railtie.rb,
lib/data_tables/responder/version.rb

Defined Under Namespace

Classes: Railtie

Constant Summary collapse

VERSION =
'0.4.1'

Class Method Summary collapse

Class Method Details

.flat_keys_to_nested(hash) ⇒ Object



29
30
31
32
33
34
35
# File 'lib/data_tables/responder.rb', line 29

def self.flat_keys_to_nested(hash)
  hash.each_with_object({}) do |(key, value), all|
    key_parts = key.split('.').map!(&:to_sym)
    leaf = key_parts[0...-1].inject(all) { |h, k| h[k] ||= {} }
    leaf[key_parts.last] = value
  end
end

.order(filtered_scope, params) ⇒ Object



45
46
47
# File 'lib/data_tables/responder.rb', line 45

def self.order(filtered_scope, params)
  Modules::Order.new(filtered_scope, params).order
end

.paginate(original_scope, filtered_scope, params) ⇒ Object



37
38
39
# File 'lib/data_tables/responder.rb', line 37

def self.paginate(original_scope, filtered_scope, params)
  Modules::Pagination.new(original_scope, filtered_scope, params).paginate
end

.respond(original_scope, params) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/data_tables/responder.rb', line 16

def self.respond(original_scope, params)
  model = original_scope.try(:model) || original_scope

  filtered_scope = original_scope&.dup || model.none

  filtered_scope = order(filtered_scope, params)

  filtered_scope = search(filtered_scope, params)

  # Rails.logger.warn "SEARCH BY: #{search_by}"
  filtered_scope = paginate(original_scope, filtered_scope, params)
end

.search(filtered_scope, params) ⇒ Object



41
42
43
# File 'lib/data_tables/responder.rb', line 41

def self.search(filtered_scope, params)
  Modules::Search.new(filtered_scope, params).search
end