Class: Pry::Command::Cat::FileFormatter
- Inherits:
-
AbstractFormatter
- Object
- AbstractFormatter
- Pry::Command::Cat::FileFormatter
- Defined in:
- lib/pry/commands/cat/file_formatter.rb
Instance Attribute Summary collapse
-
#file_with_embedded_line ⇒ Object
readonly
Returns the value of attribute file_with_embedded_line.
-
#opts ⇒ Object
readonly
Returns the value of attribute opts.
-
#pry_instance ⇒ Object
readonly
Returns the value of attribute pry_instance.
Instance Method Summary collapse
- #code_type ⇒ Object private
- #code_window_size ⇒ Object private
- #decorate(content) ⇒ Object private
- #detect_code_type_from_file(file_name) ⇒ Object private
- #file_and_line ⇒ Object
- #file_name ⇒ Object private
- #format ⇒ Object
-
#initialize(file_with_embedded_line, pry_instance, opts) ⇒ FileFormatter
constructor
A new instance of FileFormatter.
- #line_number ⇒ Object private
Methods inherited from AbstractFormatter
#between_lines, #use_line_numbers?
Methods included from Helpers::BaseHelpers
#colorize_code, #find_command, #heading, #highlight, #not_a_real_file?, #safe_send, #silence_warnings, #stagger_output, #use_ansi_codes?
Methods included from Helpers::CommandHelpers
#absolute_index_number, #absolute_index_range, #get_method_or_raise, #internal_binding?, #one_index_number, #one_index_range, #one_index_range_or_number, #restrict_to_lines, #set_file_and_dir_locals, #temp_file, #unindent
Methods included from Helpers::OptionsHelpers
method_object, #method_object, method_options, #method_options
Constructor Details
#initialize(file_with_embedded_line, pry_instance, opts) ⇒ FileFormatter
Returns a new instance of FileFormatter.
11 12 13 14 15 16 17 18 19 20 |
# File 'lib/pry/commands/cat/file_formatter.rb', line 11 def initialize(, pry_instance, opts) unless raise CommandError, "Must provide a filename, --in, or --ex." end @file_with_embedded_line = @opts = opts @pry_instance = pry_instance @code_from_file = Pry::Code.from_file(file_name) end |
Instance Attribute Details
#file_with_embedded_line ⇒ Object (readonly)
Returns the value of attribute file_with_embedded_line.
7 8 9 |
# File 'lib/pry/commands/cat/file_formatter.rb', line 7 def @file_with_embedded_line end |
#opts ⇒ Object (readonly)
Returns the value of attribute opts.
8 9 10 |
# File 'lib/pry/commands/cat/file_formatter.rb', line 8 def opts @opts end |
#pry_instance ⇒ Object (readonly)
Returns the value of attribute pry_instance.
9 10 11 |
# File 'lib/pry/commands/cat/file_formatter.rb', line 9 def pry_instance @pry_instance end |
Instance Method Details
#code_type ⇒ Object (private)
55 56 57 |
# File 'lib/pry/commands/cat/file_formatter.rb', line 55 def code_type opts[:type] || detect_code_type_from_file(file_name) end |
#code_window_size ⇒ Object (private)
43 44 45 |
# File 'lib/pry/commands/cat/file_formatter.rb', line 43 def code_window_size pry_instance.config.default_window_size || 7 end |
#decorate(content) ⇒ Object (private)
47 48 49 50 51 52 53 |
# File 'lib/pry/commands/cat/file_formatter.rb', line 47 def decorate(content) if line_number super(content.around(line_number, code_window_size)) else super end end |
#detect_code_type_from_file(file_name) ⇒ Object (private)
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/pry/commands/cat/file_formatter.rb', line 59 def detect_code_type_from_file(file_name) code_type = @code_from_file.code_type if code_type == :unknown name = File.basename(file_name).split('.', 2).first case name when "Rakefile", "Gemfile" :ruby else :text end else code_type end end |
#file_and_line ⇒ Object
27 28 29 30 31 |
# File 'lib/pry/commands/cat/file_formatter.rb', line 27 def file_and_line file_name, line_num = .split(%r{:(?!/|\\)}) [file_name, line_num ? line_num.to_i : nil] end |
#file_name ⇒ Object (private)
35 36 37 |
# File 'lib/pry/commands/cat/file_formatter.rb', line 35 def file_name file_and_line.first end |
#format ⇒ Object
22 23 24 25 |
# File 'lib/pry/commands/cat/file_formatter.rb', line 22 def format set_file_and_dir_locals(file_name, pry_instance, pry_instance.current_context) decorate(@code_from_file) end |
#line_number ⇒ Object (private)
39 40 41 |
# File 'lib/pry/commands/cat/file_formatter.rb', line 39 def line_number file_and_line.last end |