Sha256: b55045b95076ad41bdd9a7a24d02709da0c21e72082f47198f1905e1d5fc6f8e
Contents?: true
Size: 712 Bytes
Versions: 8
Compression:
Stored size: 712 Bytes
Contents
module JsonapiCompliable class Scope::Filter < Scope::Base include Scope::Filterable def apply each_filter do |filter, value| @scope = filter_scope(filter, value) end @scope end def filter_scope(filter, value) if custom_scope = filter.values.first[:filter] custom_scope.call(@scope, value) else @scope.where(filter.keys.first => value) end end private def each_filter filter_param.each_pair do |param_name, param_value| filter = find_filter!(param_name.to_sym) value = param_value value = value.split(',') if value.include?(',') yield filter, value end end end end
Version data entries
8 entries across 8 versions & 1 rubygems