module PIM::Filters

Public Instance Methods

all_filters() click to toggle source
# File pim.rb, line 7114
def all_filters
  filters = {}
  filters.merge!(@module_filters) if @module_filters
  add_parent_objects(filters) { |p| p.module_filters }
  filters
end
filter(name, label = nil, &block) click to toggle source
# File pim.rb, line 7088
def filter name, label = nil, &block

  name = to_sym(name)
  if label or block

    if module_filters.has_key? name
      if not data_module.has_option?(:ignore_defined_filters)
        raise "Filter with name '#{name}' is already defined in data model #{self}"
      else
        return module_filters[name]
      end
    end

    filter = PIM::FilterBuilder.build_filter(data_module, name, label, &block)
    module_filters[name] = filter

    filter

  elsif name.is_a? PIM::Filter
    filter
  else
    all_filters[name]
  end

end
filters_as_json() click to toggle source
# File pim.rb, line 7125
def filters_as_json
  filters = {}
  all_filters.sort.each do |(key, filter)|
    filters[key] = filter
  end
  as_json(filters)
end
module_filters() click to toggle source
# File pim.rb, line 7121
def module_filters
  @module_filters ||= {}
end