vedeu 0.6.20 → 0.6.21
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/.yardopts +1 -1
- data/README.md +4 -0
- data/Rakefile +13 -0
- data/bin/vedeu_drb_server +6 -6
- data/docs/api.md +14 -0
- data/docs/dsl.md +12 -12
- data/docs/events/document.md +4 -2
- data/docs/events/drb.md +4 -0
- data/docs/events/focus.md +2 -0
- data/docs/events/menu.md +2 -0
- data/docs/events/movement.md +7 -5
- data/docs/events/refresh.md +2 -0
- data/docs/events/system.md +5 -0
- data/docs/events/view.md +2 -0
- data/docs/events/visibility.md +2 -0
- data/lib/vedeu.rb +0 -23
- data/lib/vedeu/all.rb +2 -4
- data/lib/vedeu/application/application_view.rb +1 -1
- data/lib/vedeu/borders/all.rb +3 -3
- data/lib/vedeu/borders/border.rb +2 -2
- data/lib/vedeu/borders/dsl.rb +21 -27
- data/lib/vedeu/borders/null.rb +2 -15
- data/lib/vedeu/borders/render.rb +1 -1
- data/lib/vedeu/borders/repository.rb +9 -0
- data/lib/vedeu/buffers/buffer.rb +2 -2
- data/lib/vedeu/buffers/null.rb +1 -31
- data/lib/vedeu/buffers/refresh.rb +8 -8
- data/lib/vedeu/buffers/repository.rb +9 -0
- data/lib/vedeu/colours/backgrounds.rb +9 -0
- data/lib/vedeu/colours/colour.rb +1 -1
- data/lib/vedeu/colours/foregrounds.rb +9 -0
- data/lib/vedeu/common.rb +22 -13
- data/lib/vedeu/configuration/configuration.rb +6 -0
- data/lib/vedeu/cursors/cursor.rb +13 -8
- data/lib/vedeu/cursors/refresh.rb +2 -2
- data/lib/vedeu/cursors/repository.rb +18 -1
- data/lib/vedeu/distributed/server.rb +23 -0
- data/lib/vedeu/distributed/templates/default_borders.vedeu +1 -1
- data/lib/vedeu/distributed/templates/default_geometries.vedeu +1 -1
- data/lib/vedeu/distributed/templates/default_interfaces.vedeu +1 -1
- data/lib/vedeu/distributed/templates/default_keymaps.vedeu +1 -1
- data/lib/vedeu/distributed/templates/default_menus.vedeu +1 -1
- data/lib/vedeu/distributed/templates/default_views.vedeu +1 -1
- data/lib/vedeu/dsl/composition.rb +7 -17
- data/lib/vedeu/dsl/dsl.rb +12 -0
- data/lib/vedeu/dsl/interface.rb +32 -33
- data/lib/vedeu/dsl/keymap.rb +13 -19
- data/lib/vedeu/dsl/line.rb +3 -13
- data/lib/vedeu/dsl/shared.rb +5 -5
- data/lib/vedeu/dsl/stream.rb +0 -10
- data/lib/vedeu/dsl/use.rb +6 -6
- data/lib/vedeu/dsl/view.rb +17 -19
- data/lib/vedeu/editor/cursor.rb +32 -10
- data/lib/vedeu/editor/document.rb +33 -35
- data/lib/vedeu/editor/editor.rb +3 -4
- data/lib/vedeu/editor/insert.rb +1 -1
- data/lib/vedeu/editor/line.rb +1 -8
- data/lib/vedeu/editor/lines.rb +1 -1
- data/lib/vedeu/editor/repository.rb +9 -0
- data/lib/vedeu/esc/esc.rb +2 -1
- data/lib/vedeu/events/aliases.rb +8 -1
- data/lib/vedeu/events/event.rb +8 -0
- data/lib/vedeu/events/repository.rb +9 -0
- data/lib/vedeu/events/trigger.rb +9 -5
- data/lib/vedeu/geometry/coordinate.rb +2 -2
- data/lib/vedeu/geometry/dsl.rb +32 -38
- data/lib/vedeu/geometry/generic_coordinate.rb +1 -1
- data/lib/vedeu/geometry/geometry.rb +3 -3
- data/lib/vedeu/geometry/null.rb +2 -24
- data/lib/vedeu/geometry/repository.rb +9 -0
- data/lib/vedeu/groups/clear.rb +7 -3
- data/lib/vedeu/groups/dsl.rb +29 -35
- data/lib/vedeu/groups/group.rb +28 -4
- data/lib/vedeu/groups/refresh.rb +3 -2
- data/lib/vedeu/groups/repository.rb +9 -0
- data/lib/vedeu/input/capture.rb +1 -1
- data/lib/vedeu/input/keymap.rb +2 -1
- data/lib/vedeu/input/keymaps.rb +9 -0
- data/lib/vedeu/input/mapper.rb +4 -0
- data/lib/vedeu/input/translator.rb +1 -1
- data/lib/vedeu/logging/debug.rb +13 -0
- data/lib/vedeu/logging/log.rb +8 -0
- data/lib/vedeu/logging/timer.rb +13 -0
- data/lib/vedeu/menus/dsl.rb +8 -18
- data/lib/vedeu/menus/menu.rb +8 -4
- data/lib/vedeu/menus/null.rb +1 -1
- data/lib/vedeu/menus/repository.rb +9 -0
- data/lib/vedeu/models/cell.rb +5 -0
- data/lib/vedeu/models/escape.rb +5 -0
- data/lib/vedeu/models/focus.rb +20 -5
- data/lib/vedeu/models/interface.rb +10 -1
- data/lib/vedeu/models/interfaces.rb +9 -0
- data/lib/vedeu/models/toggleable.rb +19 -4
- data/lib/vedeu/models/views/char.rb +6 -1
- data/lib/vedeu/models/views/html_char.rb +1 -4
- data/lib/vedeu/models/views/line.rb +1 -1
- data/lib/vedeu/models/views/view.rb +1 -1
- data/lib/vedeu/null/generic.rb +14 -2
- data/lib/vedeu/null/interface.rb +1 -1
- data/lib/vedeu/null/view.rb +1 -1
- data/lib/vedeu/output/clear/interface.rb +5 -1
- data/lib/vedeu/output/compressor.rb +8 -4
- data/lib/vedeu/output/direct.rb +4 -4
- data/lib/vedeu/output/presentation/all.rb +15 -0
- data/lib/vedeu/output/presentation/presentation.rb +0 -7
- data/lib/vedeu/output/refresh/refresh.rb +1 -3
- data/lib/vedeu/output/renderers/all.rb +10 -0
- data/lib/vedeu/output/renderers/terminal.rb +1 -3
- data/lib/vedeu/repositories/collection.rb +3 -3
- data/lib/vedeu/repositories/model.rb +1 -1
- data/lib/vedeu/repositories/repository.rb +8 -8
- data/lib/vedeu/repositories/store.rb +3 -2
- data/lib/vedeu/runtime/application.rb +4 -0
- data/lib/vedeu/runtime/bootstrap.rb +1 -1
- data/lib/vedeu/runtime/flags.rb +7 -0
- data/lib/vedeu/runtime/main_loop.rb +2 -0
- data/lib/vedeu/runtime/router.rb +4 -0
- data/lib/vedeu/templating/decoder.rb +1 -1
- data/lib/vedeu/templating/encoder.rb +1 -1
- data/lib/vedeu/templating/helpers.rb +2 -0
- data/lib/vedeu/templating/template.rb +1 -1
- data/lib/vedeu/terminal/buffer.rb +7 -0
- data/lib/vedeu/terminal/terminal.rb +8 -0
- data/lib/vedeu/version.rb +1 -1
- data/test/lib/vedeu/borders/dsl_test.rb +0 -6
- data/test/lib/vedeu/borders/null_test.rb +0 -12
- data/test/lib/vedeu/buffers/null_test.rb +0 -37
- data/test/lib/vedeu/common_test.rb +33 -0
- data/test/lib/vedeu/cursors/cursor_test.rb +1 -1
- data/test/lib/vedeu/dsl/composition_test.rb +0 -6
- data/test/lib/vedeu/dsl/dsl_test.rb +1 -0
- data/test/lib/vedeu/dsl/interface_test.rb +0 -6
- data/test/lib/vedeu/dsl/keymap_test.rb +0 -5
- data/test/lib/vedeu/dsl/line_test.rb +0 -7
- data/test/lib/vedeu/dsl/stream_test.rb +0 -7
- data/test/lib/vedeu/editor/cursor_test.rb +23 -8
- data/test/lib/vedeu/editor/document_test.rb +27 -23
- data/test/lib/vedeu/editor/line_test.rb +0 -30
- data/test/lib/vedeu/geometry/dsl_test.rb +0 -5
- data/test/lib/vedeu/geometry/null_test.rb +0 -30
- data/test/lib/vedeu/groups/dsl_test.rb +0 -6
- data/test/lib/vedeu/groups/group_test.rb +15 -7
- data/test/lib/vedeu/menus/dsl_test.rb +0 -5
- data/test/lib/vedeu/models/cell_test.rb +4 -0
- data/test/lib/vedeu/models/escape_test.rb +4 -0
- data/test/lib/vedeu/models/views/char_test.rb +4 -0
- data/test/lib/vedeu/null/generic_test.rb +13 -0
- data/test/lib/vedeu/terminal/buffer_test.rb +3 -2
- data/test/lib/vedeu_test.rb +81 -3
- data/test/support/examples/borders_app.rb +1 -3
- data/test/support/examples/drb_app.rb +1 -3
- data/test/support/examples/editor_app.rb +2 -4
- data/test/support/examples/focus_app.rb +1 -3
- data/test/support/examples/hello_world.rb +1 -6
- data/test/support/examples/material_colours_app.rb +1 -3
- data/test/support/examples/view_templates_app/view_templates_app.rb +1 -3
- data/test/support/helpers/model_test_class.rb +1 -5
- data/test/support/who.rb +29 -0
- data/test/test_helper.rb +0 -1
- metadata +5 -17
- data/lib/vedeu/api/all.rb +0 -15
- data/lib/vedeu/api/external.rb +0 -194
- data/lib/vedeu/api/internal.rb +0 -177
- data/test/lib/vedeu/api/external_test.rb +0 -74
- data/test/lib/vedeu/api/internal_test.rb +0 -33
- data/test/support/examples/typed_commands/command.erb +0 -1
- data/test/support/examples/typed_commands/output.erb +0 -1
- data/test/support/examples/typed_commands/status.erb +0 -1
- data/test/support/examples/typed_commands/typed_commands_app.rb +0 -94
| @@ -335,4 +335,10 @@ module Vedeu | |
| 335 335 |  | 
| 336 336 | 
             
              end # Configuration
         | 
| 337 337 |  | 
| 338 | 
            +
              # @!method configure
         | 
| 339 | 
            +
              #   @see Vedeu::Configuration.configure
         | 
| 340 | 
            +
              # @!method configuration
         | 
| 341 | 
            +
              #   @see Vedeu::Configuration.configuration
         | 
| 342 | 
            +
              def_delegators Vedeu::Configuration, :configure, :configuration
         | 
| 343 | 
            +
             | 
| 338 344 | 
             
            end # Vedeu
         | 
    
        data/lib/vedeu/cursors/cursor.rb
    CHANGED
    
    | @@ -22,7 +22,7 @@ module Vedeu | |
| 22 22 | 
             
                  attr_reader :attributes
         | 
| 23 23 |  | 
| 24 24 | 
             
                  # @!attribute [r] name
         | 
| 25 | 
            -
                  # @return [String]
         | 
| 25 | 
            +
                  # @return [String|Symbol]
         | 
| 26 26 | 
             
                  attr_reader :name
         | 
| 27 27 |  | 
| 28 28 | 
             
                  # @!attribute [w] ox
         | 
| @@ -33,10 +33,6 @@ module Vedeu | |
| 33 33 | 
             
                  # @return [Fixnum]
         | 
| 34 34 | 
             
                  attr_writer :oy
         | 
| 35 35 |  | 
| 36 | 
            -
                  # @!attribute [r] state
         | 
| 37 | 
            -
                  # @return [Boolean|Symbol]
         | 
| 38 | 
            -
                  attr_reader :state
         | 
| 39 | 
            -
             | 
| 40 36 | 
             
                  # @!attribute [w] x
         | 
| 41 37 | 
             
                  # @return [Fixnum]
         | 
| 42 38 | 
             
                  attr_writer :x
         | 
| @@ -45,7 +41,7 @@ module Vedeu | |
| 45 41 | 
             
                  # @return [Fixnum]
         | 
| 46 42 | 
             
                  attr_writer :y
         | 
| 47 43 |  | 
| 48 | 
            -
                  # @param  | 
| 44 | 
            +
                  # @param (see #initialize)
         | 
| 49 45 | 
             
                  # @return [Vedeu::Cursors::Cursor]
         | 
| 50 46 | 
             
                  def self.store(attributes)
         | 
| 51 47 | 
             
                    new(attributes).store
         | 
| @@ -54,8 +50,8 @@ module Vedeu | |
| 54 50 | 
             
                  # Returns a new instance of Vedeu::Cursors::Cursor.
         | 
| 55 51 | 
             
                  #
         | 
| 56 52 | 
             
                  # @param attributes [Hash]
         | 
| 57 | 
            -
                  # @option attributes name [String] The name of the | 
| 58 | 
            -
                  #   this cursor belongs to.
         | 
| 53 | 
            +
                  # @option attributes name [String|Symbol] The name of the
         | 
| 54 | 
            +
                  #   interface this cursor belongs to.
         | 
| 59 55 | 
             
                  # @option attributes ox [Fixnum] The offset x coordinate.
         | 
| 60 56 | 
             
                  # @option attributes oy [Fixnum] The offset y coordinate.
         | 
| 61 57 | 
             
                  # @option attributes repository
         | 
| @@ -280,4 +276,13 @@ module Vedeu | |
| 280 276 |  | 
| 281 277 | 
             
              end # Cursors
         | 
| 282 278 |  | 
| 279 | 
            +
              # @!method hide_cursor
         | 
| 280 | 
            +
              #   @see Vedeu::Toggleable::ClassMethods.hide
         | 
| 281 | 
            +
              # @!method show_cursor
         | 
| 282 | 
            +
              #   @see Vedeu::Toggleable::ClassMethods#show
         | 
| 283 | 
            +
              # @!method toggle_cursor
         | 
| 284 | 
            +
              #   @see Vedeu::Toggleable::ClassMethods#toggle
         | 
| 285 | 
            +
              def_delegators Vedeu::Cursors::Cursor, :hide_cursor, :show_cursor,
         | 
| 286 | 
            +
                             :toggle_cursor
         | 
| 287 | 
            +
             | 
| 283 288 | 
             
            end # Vedeu
         | 
| @@ -21,7 +21,7 @@ module Vedeu | |
| 21 21 |  | 
| 22 22 | 
             
                  # Returns a new instance of Vedeu::Cursors::Refresh.
         | 
| 23 23 | 
             
                  #
         | 
| 24 | 
            -
                  # @param name [String] The name of the cursor.
         | 
| 24 | 
            +
                  # @param name [String|Symbol] The name of the cursor.
         | 
| 25 25 | 
             
                  # @return [Vedeu::Cursors::Refresh]
         | 
| 26 26 | 
             
                  def initialize(name = nil)
         | 
| 27 27 | 
             
                    @name = name || Vedeu.focus
         | 
| @@ -44,7 +44,7 @@ module Vedeu | |
| 44 44 | 
             
                  protected
         | 
| 45 45 |  | 
| 46 46 | 
             
                  # @!attribute [r] name
         | 
| 47 | 
            -
                  # @return [String]
         | 
| 47 | 
            +
                  # @return [String|Symbol]
         | 
| 48 48 | 
             
                  attr_reader :name
         | 
| 49 49 |  | 
| 50 50 | 
             
                  private
         | 
| @@ -10,8 +10,12 @@ module Vedeu | |
| 10 10 |  | 
| 11 11 | 
             
                  class << self
         | 
| 12 12 |  | 
| 13 | 
            +
                    # Fetch the cursor of the currently focussed interface/view.
         | 
| 14 | 
            +
                    #
         | 
| 15 | 
            +
                    # @example
         | 
| 16 | 
            +
                    #   Vedeu.cursor
         | 
| 17 | 
            +
                    #
         | 
| 13 18 | 
             
                    # @return [Vedeu::Cursors::Cursor]
         | 
| 14 | 
            -
                    # @see Vedeu::API::External.cursor
         | 
| 15 19 | 
             
                    def cursor
         | 
| 16 20 | 
             
                      cursors.by_name(Vedeu.focus) if Vedeu.focus
         | 
| 17 21 | 
             
                    end
         | 
| @@ -31,4 +35,17 @@ module Vedeu | |
| 31 35 |  | 
| 32 36 | 
             
              end # Cursors
         | 
| 33 37 |  | 
| 38 | 
            +
              # @!method cursor
         | 
| 39 | 
            +
              #   @see Vedeu::Cursors::Repository.cursor
         | 
| 40 | 
            +
              def_delegators Vedeu::Cursors::Repository, :cursor
         | 
| 41 | 
            +
             | 
| 42 | 
            +
              # Manipulate the repository of cursors.
         | 
| 43 | 
            +
              #
         | 
| 44 | 
            +
              # @example
         | 
| 45 | 
            +
              #   Vedeu.cursors
         | 
| 46 | 
            +
              #
         | 
| 47 | 
            +
              # @!method cursors
         | 
| 48 | 
            +
              # @return [Vedeu::Cursors::Repository]
         | 
| 49 | 
            +
              def_delegators Vedeu::Cursors::Repository, :cursors
         | 
| 50 | 
            +
             | 
| 34 51 | 
             
            end # Vedeu
         | 
| @@ -87,6 +87,9 @@ module Vedeu | |
| 87 87 |  | 
| 88 88 | 
             
                  # Restart the DRb server.
         | 
| 89 89 | 
             
                  #
         | 
| 90 | 
            +
                  # @example
         | 
| 91 | 
            +
                  #   Vedeu.drb_restart
         | 
| 92 | 
            +
                  #
         | 
| 90 93 | 
             
                  # @return [void]
         | 
| 91 94 | 
             
                  def restart
         | 
| 92 95 | 
             
                    log('Attempting to restart')
         | 
| @@ -128,6 +131,9 @@ module Vedeu | |
| 128 131 |  | 
| 129 132 | 
             
                  # Start the DRb server.
         | 
| 130 133 | 
             
                  #
         | 
| 134 | 
            +
                  # @example
         | 
| 135 | 
            +
                  #   Vedeu.drb_start
         | 
| 136 | 
            +
                  #
         | 
| 131 137 | 
             
                  # @return [Vedeu::Distributed::Server]
         | 
| 132 138 | 
             
                  def start
         | 
| 133 139 | 
             
                    log('Attempting to start')
         | 
| @@ -148,6 +154,9 @@ module Vedeu | |
| 148 154 |  | 
| 149 155 | 
             
                  # Fetch the status of the DRb server.
         | 
| 150 156 | 
             
                  #
         | 
| 157 | 
            +
                  # @example
         | 
| 158 | 
            +
                  #   Vedeu.drb_status
         | 
| 159 | 
            +
                  #
         | 
| 151 160 | 
             
                  # @return [Symbol]
         | 
| 152 161 | 
             
                  def status
         | 
| 153 162 | 
             
                    log('Fetching status')
         | 
| @@ -169,6 +178,9 @@ module Vedeu | |
| 169 178 |  | 
| 170 179 | 
             
                  # Stop the DRb server.
         | 
| 171 180 | 
             
                  #
         | 
| 181 | 
            +
                  # @example
         | 
| 182 | 
            +
                  #   Vedeu.drb_stop
         | 
| 183 | 
            +
                  #
         | 
| 172 184 | 
             
                  # @return [void]
         | 
| 173 185 | 
             
                  def stop
         | 
| 174 186 | 
             
                    log('Attempting to stop')
         | 
| @@ -225,4 +237,15 @@ module Vedeu | |
| 225 237 |  | 
| 226 238 | 
             
              end # Distributed
         | 
| 227 239 |  | 
| 240 | 
            +
              # @!method drb_restart
         | 
| 241 | 
            +
              #   @see Vedeu::Distributed::Server#restart
         | 
| 242 | 
            +
              # @!method drb_start
         | 
| 243 | 
            +
              #   @see Vedeu::Distributed::Server#start
         | 
| 244 | 
            +
              # @!method drb_status
         | 
| 245 | 
            +
              #   @see Vedeu::Distributed::Server#status
         | 
| 246 | 
            +
              # @!method drb_stop
         | 
| 247 | 
            +
              #   @see Vedeu::Distributed::Server#stop
         | 
| 248 | 
            +
              def_delegators Vedeu::Distributed::Server, :drb_restart, :drb_start,
         | 
| 249 | 
            +
                             :drb_status, :drb_stop
         | 
| 250 | 
            +
             | 
| 228 251 | 
             
            end # Vedeu
         | 
| @@ -42,16 +42,6 @@ module Vedeu | |
| 42 42 |  | 
| 43 43 | 
             
                  include Vedeu::DSL
         | 
| 44 44 |  | 
| 45 | 
            -
                  # Returns an instance of DSL::Composition.
         | 
| 46 | 
            -
                  #
         | 
| 47 | 
            -
                  # @param model [Vedeu::Views::Composition]
         | 
| 48 | 
            -
                  # @param client [Object]
         | 
| 49 | 
            -
                  # @return [Vedeu::DSL::Composition]
         | 
| 50 | 
            -
                  def initialize(model, client = nil)
         | 
| 51 | 
            -
                    @model  = model
         | 
| 52 | 
            -
                    @client = client
         | 
| 53 | 
            -
                  end
         | 
| 54 | 
            -
             | 
| 55 45 | 
             
                  # Define a view.
         | 
| 56 46 | 
             
                  #
         | 
| 57 47 | 
             
                  # A view is just an Interface object.
         | 
| @@ -61,13 +51,13 @@ module Vedeu | |
| 61 51 | 
             
                  # don't need to specify everything again.
         | 
| 62 52 | 
             
                  #
         | 
| 63 53 | 
             
                  # @todo More documentation required.
         | 
| 64 | 
            -
                  # @param name [String] The name of the interface you are
         | 
| 54 | 
            +
                  # @param name [String|Symbol] The name of the interface you are
         | 
| 65 55 | 
             
                  #   targetting for this view.
         | 
| 66 56 | 
             
                  # @param block [Proc] The directives you wish to send to this
         | 
| 67 57 | 
             
                  #   interface.
         | 
| 68 58 | 
             
                  #
         | 
| 69 59 | 
             
                  # @example
         | 
| 70 | 
            -
                  #   view  | 
| 60 | 
            +
                  #   view :my_interface do
         | 
| 71 61 | 
             
                  #     # ...
         | 
| 72 62 | 
             
                  #   end
         | 
| 73 63 | 
             
                  #
         | 
| @@ -85,14 +75,14 @@ module Vedeu | |
| 85 75 | 
             
                  #
         | 
| 86 76 | 
             
                  # @example
         | 
| 87 77 | 
             
                  #   Vedeu.renders do
         | 
| 88 | 
            -
                  #     template_for( | 
| 78 | 
            +
                  #     template_for(:my_interface,
         | 
| 89 79 | 
             
                  #                  '/path/to/template.erb',
         | 
| 90 80 | 
             
                  #                  @some_object, options)
         | 
| 91 81 | 
             
                  #   end
         | 
| 92 82 | 
             
                  #
         | 
| 93 83 | 
             
                  # @todo More documentation required.
         | 
| 94 84 | 
             
                  #
         | 
| 95 | 
            -
                  # @param name [String] The name of interface for which this
         | 
| 85 | 
            +
                  # @param name [String|Symbol] The name of interface for which this
         | 
| 96 86 | 
             
                  #   template's content belongs to.
         | 
| 97 87 | 
             
                  # @param filename [String] The filename (including path) to the
         | 
| 98 88 | 
             
                  #   template to be used. Yoy can use `File.dirname(__FILE__)` to
         | 
| @@ -123,7 +113,7 @@ module Vedeu | |
| 123 113 |  | 
| 124 114 | 
             
                  private
         | 
| 125 115 |  | 
| 126 | 
            -
                  # @param name [String]
         | 
| 116 | 
            +
                  # @param name [String|Symbol]
         | 
| 127 117 | 
             
                  # @param lines [Vedeu::Views::Lines]
         | 
| 128 118 | 
             
                  # @return [Hash]
         | 
| 129 119 | 
             
                  def template_attributes(name, lines)
         | 
| @@ -133,7 +123,7 @@ module Vedeu | |
| 133 123 | 
             
                  # Return the current attributes combined with the existing
         | 
| 134 124 | 
             
                  # interface attributes defined by the interface.
         | 
| 135 125 | 
             
                  #
         | 
| 136 | 
            -
                  # @param name [String] The name of the interface.
         | 
| 126 | 
            +
                  # @param name [String|Symbol] The name of the interface.
         | 
| 137 127 | 
             
                  # @return [Hash]
         | 
| 138 128 | 
             
                  def new_attributes(name)
         | 
| 139 129 | 
             
                    attributes.merge!(existing_attributes(name))
         | 
| @@ -141,7 +131,7 @@ module Vedeu | |
| 141 131 |  | 
| 142 132 | 
             
                  # Retrieve the attributes of the interface by name.
         | 
| 143 133 | 
             
                  #
         | 
| 144 | 
            -
                  # @param name [String] The name of the interface.
         | 
| 134 | 
            +
                  # @param name [String|Symbol] The name of the interface.
         | 
| 145 135 | 
             
                  # @return [Hash]
         | 
| 146 136 | 
             
                  def existing_attributes(name)
         | 
| 147 137 | 
             
                    Vedeu.interfaces.by_name(name).attributes
         | 
    
        data/lib/vedeu/dsl/dsl.rb
    CHANGED
    
    | @@ -4,6 +4,18 @@ module Vedeu | |
| 4 4 | 
             
              #
         | 
| 5 5 | 
             
              module DSL
         | 
| 6 6 |  | 
| 7 | 
            +
                # Returns an instance of the DSL class including {Vedeu::DSL}.
         | 
| 8 | 
            +
                #
         | 
| 9 | 
            +
                # @param model [void] The model class which the DSL class is
         | 
| 10 | 
            +
                #   wrapping.
         | 
| 11 | 
            +
                # @param client [void] The class where the DSL methods are being
         | 
| 12 | 
            +
                #   used.
         | 
| 13 | 
            +
                # @return [void] An instance of the DSL class.
         | 
| 14 | 
            +
                def initialize(model, client = nil)
         | 
| 15 | 
            +
                  @model  = model
         | 
| 16 | 
            +
                  @client = client
         | 
| 17 | 
            +
                end
         | 
| 18 | 
            +
             | 
| 7 19 | 
             
                protected
         | 
| 8 20 |  | 
| 9 21 | 
             
                # @!attribute [r] client
         | 
    
        data/lib/vedeu/dsl/interface.rb
    CHANGED
    
    | @@ -22,12 +22,12 @@ module Vedeu | |
| 22 22 | 
             
                    # define your the views of your application without their
         | 
| 23 23 | 
             
                    # content.
         | 
| 24 24 | 
             
                    #
         | 
| 25 | 
            -
                    #   Vedeu.interface  | 
| 25 | 
            +
                    #   Vedeu.interface :my_interface do
         | 
| 26 26 | 
             
                    #     # ... some code
         | 
| 27 27 | 
             
                    #   end
         | 
| 28 28 | 
             
                    #
         | 
| 29 | 
            -
                    # @param name [String] The name of the interface. Used | 
| 30 | 
            -
                    #   reference the interface throughout your application's
         | 
| 29 | 
            +
                    # @param name [String|Symbol] The name of the interface. Used
         | 
| 30 | 
            +
                    #   to reference the interface throughout your application's
         | 
| 31 31 | 
             
                    #   execution lifetime.
         | 
| 32 32 | 
             
                    # @param block [Proc] A set of attributes which define the
         | 
| 33 33 | 
             
                    #   features of the interface.
         | 
| @@ -54,6 +54,7 @@ module Vedeu | |
| 54 54 | 
             
                    # registered, and also adds interface's name to list of
         | 
| 55 55 | 
             
                    # focussable interfaces.
         | 
| 56 56 | 
             
                    #
         | 
| 57 | 
            +
                    # @param name [String|Symbol]
         | 
| 57 58 | 
             
                    # @see Vedeu::Buffers::Buffer
         | 
| 58 59 | 
             
                    # @return [Vedeu::Buffers::Buffer]
         | 
| 59 60 | 
             
                    def add_buffers!(name)
         | 
| @@ -63,6 +64,7 @@ module Vedeu | |
| 63 64 | 
             
                    # Registers a new cursor for the interface unless already
         | 
| 64 65 | 
             
                    # registered.
         | 
| 65 66 | 
             
                    #
         | 
| 67 | 
            +
                    # @param name [String|Symbol]
         | 
| 66 68 | 
             
                    # @return [Vedeu::Cursors::Cursor]
         | 
| 67 69 | 
             
                    def add_cursor!(name)
         | 
| 68 70 | 
             
                      Vedeu::Cursors::Cursor.store(name: name)
         | 
| @@ -71,6 +73,7 @@ module Vedeu | |
| 71 73 | 
             
                    # Registers interface name in focus list unless already
         | 
| 72 74 | 
             
                    # registered.
         | 
| 73 75 | 
             
                    #
         | 
| 76 | 
            +
                    # @param name [String|Symbol]
         | 
| 74 77 | 
             
                    # @return [void]
         | 
| 75 78 | 
             
                    def add_focusable!(name)
         | 
| 76 79 | 
             
                      Vedeu.focusable.add(name) unless Vedeu.focusable.registered?(name)
         | 
| @@ -86,16 +89,6 @@ module Vedeu | |
| 86 89 |  | 
| 87 90 | 
             
                  end # Eigenclass
         | 
| 88 91 |  | 
| 89 | 
            -
                  # Returns an instance of Vedeu::DSL::Interface.
         | 
| 90 | 
            -
                  #
         | 
| 91 | 
            -
                  # @param model [Vedeu::DSL::Interface]
         | 
| 92 | 
            -
                  # @param client [Object]
         | 
| 93 | 
            -
                  # @return [Vedeu::DSL::Interface]
         | 
| 94 | 
            -
                  def initialize(model, client = nil)
         | 
| 95 | 
            -
                    @model  = model
         | 
| 96 | 
            -
                    @client = client
         | 
| 97 | 
            -
                  end
         | 
| 98 | 
            -
             | 
| 99 92 | 
             
                  # Set the cursor visibility on an interface.
         | 
| 100 93 | 
             
                  #
         | 
| 101 94 | 
             
                  # @param value [Boolean] Any value other than nil or false will
         | 
| @@ -103,7 +96,7 @@ module Vedeu | |
| 103 96 | 
             
                  #   to true.
         | 
| 104 97 | 
             
                  #
         | 
| 105 98 | 
             
                  # @example
         | 
| 106 | 
            -
                  #   Vedeu.interface  | 
| 99 | 
            +
                  #   Vedeu.interface :my_interface do
         | 
| 107 100 | 
             
                  #     cursor  true  # => show the cursor for this interface
         | 
| 108 101 | 
             
                  #     # or...
         | 
| 109 102 | 
             
                  #     cursor  :show # => both of these are equivalent to line
         | 
| @@ -113,14 +106,14 @@ module Vedeu | |
| 113 106 | 
             
                  #     # ...
         | 
| 114 107 | 
             
                  #   end
         | 
| 115 108 | 
             
                  #
         | 
| 116 | 
            -
                  #   Vedeu.interface  | 
| 109 | 
            +
                  #   Vedeu.interface :my_interface do
         | 
| 117 110 | 
             
                  #     cursor false # => hide the cursor for this interface
         | 
| 118 111 | 
             
                  #     # or...
         | 
| 119 112 | 
             
                  #     cursor nil   # => as above
         | 
| 120 113 | 
             
                  #     # ...
         | 
| 121 114 | 
             
                  #   end
         | 
| 122 115 | 
             
                  #
         | 
| 123 | 
            -
                  #   Vedeu.view  | 
| 116 | 
            +
                  #   Vedeu.view :my_interface do
         | 
| 124 117 | 
             
                  #     cursor true # => Specify the visibility of the cursor when
         | 
| 125 118 | 
             
                  #                 #    the view is rendered.
         | 
| 126 119 | 
             
                  #     # ...
         | 
| @@ -147,7 +140,7 @@ module Vedeu | |
| 147 140 | 
             
                  # @param value [Fixnum|Float] Time in seconds. (0.5 = 500ms).
         | 
| 148 141 | 
             
                  #
         | 
| 149 142 | 
             
                  # @example
         | 
| 150 | 
            -
                  #   Vedeu.interface  | 
| 143 | 
            +
                  #   Vedeu.interface :my_interface do
         | 
| 151 144 | 
             
                  #     delay 0.5 # interface will not update more often than
         | 
| 152 145 | 
             
                  #               # every 500ms.
         | 
| 153 146 | 
             
                  #     # ...
         | 
| @@ -166,7 +159,7 @@ module Vedeu | |
| 166 159 | 
             
                  #   focus. However, this behaviour can be overridden:
         | 
| 167 160 | 
             
                  #
         | 
| 168 161 | 
             
                  #   ```ruby
         | 
| 169 | 
            -
                  #   Vedeu.focus_by_name  | 
| 162 | 
            +
                  #   Vedeu.focus_by_name :some_interface
         | 
| 170 163 | 
             
                  #   ```
         | 
| 171 164 | 
             
                  #
         | 
| 172 165 | 
             
                  #   When the above is specified (outside of a `Vedeu.interface`
         | 
| @@ -182,13 +175,13 @@ module Vedeu | |
| 182 175 | 
             
                  # multiple interfaces at once.
         | 
| 183 176 | 
             
                  #
         | 
| 184 177 | 
             
                  # @example
         | 
| 185 | 
            -
                  #   Vedeu.interface  | 
| 186 | 
            -
                  #     group  | 
| 178 | 
            +
                  #   Vedeu.interface :my_interface do
         | 
| 179 | 
            +
                  #     group :main_screen
         | 
| 187 180 | 
             
                  #     # ...
         | 
| 188 181 | 
             
                  #   end
         | 
| 189 182 | 
             
                  #
         | 
| 190 | 
            -
                  # @param name [String] The name of the group to which | 
| 191 | 
            -
                  #   interface should belong.
         | 
| 183 | 
            +
                  # @param name [String|Symbol] The name of the group to which
         | 
| 184 | 
            +
                  #   this interface should belong.
         | 
| 192 185 | 
             
                  # @return [Vedeu::Groups::Group]
         | 
| 193 186 | 
             
                  def group(name)
         | 
| 194 187 | 
             
                    return false unless present?(name)
         | 
| @@ -198,6 +191,8 @@ module Vedeu | |
| 198 191 | 
             
                    Vedeu.groups.by_name(name).add(model.name)
         | 
| 199 192 | 
             
                  end
         | 
| 200 193 |  | 
| 194 | 
            +
                  # @param name [String|Symbol] The name of the interface to which
         | 
| 195 | 
            +
                  #   this keymap should belong.
         | 
| 201 196 | 
             
                  # @see Vedeu::DSL::Keymap.keymap
         | 
| 202 197 | 
             
                  def keymap(name = model.name, &block)
         | 
| 203 198 | 
             
                    Vedeu.keymap(name, &block)
         | 
| @@ -207,15 +202,15 @@ module Vedeu | |
| 207 202 | 
             
                  # The name of the interface. Used to reference the interface
         | 
| 208 203 | 
             
                  # throughout your application's execution lifetime.
         | 
| 209 204 | 
             
                  #
         | 
| 210 | 
            -
                  # @param value [String]
         | 
| 205 | 
            +
                  # @param value [String|Symbol]
         | 
| 211 206 | 
             
                  #
         | 
| 212 207 | 
             
                  # @example
         | 
| 213 208 | 
             
                  #   Vedeu.interface do
         | 
| 214 | 
            -
                  #     name  | 
| 209 | 
            +
                  #     name :my_interface
         | 
| 215 210 | 
             
                  #     # ...
         | 
| 216 211 | 
             
                  #   end
         | 
| 217 212 | 
             
                  #
         | 
| 218 | 
            -
                  # @return [String]
         | 
| 213 | 
            +
                  # @return [String|Symbol]
         | 
| 219 214 | 
             
                  def name(value)
         | 
| 220 215 | 
             
                    model.name = value
         | 
| 221 216 | 
             
                  end
         | 
| @@ -230,7 +225,7 @@ module Vedeu | |
| 230 225 | 
             
                  # Set the interface to visible.
         | 
| 231 226 | 
             
                  #
         | 
| 232 227 | 
             
                  # @example
         | 
| 233 | 
            -
                  #   Vedeu.interface | 
| 228 | 
            +
                  #   Vedeu.interface :my_interface do
         | 
| 234 229 | 
             
                  #     show!
         | 
| 235 230 | 
             
                  #
         | 
| 236 231 | 
             
                  #     # ... some code
         | 
| @@ -244,7 +239,7 @@ module Vedeu | |
| 244 239 | 
             
                  # Set the interface to invisible.
         | 
| 245 240 | 
             
                  #
         | 
| 246 241 | 
             
                  # @example
         | 
| 247 | 
            -
                  #   Vedeu.interface | 
| 242 | 
            +
                  #   Vedeu.interface :my_interface do
         | 
| 248 243 | 
             
                  #     # ... some code
         | 
| 249 244 | 
             
                  #   end
         | 
| 250 245 | 
             
                  #
         | 
| @@ -255,8 +250,8 @@ module Vedeu | |
| 255 250 |  | 
| 256 251 | 
             
                  # Use a value from another model.
         | 
| 257 252 | 
             
                  #
         | 
| 258 | 
            -
                  # @param name [String] The name of the interface model | 
| 259 | 
            -
                  #   to use a value from.
         | 
| 253 | 
            +
                  # @param name [String|Symbol] The name of the interface model
         | 
| 254 | 
            +
                  #   you wish to use a value from.
         | 
| 260 255 | 
             
                  # @return [Vedeu::Models::Interface]
         | 
| 261 256 | 
             
                  def use(name)
         | 
| 262 257 | 
             
                    model.repository.by_name(name)
         | 
| @@ -268,21 +263,21 @@ module Vedeu | |
| 268 263 | 
             
                  #   evaluate to true.
         | 
| 269 264 | 
             
                  #
         | 
| 270 265 | 
             
                  # @example
         | 
| 271 | 
            -
                  #   Vedeu.interface  | 
| 266 | 
            +
                  #   Vedeu.interface :my_interface do
         | 
| 272 267 | 
             
                  #     visible true  # => show the interface
         | 
| 273 268 | 
             
                  #     # or...
         | 
| 274 269 | 
             
                  #     show!         # => as above
         | 
| 275 270 | 
             
                  #     # ... some code
         | 
| 276 271 | 
             
                  #   end
         | 
| 277 272 | 
             
                  #
         | 
| 278 | 
            -
                  #   Vedeu.interface  | 
| 273 | 
            +
                  #   Vedeu.interface :my_interface do
         | 
| 279 274 | 
             
                  #     visible false # => hide the interface
         | 
| 280 275 | 
             
                  #     # or...
         | 
| 281 276 | 
             
                  #     hide!         # => as above
         | 
| 282 277 | 
             
                  #     # ... some code
         | 
| 283 278 | 
             
                  #   end
         | 
| 284 279 | 
             
                  #
         | 
| 285 | 
            -
                  #   Vedeu.view  | 
| 280 | 
            +
                  #   Vedeu.view :my_interface do
         | 
| 286 281 | 
             
                  #     visible false
         | 
| 287 282 | 
             
                  #     # ... some code
         | 
| 288 283 | 
             
                  #   end
         | 
| @@ -304,7 +299,7 @@ module Vedeu | |
| 304 299 | 
             
                  #   --2--
         | 
| 305 300 | 
             
                  #   --1-- # rendered first
         | 
| 306 301 | 
             
                  #
         | 
| 307 | 
            -
                  #   Vedeu.interface  | 
| 302 | 
            +
                  #   Vedeu.interface :my_interface do
         | 
| 308 303 | 
             
                  #     zindex 3
         | 
| 309 304 | 
             
                  #     # ...
         | 
| 310 305 | 
             
                  #   end
         | 
| @@ -321,4 +316,8 @@ module Vedeu | |
| 321 316 |  | 
| 322 317 | 
             
              end # DSL
         | 
| 323 318 |  | 
| 319 | 
            +
              # @!method interface
         | 
| 320 | 
            +
              #   @see Vedeu::DSL::Interface.interface
         | 
| 321 | 
            +
              def_delegators Vedeu::DSL::Interface, :interface
         | 
| 322 | 
            +
             | 
| 324 323 | 
             
            end # Vedeu
         |