class Pushr::Feedback

Attributes

app[RW]
type[RW]

Public Class Methods

create(attributes = {}) click to toggle source
# File lib/pushr/feedback.rb, line 26
def self.create(attributes = {})
  m = new(attributes)
  m.save
  m
end
create!(attributes = {}) click to toggle source
# File lib/pushr/feedback.rb, line 32
def self.create!(attributes = {})
  m = new(attributes)
  unless m.save
    raise Pushr::Error::RecordInvalid
  end
  m
end
instantiate(config) click to toggle source
# File lib/pushr/feedback.rb, line 51
def self.instantiate(config)
  hsh = ::MultiJson.load(config)
  klass = hsh['type'].split('::').reduce(Object) { |a, e| a.const_get e }
  klass.new(hsh)
end
new(attributes = {}) click to toggle source
# File lib/pushr/feedback.rb, line 11
def initialize(attributes = {})
  attributes.each do |name, value|
    send("#{name}=", value) if respond_to?("#{name}=")
  end
end
next(timeout = 3) click to toggle source
# File lib/pushr/feedback.rb, line 44
def self.next(timeout = 3)
  Pushr::Core.redis do |conn|
    feedback = conn.blpop('pushr:feedback', timeout: timeout)
    return instantiate(feedback[1]) if feedback
  end
end

Public Instance Methods

save() click to toggle source
# File lib/pushr/feedback.rb, line 17
def save
  if valid?
    Pushr::Core.redis { |conn| conn.rpush('pushr:feedback', to_json) }
    return true
  else
    return false
  end
end
to_json() click to toggle source
# File lib/pushr/feedback.rb, line 40
def to_json
  MultiJson.dump(to_hash)
end