JSONAPI-Resources / JSONAPI-Resources/jsonapi-resources

prevents the use of attributes that match core functions

Offen
#918 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
Ruby
Sterne
2.3k
Forks
546
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

I'm creating a resource that has a method attribute, but due to the way it works now:

  define_method attr do
    @model.public_send(options[:delegate] ? options[:delegate].to_sym : attr)
  end unless method_defined?(attr)

It fails to work for me. I know method is a core ruby function, but it's also the word used to describe HTTP's GET and PUT.

One option is to simply drop the unless. Allow rewriting, but warn.

Another option is to provide an in and out type option. Currently I would describe delegate as the in, where it describes how to take in the data, and I would provide a key option as the out functionality (what the resulting key will look like).

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne bei der im Issue gezeigten Definition des resource-Attributs und prüfe, wie method_defined? generierte Accessoren für Namen wie method blockierte. Entscheide, ob Kollisionen mit einer Warnung überschrieben oder mit einem expliziten Ausgabeschlüssel abgebildet werden sollen, und füge Regressionstests für das gewählte Verhalten hinzu.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
rails, ruby
Bereich
api, backend
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.