Class: Remedy::Viewport
- Inherits:
-
Object
- Object
- Remedy::Viewport
- Defined in:
- lib/remedy/viewport.rb
Instance Method Summary collapse
- #center_range(center, width, limit) ⇒ Object
- #content_size(header, footer) ⇒ Object
- #draw(content, center = Size.new(0,0), header = [], footer = []) ⇒ Object
- #range_find(partial, center, heightwidth) ⇒ Object
- #size ⇒ Object
Instance Method Details
#center_range(center, width, limit) ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/remedy/viewport.rb', line 43 def center_range center, width, limit range_start = center - (width / 2) if range_start + width > limit then range_start = limit - width end if range_start < 0 then range_start = 0 end range_end = range_start + width (range_start...range_end) end |
#content_size(header, footer) ⇒ Object
34 35 36 37 |
# File 'lib/remedy/viewport.rb', line 34 def content_size header, trim = Size [header.length + .length, 0] size - trim end |
#draw(content, center = Size.new(0,0), header = [], footer = []) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/remedy/viewport.rb', line 8 def draw content, center = Size.new(0,0), header = [], = [] range = range_find content, center, content_size(header,) if content.size.fits_into? range then viewable_content = content else viewable_content = content.excerpt *range end view = View.new viewable_content, header, ANSI.screen.safe_reset! Console.output << view end |
#range_find(partial, center, heightwidth) ⇒ Object
23 24 25 26 27 28 29 30 31 32 |
# File 'lib/remedy/viewport.rb', line 23 def range_find partial, center, heightwidth row_size, col_size = heightwidth row_limit, col_limit = partial.size center_row, center_col = center row_range = center_range center_row, row_size, row_limit col_range = center_range center_col, col_size, col_limit [row_range, col_range] end |