Zoeken…


Aap patchen een klas

Monkey-patching is de aanpassing van klassen of objecten buiten de klasse zelf.

Soms is het handig om aangepaste functionaliteit toe te voegen.

Voorbeeld: Stringklasse overschrijven om parsing naar boolean te bieden

class String 
  def to_b
    self =~ (/^(true|TRUE|True|1)$/i) ? true : false
  end
end

Zoals u kunt zien, voegen we de methode to_b() aan de klasse String, zodat we elke string naar een booleaanse waarde kunnen parseren.

>>'true'.to_b 
=> true
>>'foo bar'.to_b
=> false

Aap die een object patcht

Net als het patchen van klassen, kunt u ook enkele objecten patchen. Het verschil is dat alleen dat ene exemplaar de nieuwe methode kan gebruiken.

Voorbeeld: een stringobject overschrijven om parsing naar boolean te bieden

s = 'true'
t = 'false'    

def s.to_b
  self =~ /true/ ? true : false
end

>> s.to_b
=> true
>> t.to_b
=> undefined method `to_b' for "false":String (NoMethodError)


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow