Method: Thor::Actions#insert_into_file
- Defined in:
- lib/thor/actions/inject_into_file.rb
#insert_into_file(destination, *args, &block) ⇒ Object Also known as: inject_into_file
Injects the given content into a file. Different from gsub_file, this method is reversible.
Parameters
- destination<String>
-
Relative path to the destination root
- data<String>
-
Data to add to the file. Can be given as a block.
- config<Hash>
-
give :verbose => false to not log the status and the flag for injection (:after or :before) or :force => true for insert two or more times the same content.
Examples
insert_into_file "config/environment.rb", "config.gem :thor", :after => "Rails::Initializer.run do |config|\n"
insert_into_file "config/environment.rb", :after => "Rails::Initializer.run do |config|\n" do
gems = ask "Which gems would you like to add?"
gems.split(" ").map{ |gem| " config.gem :#{gem}" }.join("\n")
end
56 57 58 59 60 61 62 63 |
# File 'lib/thor/actions/inject_into_file.rb', line 56 def insert_into_file(destination, *args, &block) data = block_given? ? block : args.shift config = args.shift || {} config[:after] = /\z/ unless config.key?(:before) || config.key?(:after) action InjectIntoFile.new(self, destination, data, config) end |