Method: Thor::Actions#inside
- Defined in:
- lib/wip/vendor/thor/actions.rb
#inside(dir = '', config = {}, &block) ⇒ Object
Do something in the root or on a provided subfolder. If a relative path is given it’s referenced from the current root. The full path is yielded to the block you provide. The path is set back to the previous path when the method exits.
Parameters
- dir<String>
-
the directory to move to.
- config<Hash>
-
give :verbose => true to log and use padding.
159 160 161 162 163 164 165 166 167 168 169 170 171 |
# File 'lib/wip/vendor/thor/actions.rb', line 159 def inside(dir='', config={}, &block) verbose = config.fetch(:verbose, false) say_status :inside, dir, verbose shell.padding += 1 if verbose @destination_stack.push File.(dir, destination_root) FileUtils.mkdir_p(destination_root) unless File.exist?(destination_root) FileUtils.cd(destination_root) { block.arity == 1 ? yield(destination_root) : yield } @destination_stack.pop shell.padding -= 1 if verbose end |