Sha256: aa8ad92c52761643f6f4d557b5b0d10b51da26610cdccefc0dc9cda936d8a15f

Contents?: true

Size: 1.52 KB

Versions: 6510

Compression:

Stored size: 1.52 KB

Contents

# frozen_string_literal: true

class Pry
  class Command
    class SaveFile < Pry::ClassCommand
      match 'save-file'
      group 'Input and Output'
      description 'Export to a file using content from the REPL.'

      banner <<-'BANNER'
        Usage: save-file [OPTIONS] --to [FILE]

        Export to a file using content from the REPL.

        save-file my_method --to hello.rb
        save-file -i 1..10 --to hello.rb --append
        save-file show-method --to my_command.rb
        save-file sample_file.rb --lines 2..10 --to output_file.rb
      BANNER

      def options(opt)
        CodeCollector.inject_options(opt)

        opt.on :to=,        "Specify the output file path"
        opt.on :a, :append, "Append output to file"
      end

      def process
        @cc = CodeCollector.new(args, opts, pry_instance)
        raise CommandError, "Found no code to save." if @cc.content.empty?

        if !file_name
          display_content
        else
          save_file
        end
      end

      def file_name
        opts[:to] || nil
      end

      def save_file
        File.open(file_name, mode) do |f|
          f.puts @cc.content
        end
        output.puts "#{file_name} successfully saved"
      end

      def display_content
        output.puts @cc.content
        output.puts "\n\n--\nPlease use `--to FILE` to export to a file."
        output.puts "No file saved!\n--"
      end

      def mode
        opts.present?(:append) ? "a" : "w"
      end
    end

    Pry::Commands.add_command(Pry::Command::SaveFile)
  end
end

Version data entries

6,510 entries across 6,506 versions & 30 rubygems

Version Path
cybrid_api_id_ruby-0.123.3 vendor/bundle/ruby/3.3.0/gems/pry-0.14.2/lib/pry/commands/save_file.rb
cybrid_api_id_ruby-0.123.2 vendor/bundle/ruby/3.3.0/gems/pry-0.14.2/lib/pry/commands/save_file.rb
cybrid_api_bank_ruby-0.123.2 vendor/bundle/ruby/3.3.0/gems/pry-0.14.2/lib/pry/commands/save_file.rb
cybrid_api_organization_ruby-0.123.2 vendor/bundle/ruby/3.3.0/gems/pry-0.14.2/lib/pry/commands/save_file.rb
cybrid_api_bank_ruby-0.122.72 vendor/bundle/ruby/3.3.0/gems/pry-0.14.2/lib/pry/commands/save_file.rb
cybrid_api_organization_ruby-0.122.72 vendor/bundle/ruby/3.3.0/gems/pry-0.14.2/lib/pry/commands/save_file.rb
cybrid_api_id_ruby-0.122.72 vendor/bundle/ruby/3.3.0/gems/pry-0.14.2/lib/pry/commands/save_file.rb
pry-0.15.0 lib/pry/commands/save_file.rb
pry-0.15.0-java lib/pry/commands/save_file.rb
cybrid_api_bank_ruby-0.122.71 vendor/bundle/ruby/3.3.0/gems/pry-0.14.2/lib/pry/commands/save_file.rb
cybrid_api_id_ruby-0.122.71 vendor/bundle/ruby/3.3.0/gems/pry-0.14.2/lib/pry/commands/save_file.rb
cybrid_api_organization_ruby-0.122.71 vendor/bundle/ruby/3.3.0/gems/pry-0.14.2/lib/pry/commands/save_file.rb
cybrid_api_bank_ruby-0.122.70 vendor/bundle/ruby/3.3.0/gems/pry-0.14.2/lib/pry/commands/save_file.rb
cybrid_api_organization_ruby-0.122.70 vendor/bundle/ruby/3.3.0/gems/pry-0.14.2/lib/pry/commands/save_file.rb
cybrid_api_id_ruby-0.122.70 vendor/bundle/ruby/3.3.0/gems/pry-0.14.2/lib/pry/commands/save_file.rb
cybrid_api_bank_ruby-0.122.69 vendor/bundle/ruby/3.3.0/gems/pry-0.14.2/lib/pry/commands/save_file.rb
cybrid_api_id_ruby-0.122.69 vendor/bundle/ruby/3.3.0/gems/pry-0.14.2/lib/pry/commands/save_file.rb
cybrid_api_organization_ruby-0.122.69 vendor/bundle/ruby/3.3.0/gems/pry-0.14.2/lib/pry/commands/save_file.rb
cybrid_api_organization_ruby-0.122.68 vendor/bundle/ruby/3.3.0/gems/pry-0.14.2/lib/pry/commands/save_file.rb
cybrid_api_bank_ruby-0.122.68 vendor/bundle/ruby/3.3.0/gems/pry-0.14.2/lib/pry/commands/save_file.rb