vedeu 0.6.1 → 0.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - data/lib/vedeu/all.rb +2 -13
 - data/lib/vedeu/api.rb +9 -9
 - data/lib/vedeu/application/application_view.rb +3 -5
 - data/lib/vedeu/bindings/bindings.rb +5 -1
 - data/lib/vedeu/bindings/focus.rb +0 -5
 - data/lib/vedeu/bindings/refresh.rb +0 -5
 - data/lib/vedeu/bindings/system.rb +1 -6
 - data/lib/vedeu/colours/all.rb +17 -0
 - data/lib/vedeu/colours/background.rb +32 -28
 - data/lib/vedeu/colours/backgrounds.rb +13 -9
 - data/lib/vedeu/colours/colour.rb +106 -102
 - data/lib/vedeu/colours/foreground.rb +32 -28
 - data/lib/vedeu/colours/foregrounds.rb +13 -9
 - data/lib/vedeu/colours/repository.rb +70 -0
 - data/lib/vedeu/colours/translator.rb +267 -0
 - data/lib/vedeu/configuration/api.rb +10 -7
 - data/lib/vedeu/configuration/configuration.rb +2 -1
 - data/lib/vedeu/dsl/border.rb +15 -2
 - data/lib/vedeu/dsl/composition.rb +6 -4
 - data/lib/vedeu/dsl/geometry.rb +14 -7
 - data/lib/vedeu/dsl/group.rb +2 -2
 - data/lib/vedeu/dsl/interface.rb +5 -3
 - data/lib/vedeu/dsl/keymap.rb +9 -7
 - data/lib/vedeu/dsl/line.rb +7 -4
 - data/lib/vedeu/dsl/menu.rb +3 -0
 - data/lib/vedeu/dsl/presentation.rb +20 -10
 - data/lib/vedeu/dsl/shared.rb +4 -4
 - data/lib/vedeu/dsl/stream.rb +2 -2
 - data/lib/vedeu/dsl/text.rb +11 -5
 - data/lib/vedeu/dsl/use.rb +2 -2
 - data/lib/vedeu/dsl/view.rb +8 -6
 - data/lib/vedeu/events/aliases.rb +91 -0
 - data/lib/vedeu/events/all.rb +15 -0
 - data/lib/vedeu/events/collection.rb +13 -0
 - data/lib/vedeu/events/event.rb +244 -239
 - data/lib/vedeu/events/repository.rb +30 -0
 - data/lib/vedeu/events/trigger.rb +68 -64
 - data/lib/vedeu/exceptions.rb +65 -54
 - data/lib/vedeu/geometry/coordinate.rb +3 -1
 - data/lib/vedeu/geometry/grid.rb +2 -4
 - data/lib/vedeu/input/editor/all.rb +2 -1
 - data/lib/vedeu/input/editor/{virtual_cursor.rb → cursor.rb} +10 -10
 - data/lib/vedeu/input/editor/document.rb +7 -7
 - data/lib/vedeu/input/editor/insert.rb +70 -0
 - data/lib/vedeu/input/editor/line.rb +4 -16
 - data/lib/vedeu/input/editor/lines.rb +2 -16
 - data/lib/vedeu/input/input_translator.rb +2 -2
 - data/lib/vedeu/input/key.rb +2 -2
 - data/lib/vedeu/internal_api.rb +6 -6
 - data/lib/vedeu/log/lockless_log_device.rb +0 -74
 - data/lib/vedeu/models/focus.rb +3 -3
 - data/lib/vedeu/models/interface.rb +3 -3
 - data/lib/vedeu/models/menu.rb +2 -2
 - data/lib/vedeu/models/views/char.rb +1 -1
 - data/lib/vedeu/models/views/composition.rb +1 -1
 - data/lib/vedeu/models/views/line.rb +1 -1
 - data/lib/vedeu/models/views/stream.rb +1 -1
 - data/lib/vedeu/models/views/view.rb +6 -7
 - data/lib/vedeu/output/presentation/colour.rb +23 -21
 - data/lib/vedeu/output/renderers/renderer_options.rb +2 -4
 - data/lib/vedeu/output/text.rb +1 -1
 - data/lib/vedeu/output/wordwrap.rb +18 -7
 - data/lib/vedeu/plugins/plugin.rb +2 -2
 - data/lib/vedeu/refresh/refresh_buffer.rb +3 -3
 - data/lib/vedeu/refresh/refresh_group.rb +3 -3
 - data/lib/vedeu/repositories/repository.rb +7 -6
 - data/lib/vedeu/runtime/application.rb +1 -1
 - data/lib/vedeu/runtime/main_loop.rb +3 -3
 - data/lib/vedeu/runtime/router.rb +14 -11
 - data/lib/vedeu/templating/helpers.rb +5 -5
 - data/lib/vedeu/templating/template.rb +4 -4
 - data/lib/vedeu/templating/view_template.rb +1 -1
 - data/lib/vedeu/terminal/terminal.rb +2 -2
 - data/lib/vedeu/version.rb +1 -1
 - data/test/lib/vedeu/application/application_view_test.rb +1 -1
 - data/test/lib/vedeu/colours/background_test.rb +93 -89
 - data/test/lib/vedeu/colours/backgrounds_test.rb +11 -7
 - data/test/lib/vedeu/colours/colour_test.rb +155 -151
 - data/test/lib/vedeu/colours/foreground_test.rb +93 -89
 - data/test/lib/vedeu/colours/foregrounds_test.rb +11 -7
 - data/test/lib/vedeu/colours/repository_test.rb +97 -0
 - data/test/lib/vedeu/colours/translator_test.rb +173 -0
 - data/test/lib/vedeu/configuration/api_test.rb +4 -4
 - data/test/lib/vedeu/dsl/border_test.rb +12 -0
 - data/test/lib/vedeu/dsl/composition_test.rb +3 -3
 - data/test/lib/vedeu/dsl/geometry_test.rb +11 -0
 - data/test/lib/vedeu/dsl/group_test.rb +2 -2
 - data/test/lib/vedeu/dsl/interface_test.rb +4 -4
 - data/test/lib/vedeu/dsl/keymap_test.rb +8 -4
 - data/test/lib/vedeu/dsl/line_test.rb +6 -3
 - data/test/lib/vedeu/dsl/menu_test.rb +6 -0
 - data/test/lib/vedeu/dsl/presentation_test.rb +16 -3
 - data/test/lib/vedeu/dsl/stream_test.rb +1 -1
 - data/test/lib/vedeu/dsl/text_test.rb +7 -0
 - data/test/lib/vedeu/dsl/view_test.rb +3 -3
 - data/test/lib/vedeu/events/aliases_test.rb +144 -0
 - data/test/lib/vedeu/events/collection_test.rb +22 -0
 - data/test/lib/vedeu/events/event_test.rb +84 -80
 - data/test/lib/vedeu/events/repository_test.rb +28 -0
 - data/test/lib/vedeu/events/trigger_test.rb +41 -37
 - data/test/lib/vedeu/geometry/grid_test.rb +4 -4
 - data/test/lib/vedeu/input/editor/{virtual_cursor_test.rb → cursor_test.rb} +3 -3
 - data/test/lib/vedeu/input/editor/insert_test.rb +36 -0
 - data/test/lib/vedeu/input/key_test.rb +1 -1
 - data/test/lib/vedeu/models/cell_test.rb +1 -1
 - data/test/lib/vedeu/models/focus_test.rb +4 -2
 - data/test/lib/vedeu/models/menu_test.rb +1 -1
 - data/test/lib/vedeu/models/views/char_test.rb +8 -4
 - data/test/lib/vedeu/models/views/line_test.rb +4 -4
 - data/test/lib/vedeu/models/views/stream_test.rb +3 -3
 - data/test/lib/vedeu/models/views/view_test.rb +1 -1
 - data/test/lib/vedeu/output/html_char_test.rb +4 -2
 - data/test/lib/vedeu/output/presentation/colour_test.rb +5 -5
 - data/test/lib/vedeu/output/presentation_test.rb +4 -4
 - data/test/lib/vedeu/output/renderers/json_test.rb +4 -2
 - data/test/lib/vedeu/plugins/plugin_test.rb +1 -1
 - data/test/lib/vedeu/refresh/refresh_buffer_test.rb +1 -1
 - data/test/lib/vedeu/refresh/refresh_group_test.rb +1 -1
 - data/test/lib/vedeu/repositories/repository_test.rb +2 -2
 - data/test/lib/vedeu/runtime/router_test.rb +6 -6
 - data/test/lib/vedeu/templating/decoder_test.rb +2 -3
 - data/test/lib/vedeu/templating/encoder_test.rb +2 -3
 - data/test/lib/vedeu/templating/helpers_test.rb +6 -6
 - data/test/lib/vedeu/templating/template_test.rb +2 -2
 - data/test/lib/vedeu/templating/view_template_test.rb +13 -7
 - data/test/lib/vedeu/terminal/terminal_test.rb +3 -3
 - metadata +24 -19
 - data/lib/vedeu/colours/colour_translator.rb +0 -260
 - data/lib/vedeu/colours/colours.rb +0 -66
 - data/lib/vedeu/events/event_aliases.rb +0 -87
 - data/lib/vedeu/events/event_collection.rb +0 -9
 - data/lib/vedeu/events/events.rb +0 -26
 - data/test/lib/vedeu/colours/colour_translator_test.rb +0 -169
 - data/test/lib/vedeu/colours/colours_test.rb +0 -93
 - data/test/lib/vedeu/events/event_aliases_test.rb +0 -140
 - data/test/lib/vedeu/events/event_collection_test.rb +0 -18
 - data/test/lib/vedeu/events/events_test.rb +0 -24
 
| 
         @@ -267,14 +267,14 @@ module Vedeu 
     | 
|
| 
       267 
267 
     | 
    
         
             
                  # Return a virtual cursor to track the cursor position within the
         
     | 
| 
       268 
268 
     | 
    
         
             
                  # document.
         
     | 
| 
       269 
269 
     | 
    
         
             
                  #
         
     | 
| 
       270 
     | 
    
         
            -
                  # @return [Vedeu::Editor:: 
     | 
| 
      
 270 
     | 
    
         
            +
                  # @return [Vedeu::Editor::Cursor]
         
     | 
| 
       271 
271 
     | 
    
         
             
                  def cursor
         
     | 
| 
       272 
     | 
    
         
            -
                    @cursor ||= Vedeu::Editor:: 
     | 
| 
       273 
     | 
    
         
            -
             
     | 
| 
       274 
     | 
    
         
            -
             
     | 
| 
       275 
     | 
    
         
            -
             
     | 
| 
       276 
     | 
    
         
            -
             
     | 
| 
       277 
     | 
    
         
            -
             
     | 
| 
      
 272 
     | 
    
         
            +
                    @cursor ||= Vedeu::Editor::Cursor.new(y:   0,
         
     | 
| 
      
 273 
     | 
    
         
            +
                                                          x:   0,
         
     | 
| 
      
 274 
     | 
    
         
            +
                                                          by:  by,
         
     | 
| 
      
 275 
     | 
    
         
            +
                                                          bx:  bx,
         
     | 
| 
      
 276 
     | 
    
         
            +
                                                          byn: byn,
         
     | 
| 
      
 277 
     | 
    
         
            +
                                                          bxn: bxn)
         
     | 
| 
       278 
278 
     | 
    
         
             
                  end
         
     | 
| 
       279 
279 
     | 
    
         | 
| 
       280 
280 
     | 
    
         
             
                  # Return only the visible lines for the document based on the current
         
     | 
| 
         @@ -0,0 +1,70 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module Vedeu
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
              module Editor
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
                # Manipulate the lines of an Vedeu::Editor::Document.
         
     | 
| 
      
 6 
     | 
    
         
            +
                #
         
     | 
| 
      
 7 
     | 
    
         
            +
                class Insert
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
                  # @return [Vedeu::Editor::Line|Vedeu::Editor::Lines]
         
     | 
| 
      
 10 
     | 
    
         
            +
                  # @see #initialize
         
     | 
| 
      
 11 
     | 
    
         
            +
                  def self.into(collection, entity, index = nil, size = 0)
         
     | 
| 
      
 12 
     | 
    
         
            +
                    new(collection, entity, index, size).insert
         
     | 
| 
      
 13 
     | 
    
         
            +
                  end
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                  # Returns a new instance of Vedeu::Editor::Insert.
         
     | 
| 
      
 16 
     | 
    
         
            +
                  #
         
     | 
| 
      
 17 
     | 
    
         
            +
                  # @param collection [Vedeu::Editor::Line|Vedeu::Editor::Lines]
         
     | 
| 
      
 18 
     | 
    
         
            +
                  # @param entity [String]
         
     | 
| 
      
 19 
     | 
    
         
            +
                  # @param index [Fixnum]
         
     | 
| 
      
 20 
     | 
    
         
            +
                  # @param size [Fixnum]
         
     | 
| 
      
 21 
     | 
    
         
            +
                  # @return [Vedeu::Editor::Insert]
         
     | 
| 
      
 22 
     | 
    
         
            +
                  def initialize(collection, entity, index = nil, size = 0)
         
     | 
| 
      
 23 
     | 
    
         
            +
                    @collection = collection
         
     | 
| 
      
 24 
     | 
    
         
            +
                    @entity     = entity
         
     | 
| 
      
 25 
     | 
    
         
            +
                    @index      = index
         
     | 
| 
      
 26 
     | 
    
         
            +
                    @size       = size
         
     | 
| 
      
 27 
     | 
    
         
            +
                  end
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
                  # @return [Vedeu::Editor::Line|Vedeu::Editor::Lines]
         
     | 
| 
      
 30 
     | 
    
         
            +
                  def insert
         
     | 
| 
      
 31 
     | 
    
         
            +
                    if index
         
     | 
| 
      
 32 
     | 
    
         
            +
                      if index <= 0
         
     | 
| 
      
 33 
     | 
    
         
            +
                        collection.insert(0, entity)
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
                      elsif index >= size
         
     | 
| 
      
 36 
     | 
    
         
            +
                        collection << entity
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
                      else
         
     | 
| 
      
 39 
     | 
    
         
            +
                        collection.insert(index, entity)
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
                      end
         
     | 
| 
      
 42 
     | 
    
         
            +
                    else
         
     | 
| 
      
 43 
     | 
    
         
            +
                      collection << entity
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
                    end
         
     | 
| 
      
 46 
     | 
    
         
            +
                  end
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
                  protected
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
                  # @!attribute [r] collection
         
     | 
| 
      
 51 
     | 
    
         
            +
                  # @return [Vedeu::Editor::Line|Vedeu::Editor::Lines]
         
     | 
| 
      
 52 
     | 
    
         
            +
                  attr_reader :collection
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
                  # @!attribute [r] entity
         
     | 
| 
      
 55 
     | 
    
         
            +
                  # @return [String]
         
     | 
| 
      
 56 
     | 
    
         
            +
                  attr_reader :entity
         
     | 
| 
      
 57 
     | 
    
         
            +
             
     | 
| 
      
 58 
     | 
    
         
            +
                  # @!attribute [r] index
         
     | 
| 
      
 59 
     | 
    
         
            +
                  # @return [Fixnum]
         
     | 
| 
      
 60 
     | 
    
         
            +
                  attr_reader :index
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
      
 62 
     | 
    
         
            +
                  # @!attribute [r] size
         
     | 
| 
      
 63 
     | 
    
         
            +
                  # @return [Fixnum]
         
     | 
| 
      
 64 
     | 
    
         
            +
                  attr_reader :size
         
     | 
| 
      
 65 
     | 
    
         
            +
             
     | 
| 
      
 66 
     | 
    
         
            +
                end # Insert
         
     | 
| 
      
 67 
     | 
    
         
            +
             
     | 
| 
      
 68 
     | 
    
         
            +
              end # Editor
         
     | 
| 
      
 69 
     | 
    
         
            +
             
     | 
| 
      
 70 
     | 
    
         
            +
            end # Vedeu
         
     | 
| 
         @@ -101,25 +101,13 @@ module Vedeu 
     | 
|
| 
       101 
101 
     | 
    
         
             
                  #
         
     | 
| 
       102 
102 
     | 
    
         
             
                  # @param character [String]
         
     | 
| 
       103 
103 
     | 
    
         
             
                  # @param index [Fixnum|NilClass]
         
     | 
| 
       104 
     | 
    
         
            -
                  # @return [ 
     | 
| 
      
 104 
     | 
    
         
            +
                  # @return [Vedeu::Editor::Line]
         
     | 
| 
       105 
105 
     | 
    
         
             
                  def insert_character(character, index = nil)
         
     | 
| 
       106 
     | 
    
         
            -
                     
     | 
| 
       107 
     | 
    
         
            -
                                 if index <= 0
         
     | 
| 
       108 
     | 
    
         
            -
                                   line.insert(0, character)
         
     | 
| 
       109 
     | 
    
         
            -
             
     | 
| 
       110 
     | 
    
         
            -
                                 elsif index >= size
         
     | 
| 
       111 
     | 
    
         
            -
                                   line << character
         
     | 
| 
       112 
     | 
    
         
            -
             
     | 
| 
       113 
     | 
    
         
            -
                                 else
         
     | 
| 
       114 
     | 
    
         
            -
                                   line.insert(index, character)
         
     | 
| 
      
 106 
     | 
    
         
            +
                    return self unless character
         
     | 
| 
       115 
107 
     | 
    
         | 
| 
       116 
     | 
    
         
            -
             
     | 
| 
       117 
     | 
    
         
            -
                               else
         
     | 
| 
       118 
     | 
    
         
            -
                                 line + character
         
     | 
| 
       119 
     | 
    
         
            -
             
     | 
| 
       120 
     | 
    
         
            -
                               end
         
     | 
| 
      
 108 
     | 
    
         
            +
                    insert = Vedeu::Editor::Insert.into(line, character, index, size)
         
     | 
| 
       121 
109 
     | 
    
         | 
| 
       122 
     | 
    
         
            -
                    Vedeu::Editor::Line.coerce( 
     | 
| 
      
 110 
     | 
    
         
            +
                    Vedeu::Editor::Line.coerce(insert)
         
     | 
| 
       123 
111 
     | 
    
         
             
                  end
         
     | 
| 
       124 
112 
     | 
    
         | 
| 
       125 
113 
     | 
    
         
             
                  # Return the size of the line in characters.
         
     | 
| 
         @@ -137,23 +137,9 @@ module Vedeu 
     | 
|
| 
       137 
137 
     | 
    
         
             
                  def insert_line(line, index = nil)
         
     | 
| 
       138 
138 
     | 
    
         
             
                    return self unless line
         
     | 
| 
       139 
139 
     | 
    
         | 
| 
       140 
     | 
    
         
            -
                     
     | 
| 
       141 
     | 
    
         
            -
                                  if index <= 0
         
     | 
| 
       142 
     | 
    
         
            -
                                    lines.insert(0, line)
         
     | 
| 
      
 140 
     | 
    
         
            +
                    insert = Vedeu::Editor::Insert.into(lines, line, index, size)
         
     | 
| 
       143 
141 
     | 
    
         | 
| 
       144 
     | 
    
         
            -
             
     | 
| 
       145 
     | 
    
         
            -
                                    lines << line
         
     | 
| 
       146 
     | 
    
         
            -
             
     | 
| 
       147 
     | 
    
         
            -
                                  else
         
     | 
| 
       148 
     | 
    
         
            -
                                    lines.insert(index, line)
         
     | 
| 
       149 
     | 
    
         
            -
             
     | 
| 
       150 
     | 
    
         
            -
                                  end
         
     | 
| 
       151 
     | 
    
         
            -
                                else
         
     | 
| 
       152 
     | 
    
         
            -
                                  lines << line
         
     | 
| 
       153 
     | 
    
         
            -
             
     | 
| 
       154 
     | 
    
         
            -
                                end
         
     | 
| 
       155 
     | 
    
         
            -
             
     | 
| 
       156 
     | 
    
         
            -
                    Vedeu::Editor::Lines.coerce(new_lines)
         
     | 
| 
      
 142 
     | 
    
         
            +
                    Vedeu::Editor::Lines.coerce(insert)
         
     | 
| 
       157 
143 
     | 
    
         
             
                  end
         
     | 
| 
       158 
144 
     | 
    
         | 
| 
       159 
145 
     | 
    
         
             
                  # Returns the line at the given index.
         
     | 
| 
         @@ -37,7 +37,7 @@ module Vedeu 
     | 
|
| 
       37 
37 
     | 
    
         
             
                  @symbols ||= f_keys.merge!(ctrl_letters).merge!(specials)
         
     | 
| 
       38 
38 
     | 
    
         
             
                end
         
     | 
| 
       39 
39 
     | 
    
         | 
| 
       40 
     | 
    
         
            -
                # @return [Hash<String => Symbol]
         
     | 
| 
      
 40 
     | 
    
         
            +
                # @return [Hash<String => Symbol>]
         
     | 
| 
       41 
41 
     | 
    
         
             
                def ctrl_letters
         
     | 
| 
       42 
42 
     | 
    
         
             
                  {
         
     | 
| 
       43 
43 
     | 
    
         
             
                    "\u0001"  => :ctrl_a,
         
     | 
| 
         @@ -72,7 +72,7 @@ module Vedeu 
     | 
|
| 
       72 
72 
     | 
    
         
             
                  }
         
     | 
| 
       73 
73 
     | 
    
         
             
                end
         
     | 
| 
       74 
74 
     | 
    
         | 
| 
       75 
     | 
    
         
            -
                # @return [Hash<String => Symbol]
         
     | 
| 
      
 75 
     | 
    
         
            +
                # @return [Hash<String => Symbol>]
         
     | 
| 
       76 
76 
     | 
    
         
             
                def f_keys
         
     | 
| 
       77 
77 
     | 
    
         
             
                  {
         
     | 
| 
       78 
78 
     | 
    
         
             
                    "\eOP"      => :f1,
         
     | 
    
        data/lib/vedeu/input/key.rb
    CHANGED
    
    | 
         @@ -13,10 +13,10 @@ module Vedeu 
     | 
|
| 
       13 
13 
     | 
    
         
             
                #
         
     | 
| 
       14 
14 
     | 
    
         
             
                # @param input [String|Symbol]
         
     | 
| 
       15 
15 
     | 
    
         
             
                # @param block [Proc]
         
     | 
| 
       16 
     | 
    
         
            -
                # @raise [Vedeu::InvalidSyntax] The required block was not given.
         
     | 
| 
      
 16 
     | 
    
         
            +
                # @raise [Vedeu::Error::InvalidSyntax] The required block was not given.
         
     | 
| 
       17 
17 
     | 
    
         
             
                # @return [Vedeu::Key]
         
     | 
| 
       18 
18 
     | 
    
         
             
                def initialize(input = nil, &block)
         
     | 
| 
       19 
     | 
    
         
            -
                  fail Vedeu::InvalidSyntax, 'block not given' unless block_given?
         
     | 
| 
      
 19 
     | 
    
         
            +
                  fail Vedeu::Error::InvalidSyntax, 'block not given' unless block_given?
         
     | 
| 
       20 
20 
     | 
    
         | 
| 
       21 
21 
     | 
    
         
             
                  @input  = input
         
     | 
| 
       22 
22 
     | 
    
         
             
                  @output = block
         
     | 
    
        data/lib/vedeu/internal_api.rb
    CHANGED
    
    | 
         @@ -16,8 +16,8 @@ module Vedeu 
     | 
|
| 
       16 
16 
     | 
    
         
             
                #   Vedeu.background_colours
         
     | 
| 
       17 
17 
     | 
    
         
             
                #
         
     | 
| 
       18 
18 
     | 
    
         
             
                # @!method background_colours
         
     | 
| 
       19 
     | 
    
         
            -
                # @return [Vedeu::Backgrounds]
         
     | 
| 
       20 
     | 
    
         
            -
                def_delegators Vedeu::Backgrounds, :background_colours
         
     | 
| 
      
 19 
     | 
    
         
            +
                # @return [Vedeu::Colours::Backgrounds]
         
     | 
| 
      
 20 
     | 
    
         
            +
                def_delegators Vedeu::Colours::Backgrounds, :background_colours
         
     | 
| 
       21 
21 
     | 
    
         | 
| 
       22 
22 
     | 
    
         
             
                # Manipulate the repository of borders.
         
     | 
| 
       23 
23 
     | 
    
         
             
                #
         
     | 
| 
         @@ -70,8 +70,8 @@ module Vedeu 
     | 
|
| 
       70 
70 
     | 
    
         
             
                #   Vedeu.events
         
     | 
| 
       71 
71 
     | 
    
         
             
                #
         
     | 
| 
       72 
72 
     | 
    
         
             
                # @!method events
         
     | 
| 
       73 
     | 
    
         
            -
                # @return [Vedeu::Events]
         
     | 
| 
       74 
     | 
    
         
            -
                def_delegators Vedeu::Events, :events
         
     | 
| 
      
 73 
     | 
    
         
            +
                # @return [Vedeu::Events::Repository]
         
     | 
| 
      
 74 
     | 
    
         
            +
                def_delegators Vedeu::Events::Repository, :events
         
     | 
| 
       75 
75 
     | 
    
         | 
| 
       76 
76 
     | 
    
         
             
                # Manipulate the repository of foreground colours.
         
     | 
| 
       77 
77 
     | 
    
         
             
                #
         
     | 
| 
         @@ -79,8 +79,8 @@ module Vedeu 
     | 
|
| 
       79 
79 
     | 
    
         
             
                #   Vedeu.foreground_colours
         
     | 
| 
       80 
80 
     | 
    
         
             
                #
         
     | 
| 
       81 
81 
     | 
    
         
             
                # @!method foreground_colours
         
     | 
| 
       82 
     | 
    
         
            -
                # @return [Vedeu::Foregrounds]
         
     | 
| 
       83 
     | 
    
         
            -
                def_delegators Vedeu::Foregrounds, :foreground_colours
         
     | 
| 
      
 82 
     | 
    
         
            +
                # @return [Vedeu::Colours::Foregrounds]
         
     | 
| 
      
 83 
     | 
    
         
            +
                def_delegators Vedeu::Colours::Foregrounds, :foreground_colours
         
     | 
| 
       84 
84 
     | 
    
         | 
| 
       85 
85 
     | 
    
         
             
                # Manipulate the repository of geometries.
         
     | 
| 
       86 
86 
     | 
    
         
             
                #
         
     | 
| 
         @@ -59,77 +59,3 @@ module Vedeu 
     | 
|
| 
       59 
59 
     | 
    
         
             
              end # LocklessLogDevice
         
     | 
| 
       60 
60 
     | 
    
         | 
| 
       61 
61 
     | 
    
         
             
            end # Vedeu
         
     | 
| 
       62 
     | 
    
         
            -
             
     | 
| 
       63 
     | 
    
         
            -
            # module Vedeu
         
     | 
| 
       64 
     | 
    
         
            -
             
     | 
| 
       65 
     | 
    
         
            -
            #   # Ensures we can always write to the log file by creating a lock-less
         
     | 
| 
       66 
     | 
    
         
            -
            #   # log device.
         
     | 
| 
       67 
     | 
    
         
            -
            #   #
         
     | 
| 
       68 
     | 
    
         
            -
            #   class LocklessLogDevice < Logger::LogDevice
         
     | 
| 
       69 
     | 
    
         
            -
             
     | 
| 
       70 
     | 
    
         
            -
            #     # Returns a new instance of Vedeu::LocklessLogDevice.
         
     | 
| 
       71 
     | 
    
         
            -
            #     #
         
     | 
| 
       72 
     | 
    
         
            -
            #     # @param file_or_filename [void]
         
     | 
| 
       73 
     | 
    
         
            -
            #     # @return [Vedeu::LocklessLogDevice]
         
     | 
| 
       74 
     | 
    
         
            -
            #     def initialize(file_or_filename = nil)
         
     | 
| 
       75 
     | 
    
         
            -
            #       @file_or_filename = file_or_filename
         
     | 
| 
       76 
     | 
    
         
            -
            #     end
         
     | 
| 
       77 
     | 
    
         
            -
             
     | 
| 
       78 
     | 
    
         
            -
            #     # @param message [String]
         
     | 
| 
       79 
     | 
    
         
            -
            #     # @return [void]
         
     | 
| 
       80 
     | 
    
         
            -
            #     def write(message)
         
     | 
| 
       81 
     | 
    
         
            -
            #       device.write(message)
         
     | 
| 
       82 
     | 
    
         
            -
             
     | 
| 
       83 
     | 
    
         
            -
            #     rescue StandardError => exception
         
     | 
| 
       84 
     | 
    
         
            -
            #       warn("Log writing failed. #{exception}")
         
     | 
| 
       85 
     | 
    
         
            -
             
     | 
| 
       86 
     | 
    
         
            -
            #     end
         
     | 
| 
       87 
     | 
    
         
            -
             
     | 
| 
       88 
     | 
    
         
            -
            #     # @return [void]
         
     | 
| 
       89 
     | 
    
         
            -
            #     def close
         
     | 
| 
       90 
     | 
    
         
            -
            #       device.close
         
     | 
| 
       91 
     | 
    
         
            -
             
     | 
| 
       92 
     | 
    
         
            -
            #     rescue
         
     | 
| 
       93 
     | 
    
         
            -
            #       nil
         
     | 
| 
       94 
     | 
    
         
            -
             
     | 
| 
       95 
     | 
    
         
            -
            #     end
         
     | 
| 
       96 
     | 
    
         
            -
             
     | 
| 
       97 
     | 
    
         
            -
            #     protected
         
     | 
| 
       98 
     | 
    
         
            -
             
     | 
| 
       99 
     | 
    
         
            -
            #     # @!attribute [r] file_or_filename
         
     | 
| 
       100 
     | 
    
         
            -
            #     # @return [String]
         
     | 
| 
       101 
     | 
    
         
            -
            #     attr_reader :file_or_filename
         
     | 
| 
       102 
     | 
    
         
            -
            #     alias_method :file,     :file_or_filename
         
     | 
| 
       103 
     | 
    
         
            -
            #     alias_method :filename, :file_or_filename
         
     | 
| 
       104 
     | 
    
         
            -
             
     | 
| 
       105 
     | 
    
         
            -
            #     private
         
     | 
| 
       106 
     | 
    
         
            -
             
     | 
| 
       107 
     | 
    
         
            -
            #     # @return [File]
         
     | 
| 
       108 
     | 
    
         
            -
            #     def device
         
     | 
| 
       109 
     | 
    
         
            -
            #       if file?
         
     | 
| 
       110 
     | 
    
         
            -
            #         file
         
     | 
| 
       111 
     | 
    
         
            -
             
     | 
| 
       112 
     | 
    
         
            -
            #       elsif exists?
         
     | 
| 
       113 
     | 
    
         
            -
            #         open(filename, (File::WRONLY | File::APPEND))
         
     | 
| 
       114 
     | 
    
         
            -
             
     | 
| 
       115 
     | 
    
         
            -
            #       else
         
     | 
| 
       116 
     | 
    
         
            -
            #         device      = open(filename, (File::WRONLY | File::APPEND | File::CREAT))
         
     | 
| 
       117 
     | 
    
         
            -
            #         device.sync = true
         
     | 
| 
       118 
     | 
    
         
            -
             
     | 
| 
       119 
     | 
    
         
            -
            #       end
         
     | 
| 
       120 
     | 
    
         
            -
            #     end
         
     | 
| 
       121 
     | 
    
         
            -
             
     | 
| 
       122 
     | 
    
         
            -
            #     # @return [Boolean]
         
     | 
| 
       123 
     | 
    
         
            -
            #     def exists?
         
     | 
| 
       124 
     | 
    
         
            -
            #       FileTest.exist?(filename)
         
     | 
| 
       125 
     | 
    
         
            -
            #     end
         
     | 
| 
       126 
     | 
    
         
            -
             
     | 
| 
       127 
     | 
    
         
            -
            #     # @return [Boolean]
         
     | 
| 
       128 
     | 
    
         
            -
            #     def file?
         
     | 
| 
       129 
     | 
    
         
            -
            #       file_or_filename.respond_to?(:write) &&
         
     | 
| 
       130 
     | 
    
         
            -
            #       file_or_filename.respond_to?(:close)
         
     | 
| 
       131 
     | 
    
         
            -
            #     end
         
     | 
| 
       132 
     | 
    
         
            -
             
     | 
| 
       133 
     | 
    
         
            -
            #   end # LocklessLogDevice
         
     | 
| 
       134 
     | 
    
         
            -
             
     | 
| 
       135 
     | 
    
         
            -
            # end # Vedeu
         
     | 
    
        data/lib/vedeu/models/focus.rb
    CHANGED
    
    | 
         @@ -49,12 +49,12 @@ module Vedeu 
     | 
|
| 
       49 
49 
     | 
    
         
             
                #   Vedeu.focus_by_name('name')
         
     | 
| 
       50 
50 
     | 
    
         
             
                #
         
     | 
| 
       51 
51 
     | 
    
         
             
                # @param name [String] The interface to focus; must be defined.
         
     | 
| 
       52 
     | 
    
         
            -
                # @raise [Vedeu::ModelNotFound] When the interface cannot be found.
         
     | 
| 
      
 52 
     | 
    
         
            +
                # @raise [Vedeu::Error::ModelNotFound] When the interface cannot be found.
         
     | 
| 
       53 
53 
     | 
    
         
             
                # @return [String] The name of the interface now in focus.
         
     | 
| 
       54 
54 
     | 
    
         
             
                def by_name(name)
         
     | 
| 
       55 
55 
     | 
    
         
             
                  unless registered?(name)
         
     | 
| 
       56 
     | 
    
         
            -
                    fail Vedeu::ModelNotFound, 
     | 
| 
       57 
     | 
    
         
            -
             
     | 
| 
      
 56 
     | 
    
         
            +
                    fail Vedeu::Error::ModelNotFound,
         
     | 
| 
      
 57 
     | 
    
         
            +
                         "Cannot focus '#{name}' as this interface has not been registered."
         
     | 
| 
       58 
58 
     | 
    
         
             
                  end
         
     | 
| 
       59 
59 
     | 
    
         | 
| 
       60 
60 
     | 
    
         
             
                  storage.rotate!(storage.index(name))
         
     | 
| 
         @@ -41,7 +41,7 @@ module Vedeu 
     | 
|
| 
       41 
41 
     | 
    
         
             
                #
         
     | 
| 
       42 
42 
     | 
    
         
             
                # @param attributes [Hash]
         
     | 
| 
       43 
43 
     | 
    
         
             
                # @option attributes client [Vedeu::Client]
         
     | 
| 
       44 
     | 
    
         
            -
                # @option attributes colour [Vedeu::Colour]
         
     | 
| 
      
 44 
     | 
    
         
            +
                # @option attributes colour [Vedeu::Colours::Colour]
         
     | 
| 
       45 
45 
     | 
    
         
             
                # @option attributes delay [Float]
         
     | 
| 
       46 
46 
     | 
    
         
             
                # @option attributes group [String]
         
     | 
| 
       47 
47 
     | 
    
         
             
                # @option attributes name [String]
         
     | 
| 
         @@ -91,8 +91,8 @@ module Vedeu 
     | 
|
| 
       91 
91 
     | 
    
         
             
                def defaults
         
     | 
| 
       92 
92 
     | 
    
         
             
                  {
         
     | 
| 
       93 
93 
     | 
    
         
             
                    client:     nil,
         
     | 
| 
       94 
     | 
    
         
            -
                    colour:     Vedeu::Colour.coerce(background: :default,
         
     | 
| 
       95 
     | 
    
         
            -
             
     | 
| 
      
 94 
     | 
    
         
            +
                    colour:     Vedeu::Colours::Colour.coerce(background: :default,
         
     | 
| 
      
 95 
     | 
    
         
            +
                                                              foreground: :default),
         
     | 
| 
       96 
96 
     | 
    
         
             
                    delay:      0.0,
         
     | 
| 
       97 
97 
     | 
    
         
             
                    group:      '',
         
     | 
| 
       98 
98 
     | 
    
         
             
                    name:       '',
         
     | 
    
        data/lib/vedeu/models/menu.rb
    CHANGED
    
    | 
         @@ -49,10 +49,10 @@ module Vedeu 
     | 
|
| 
       49 
49 
     | 
    
         
             
                #     # ...
         
     | 
| 
       50 
50 
     | 
    
         
             
                #   end
         
     | 
| 
       51 
51 
     | 
    
         
             
                #
         
     | 
| 
       52 
     | 
    
         
            -
                # @raise [Vedeu::InvalidSyntax] The required block was not given.
         
     | 
| 
      
 52 
     | 
    
         
            +
                # @raise [Vedeu::Error::InvalidSyntax] The required block was not given.
         
     | 
| 
       53 
53 
     | 
    
         
             
                # @return [API::Menu]
         
     | 
| 
       54 
54 
     | 
    
         
             
                def self.menu(name = '', &block)
         
     | 
| 
       55 
     | 
    
         
            -
                  fail Vedeu::InvalidSyntax, 'block not given' unless block_given?
         
     | 
| 
      
 55 
     | 
    
         
            +
                  fail Vedeu::Error::InvalidSyntax, 'block not given' unless block_given?
         
     | 
| 
       56 
56 
     | 
    
         | 
| 
       57 
57 
     | 
    
         
             
                  build(name: name, &block).store
         
     | 
| 
       58 
58 
     | 
    
         
             
                end
         
     | 
| 
         @@ -34,7 +34,7 @@ module Vedeu 
     | 
|
| 
       34 
34 
     | 
    
         
             
                  # @param attributes [Hash]
         
     | 
| 
       35 
35 
     | 
    
         
             
                  # @option attributes border [NilClass|Symbol] A symbol representing the
         
     | 
| 
       36 
36 
     | 
    
         
             
                  #   border 'piece' this Vedeu::Views::Char represents.
         
     | 
| 
       37 
     | 
    
         
            -
                  # @option attributes colour [Vedeu::Colour]
         
     | 
| 
      
 37 
     | 
    
         
            +
                  # @option attributes colour [Vedeu::Colours::Colour]
         
     | 
| 
       38 
38 
     | 
    
         
             
                  # @option attributes parent [Vedeu::Views::Line]
         
     | 
| 
       39 
39 
     | 
    
         
             
                  # @option attributes position [Vedeu::Position]
         
     | 
| 
       40 
40 
     | 
    
         
             
                  # @option attributes style [Vedeu::Style]
         
     | 
| 
         @@ -24,7 +24,7 @@ module Vedeu 
     | 
|
| 
       24 
24 
     | 
    
         
             
                  #
         
     | 
| 
       25 
25 
     | 
    
         
             
                  # @param attributes [Hash]
         
     | 
| 
       26 
26 
     | 
    
         
             
                  # @option attributes client [void]
         
     | 
| 
       27 
     | 
    
         
            -
                  # @option attributes colour [Vedeu::Colour]
         
     | 
| 
      
 27 
     | 
    
         
            +
                  # @option attributes colour [Vedeu::Colours::Colour]
         
     | 
| 
       28 
28 
     | 
    
         
             
                  # @option attributes style [Vedeu::Style]
         
     | 
| 
       29 
29 
     | 
    
         
             
                  # @option attributes value [Vedeu::Views::ViewCollection]
         
     | 
| 
       30 
30 
     | 
    
         
             
                  # @return [Vedeu::Views::Composition]
         
     | 
| 
         @@ -25,7 +25,7 @@ module Vedeu 
     | 
|
| 
       25 
25 
     | 
    
         
             
                  # Returns a new instance of Vedeu::Views::Line.
         
     | 
| 
       26 
26 
     | 
    
         
             
                  #
         
     | 
| 
       27 
27 
     | 
    
         
             
                  # @param attributes [Hash]
         
     | 
| 
       28 
     | 
    
         
            -
                  # @option attributes colour [Vedeu::Colour]
         
     | 
| 
      
 28 
     | 
    
         
            +
                  # @option attributes colour [Vedeu::Colours::Colour]
         
     | 
| 
       29 
29 
     | 
    
         
             
                  # @option attributes parent [Vedeu::Views::View]
         
     | 
| 
       30 
30 
     | 
    
         
             
                  # @option attributes style [Vedeu::Style]
         
     | 
| 
       31 
31 
     | 
    
         
             
                  # @option attributes value [Vedeu::Views::Streams]
         
     | 
| 
         @@ -31,7 +31,7 @@ module Vedeu 
     | 
|
| 
       31 
31 
     | 
    
         
             
                  # Returns a new instance of Vedeu::Views::Stream.
         
     | 
| 
       32 
32 
     | 
    
         
             
                  #
         
     | 
| 
       33 
33 
     | 
    
         
             
                  # @param attributes [Hash]
         
     | 
| 
       34 
     | 
    
         
            -
                  # @option attributes colour [Vedeu::Colour]
         
     | 
| 
      
 34 
     | 
    
         
            +
                  # @option attributes colour [Vedeu::Colours::Colour]
         
     | 
| 
       35 
35 
     | 
    
         
             
                  # @option attributes style [Vedeu::Style]
         
     | 
| 
       36 
36 
     | 
    
         
             
                  # @option attributes parent [Vedeu::Views::Line]
         
     | 
| 
       37 
37 
     | 
    
         
             
                  # @option attributes value [String]
         
     | 
| 
         @@ -41,7 +41,7 @@ module Vedeu 
     | 
|
| 
       41 
41 
     | 
    
         
             
                  #
         
     | 
| 
       42 
42 
     | 
    
         
             
                  # @param attributes [Hash]
         
     | 
| 
       43 
43 
     | 
    
         
             
                  # @option attributes client [Vedeu::Client]
         
     | 
| 
       44 
     | 
    
         
            -
                  # @option attributes colour [Vedeu::Colour]
         
     | 
| 
      
 44 
     | 
    
         
            +
                  # @option attributes colour [Vedeu::Colours::Colour]
         
     | 
| 
       45 
45 
     | 
    
         
             
                  # @option attributes value [Vedeu::Views::Lines]
         
     | 
| 
       46 
46 
     | 
    
         
             
                  # @option attributes name [String]
         
     | 
| 
       47 
47 
     | 
    
         
             
                  # @option attributes parent [Vedeu::Views::Composition]
         
     | 
| 
         @@ -100,12 +100,11 @@ module Vedeu 
     | 
|
| 
       100 
100 
     | 
    
         
             
                  # be shown next time a refresh event is triggered with this name.
         
     | 
| 
       101 
101 
     | 
    
         
             
                  # Called by {Vedeu::DSL::View.views}.
         
     | 
| 
       102 
102 
     | 
    
         
             
                  #
         
     | 
| 
       103 
     | 
    
         
            -
                  # @raise [Vedeu::InvalidSyntax] The name is not defined.
         
     | 
| 
      
 103 
     | 
    
         
            +
                  # @raise [Vedeu::Error::InvalidSyntax] The name is not defined.
         
     | 
| 
       104 
104 
     | 
    
         
             
                  # @return [Vedeu::Views::View]
         
     | 
| 
       105 
105 
     | 
    
         
             
                  def store_deferred
         
     | 
| 
       106 
     | 
    
         
            -
                     
     | 
| 
       107 
     | 
    
         
            -
             
     | 
| 
       108 
     | 
    
         
            -
                    end
         
     | 
| 
      
 106 
     | 
    
         
            +
                    fail Vedeu::Error::InvalidSyntax,
         
     | 
| 
      
 107 
     | 
    
         
            +
                         'Cannot store an interface without a name.' unless present?(name)
         
     | 
| 
       109 
108 
     | 
    
         | 
| 
       110 
109 
     | 
    
         
             
                    Vedeu.buffers.by_name(name).add(self)
         
     | 
| 
       111 
110 
     | 
    
         | 
| 
         @@ -127,8 +126,8 @@ module Vedeu 
     | 
|
| 
       127 
126 
     | 
    
         
             
                  def defaults
         
     | 
| 
       128 
127 
     | 
    
         
             
                    {
         
     | 
| 
       129 
128 
     | 
    
         
             
                      client: nil,
         
     | 
| 
       130 
     | 
    
         
            -
                      colour: Vedeu::Colour.coerce(background: :default,
         
     | 
| 
       131 
     | 
    
         
            -
             
     | 
| 
      
 129 
     | 
    
         
            +
                      colour: Vedeu::Colours::Colour.coerce(background: :default,
         
     | 
| 
      
 130 
     | 
    
         
            +
                                                            foreground: :default),
         
     | 
| 
       132 
131 
     | 
    
         
             
                      name:   '',
         
     | 
| 
       133 
132 
     | 
    
         
             
                      parent: nil,
         
     | 
| 
       134 
133 
     | 
    
         
             
                      style:  :normal,
         
     | 
| 
         @@ -7,9 +7,10 @@ module Vedeu 
     | 
|
| 
       7 
7 
     | 
    
         
             
                module Colour
         
     | 
| 
       8 
8 
     | 
    
         | 
| 
       9 
9 
     | 
    
         
             
                  # When the background colour for the model exists, return it, otherwise
         
     | 
| 
       10 
     | 
    
         
            -
                  # returns the parent background colour, or an empty 
     | 
| 
      
 10 
     | 
    
         
            +
                  # returns the parent background colour, or an empty
         
     | 
| 
      
 11 
     | 
    
         
            +
                  # Vedeu::Colours::Background.
         
     | 
| 
       11 
12 
     | 
    
         
             
                  #
         
     | 
| 
       12 
     | 
    
         
            -
                  # @return [Vedeu::Background]
         
     | 
| 
      
 13 
     | 
    
         
            +
                  # @return [Vedeu::Colours::Background]
         
     | 
| 
       13 
14 
     | 
    
         
             
                  def background
         
     | 
| 
       14 
15 
     | 
    
         
             
                    @background ||= if colour
         
     | 
| 
       15 
16 
     | 
    
         
             
                                      colour.background
         
     | 
| 
         @@ -18,47 +19,48 @@ module Vedeu 
     | 
|
| 
       18 
19 
     | 
    
         
             
                                      parent.background
         
     | 
| 
       19 
20 
     | 
    
         | 
| 
       20 
21 
     | 
    
         
             
                                    else
         
     | 
| 
       21 
     | 
    
         
            -
                                      Vedeu::Background.new
         
     | 
| 
      
 22 
     | 
    
         
            +
                                      Vedeu::Colours::Background.new
         
     | 
| 
       22 
23 
     | 
    
         | 
| 
       23 
24 
     | 
    
         
             
                                    end
         
     | 
| 
       24 
25 
     | 
    
         
             
                  end
         
     | 
| 
       25 
26 
     | 
    
         | 
| 
       26 
27 
     | 
    
         
             
                  # Allows the setting of the background colour by coercing the given value
         
     | 
| 
       27 
     | 
    
         
            -
                  # into a Vedeu::Background colour.
         
     | 
| 
      
 28 
     | 
    
         
            +
                  # into a Vedeu::Colours::Background colour.
         
     | 
| 
       28 
29 
     | 
    
         
             
                  #
         
     | 
| 
       29 
     | 
    
         
            -
                  # @return [Vedeu::Background]
         
     | 
| 
      
 30 
     | 
    
         
            +
                  # @return [Vedeu::Colours::Background]
         
     | 
| 
       30 
31 
     | 
    
         
             
                  def background=(value)
         
     | 
| 
       31 
     | 
    
         
            -
                    @colour = Vedeu::Colour.coerce(
         
     | 
| 
       32 
     | 
    
         
            -
                      background: Vedeu::Background.coerce(value),
         
     | 
| 
      
 32 
     | 
    
         
            +
                    @colour = Vedeu::Colours::Colour.coerce(
         
     | 
| 
      
 33 
     | 
    
         
            +
                      background: Vedeu::Colours::Background.coerce(value),
         
     | 
| 
       33 
34 
     | 
    
         
             
                      foreground: colour.foreground)
         
     | 
| 
       34 
35 
     | 
    
         
             
                  end
         
     | 
| 
       35 
36 
     | 
    
         | 
| 
       36 
     | 
    
         
            -
                  # @return [Vedeu::Colour]
         
     | 
| 
      
 37 
     | 
    
         
            +
                  # @return [Vedeu::Colours::Colour]
         
     | 
| 
       37 
38 
     | 
    
         
             
                  def colour
         
     | 
| 
       38 
39 
     | 
    
         
             
                    @colour ||= if attributes[:colour]
         
     | 
| 
       39 
     | 
    
         
            -
                                  Vedeu::Colour.coerce(attributes[:colour])
         
     | 
| 
      
 40 
     | 
    
         
            +
                                  Vedeu::Colours::Colour.coerce(attributes[:colour])
         
     | 
| 
       40 
41 
     | 
    
         | 
| 
       41 
42 
     | 
    
         
             
                                elsif parent
         
     | 
| 
       42 
     | 
    
         
            -
                                  Vedeu::Colour.coerce(parent.colour)
         
     | 
| 
      
 43 
     | 
    
         
            +
                                  Vedeu::Colours::Colour.coerce(parent.colour)
         
     | 
| 
       43 
44 
     | 
    
         | 
| 
       44 
45 
     | 
    
         
             
                                else
         
     | 
| 
       45 
     | 
    
         
            -
                                  Vedeu::Colour.new
         
     | 
| 
      
 46 
     | 
    
         
            +
                                  Vedeu::Colours::Colour.new
         
     | 
| 
       46 
47 
     | 
    
         | 
| 
       47 
48 
     | 
    
         
             
                                end
         
     | 
| 
       48 
49 
     | 
    
         
             
                  end
         
     | 
| 
       49 
50 
     | 
    
         | 
| 
       50 
51 
     | 
    
         
             
                  # Allows the setting of the model's colour by coercing the given value
         
     | 
| 
       51 
     | 
    
         
            -
                  # into a Vedeu::Colour.
         
     | 
| 
      
 52 
     | 
    
         
            +
                  # into a Vedeu::Colours::Colour.
         
     | 
| 
       52 
53 
     | 
    
         
             
                  #
         
     | 
| 
       53 
     | 
    
         
            -
                  # @return [Vedeu::Colour]
         
     | 
| 
      
 54 
     | 
    
         
            +
                  # @return [Vedeu::Colours::Colour]
         
     | 
| 
       54 
55 
     | 
    
         
             
                  def colour=(value)
         
     | 
| 
       55 
     | 
    
         
            -
                    @colour = Vedeu::Colour.coerce(value)
         
     | 
| 
      
 56 
     | 
    
         
            +
                    @colour = Vedeu::Colours::Colour.coerce(value)
         
     | 
| 
       56 
57 
     | 
    
         
             
                  end
         
     | 
| 
       57 
58 
     | 
    
         | 
| 
       58 
59 
     | 
    
         
             
                  # When the foreground colour for the model exists, return it, otherwise
         
     | 
| 
       59 
     | 
    
         
            -
                  # returns the parent foreground colour, or an empty 
     | 
| 
      
 60 
     | 
    
         
            +
                  # returns the parent foreground colour, or an empty
         
     | 
| 
      
 61 
     | 
    
         
            +
                  # Vedeu::Colours::Foreground.
         
     | 
| 
       60 
62 
     | 
    
         
             
                  #
         
     | 
| 
       61 
     | 
    
         
            -
                  # @return [Vedeu::Foreground]
         
     | 
| 
      
 63 
     | 
    
         
            +
                  # @return [Vedeu::Colours::Foreground]
         
     | 
| 
       62 
64 
     | 
    
         
             
                  def foreground
         
     | 
| 
       63 
65 
     | 
    
         
             
                    @foreground ||= if colour
         
     | 
| 
       64 
66 
     | 
    
         
             
                                      colour.foreground
         
     | 
| 
         @@ -67,19 +69,19 @@ module Vedeu 
     | 
|
| 
       67 
69 
     | 
    
         
             
                                      parent.foreground
         
     | 
| 
       68 
70 
     | 
    
         | 
| 
       69 
71 
     | 
    
         
             
                                    else
         
     | 
| 
       70 
     | 
    
         
            -
                                      Vedeu::Foreground.new
         
     | 
| 
      
 72 
     | 
    
         
            +
                                      Vedeu::Colours::Foreground.new
         
     | 
| 
       71 
73 
     | 
    
         | 
| 
       72 
74 
     | 
    
         
             
                                    end
         
     | 
| 
       73 
75 
     | 
    
         
             
                  end
         
     | 
| 
       74 
76 
     | 
    
         | 
| 
       75 
77 
     | 
    
         
             
                  # Allows the setting of the foreground colour by coercing the given value
         
     | 
| 
       76 
     | 
    
         
            -
                  # into a Vedeu::Foreground colour.
         
     | 
| 
      
 78 
     | 
    
         
            +
                  # into a Vedeu::Colours::Foreground colour.
         
     | 
| 
       77 
79 
     | 
    
         
             
                  #
         
     | 
| 
       78 
     | 
    
         
            -
                  # @return [Vedeu::Foreground]
         
     | 
| 
      
 80 
     | 
    
         
            +
                  # @return [Vedeu::Colours::Foreground]
         
     | 
| 
       79 
81 
     | 
    
         
             
                  def foreground=(value)
         
     | 
| 
       80 
     | 
    
         
            -
                    @colour = Vedeu::Colour.coerce(
         
     | 
| 
      
 82 
     | 
    
         
            +
                    @colour = Vedeu::Colours::Colour.coerce(
         
     | 
| 
       81 
83 
     | 
    
         
             
                      background: colour.background,
         
     | 
| 
       82 
     | 
    
         
            -
                      foreground: Vedeu::Foreground.coerce(value))
         
     | 
| 
      
 84 
     | 
    
         
            +
                      foreground: Vedeu::Colours::Foreground.coerce(value))
         
     | 
| 
       83 
85 
     | 
    
         
             
                  end
         
     | 
| 
       84 
86 
     | 
    
         | 
| 
       85 
87 
     | 
    
         
             
                end # Colour
         
     |