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

42 lines
1.4 KiB
Ruby

module JamRuby
class IcecastPath < ApplicationRecord
attr_accessible :base_dir, :log_dir, :pid_file, :web_root, :admin_root, :allow_ip, :deny_ip, :alias_source,
:alias_dest, as: :admin
has_many :servers, :class_name => "JamRuby::IcecastServer", :inverse_of => :path, :foreign_key => "path_id"
has_many :templates, :class_name => "JamRuby::IcecastTemplate", :inverse_of => :path, :foreign_key => "path_id"
validates :base_dir, presence: true
validates :log_dir, presence: true
validates :web_root, presence: true
validates :admin_root, presence: true
after_save :poke_config
before_destroy :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
"base_dir=#{base_dir}"
end
def dumpXml (builder)
builder.tag! 'paths' do |paths|
paths.tag! 'basedir', base_dir
paths.tag! 'logdir', log_dir
paths.tag! 'pidfile', pid_file if !pid_file.nil? && !pid_file.empty?
paths.tag! 'webroot', web_root
paths.tag! 'adminroot', admin_root
paths.tag! 'allow-ip', allow_ip if allow_ip
paths.tag! 'deny-ip', deny_ip if deny_ip
paths.tag! 'alias', :source => alias_source, :dest => alias_dest if !alias_source.nil? && !alias_source.empty?
end
end
end
end