class ActivePublicResources::RequestCriteria

Constants

CONTENT_FILTERS
SORTS

Attributes

channel_name[RW]
content_filter[RW]
folder[RW]
page[RW]
per_page[RW]
query[RW]
remote_ip[RW]
sort[RW]

Public Class Methods

new(args={}) click to toggle source
# File lib/active_public_resources/request_criteria.rb, line 18
def initialize(args={})
  args.each do |k,v|
    if k.to_s == 'sort' && !SORTS.include?(v)
      raise ArgumentError.new("sort is invalid. Must be in [#{SORTS.join(', ')}]")
    end
    if k.to_s == 'content_filter' && !CONTENT_FILTERS.include?(v)
      raise ArgumentError.new("content_filter is invalid. Must be in [#{CONTENT_FILTERS.join(', ')}]")
    end
    instance_variable_set("@#{k}", v) unless v.nil?
  end
end

Public Instance Methods

attributes() click to toggle source
# File lib/active_public_resources/request_criteria.rb, line 68
def attributes
  instance_values
end
content_filter=(val) click to toggle source
# File lib/active_public_resources/request_criteria.rb, line 37
def content_filter=(val)
  unless CONTENT_FILTERS.include?(val)
    raise ArgumentError.new("is invalid. Must be in [#{CONTENT_FILTERS.join(', ')}]")
  end
  @content_filter = val
end
set_default_criteria!(default_criteria) click to toggle source
# File lib/active_public_resources/request_criteria.rb, line 62
def set_default_criteria!(default_criteria)
  default_criteria.map do |k, v|
    instance_variable_set("@#{k}", v) unless validate_presence(k)
  end
end
sort=(val) click to toggle source
# File lib/active_public_resources/request_criteria.rb, line 30
def sort=(val)
  unless SORTS.include?(val)
    raise ArgumentError.new("is invalid. Must be in [#{SORTS.join(', ')}]")
  end
  @sort = val
end
validate_presence(attr_name, *attr_names) click to toggle source
# File lib/active_public_resources/request_criteria.rb, line 44
def validate_presence(attr_name, *attr_names)
  attr_names.unshift(attr_name)
  attr_names.each do |k|
    if instance_variable_get("@#{k}").blank?
      return false
    end
  end
  true
end
validate_presence!(attr_names) click to toggle source
# File lib/active_public_resources/request_criteria.rb, line 54
def validate_presence!(attr_names)
  attr_names.each do |k|
    if instance_variable_get("@#{k}").blank?
      raise ArgumentError.new("must include #{attr_names.join(', ')}")
    end
  end
end