diff options
author | Jesse Wolfe <jes5199@gmail.com> | 2010-02-17 14:05:06 -0800 |
---|---|---|
committer | Jesse Wolfe <jes5199@gmail.com> | 2010-02-17 14:30:11 -0800 |
commit | c6f02f2ee0c9b14f1106b5f6fa8e61cd92cf6f06 (patch) | |
tree | e89b7c79fe223fcd37f16d237cc3e3504fe57bf0 /lib | |
parent | 27322e5460130b854835aef56ab7076bab83a00b (diff) | |
download | puppet-c6f02f2ee0c9b14f1106b5f6fa8e61cd92cf6f06.tar.gz puppet-c6f02f2ee0c9b14f1106b5f6fa8e61cd92cf6f06.tar.xz puppet-c6f02f2ee0c9b14f1106b5f6fa8e61cd92cf6f06.zip |
Fix #3167 Duplicate constant warnings in dpkg.rb
There's a limitation in Ruby 1.8.x that makes constants behave
differently than developers seem to expect:
Constants defined inside a do/end block do not get inserted into the
namespace of 'self', they instead go into the toplevel (Object)
namespace.
These providers exhibit bugs since they use constants with the same
name in the same namespace.
Other providers and other dynamically generated classes using constants
without an explicit namespace should be considered to have a code smell.
Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
Diffstat (limited to 'lib')
-rwxr-xr-x | lib/puppet/provider/package/dpkg.rb | 8 | ||||
-rw-r--r-- | lib/puppet/provider/package/pkg.rb | 8 |
2 files changed, 8 insertions, 8 deletions
diff --git a/lib/puppet/provider/package/dpkg.rb b/lib/puppet/provider/package/dpkg.rb index d6ec56ad4..06050cefd 100755 --- a/lib/puppet/provider/package/dpkg.rb +++ b/lib/puppet/provider/package/dpkg.rb @@ -32,14 +32,14 @@ Puppet::Type.type(:package).provide :dpkg, :parent => Puppet::Provider::Package return packages end - REGEX = %r{^(\S+) +(\S+) +(\S+) (\S+) (\S*)$} - FIELDS = [:desired, :error, :status, :name, :ensure] + self::REGEX = %r{^(\S+) +(\S+) +(\S+) (\S+) (\S*)$} + self::FIELDS = [:desired, :error, :status, :name, :ensure] def self.parse_line(line) - if match = REGEX.match(line) + if match = self::REGEX.match(line) hash = {} - FIELDS.zip(match.captures) { |field,value| + self::FIELDS.zip(match.captures) { |field,value| hash[field] = value } diff --git a/lib/puppet/provider/package/pkg.rb b/lib/puppet/provider/package/pkg.rb index 978042d42..148ef0d62 100644 --- a/lib/puppet/provider/package/pkg.rb +++ b/lib/puppet/provider/package/pkg.rb @@ -27,14 +27,14 @@ Puppet::Type.type(:package).provide :pkg, :parent => Puppet::Provider::Package d packages end - REGEX = %r{^(\S+)\s+(\S+)\s+(\S+)\s+} - FIELDS = [:name, :version, :status] + self::REGEX = %r{^(\S+)\s+(\S+)\s+(\S+)\s+} + self::FIELDS = [:name, :version, :status] def self.parse_line(line) hash = {} - if match = REGEX.match(line) + if match = self::REGEX.match(line) - FIELDS.zip(match.captures) { |field,value| + self::FIELDS.zip(match.captures) { |field,value| hash[field] = value } |