Überschreiben Sie Schienen Helfer mit Zugang zum original

Will ich mit rails' vertraut Helfer, aber mit leicht veränderten Funktionalität. Ich sehe das so, ich möchte in der Lage sein, etwas zu tun:

module AwesomeHelper
  #... create alias of stylesheet_link_tag to old_stylesheet_link_tag
  def stylesheet_link_tag(*args)
    if @be_awesome
      awesome_stylesheet_link_tag *args
    else
      old_stylesheet_link_tag *args
    end
  end
end

So wie ich es sehe, habe ich drei Optionen:

  1. Monkey-patching: Wiedereröffnung der rails-helper-Modul. Wenn die rails-team jemals ändern Sie die Namen Ihrer Helfer-Modul, mein code wird zu einer Quelle der Sprödigkeit. Nicht unüberwindbar, aber nicht ideal.
  2. Verwenden unterschiedliche Methodennamen: Versuchen zu kleben, um die common-Rail-Schnittstelle kann mein Untergang. Meine änderungen kann eine Quelle der Verwirrung für andere Entwickler
  3. Abnehmen-Methoden (neu): Nicht sicher, ob dies funktionieren würde, oder ob es die gleichen Nachteile wie 1. Wird diese Forschung, aber dies könnte ein guter Ausgangspunkt.

Also die Frage hier ist, bin ich stecken mit einem dieser sub-optimale Lösungen, oder gibt es eine andere Möglichkeit, die ich noch nicht berücksichtigt? Wenn ich mich für option 3, gibt es einen Weg, es zu tun, ohne die direkte Ansprache der rails-helper-Modul?

(Hinweis: ich habe entfernt den Kontext an, denn es fügt nichts zu der Frage.)

InformationsquelleAutor user208769 | 2012-05-06
Schreibe einen Kommentar