class Galerts::Alert

Attributes

data_id[RW]
data_id_2[RW]
delivery[RW]
domain[RW]
feed_url[RW]
frequency[RW]
how_many[RW]
id[RW]
language[RW]
query[RW]
region[RW]
sources[RW]

Public Class Methods

new(query, options = {}) click to toggle source
# File lib/galerts/alert.rb, line 4
def initialize(query, options = {})

  default_options = {
    id: 0,
    data_id: 0,
    data_id_2: 0,
    domain: DOMAIN,
    frequency: RT,
    sources: AUTOMATIC,
    language: LANGUAGE,
    how_many: ALL_RESULTS,
    region: ANYWHERE,
    delivery: RSS,
    feed_url: nil
  }

  default_options.each do |key, value|
    options[key] ||= value
  end

  # check options type
  raise "Unknown alert how many" unless HOW_MANY_TYPES.has_key?(options[:how_many])
  raise "Unknown alert delivery type" unless DELIVERY_TYPES.has_key?(options[:delivery])
  raise "Unknown alert frequency type" unless FREQ_TYPES.has_key?(options[:frequency])

  if options[:sources].kind_of?(Array)
    options[:sources].collect do |source|
      raise "Unknown alert source in Array" unless SOURCES_TYPES.has_key?(source)
    end
  elsif options[:sources].nil?
    raise "Nil alert source"
  elsif !SOURCES_TYPES.has_key?(options[:sources])
    raise "Unknown alert source"
  end

  @query = query
  @id = options[:id]
  @data_id = options[:data_id]
  @data_id_2 = options[:data_id_2]
  @domain = options[:domain]
  @frequency = options[:frequency]
  @sources = options[:sources]
  @language = options[:language]
  @how_many = options[:how_many]
  @region = options[:region]
  @delivery = options[:delivery]
  @feed_url = options[:feed_url]
end