`$RAKE_PRELOAD` to load custom Ruby file before starting application
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 30/100
- Type d'issue
- Fonctionnalité
- Clarté
- Plutôt claire
- Activité
- À l'abandon
- Stack technique
- ruby
- Domaine
- build-system, cli, tooling
Piste de recherche
Commencez par le point d’entrée de la commande rake et suivez la manière dont Rake.application.run charge le Rakefile et appelle handle_options. Déterminez comment un fichier de préchargement pourrait être chargé avant run tout en préservant le comportement RAKE_PRELOAD proposé ; le travail est terminé lorsque le mécanisme est convenu, implémenté et couvert par des tests pour personnaliser Rake.application.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Rake application loads Rakefile AFTER Rake.application.run() started.
Therefore it is not able to customize Rake.application.run() (or other methods defined in Rake.application) in Rakefile.
For example, I want to change Rake::Application#handle_options() to use parser.order(argv) instead of parser.parse(argv) in order not to parse options after task names.
(I'm developing rake extension to allow command-line options for each task, and parser.order() is necessary for this purpose.)
Here is my challenge (Rakefile):
## Rakefile
module Rake
Application.class_eval do
def handle_options(argv)
set_default_options
OptionParser.new do |opts|
opts.banner = "#{Rake.application.name} [-f rakefile] {options} targets..."
opts.separator ""
opts.separator "Options are ..."
opts.on_tail("-h", "--help", "-H", "Display this help message.") do
puts opts
exit
end
standard_rake_options.each { |args| opts.on(*args) }
opts.environment("RAKEOPT")
#end.parse(argv) # !! original !!
end.order(argv) # !! customize !!
end
end
end
But the above Rakefile doesn't work intendedly because Rake application loads Rakefile after Rake.application.run() started.
Therefore, I hope Rake to provide a certain method to load custom ruby file before Rake.application.run() started.
One solution is to load a ruby file specified by the $RAKE_PRELOAD environment variable in rake command.
rake command:
#!/usr/bin/env ruby
require "rake"
preload = ENV['RAKE_PRELOAD'] # !!!
if preload && ! preload.empty? # !!!
require preload # !!!
end # !!!
Rake.application.run
I'd like the dev team to consider this idea.
- Langage dominant
- Ruby
- Étoiles
- 2.5k
- Forks
- 650
- Merge moyen
- 6 min
- PR mergées (30 j)
- 3
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de ruby/rake
-
Difficulté 3/5 1-2 jours Accessibilité débutants 68/100
-
Difficulté 3/5 1-2 jours Accessibilité débutants 48/100
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 28/100
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 45/100
-
Difficulté 4/5 3-5 jours Accessibilité débutants 38/100
Toutes les issues de ruby/rake
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
-
bug
Difficulté 1/5 Moins d'une heure Accessibilité débutants 90/100
riscv/riscv-unified-db#2626 ·
-
Component: GLib
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
-
ds-drift
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
we-promise/sure#3693 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
simp/pupmod-simp-simp#395 ·