jam-cloud/ruby/lib/jam_ruby/models/icecast_master_server_relay.rb

35 lines
1.5 KiB
Ruby

module JamRuby
class IcecastMasterServerRelay < ActiveRecord::Base
has_many :servers, :class_name => "JamRuby::IcecastServer", :inverse_of => :master_relay, :foreign_key => "master_relay_id"
has_many :templates, :class_name => "JamRuby::IcecastTemplate", :inverse_of => :master_relay, :foreign_key => "master_relay_id"
validates :master_server, length: {minimum: 1}
validates :master_server_port, presence: true, numericality: {only_integer: true}, length: {in: 1..65535}
validates :master_update_interval, presence: true, numericality: {only_integer: true}, length: {in: 1..1200}
validates :master_username, presence: true, length: {minimum: 5}
validates :master_pass, presence: true, length: {minimum: 5}
validates :relays_on_demand, :inclusion => {:in => [0, 1]}
before_destroy :poke_config
after_save :poke_config
def poke_config
servers.update_all(config_changed: 1)
templates.each { |template| template.servers.update_all(config_changed: 1) }
end
def to_s
"master_server=#{master_server} master_server_port=#{master_server_port} master_username=#{master_username}"
end
def dumpXml(builder)
builder.tag! 'master-server', master_server
builder.tag! 'master-server-port', master_server_port
builder.tag! 'master-update-interval', master_update_interval
builder.tag! 'master-username', master_username
builder.tag! 'master-password', master_pass
builder.tag! 'relays-on-demand', relays_on_demand
end
end
end