Sha256: 4844016b9725752927c99ba810824c8d421a08e46b9cfcfbba3a071a9c713c35

Contents?: true

Size: 1.65 KB

Versions: 9

Compression:

Stored size: 1.65 KB

Contents

# -*- encoding : utf-8 -*-
class Card; module Set; class Abstract
# Set: Abstract (FilterHelper)
#
# TODO: move sort/filter handling out of card and into base format
module FilterHelper;
extend Card::Set
def self.source_location; "/Users/ethan/dev/decko/gem/card/mod/search/set/abstract/00_filter_helper.rb"; end
# sorting and filtering is about viewing the data, not altering the data itself.

def sort_hash
  sort_param.present? ? { sort: sort_param } : {}
end

def filter_param field
  filter_hash[field.to_sym]
end

# FIXME: it is inconsistent that #sort_hash has :sort as the key, but
# #filter_hash is the _value_ of the hash with :filter as the key.
def filter_hash
  @filter_hash ||= begin
    filter = Env.params[:filter]
    filter = filter.to_unsafe_h if filter&.respond_to?(:to_unsafe_h)
    filter.is_a?(Hash) ? filter : {}
  end
end

def sort_param
  safe_sql_param :sort
end

def safe_sql_param key
  param = Env.params[key]
  param.blank? ? nil : Card::Query.safe_sql(param)
end

def filter_keys_with_values
  filter_keys.map do |key|
    values = filter_param(key)
    values.present? ? [key, values] : next
  end.compact
end

def default_filter_option
  {}
end

def offset
  param_to_i :offset, 0
end

module Format; parent.send :register_set_format, Card::Format, self; extend Card::Set::AbstractFormat
  delegate :filter_hash, :sort_hash, :filter_param, :sort_param,
           :all_filter_keys, to: :card

  def extra_paging_path_args
    super.merge filter_and_sort_hash
  end

  def filter_and_sort_hash
    sort_hash.merge filter: filter_hash
  end
end
end;end;end;end;
# ~~ generated from /Users/ethan/dev/decko/gem/card/mod/search/set/abstract/00_filter_helper.rb ~~

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
card-1.99.4 tmpsets/set/mod020-search/abstract/00_filter_helper.rb
card-1.99.3 tmpsets/set/mod020-search/abstract/00_filter_helper.rb
card-1.99.2 tmpsets/set/mod020-search/abstract/00_filter_helper.rb
card-1.99.1 tmpsets/set/mod020-search/abstract/00_filter_helper.rb
card-1.99.0 tmpsets/set/mod020-search/abstract/00_filter_helper.rb
card-1.98.3 tmpsets/set/mod020-search/abstract/00_filter_helper.rb
card-1.98.2 tmpsets/set/mod020-search/abstract/00_filter_helper.rb
card-1.98.1 tmpsets/set/mod020-search/abstract/00_filter_helper.rb
card-1.98.0 tmpsets/set/mod020-search/abstract/00_filter_helper.rb