Looking for ruby Keywords? Try Ask4Keywords

Ruby Language Scimmia sicura che si aggiusta con i perfezionamenti


Esempio

Dal momento che Ruby 2.0, Ruby consente di avere Patch Patching più sicuro con perfezionamenti. Fondamentalmente consente di limitare il codice Monkey Patched per applicare solo quando richiesto.

Per prima cosa creiamo un perfezionamento in un modulo:

module RefiningString
  refine String do
    def reverse
      "Hell riders"
    end
  end
end

Quindi possiamo decidere dove usarlo:

class AClassWithoutMP   
  def initialize(str)
    @str = str
  end
   
  def reverse
    @str.reverse
  end
end

class AClassWithMP
  using RefiningString

  def initialize(str)
    @str = str
  end
   
  def reverse
    str.reverse
  end
end

AClassWithoutMP.new("hello".reverse # => "olle"
AClassWithMP.new("hello").reverse # "Hell riders"