Class: FileBrowserView
- Inherits:
-
Object
- Object
- FileBrowserView
- Defined in:
- lib/terminal-file-picker/file_browser_view.rb
Overview
Renders a directory view with pagination support. Allows highlighting an item in the directory to indicate its selected. Instance stores directory view rendering options.
Instance Attribute Summary collapse
-
#files_per_page ⇒ Object
readonly
Returns the value of attribute files_per_page.
Instance Method Summary collapse
-
#initialize(options = {}) ⇒ FileBrowserView
constructor
A new instance of FileBrowserView.
- #render(dir_path, files, selected_index, page, use_cache = false) ⇒ Object
Constructor Details
#initialize(options = {}) ⇒ FileBrowserView
11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/terminal-file-picker/file_browser_view.rb', line 11 def initialize( = {}) default_header = ['Name', 'Size (B)', 'Date modified', 'Time modified'] @header = .fetch(:header, default_header) @dir_label = .fetch(:dir_label, 'Directory') @page_label = .fetch(:page_label, 'Page') @left_pad = .fetch(:left_pad, 2) @right_pad = .fetch(:right_pad, 2) @files_per_page = .fetch(:files_per_page, 10) @show_info_line = .fetch(:show_info_line, true) @info_line_position = .fetch(:info_line_position, :top) @cache = '' end |
Instance Attribute Details
#files_per_page ⇒ Object (readonly)
Returns the value of attribute files_per_page.
9 10 11 |
# File 'lib/terminal-file-picker/file_browser_view.rb', line 9 def files_per_page @files_per_page end |
Instance Method Details
#render(dir_path, files, selected_index, page, use_cache = false) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/terminal-file-picker/file_browser_view.rb', line 24 def render(dir_path, files, selected_index, page, use_cache = false) files_table = files_table_string(files, use_cache) file_browser = render_file_browser(files_table, selected_index, page) return file_browser unless @show_info_line info_line = (files.length, page, dir_path) return "#{info_line}\n\n#{file_browser}" if @info_line_position == :top "#{file_browser}\n\n#{info_line}" end |