/ / Perché il rubino mi impedisce di capitalizzare un argomento in un compito rake? [chiuso] - ruby-on-rails, rake

Perché il rubino mi impedisce di capitalizzare un argomento in un compito rake? [chiuso] - ruby-on-rails, rake

Ho un compito di rake che rinomina un sacco di cose in vari file. Quindi, se qualcuno sul terminale cmd scrive questo

 rename:namechange[funk]

il codice qui sotto dovrebbe eseguire la ricerca / sostituzione necessaria. Il mio problema è che non riesco a far funzionare questa linea.

args[:new_name.capitalize]

Qualche idea del perché?

namespace :rename do

desc "changes the name of the app"
task :changename, :new_name do |task, args|
args[:new_name.capitalize]
# change any instances of the term "framework" to the new name of the app
#for testing, just change these: file_names = ["config/environment.rb"] #["config/environments/test.rb", "config/environments/production.rb", "config/environment.rb"]
file_names = ["app/helpers/application_helper.rb", "app/views/pages/home.html.erb", "rakefile", "config/application.rb", "config.ru", "config/database.yml",
"config/environments/development.rb", "config/environments/test.rb", "config/environments/production.rb",
"config/environment.rb", "config/initializers/secret_token.rb", "config/initializers/session_store.rb", "config/routes.rb",
"spec/controllers/pages_controller_spec.rb"]
file_names.each do |file_name|
text = File.read(file_name)
File.open(file_name, "w") { |file| file << text.gsub("Framework", args[:new_name]) }
end
end
end

AGGIORNAMENTO: Ho avuto problemi con ".capitalize" perché inserisce automaticamente qualsiasi carattere dopo il primo come una lettera minuscola. In definitiva, sono arrivato a questo:

      args[:new_name][0] =  args[:new_name].capitalize[0]

risposte:

1 per risposta № 1

Volevi scrivere uno di questi:

args[:new_name].capitalize!
args[:new_name] = args[:new_name].capitalize

2 per risposta № 2
args[:new_name.capitalize]

Chiamerà in maiuscolo il simbolo: new_name che restituisce: New_name e lo userà come chiave nell'hash di args. Tu vuoi usare

args[:new_name].capitalize!

Che accederà: new_name nell'hash di args e lo capitalizzerà sul posto