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

41 lines
1.4 KiB
Ruby
Raw Normal View History

2014-01-07 20:29:40 +00:00
module JamRuby
class IcecastPath < ActiveRecord::Base
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"
2014-01-07 20:29:40 +00:00
validates :base_dir, presence: true
validates :log_dir, presence: true
validates :web_root, presence: true
validates :admin_root, presence: true
2014-01-14 21:22:05 +00:00
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)
2014-01-10 21:02:52 +00:00
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
2014-01-10 21:02:52 +00:00
end
2014-01-07 20:29:40 +00:00
end
end