diff options
| author | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2006-10-04 18:24:24 +0000 |
|---|---|---|
| committer | luke <luke@980ebf18-57e1-0310-9a29-db15c13687c0> | 2006-10-04 18:24:24 +0000 |
| commit | 28cee40689440388994a4768bd301ae32c8ecc05 (patch) | |
| tree | c865ab44f4c9247052cf83de16ffc8ebe8b15e54 /lib/puppet/parser/resource/param.rb | |
| parent | e0e291332bd4676962a28c7b220ae5c5e9651c0a (diff) | |
| download | puppet-28cee40689440388994a4768bd301ae32c8ecc05.tar.gz puppet-28cee40689440388994a4768bd301ae32c8ecc05.tar.xz puppet-28cee40689440388994a4768bd301ae32c8ecc05.zip | |
Merging the changes from the override-refactor branch. This is a significant rewrite of the parser, but it has little affect on the rest of the code tree.
git-svn-id: https://reductivelabs.com/svn/puppet/trunk@1726 980ebf18-57e1-0310-9a29-db15c13687c0
Diffstat (limited to 'lib/puppet/parser/resource/param.rb')
| -rw-r--r-- | lib/puppet/parser/resource/param.rb | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/lib/puppet/parser/resource/param.rb b/lib/puppet/parser/resource/param.rb new file mode 100644 index 000000000..259e935d1 --- /dev/null +++ b/lib/puppet/parser/resource/param.rb @@ -0,0 +1,44 @@ +# The parameters we stick in Resources. +class Puppet::Parser::Resource::Param + attr_accessor :name, :value, :source, :line, :file + include Puppet::Util::Errors + include Puppet::Util::MethodHelper + + def initialize(hash) + set_options(hash) + requiredopts(:name, :value, :source) + @name = @name.intern if @name.is_a?(String) + end + + def inspect + "#<#{self.class} @name => #{self.name}, @value => #{self.value}, @source => #{self.source.type}>" + end + + # Store this parameter in a Rails db. + def store(resource) + args = {} + [:name, :value, :line, :file].each do |var| + if val = self.send(var) + args[var] = val + end + end + args[:name] = args[:name].to_s + if obj = resource.rails_parameters.find_by_name(self.name) + # We exist + args.each do |p, v| + obj[p] = v + end + else + # Else create it anew + obj = resource.rails_parameters.build(args) + end + + return obj + end + + def to_s + "%s => %s" % [self.name, self.value] + end +end + +# $Id$ |
