summaryrefslogtreecommitdiffstats
path: root/lib/puppet/rails/rails_object.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/puppet/rails/rails_object.rb')
-rw-r--r--lib/puppet/rails/rails_object.rb40
1 files changed, 40 insertions, 0 deletions
diff --git a/lib/puppet/rails/rails_object.rb b/lib/puppet/rails/rails_object.rb
new file mode 100644
index 000000000..819706957
--- /dev/null
+++ b/lib/puppet/rails/rails_object.rb
@@ -0,0 +1,40 @@
+require 'puppet'
+require 'puppet/rails/rails_parameter'
+
+RailsParameter = Puppet::Rails::RailsParameter
+class Puppet::Rails::RailsObject < ActiveRecord::Base
+ has_many :rails_parameters, :dependent => :delete_all
+ serialize :tags, Array
+
+ belongs_to :host
+
+ # Add a set of parameters.
+ def addparams(params)
+ params.each do |pname, pvalue|
+ pobj = RailsParameter.new(
+ :name => pname,
+ :value => pvalue
+ )
+
+ self.rails_parameters << pobj
+ end
+ end
+
+ # Convert our object to a trans_object
+ def to_trans
+ obj = Puppet::TransObject.new(name(), ptype())
+
+ [:file, :line, :tags].each do |method|
+ if val = send(method)
+ obj.send(method.to_s + "=", val)
+ end
+ end
+ params.each do |name, value|
+ obj[name] = value
+ end
+
+ return obj
+ end
+end
+
+# $Id$