vedeu 0.4.8 → 0.4.9
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/README.md +3 -1
- data/docs/object_graph.md +14 -0
- data/examples/borders_app.rb +19 -19
- data/lib/vedeu/api.rb +134 -22
- data/lib/vedeu/buffers/buffer.rb +11 -8
- data/lib/vedeu/cursor/cursor.rb +2 -1
- data/lib/vedeu/dsl/shared/colour.rb +1 -1
- data/lib/vedeu/geometry/area.rb +25 -20
- data/lib/vedeu/geometry/canvas.rb +12 -2
- data/lib/vedeu/geometry/dimension.rb +68 -21
- data/lib/vedeu/geometry/geometry.rb +70 -224
- data/lib/vedeu/geometry/position.rb +1 -6
- data/lib/vedeu/models/cell.rb +1 -6
- data/lib/vedeu/models/char.rb +1 -6
- data/lib/vedeu/output/compositor.rb +3 -3
- data/lib/vedeu/output/viewport.rb +6 -0
- data/test/lib/vedeu/distributed/server_test.rb +4 -0
- data/test/lib/vedeu/dsl/components/geometry_test.rb +4 -0
- data/test/lib/vedeu/geometry/area_test.rb +95 -7
- data/test/lib/vedeu/geometry/canvas_test.rb +10 -2
- data/test/lib/vedeu/geometry/dimension_test.rb +112 -33
- data/test/lib/vedeu/geometry/geometry_test.rb +71 -240
- data/test/lib/vedeu/geometry/position_test.rb +5 -9
- data/test/lib/vedeu/models/cell_test.rb +1 -15
- data/test/lib/vedeu/models/char_test.rb +14 -0
- data/test/lib/vedeu/output/colour_test.rb +16 -0
- data/test/lib/vedeu/output/compositor_test.rb +3 -1
- data/vedeu.gemspec +1 -1
- metadata +4 -3
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 2f8e55b96180371a74727bb5684f829aea4fb3ae
         | 
| 4 | 
            +
              data.tar.gz: d3bbd55216ffff82ebf2007cd7616228be86e155
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 52b9ca57b1f4258a516e236a49e42840665bb4f40352e8d7b562de206eb1a23340fe4be40acfe02d41a28618db3e36a8841964d2a1fa2c3108bd841bdb6aa29f
         | 
| 7 | 
            +
              data.tar.gz: b5caa9c02529b83537e2894d4fbc287beedef7c1cbcd7de1bc5d2eafb178d225ec9709c14fda5a8872bd2760f04c3df0ed2a95051e8fc1a8ebe1002506ff8b4e
         | 
    
        data/README.md
    CHANGED
    
    | @@ -176,7 +176,9 @@ Pull requests are very welcome! Please try to follow these simple rules if appli | |
| 176 176 | 
             
            * Update the [README](https://github.com/gavinlaking/vedeu/blob/master/README.md).
         | 
| 177 177 | 
             
            * Please **do not change** the version number.
         | 
| 178 178 |  | 
| 179 | 
            -
            Any branch on the repository that is not `master` is probably experimental; do not rely on anything in these branches.
         | 
| 179 | 
            +
            Any branch on the repository that is not `master` is probably experimental; do not rely on anything in these branches. Typically, `twerks` will be merged into `master` before a release,
         | 
| 180 | 
            +
            and branches prefixed with `spike/` are me playing with ideas.
         | 
| 181 | 
            +
             | 
| 180 182 |  | 
| 181 183 | 
             
            ### General contribution help
         | 
| 182 184 |  | 
| @@ -0,0 +1,14 @@ | |
| 1 | 
            +
            ## Producing an object graph of Vedeu
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            Sometimes I find looking at the project as a graph helps me to understand the
         | 
| 4 | 
            +
            relationship between the various objects. To achieve this, I use Yard's graph
         | 
| 5 | 
            +
            options. If this sort of thing floats your boat too, and you have the
         | 
| 6 | 
            +
            appropriate software installed:
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            ```shell
         | 
| 9 | 
            +
            yard graph --full --dependencies --private --protected --dot --file vedeu.dot
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            dot -Tpdf vedeu.dot -o vedeu.pdf
         | 
| 12 | 
            +
            ```
         | 
| 13 | 
            +
             | 
| 14 | 
            +
            Cool stuff.
         | 
    
        data/examples/borders_app.rb
    CHANGED
    
    | @@ -28,7 +28,7 @@ class VedeuBordersApp | |
| 28 28 |  | 
| 29 29 | 
             
              interface 'border_off' do
         | 
| 30 30 | 
             
                geometry do
         | 
| 31 | 
            -
                  x       | 
| 31 | 
            +
                  x      14
         | 
| 32 32 | 
             
                  y      2
         | 
| 33 33 | 
             
                  height 4
         | 
| 34 34 | 
             
                  width  10
         | 
| @@ -38,7 +38,7 @@ class VedeuBordersApp | |
| 38 38 |  | 
| 39 39 | 
             
              interface 'no_top' do
         | 
| 40 40 | 
             
                geometry do
         | 
| 41 | 
            -
                  x       | 
| 41 | 
            +
                  x      26
         | 
| 42 42 | 
             
                  y      2
         | 
| 43 43 | 
             
                  height 4
         | 
| 44 44 | 
             
                  width  10
         | 
| @@ -48,7 +48,7 @@ class VedeuBordersApp | |
| 48 48 |  | 
| 49 49 | 
             
              interface 'no_bottom' do
         | 
| 50 50 | 
             
                geometry do
         | 
| 51 | 
            -
                  x       | 
| 51 | 
            +
                  x      38
         | 
| 52 52 | 
             
                  y      2
         | 
| 53 53 | 
             
                  height 4
         | 
| 54 54 | 
             
                  width  10
         | 
| @@ -58,7 +58,7 @@ class VedeuBordersApp | |
| 58 58 |  | 
| 59 59 | 
             
              interface 'no_left' do
         | 
| 60 60 | 
             
                geometry do
         | 
| 61 | 
            -
                  x       | 
| 61 | 
            +
                  x      50
         | 
| 62 62 | 
             
                  y      2
         | 
| 63 63 | 
             
                  height 4
         | 
| 64 64 | 
             
                  width  10
         | 
| @@ -68,7 +68,7 @@ class VedeuBordersApp | |
| 68 68 |  | 
| 69 69 | 
             
              interface 'no_right' do
         | 
| 70 70 | 
             
                geometry do
         | 
| 71 | 
            -
                  x       | 
| 71 | 
            +
                  x      62
         | 
| 72 72 | 
             
                  y      2
         | 
| 73 73 | 
             
                  height 4
         | 
| 74 74 | 
             
                  width  10
         | 
| @@ -79,7 +79,7 @@ class VedeuBordersApp | |
| 79 79 | 
             
              interface 'custom_corners' do
         | 
| 80 80 | 
             
                geometry do
         | 
| 81 81 | 
             
                  x      2
         | 
| 82 | 
            -
                  y       | 
| 82 | 
            +
                  y      8
         | 
| 83 83 | 
             
                  height 4
         | 
| 84 84 | 
             
                  width  10
         | 
| 85 85 | 
             
                end
         | 
| @@ -88,8 +88,8 @@ class VedeuBordersApp | |
| 88 88 |  | 
| 89 89 | 
             
              interface 'custom_sides' do
         | 
| 90 90 | 
             
                geometry do
         | 
| 91 | 
            -
                  x       | 
| 92 | 
            -
                  y       | 
| 91 | 
            +
                  x      14
         | 
| 92 | 
            +
                  y      8
         | 
| 93 93 | 
             
                  height 4
         | 
| 94 94 | 
             
                  width  10
         | 
| 95 95 | 
             
                end
         | 
| @@ -98,8 +98,8 @@ class VedeuBordersApp | |
| 98 98 |  | 
| 99 99 | 
             
              interface 'only_top' do
         | 
| 100 100 | 
             
                geometry do
         | 
| 101 | 
            -
                  x       | 
| 102 | 
            -
                  y       | 
| 101 | 
            +
                  x      26
         | 
| 102 | 
            +
                  y      8
         | 
| 103 103 | 
             
                  height 4
         | 
| 104 104 | 
             
                  width  10
         | 
| 105 105 | 
             
                end
         | 
| @@ -108,8 +108,8 @@ class VedeuBordersApp | |
| 108 108 |  | 
| 109 109 | 
             
              interface 'only_bottom' do
         | 
| 110 110 | 
             
                geometry do
         | 
| 111 | 
            -
                  x       | 
| 112 | 
            -
                  y       | 
| 111 | 
            +
                  x      38
         | 
| 112 | 
            +
                  y      8
         | 
| 113 113 | 
             
                  height 4
         | 
| 114 114 | 
             
                  width  10
         | 
| 115 115 | 
             
                end
         | 
| @@ -118,8 +118,8 @@ class VedeuBordersApp | |
| 118 118 |  | 
| 119 119 | 
             
              interface 'only_left' do
         | 
| 120 120 | 
             
                geometry do
         | 
| 121 | 
            -
                  x       | 
| 122 | 
            -
                  y       | 
| 121 | 
            +
                  x      50
         | 
| 122 | 
            +
                  y      8
         | 
| 123 123 | 
             
                  height 4
         | 
| 124 124 | 
             
                  width  10
         | 
| 125 125 | 
             
                end
         | 
| @@ -128,8 +128,8 @@ class VedeuBordersApp | |
| 128 128 |  | 
| 129 129 | 
             
              interface 'only_right' do
         | 
| 130 130 | 
             
                geometry do
         | 
| 131 | 
            -
                  x       | 
| 132 | 
            -
                  y       | 
| 131 | 
            +
                  x      62
         | 
| 132 | 
            +
                  y      8
         | 
| 133 133 | 
             
                  height 4
         | 
| 134 134 | 
             
                  width  10
         | 
| 135 135 | 
             
                end
         | 
| @@ -139,7 +139,7 @@ class VedeuBordersApp | |
| 139 139 | 
             
              interface 'custom_colour' do
         | 
| 140 140 | 
             
                geometry do
         | 
| 141 141 | 
             
                  x      2
         | 
| 142 | 
            -
                  y       | 
| 142 | 
            +
                  y      14
         | 
| 143 143 | 
             
                  height 4
         | 
| 144 144 | 
             
                  width  10
         | 
| 145 145 | 
             
                end
         | 
| @@ -148,8 +148,8 @@ class VedeuBordersApp | |
| 148 148 |  | 
| 149 149 | 
             
              interface 'negative' do
         | 
| 150 150 | 
             
                geometry do
         | 
| 151 | 
            -
                  x       | 
| 152 | 
            -
                  y       | 
| 151 | 
            +
                  x      14
         | 
| 152 | 
            +
                  y      14
         | 
| 153 153 | 
             
                  height 4
         | 
| 154 154 | 
             
                  width  10
         | 
| 155 155 | 
             
                end
         | 
    
        data/lib/vedeu/api.rb
    CHANGED
    
    | @@ -14,6 +14,19 @@ module Vedeu | |
| 14 14 | 
             
              # Provides the API to Vedeu. Methods therein, and classes belonging to this
         | 
| 15 15 | 
             
              # module expose Vedeu's core functionality.
         | 
| 16 16 | 
             
              #
         | 
| 17 | 
            +
              # These methods are used in a variety of ways, sometimes in combination:
         | 
| 18 | 
            +
              #
         | 
| 19 | 
            +
              #   # with parameters
         | 
| 20 | 
            +
              #   Vedeu.method_name(*params)
         | 
| 21 | 
            +
              #
         | 
| 22 | 
            +
              #   # with a block
         | 
| 23 | 
            +
              #   Vedeu.method_name(*params) do
         | 
| 24 | 
            +
              #     # ...
         | 
| 25 | 
            +
              #   end
         | 
| 26 | 
            +
              #
         | 
| 27 | 
            +
              #   # with other methods
         | 
| 28 | 
            +
              #   Vedeu.method_name.other_method
         | 
| 29 | 
            +
              #
         | 
| 17 30 | 
             
              # @api public
         | 
| 18 31 | 
             
              #
         | 
| 19 32 | 
             
              module API
         | 
| @@ -21,35 +34,134 @@ module Vedeu | |
| 21 34 | 
             
                extend Forwardable
         | 
| 22 35 | 
             
                extend self
         | 
| 23 36 |  | 
| 24 | 
            -
                 | 
| 25 | 
            -
                 | 
| 26 | 
            -
                def_delegators Vedeu:: | 
| 27 | 
            -
             | 
| 28 | 
            -
                 | 
| 37 | 
            +
                # @!method borders
         | 
| 38 | 
            +
                #   @see Vedeu::Borders.borders
         | 
| 39 | 
            +
                def_delegators Vedeu::Borders, :borders
         | 
| 40 | 
            +
             | 
| 41 | 
            +
                # @!method buffers
         | 
| 42 | 
            +
                #   @see Vedeu::Buffers.buffers
         | 
| 43 | 
            +
                def_delegators Vedeu::Buffers, :buffers
         | 
| 44 | 
            +
             | 
| 45 | 
            +
                # @!method canvas
         | 
| 46 | 
            +
                #   @see Vedeu::Canvas.canvas
         | 
| 47 | 
            +
                def_delegators Vedeu::Canvas, :canvas
         | 
| 48 | 
            +
             | 
| 49 | 
            +
                # @!method cursors
         | 
| 50 | 
            +
                #   @see Vedeu::Cursors.cursors
         | 
| 51 | 
            +
                def_delegators Vedeu::Cursors, :cursors
         | 
| 52 | 
            +
             | 
| 53 | 
            +
                # @!method cursor
         | 
| 54 | 
            +
                #   @see Vedeu::Cursors.cursor
         | 
| 55 | 
            +
                def_delegators Vedeu::Cursors, :cursor
         | 
| 56 | 
            +
             | 
| 57 | 
            +
                # @!method events
         | 
| 58 | 
            +
                #   @see Vedeu::EventsRepository.events
         | 
| 29 59 | 
             
                def_delegators Vedeu::EventsRepository, :events
         | 
| 30 | 
            -
             | 
| 31 | 
            -
                 | 
| 60 | 
            +
             | 
| 61 | 
            +
                # @!method geometries
         | 
| 62 | 
            +
                #   @see Vedeu::Geometries.geometries
         | 
| 63 | 
            +
                def_delegators Vedeu::Geometries, :geometries
         | 
| 64 | 
            +
             | 
| 65 | 
            +
                # @!method groups
         | 
| 66 | 
            +
                #   @see Vedeu::Groups.groups
         | 
| 67 | 
            +
                def_delegators Vedeu::Groups, :groups
         | 
| 68 | 
            +
             | 
| 69 | 
            +
                # @!method interfaces
         | 
| 70 | 
            +
                #   @see Vedeu::InterfacesRepository.interfaces
         | 
| 32 71 | 
             
                def_delegators Vedeu::InterfacesRepository, :interfaces
         | 
| 33 72 |  | 
| 34 | 
            -
                 | 
| 35 | 
            -
                 | 
| 36 | 
            -
                def_delegators Vedeu:: | 
| 73 | 
            +
                # @!method keymaps
         | 
| 74 | 
            +
                #   @see Vedeu::Keymaps.keymaps
         | 
| 75 | 
            +
                def_delegators Vedeu::Keymaps, :keymaps
         | 
| 37 76 |  | 
| 38 | 
            -
                 | 
| 39 | 
            -
                 | 
| 40 | 
            -
                def_delegators Vedeu:: | 
| 77 | 
            +
                # @!method keypress
         | 
| 78 | 
            +
                #   @see Vedeu::Mapper.keypress
         | 
| 79 | 
            +
                def_delegators Vedeu::Mapper, :keypress
         | 
| 80 | 
            +
             | 
| 81 | 
            +
                # @!method menus
         | 
| 82 | 
            +
                #   @see Vedeu::Menus.menus
         | 
| 83 | 
            +
                def_delegators Vedeu::Menus, :menus
         | 
| 84 | 
            +
             | 
| 85 | 
            +
                # @!method bind
         | 
| 86 | 
            +
                #   @see Vedeu::Event.bind
         | 
| 87 | 
            +
                # @!method trigger
         | 
| 88 | 
            +
                #   @see Vedeu::Event.trigger
         | 
| 89 | 
            +
                # @!method unbind
         | 
| 90 | 
            +
                #   @see Vedeu::Event.unbind
         | 
| 91 | 
            +
                def_delegators Vedeu::Event, :bind,
         | 
| 92 | 
            +
                  :trigger,
         | 
| 93 | 
            +
                  :unbind
         | 
| 94 | 
            +
             | 
| 95 | 
            +
                # @!method configure
         | 
| 96 | 
            +
                #   @see Vedeu::Configuration.configure
         | 
| 97 | 
            +
                # @!method configuration
         | 
| 98 | 
            +
                #   @see Vedeu::Configuration.configuration
         | 
| 99 | 
            +
                def_delegators Vedeu::Configuration, :configure,
         | 
| 100 | 
            +
                  :configuration
         | 
| 101 | 
            +
             | 
| 102 | 
            +
                # @!method border
         | 
| 103 | 
            +
                #   @see Vedeu::DSL::Border.border
         | 
| 104 | 
            +
                def_delegators Vedeu::DSL::Border, :border
         | 
| 105 | 
            +
             | 
| 106 | 
            +
                # @!method geometry
         | 
| 107 | 
            +
                #   @see Vedeu::DSL::Geometry.geometry
         | 
| 41 108 | 
             
                def_delegators Vedeu::DSL::Geometry, :geometry
         | 
| 42 | 
            -
                def_delegators Vedeu::DSL::Keymap,   :keymap
         | 
| 43 | 
            -
                def_delegators Vedeu::DSL::Group,    :group
         | 
| 44 | 
            -
                def_delegators Vedeu::DSL::Use,      :use
         | 
| 45 | 
            -
                def_delegators Vedeu::DSL::View,     :interface, :renders, :views
         | 
| 46 109 |  | 
| 47 | 
            -
                 | 
| 48 | 
            -
             | 
| 110 | 
            +
                # @!method keymap
         | 
| 111 | 
            +
                #   @see Vedeu::DSL::Keymap.keymap
         | 
| 112 | 
            +
                def_delegators Vedeu::DSL::Keymap, :keymap
         | 
| 113 | 
            +
             | 
| 114 | 
            +
                # @!method group
         | 
| 115 | 
            +
                #   @see Vedeu::DSL::Group.group
         | 
| 116 | 
            +
                def_delegators Vedeu::DSL::Group, :group
         | 
| 117 | 
            +
             | 
| 118 | 
            +
                # @!method use
         | 
| 119 | 
            +
                #   @see Vedeu::DSL::Use#use
         | 
| 120 | 
            +
                def_delegators Vedeu::DSL::Use, :use
         | 
| 121 | 
            +
             | 
| 122 | 
            +
                # @!method interface
         | 
| 123 | 
            +
                #   @see Vedeu::DSL::View.interface
         | 
| 124 | 
            +
                # @!method renders
         | 
| 125 | 
            +
                #   @see Vedeu::DSL::View.renders
         | 
| 126 | 
            +
                # @!method views
         | 
| 127 | 
            +
                #   @see Vedeu::DSL::View.views
         | 
| 128 | 
            +
                def_delegators Vedeu::DSL::View, :interface,
         | 
| 129 | 
            +
                  :renders,
         | 
| 130 | 
            +
                  :views
         | 
| 131 | 
            +
             | 
| 132 | 
            +
                # @!method focus
         | 
| 133 | 
            +
                #   @see Vedeu::Focus#focus
         | 
| 134 | 
            +
                # @!method focus_by_name
         | 
| 135 | 
            +
                #   @see Vedeu::Focus#focus_by_name
         | 
| 136 | 
            +
                # @!method focussed?
         | 
| 137 | 
            +
                #   @see Vedeu::Focus#focussed?
         | 
| 138 | 
            +
                # @!method focus_next
         | 
| 139 | 
            +
                #   @see Vedeu::Focus#focus_next
         | 
| 140 | 
            +
                # @!method focus_previous
         | 
| 141 | 
            +
                #   @see Vedeu::Focus#focus_previous
         | 
| 142 | 
            +
                def_delegators Vedeu::Focus, :focus,
         | 
| 143 | 
            +
                  :focus_by_name,
         | 
| 144 | 
            +
                  :focussed?,
         | 
| 145 | 
            +
                  :focus_next,
         | 
| 146 | 
            +
                  :focus_previous
         | 
| 147 | 
            +
             | 
| 148 | 
            +
                # @!method log
         | 
| 149 | 
            +
                #   @see Vedeu::Log.log
         | 
| 150 | 
            +
                def_delegators Vedeu::Log, :log
         | 
| 151 | 
            +
             | 
| 152 | 
            +
                # @!method menu
         | 
| 153 | 
            +
                #   @see Vedeu::Menu.menu
         | 
| 154 | 
            +
                def_delegators Vedeu::Menu, :menu
         | 
| 49 155 |  | 
| 50 | 
            -
                 | 
| 51 | 
            -
                 | 
| 52 | 
            -
                 | 
| 156 | 
            +
                # @!method height
         | 
| 157 | 
            +
                #   @see Vedeu::Terminal#height
         | 
| 158 | 
            +
                # @!method width
         | 
| 159 | 
            +
                #   @see Vedeu::Terminal#width
         | 
| 160 | 
            +
                # @!method resize
         | 
| 161 | 
            +
                #   @see Vedeu::Terminal#resize
         | 
| 162 | 
            +
                def_delegators Vedeu::Terminal, :height,
         | 
| 163 | 
            +
                  :width,
         | 
| 164 | 
            +
                  :resize
         | 
| 53 165 |  | 
| 54 166 | 
             
              end # API
         | 
| 55 167 |  | 
    
        data/lib/vedeu/buffers/buffer.rb
    CHANGED
    
    | @@ -5,25 +5,27 @@ module Vedeu | |
| 5 5 | 
             
              # The Buffer object represents the states of display for an interface. The
         | 
| 6 6 | 
             
              # states are 'front', 'back' and 'previous'.
         | 
| 7 7 | 
             
              #
         | 
| 8 | 
            -
              # - 'front':    The currently displayed buffer; contains the content which was
         | 
| 9 | 
            -
              #               last output.
         | 
| 10 | 
            -
              # - 'back':     The next buffer to be displayed; contains the content which
         | 
| 11 | 
            -
              #               will be shown on next refresh.
         | 
| 12 | 
            -
              # - 'previous': The previous buffer which was displayed; contains the content
         | 
| 13 | 
            -
              #               that was shown before 'front'.
         | 
| 14 | 
            -
              #
         | 
| 15 8 | 
             
              class Buffer
         | 
| 16 9 |  | 
| 17 10 | 
             
                include Vedeu::Model
         | 
| 18 11 |  | 
| 12 | 
            +
                # The next buffer to be displayed; contains the content which will be shown
         | 
| 13 | 
            +
                # on next refresh.
         | 
| 14 | 
            +
                #
         | 
| 19 15 | 
             
                # @!attribute [rw] back
         | 
| 20 16 | 
             
                # @return [Interface]
         | 
| 21 17 | 
             
                attr_accessor :back
         | 
| 22 18 |  | 
| 19 | 
            +
                # The currently displayed buffer, contains the content which was last
         | 
| 20 | 
            +
                # output.
         | 
| 21 | 
            +
                #
         | 
| 23 22 | 
             
                # @!attribute [rw] front
         | 
| 24 23 | 
             
                # @return [Interface]
         | 
| 25 24 | 
             
                attr_accessor :front
         | 
| 26 25 |  | 
| 26 | 
            +
                # The previous buffer which was displayed; contains the content that was
         | 
| 27 | 
            +
                # shown before 'front'.
         | 
| 28 | 
            +
                #
         | 
| 27 29 | 
             
                # @!attribute [rw] previous
         | 
| 28 30 | 
             
                # @return [Interface]
         | 
| 29 31 | 
             
                attr_accessor :previous
         | 
| @@ -32,7 +34,8 @@ module Vedeu | |
| 32 34 | 
             
                # @return [String]
         | 
| 33 35 | 
             
                attr_reader :name
         | 
| 34 36 |  | 
| 35 | 
            -
                # Return a new instance of Buffer.
         | 
| 37 | 
            +
                # Return a new instance of Buffer. Generally a Buffer is initialized with
         | 
| 38 | 
            +
                # only a 'name' and 'back' parameter.
         | 
| 36 39 | 
             
                #
         | 
| 37 40 | 
             
                # @param name [String] The name of the interface for which the buffer
         | 
| 38 41 | 
             
                #   belongs.
         | 
    
        data/lib/vedeu/cursor/cursor.rb
    CHANGED
    
    
| @@ -17,7 +17,7 @@ module Vedeu | |
| 17 17 | 
             
                  # @note The last defined background colour for a particular interface,
         | 
| 18 18 | 
             
                  #   line or stream overrides previously defined entries in the same block.
         | 
| 19 19 | 
             
                  #
         | 
| 20 | 
            -
                  # @param value [String]
         | 
| 20 | 
            +
                  # @param value [String] A HTML/CSS value.
         | 
| 21 21 | 
             
                  #
         | 
| 22 22 | 
             
                  # @example
         | 
| 23 23 | 
             
                  #   interface 'my_interface' do
         | 
    
        data/lib/vedeu/geometry/area.rb
    CHANGED
    
    | @@ -5,22 +5,22 @@ module Vedeu | |
| 5 5 | 
             
              class Area
         | 
| 6 6 |  | 
| 7 7 | 
             
                # @!attribute [r] y
         | 
| 8 | 
            -
                # @return [Fixnum]
         | 
| 8 | 
            +
                # @return [Fixnum] Returns the top coordinate of the interface.
         | 
| 9 9 | 
             
                attr_reader :y
         | 
| 10 10 | 
             
                alias_method :top, :y
         | 
| 11 11 |  | 
| 12 12 | 
             
                # @!attribute [r] yn
         | 
| 13 | 
            -
                # @return [Fixnum]
         | 
| 13 | 
            +
                # @return [Fixnum] Returns the bottom coordinate of the interface.
         | 
| 14 14 | 
             
                attr_reader :yn
         | 
| 15 15 | 
             
                alias_method :bottom, :yn
         | 
| 16 16 |  | 
| 17 17 | 
             
                # @!attribute [r] x
         | 
| 18 | 
            -
                # @return [Fixnum]
         | 
| 18 | 
            +
                # @return [Fixnum] Returns the left coordinate of the interface.
         | 
| 19 19 | 
             
                attr_reader :x
         | 
| 20 20 | 
             
                alias_method :left, :x
         | 
| 21 21 |  | 
| 22 22 | 
             
                # @!attribute [r] xn
         | 
| 23 | 
            -
                # @return [Fixnum]
         | 
| 23 | 
            +
                # @return [Fixnum] Returns the right coordinate of the interface.
         | 
| 24 24 | 
             
                attr_reader :xn
         | 
| 25 25 | 
             
                alias_method :right, :xn
         | 
| 26 26 |  | 
| @@ -53,12 +53,6 @@ module Vedeu | |
| 53 53 | 
             
                  @y, @yn, @x, @xn  = y, yn, x, xn
         | 
| 54 54 | 
             
                end
         | 
| 55 55 |  | 
| 56 | 
            -
                # @param other [Vedeu::Area]
         | 
| 57 | 
            -
                # @return [Boolean]
         | 
| 58 | 
            -
                def ==(other)
         | 
| 59 | 
            -
                  eql?(other)
         | 
| 60 | 
            -
                end
         | 
| 61 | 
            -
             | 
| 62 56 | 
             
                # @param other [Vedeu::Area]
         | 
| 63 57 | 
             
                # @return [Boolean]
         | 
| 64 58 | 
             
                def eql?(other)
         | 
| @@ -68,6 +62,7 @@ module Vedeu | |
| 68 62 | 
             
                  x          == other.x     &&
         | 
| 69 63 | 
             
                  xn         == other.xn
         | 
| 70 64 | 
             
                end
         | 
| 65 | 
            +
                alias_method :==, :eql?
         | 
| 71 66 |  | 
| 72 67 | 
             
                # @return [Array<Fixnum>]
         | 
| 73 68 | 
             
                def centre
         | 
| @@ -76,12 +71,22 @@ module Vedeu | |
| 76 71 |  | 
| 77 72 | 
             
                # @return [Fixnum]
         | 
| 78 73 | 
             
                def centre_y
         | 
| 79 | 
            -
                  ( | 
| 74 | 
            +
                  (height / 2) + y
         | 
| 80 75 | 
             
                end
         | 
| 81 76 |  | 
| 82 77 | 
             
                # @return [Fixnum]
         | 
| 83 78 | 
             
                def centre_x
         | 
| 84 | 
            -
                  ( | 
| 79 | 
            +
                  (width / 2) + x
         | 
| 80 | 
            +
                end
         | 
| 81 | 
            +
             | 
| 82 | 
            +
                # @return [Fixnum]
         | 
| 83 | 
            +
                def height
         | 
| 84 | 
            +
                  (y..yn).size
         | 
| 85 | 
            +
                end
         | 
| 86 | 
            +
             | 
| 87 | 
            +
                # @return [Fixnum]
         | 
| 88 | 
            +
                def width
         | 
| 89 | 
            +
                  (x..xn).size
         | 
| 85 90 | 
             
                end
         | 
| 86 91 |  | 
| 87 92 | 
             
                # Returns the row above the top by default.
         | 
| @@ -90,8 +95,8 @@ module Vedeu | |
| 90 95 | 
             
                #   `top` / `y` is 4.
         | 
| 91 96 | 
             
                #
         | 
| 92 97 | 
             
                #   north     # => 3
         | 
| 93 | 
            -
                #   north(2)  # => 2
         | 
| 94 | 
            -
                #   north(-4) # => 8
         | 
| 98 | 
            +
                #   north(2)  # => 2 (positive goes north)
         | 
| 99 | 
            +
                #   north(-4) # => 8 (negative goes south)
         | 
| 95 100 | 
             
                #
         | 
| 96 101 | 
             
                # @param offset [Fixnum]
         | 
| 97 102 | 
             
                # @return [Fixnum]
         | 
| @@ -105,8 +110,8 @@ module Vedeu | |
| 105 110 | 
             
                #   `right` / `xn` is 19.
         | 
| 106 111 | 
             
                #
         | 
| 107 112 | 
             
                #   east     # => 20
         | 
| 108 | 
            -
                #   east(2)  # => 21
         | 
| 109 | 
            -
                #   east(-4) # => 15
         | 
| 113 | 
            +
                #   east(2)  # => 21 (positive goes east)
         | 
| 114 | 
            +
                #   east(-4) # => 15 (negative goes west)
         | 
| 110 115 | 
             
                #
         | 
| 111 116 | 
             
                # @param offset [Fixnum]
         | 
| 112 117 | 
             
                # @return [Fixnum]
         | 
| @@ -120,8 +125,8 @@ module Vedeu | |
| 120 125 | 
             
                #   `bottom` / `yn` is 12.
         | 
| 121 126 | 
             
                #
         | 
| 122 127 | 
             
                #   south     # => 13
         | 
| 123 | 
            -
                #   south(2)  # => 14
         | 
| 124 | 
            -
                #   south(-4) # => 8
         | 
| 128 | 
            +
                #   south(2)  # => 14 (positive goes south)
         | 
| 129 | 
            +
                #   south(-4) # => 8  (negative goes north)
         | 
| 125 130 | 
             
                #
         | 
| 126 131 | 
             
                # @param offset [Fixnum]
         | 
| 127 132 | 
             
                # @return [Fixnum]
         | 
| @@ -135,8 +140,8 @@ module Vedeu | |
| 135 140 | 
             
                #   `left` / `x` is 8.
         | 
| 136 141 | 
             
                #
         | 
| 137 142 | 
             
                #   west      # => 7
         | 
| 138 | 
            -
                #   west(2)   # => 6
         | 
| 139 | 
            -
                #   west(-4)  # => 12
         | 
| 143 | 
            +
                #   west(2)   # => 6  (positive goes west)
         | 
| 144 | 
            +
                #   west(-4)  # => 12 (negative goes east)
         | 
| 140 145 | 
             
                #
         | 
| 141 146 | 
             
                # @param offset [Fixnum]
         | 
| 142 147 | 
             
                # @return [Fixnum]
         |