summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorJesse Wolfe <jes5199@gmail.com>2010-02-17 14:05:06 -0800
committerJesse Wolfe <jes5199@gmail.com>2010-02-17 14:30:11 -0800
commitc6f02f2ee0c9b14f1106b5f6fa8e61cd92cf6f06 (patch)
treee89b7c79fe223fcd37f16d237cc3e3504fe57bf0 /lib
parent27322e5460130b854835aef56ab7076bab83a00b (diff)
downloadpuppet-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-xlib/puppet/provider/package/dpkg.rb8
-rw-r--r--lib/puppet/provider/package/pkg.rb8
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
}