31 lines
890 B
Ruby
31 lines
890 B
Ruby
module JamRuby
|
|
class IcecastDirectory < ActiveRecord::Base
|
|
|
|
|
|
has_many :servers, :class_name => "JamRuby::IcecastServer", :inverse_of => :directory, :foreign_key => "directory_id"
|
|
has_many :templates, :class_name => "JamRuby::IcecastTemplate", :inverse_of => :directory, :foreign_key => "directory_id"
|
|
|
|
validates :yp_url_timeout, presence: true, numericality: {only_integer: true}, length: {in: 1..30}
|
|
validates :yp_url, presence: true
|
|
|
|
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
|
|
yp_url
|
|
end
|
|
|
|
def dumpXml (builder)
|
|
|
|
builder.tag! 'directory' do |dir|
|
|
dir.tag! 'yp-url-timeout', yp_url_timeout
|
|
dir.tag! 'yp-url', yp_url
|
|
end
|
|
end
|
|
end
|
|
end |