/ / Prečo mi Ruby bráni v tom, aby som vyťažil nejaký argument v rake úlohe? [zatvorené] - rubínové koľajnice, hrable

Prečo ma ruby ​​zastaví v tom, aby som zarobil argument v rake úlohe? [zatvorené] - ruby ​​na koľajniciach, hrable

Mám úlohu rake, ktorá premenuje veľa vecí na rôzne súbory. Takže, ak to napíše niekto v termináli cmd

 rename:namechange[funk]

kód uvedený nižšie by mal vykonať potrebné vyhľadanie / výmenu. Môj problém je, že túto linku nemôžem uviesť do činnosti.

args[:new_name.capitalize]

Máte nejakú predstavu prečo?

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

AKTUALIZÁCIA: Mal som problémy s príponou „.capitalize“, pretože automaticky za každý prvý znak vložil akýkoľvek znak ako malé písmeno. Nakoniec som k tomu dospel:

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

odpovede:

1 pre odpoveď č. 1

Chceli ste napísať jednu z týchto možností:

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

2 pre odpoveď č. 2
args[:new_name.capitalize]

Stačí zavolať zarobiť na: new_name symbol návrate: New_name a použije to ako kľúč v args hash. Chceš použiť

args[:new_name].capitalize!

Ktorý bude mať prístup: new_name v args haši a použije ho na svojom mieste