Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

Rake removes trailing whitespaces from parameters when task is being executed from command line.

Offen
#216 9 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Anfängerfreundlichkeit
42/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
ruby
Bereich
cli, tooling

Rechercherichtung

Beginne damit, das Verhalten der Befehlszeile anhand der bereitgestellten rake ws[...] Beispiele zu reproduzieren, und vergleiche es mit dem Aufruf von Rake::Task in der Konsole. Verfolge das Parsen der Argumente von Befehlszeilen-Tasks; abgeschlossen ist die Aufgabe, wenn führende und nachgestellte Leerzeichen in Anführungszeichen gesetzten Parametern erhalten bleiben und mit dem direkten Aufruf und ARGV übereinstimmen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

Having a simple rake task:

  task :ws, [:str] => :environment do |t, args|
    puts args.str.inspect
  end

I get following results when run this task in command line:

  $ rake ws[' ']
  nil
  
  $ rake ws['    ']
  nil
  
  $ rake ws['    1']
  "    1"
  
  $ rake ws['    1    ']
  "    1"
  
  $ rake 'ws[ ]'
  nil
  
  $ rake 'ws[    ]'
  nil
  
  $ rake 'ws[    1]'
  "    1"
  
  $ rake 'ws[    1    ]'
  "    1"

While when the task is being invoked in rails console everything works as expected:

  2.3.3 :258 > Rake::Task['ws'].invoke(' ')
  " "
  2.3.3 :259 > Rake::Task['ws'].reenable
  2.3.3 :260 > Rake::Task['ws'].invoke('    ')
  "    "
  2.3.3 :261 > Rake::Task['ws'].reenable
  2.3.3 :262 > Rake::Task['ws'].invoke('    1')
  "    1"
  2.3.3 :263 > Rake::Task['ws'].reenable
  2.3.3 :264 > Rake::Task['ws'].invoke('    1    ')
  "    1    "

Again, it is definitely not the OS who is responsible for that trimming, since it shouldn't trim anything between quote marks. And besides it can be easily tested this way:

  task :ws, [:str] => :environment do |t, args|
    puts args.str.inspect
    puts ARGV[1].inspect
  end

then in command line:

  $ rake 'ws[  1  ]' '  2  '
  "  1"
  "  2  "

Rake version 12.0.0

some investigation on the issue https://stackoverflow.com/questions/45622716/rake-removes-trailing-whitespaces-from-parameters-how-to-prevent#answer-45623592

Vorherrschende Sprache
Ruby
Sterne
2.5k
Forks
651
Ø Merge
5 Min.
Gemergte PRs (30 T.)
4

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus ruby/rake

Alle Issues in ruby/rake

Ähnliche Issues

Weitere Issues zu Ruby

Neue Issues direkt in Ihr Postfach

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