summaryrefslogtreecommitdiff
path: root/app/models/gateway.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/gateway.rb')
-rw-r--r--app/models/gateway.rb35
1 files changed, 35 insertions, 0 deletions
diff --git a/app/models/gateway.rb b/app/models/gateway.rb
new file mode 100644
index 0000000..3e791a6
--- /dev/null
+++ b/app/models/gateway.rb
@@ -0,0 +1,35 @@
+class Gateway < ActiveRecord::Base
+ TECHNOLOGIES = ['sip']
+
+ attr_accessible :name, :technology, :inbound, :outbound, :description
+
+ has_many :gateway_settings, :dependent => :destroy
+ has_many :gateway_parameters, :dependent => :destroy
+
+ validates :name,
+ :presence => true,
+ :uniqueness => true
+
+ validates :technology,
+ :presence => true,
+ :inclusion => { :in => TECHNOLOGIES }
+
+ after_initialize :set_defaults
+ before_validation :downcase_technology
+
+ def to_s
+ name
+ end
+
+ private
+ def downcase_technology
+ self.technology = self.technology.downcase if !self.technology.blank?
+ end
+
+ def set_defaults
+ if TECHNOLOGIES.count == 1
+ self.technology = TECHNOLOGIES.first
+ end
+ end
+
+end