refer to TYPE via self.class to allow inheritance

When referring to TYPE directly, the value is taken from the class in
which the method is defined, but we want it to be taken from the class
for the object being acted on, so we instead use self.class::TYPE to
ensure that methods still work in inherited subclasses.  For example
this means that Pacemaker::Resource::MasterSlave will be able to inherit
from Pacemaker::Resource::Clone.
This commit is contained in:
Adam Spiers 2014-03-14 20:19:16 +00:00
parent ea9079581e
commit 35bc3a4ceb
4 changed files with 8 additions and 8 deletions

View File

@ -11,7 +11,7 @@ class Pacemaker::Constraint::Colocation < Pacemaker::Constraint
end
def parse_definition
unless definition =~ /^#{TYPE} (\S+) (\d+|[-+]?inf): (.+?)\s*$/
unless definition =~ /^#{self.class::TYPE} (\S+) (\d+|[-+]?inf): (.+?)\s*$/
raise Pacemaker::CIBObject::DefinitionParseError, \
"Couldn't parse definition '#{definition}'"
end
@ -21,7 +21,7 @@ class Pacemaker::Constraint::Colocation < Pacemaker::Constraint
end
def definition_string
"#{TYPE} #{name} #{score}: " + resources.join(' ')
"#{self.class::TYPE} #{name} #{score}: " + resources.join(' ')
end
def crm_configure_command

View File

@ -14,7 +14,7 @@ class Pacemaker::Resource::Clone < Pacemaker::Resource
end
def definition_string
str = "#{TYPE} #{name} #{rsc}"
str = "#{self.class::TYPE} #{name} #{rsc}"
unless meta.empty?
str << continuation_line(meta_string)
end
@ -22,7 +22,7 @@ class Pacemaker::Resource::Clone < Pacemaker::Resource
end
def parse_definition
unless definition =~ /^#{TYPE} (\S+) (\S+)/
unless definition =~ /^#{self.class::TYPE} (\S+) (\S+)/
raise Pacemaker::CIBObject::DefinitionParseError, \
"Couldn't parse definition '#{definition}'"
end

View File

@ -14,7 +14,7 @@ class Pacemaker::Resource::Group < Pacemaker::Resource
end
def parse_definition
unless definition =~ /^#{TYPE} (\S+) (.+?)(\s+\\)?$/
unless definition =~ /^#{self.class::TYPE} (\S+) (.+?)(\s+\\)?$/
raise Pacemaker::CIBObject::DefinitionParseError, \
"Couldn't parse definition '#{definition}'"
end
@ -27,7 +27,7 @@ class Pacemaker::Resource::Group < Pacemaker::Resource
end
def definition_string
str = "#{TYPE} #{name} " + members.join(' ')
str = "#{self.class::TYPE} #{name} " + members.join(' ')
unless meta.empty?
str << continuation_line(meta_string)
end

View File

@ -21,7 +21,7 @@ class Pacemaker::Resource::Primitive < Pacemaker::Resource
end
def parse_definition
unless definition =~ /\A#{TYPE} (\S+) (\S+)/
unless definition =~ /\A#{self.class::TYPE} (\S+) (\S+)/
raise Pacemaker::CIBObject::DefinitionParseError, \
"Couldn't parse definition '#{definition}'"
end
@ -50,7 +50,7 @@ class Pacemaker::Resource::Primitive < Pacemaker::Resource
end
def definition_string
str = "#{TYPE} #{name} #{agent}"
str = "#{self.class::TYPE} #{name} #{agent}"
%w(params meta op).each do |data_type|
unless send(data_type).empty?
data_string = send("#{data_type}_string")