The metaid.rb file came straight from why the lucky stiff's "seeing
metaclasses clearly" article. Rails used this too, but they recently
deprecated the name metaclass in favor of singleton_class to match
what
ruby-core decided to do. meta, eigen and singlton class were all
suggested and in the end singleton was agreed upon.
http://redmine.ruby-lang.org/issues/show/1082
Signed-off-by: Matt Robinson <[email protected]>
---
lib/puppet/metatype/manager.rb | 4 ++--
lib/puppet/network/xmlrpc/client.rb | 2 +-
lib/puppet/parameter.rb | 4 ++--
lib/puppet/provider.rb | 2 +-
.../provider/nameservice/directoryservice.rb | 2 +-
lib/puppet/util/metaid.rb | 8 ++++----
spec/unit/file_serving/content.rb | 2 +-
spec/unit/file_serving/metadata.rb | 2 +-
spec/unit/indirector.rb | 2 +-
spec/unit/indirector/indirection.rb | 2 +-
spec/unit/indirector/yaml.rb | 2 +-
spec/unit/relationship.rb | 2 +-
spec/unit/resource.rb | 2 +-
spec/unit/resource/catalog.rb | 2 +-
spec/unit/ssl/certificate.rb | 2 +-
spec/unit/ssl/certificate_request.rb | 2 +-
spec/unit/ssl/key.rb | 2 +-
spec/unit/util/cacher.rb | 4 ++--
spec/unit/util/tagging.rb | 2 +-
test/language/scope.rb | 2 +-
test/network/server/mongrel_test.rb | 2 +-
21 files changed, 27 insertions(+), 27 deletions(-)
diff --git a/lib/puppet/metatype/manager.rb b/lib/puppet/metatype/
manager.rb
index 865a7c2..34b2bde 100644
--- a/lib/puppet/metatype/manager.rb
+++ b/lib/puppet/metatype/manager.rb
@@ -42,7 +42,7 @@ module Manager
newmethod = "new#{name.to_s}"
# Used for method manipulation.
- selfobj = metaclass()
+ selfobj = singleton_class()
@types ||= {}
@@ -103,7 +103,7 @@ module Manager
)
if respond_to?("new" + name.to_s)
- metaclass.send(:remove_method, "new" + name.to_s)
+ singleton_class.send(:remove_method, "new" + name.to_s)
end
end
diff --git a/lib/puppet/network/xmlrpc/client.rb b/lib/puppet/
network/xmlrpc/client.rb
index 9faa71c..f12d279 100644
--- a/lib/puppet/network/xmlrpc/client.rb
+++ b/lib/puppet/network/xmlrpc/client.rb
@@ -49,7 +49,7 @@ module Puppet::Network
class ErrorHandler
def initialize(&block)
- metaclass.define_method(:execute, &block)
+ singleton_class.define_method(:execute, &block)
end
end
diff --git a/lib/puppet/parameter.rb b/lib/puppet/parameter.rb
index 58a9147..2ebb740 100644
--- a/lib/puppet/parameter.rb
+++ b/lib/puppet/parameter.rb
@@ -296,8 +296,8 @@ class Puppet::Parameter
# Optionaly convert the value to a canonical form so that it
will
# be found in hashes, etc. Mostly useful for namevars.
def to_canonicalize(&block)
- metaclass = (class << self; self; end)
- metaclass.send(:define_method,:canonicalize,&block)
+ singleton_class = (class << self; self; end)
+ singleton_class.send(:define_method,:canonicalize,&block)
end
# Mark whether we're the namevar.
diff --git a/lib/puppet/provider.rb b/lib/puppet/provider.rb
index 3cef0dd..2627926 100644
--- a/lib/puppet/provider.rb
+++ b/lib/puppet/provider.rb
@@ -109,7 +109,7 @@ class Puppet::Provider
# Create the methods for a given command.
def self.make_command_methods(name)
# Now define a method for that command
- unless metaclass.method_defined? name
+ unless singleton_class.method_defined? name
meta_def(name) do |*args|
unless command(name)
raise Puppet::Error, "Command %s is missing" %
name
diff --git a/lib/puppet/provider/nameservice/directoryservice.rb b/
lib/puppet/provider/nameservice/directoryservice.rb
index 50c87fe..9a4424d 100644
--- a/lib/puppet/provider/nameservice/directoryservice.rb
+++ b/lib/puppet/provider/nameservice/directoryservice.rb
@@ -20,7 +20,7 @@ require 'cgi'
class Puppet::Provider::NameService
class DirectoryService < Puppet::Provider::NameService
- # JJM: Dive into the eigenclass
+ # JJM: Dive into the singleton_class
class << self
# JJM: This allows us to pass information when calling
# Puppet::Type.type
diff --git a/lib/puppet/util/metaid.rb b/lib/puppet/util/metaid.rb
index 0c38a5b..076775c 100644
--- a/lib/puppet/util/metaid.rb
+++ b/lib/puppet/util/metaid.rb
@@ -1,14 +1,14 @@
class Object
# The hidden singleton lurks behind everyone
- def metaclass; class << self; self; end; end
- def meta_eval(&blk); metaclass.instance_eval(&blk); end
+ def singleton_class; class << self; self; end; end
+ def meta_eval(&blk); singleton_class.instance_eval(&blk); end
- # Adds methods to a metaclass
+ # Adds methods to a singleton_class
def meta_def(name, &blk)
meta_eval { define_method name, &blk }
end
- # Remove metaclass methods.
+ # Remove singleton_class methods.
def meta_undef(name, &blk)
meta_eval { remove_method name }
end
diff --git a/spec/unit/file_serving/content.rb b/spec/unit/
file_serving/content.rb
index eacaff8..111886d 100755
--- a/spec/unit/file_serving/content.rb
+++ b/spec/unit/file_serving/content.rb
@@ -14,7 +14,7 @@ describe Puppet::FileServing::Content do
end
it "should should include the IndirectionHooks module in its
indirection" do
-
Puppet
::FileServing::Content.indirection.metaclass.included_modules.should
include(Puppet::FileServing::IndirectionHooks)
+
Puppet
::FileServing
::Content.indirection.singleton_class.included_modules.should
include(Puppet::FileServing::IndirectionHooks)
end
it "should only support the raw format" do
diff --git a/spec/unit/file_serving/metadata.rb b/spec/unit/
file_serving/metadata.rb
index 22f033d..ef2b3b6 100755
--- a/spec/unit/file_serving/metadata.rb
+++ b/spec/unit/file_serving/metadata.rb
@@ -14,7 +14,7 @@ describe Puppet::FileServing::Metadata do
end
it "should should include the IndirectionHooks module in its
indirection" do
-
Puppet
::FileServing
::Metadata.indirection.metaclass.included_modules.should
include(Puppet::FileServing::IndirectionHooks)
+
Puppet
::FileServing
::Metadata.indirection.singleton_class.included_modules.should
include(Puppet::FileServing::IndirectionHooks)
end
it "should have a method that triggers attribute collection" do
diff --git a/spec/unit/indirector.rb b/spec/unit/indirector.rb
index 0b4c616..64f7c42 100755
--- a/spec/unit/indirector.rb
+++ b/spec/unit/indirector.rb
@@ -56,7 +56,7 @@ describe Puppet::Indirector, "when registering an
indirection" do
it "should extend the class with the Format Handler" do
@indirection = @thingie.indirects :first
- @thingie.metaclass.ancestors.should
be_include(Puppet::Network::FormatHandler)
+ @thingie.singleton_class.ancestors.should
be_include(Puppet::Network::FormatHandler)
end
after do
diff --git a/spec/unit/indirector/indirection.rb b/spec/unit/
indirector/indirection.rb
index 311cc53..2ed51d7 100755
--- a/spec/unit/indirector/indirection.rb
+++ b/spec/unit/indirector/indirection.rb
@@ -133,7 +133,7 @@ describe Puppet::Indirector::Indirection do
it "should extend itself with any specified module" do
mod = Module.new
@indirection =
Puppet::Indirector::Indirection.new(mock('model'), :test, :extend =>
mod)
- @indirection.metaclass.included_modules.should
include(mod)
+ @indirection.singleton_class.included_modules.should
include(mod)
end
after do
diff --git a/spec/unit/indirector/yaml.rb b/spec/unit/indirector/
yaml.rb
index 7536fbc..0e70708 100755
--- a/spec/unit/indirector/yaml.rb
+++ b/spec/unit/indirector/yaml.rb
@@ -16,7 +16,7 @@ describe Puppet::Indirector::Yaml, " when choosing
file location" do
@store = @store_class.new
@subject = Object.new
- @subject.metaclass.send(:attr_accessor, :name)
+ @subject.singleton_class.send(:attr_accessor, :name)
@subject.name = :me
@dir = "/what/ever"
diff --git a/spec/unit/relationship.rb b/spec/unit/relationship.rb
index 5a52cb5..b98e4e2 100755
--- a/spec/unit/relationship.rb
+++ b/spec/unit/relationship.rb
@@ -213,7 +213,7 @@ describe Puppet::Relationship, "when converting
from pson" do
end
it "should be extended with the PSON utility module" do
- Puppet::Relationship.metaclass.ancestors.should
be_include(Puppet::Util::Pson)
+ Puppet::Relationship.singleton_class.ancestors.should
be_include(Puppet::Util::Pson)
end
# LAK:NOTE For all of these tests, we convert back to the edge
so we can
diff --git a/spec/unit/resource.rb b/spec/unit/resource.rb
index b26f4f9..66a2b7d 100755
--- a/spec/unit/resource.rb
+++ b/spec/unit/resource.rb
@@ -362,7 +362,7 @@ describe Puppet::Resource do
end
it "should include the pson util module" do
- Puppet::Resource.metaclass.ancestors.should
be_include(Puppet::Util::Pson)
+ Puppet::Resource.singleton_class.ancestors.should
be_include(Puppet::Util::Pson)
end
# LAK:NOTE For all of these tests, we convert back to the
resource so we can
diff --git a/spec/unit/resource/catalog.rb b/spec/unit/resource/
catalog.rb
index 7583c01..39ddccd 100755
--- a/spec/unit/resource/catalog.rb
+++ b/spec/unit/resource/catalog.rb
@@ -946,7 +946,7 @@ describe Puppet::Resource::Catalog, "when
converting from pson" do
end
it "should be extended with the PSON utility module" do
- Puppet::Resource::Catalog.metaclass.ancestors.should
be_include(Puppet::Util::Pson)
+ Puppet::Resource::Catalog.singleton_class.ancestors.should
be_include(Puppet::Util::Pson)
end
it "should create it with the provided name" do
diff --git a/spec/unit/ssl/certificate.rb b/spec/unit/ssl/
certificate.rb
index 0d48991..6bd7e77 100755
--- a/spec/unit/ssl/certificate.rb
+++ b/spec/unit/ssl/certificate.rb
@@ -14,7 +14,7 @@ describe Puppet::SSL::Certificate do
end
it "should be extended with the Indirector module" do
- @class.metaclass.should be_include(Puppet::Indirector)
+ @class.singleton_class.should be_include(Puppet::Indirector)
end
it "should indirect certificate" do
diff --git a/spec/unit/ssl/certificate_request.rb b/spec/unit/ssl/
certificate_request.rb
index 85e1d54..fa5986a 100755
--- a/spec/unit/ssl/certificate_request.rb
+++ b/spec/unit/ssl/certificate_request.rb
@@ -11,7 +11,7 @@ describe Puppet::SSL::CertificateRequest do
end
it "should be extended with the Indirector module" do
- @class.metaclass.should be_include(Puppet::Indirector)
+ @class.singleton_class.should be_include(Puppet::Indirector)
end
it "should indirect certificate_request" do
diff --git a/spec/unit/ssl/key.rb b/spec/unit/ssl/key.rb
index b234704..cfeaf79 100755
--- a/spec/unit/ssl/key.rb
+++ b/spec/unit/ssl/key.rb
@@ -10,7 +10,7 @@ describe Puppet::SSL::Key do
end
it "should be extended with the Indirector module" do
- @class.metaclass.should be_include(Puppet::Indirector)
+ @class.singleton_class.should be_include(Puppet::Indirector)
end
it "should indirect key" do
diff --git a/spec/unit/util/cacher.rb b/spec/unit/util/cacher.rb
index 40688bc..eb8515e 100755
--- a/spec/unit/util/cacher.rb
+++ b/spec/unit/util/cacher.rb
@@ -40,7 +40,7 @@ end
describe Puppet::Util::Cacher do
it "should be extended with the Expirer module" do
- Puppet::Util::Cacher.metaclass.ancestors.should
be_include(Puppet::Util::Cacher::Expirer)
+ Puppet::Util::Cacher.singleton_class.ancestors.should
be_include(Puppet::Util::Cacher::Expirer)
end
it "should support defining cached attributes" do
@@ -154,7 +154,7 @@ describe Puppet::Util::Cacher do
extend Puppet::Util::Cacher
end
- klass.metaclass.cached_attr(:myattr) { "eh" }
+ klass.singleton_class.cached_attr(:myattr) { "eh" }
klass.myattr
end
diff --git a/spec/unit/util/tagging.rb b/spec/unit/util/tagging.rb
index 3486f46..04800b3 100755
--- a/spec/unit/util/tagging.rb
+++ b/spec/unit/util/tagging.rb
@@ -66,7 +66,7 @@ describe Puppet::Util::Tagging, "when adding tags"
do
end
it "should provide a method for testing tag validity" do
- @tagger.metaclass.publicize_methods(:valid_tag?)
{ @tagger.should be_respond_to(:valid_tag?) }
+ @tagger.singleton_class.publicize_methods(:valid_tag?)
{ @tagger.should be_respond_to(:valid_tag?) }
end
it "should add qualified classes as tags" do
diff --git a/test/language/scope.rb b/test/language/scope.rb
index 8b06e0d..d7f37eb 100755
--- a/test/language/scope.rb
+++ b/test/language/scope.rb
@@ -424,7 +424,7 @@ Host <<||>>"
# the right namespaces
scope = mkscope :parser => parser
- parser.metaclass.send(:attr_accessor, :last)
+ parser.singleton_class.send(:attr_accessor, :last)
methods = [:find_hostclass, :find_definition]
methods.each do |m|
diff --git a/test/network/server/mongrel_test.rb b/test/network/
server/mongrel_test.rb
index 54bfb39..4414097 100755
--- a/test/network/server/mongrel_test.rb
+++ b/test/network/server/mongrel_test.rb
@@ -18,7 +18,7 @@ class TestMongrelServer < PuppetTest::TestCase
# Make sure client info is correctly extracted.
def test_client_info
obj = Object.new
- obj.metaclass.send(:attr_accessor, :params)
+ obj.singleton_class.send(:attr_accessor, :params)
params = {}
obj.params = params
--
1.7.1
--
You received this message because you are subscribed to the Google
Groups "Puppet Developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to [email protected]
.
For more options, visit this group at http://groups.google.com/group/puppet-dev?hl=en
.