Ruby Language
Monkey Patching in Ruby
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