class Pushr::Configuration
Attributes
app[RW]
connections[RW]
enabled[RW]
id[RW]
type[RW]
Public Class Methods
all()
click to toggle source
# File lib/pushr/configuration.rb, line 56 def self.all if Pushr::Core.configuration_file # only set if file exists read_from_yaml_file else read_from_redis end end
create(attributes = {})
click to toggle source
# File lib/pushr/configuration.rb, line 30 def self.create(attributes = {}) m = new(attributes) m.save m end
create!(attributes = {})
click to toggle source
# File lib/pushr/configuration.rb, line 36 def self.create!(attributes = {}) m = new(attributes) unless m.save raise Pushr::Error::RecordInvalid end m end
find(key)
click to toggle source
# File lib/pushr/configuration.rb, line 64 def self.find(key) config = Pushr::Core.redis { |conn| conn.hget('pushr:configurations', key) } instantiate_json(config, key) end
instantiate(hsh)
click to toggle source
# File lib/pushr/configuration.rb, line 85 def self.instantiate(hsh) klass = hsh['type'].split('::').reduce(Object) do |a, e| if Object.const_defined?(hsh['type']) a.const_get e end end return nil if klass == nil klass.new(hsh) end
instantiate_json(config, id)
click to toggle source
# File lib/pushr/configuration.rb, line 81 def self.instantiate_json(config, id) instantiate(::MultiJson.load(config).merge!(id: id)) end
new(attributes = {})
click to toggle source
# File lib/pushr/configuration.rb, line 11 def initialize(attributes = {}) attributes.each do |name, value| send("#{name}=", value) if respond_to?("#{name}=") end end
read_from_redis()
click to toggle source
# File lib/pushr/configuration.rb, line 75 def self.read_from_redis configurations = Pushr::Core.redis { |conn| conn.hgetall('pushr:configurations') } configurations.each { |key, config| configurations[key] = instantiate_json(config, key) } configurations.values.compact end
read_from_yaml_file()
click to toggle source
# File lib/pushr/configuration.rb, line 69 def self.read_from_yaml_file filename = Pushr::Core.configuration_file configs = File.open(filename) { |fd| YAML.load(fd) } configs.map { |hsh| instantiate(hsh) }.compact end
Public Instance Methods
delete()
click to toggle source
# File lib/pushr/configuration.rb, line 48 def delete Pushr::Core.redis { |conn| conn.hdel('pushr:configurations', key) } end
key()
click to toggle source
# File lib/pushr/configuration.rb, line 17 def key "#{app}:#{name}" end
queue_depth()
click to toggle source
# File lib/pushr/configuration.rb, line 44 def queue_depth Pushr::Core.redis { |conn| conn.llen("pushr:#{key}") } end
save()
click to toggle source
# File lib/pushr/configuration.rb, line 21 def save if valid? Pushr::Core.redis { |conn| conn.hset('pushr:configurations', key, to_json) } return true else return false end end
to_json()
click to toggle source
# File lib/pushr/configuration.rb, line 52 def to_json MultiJson.dump(to_hash) end