Sha256: 75e7750c0252370b750531f08c34e4e9d007e0554586e7f074e751b9dabad52c

Contents?: true

Size: 1.62 KB

Versions: 9

Compression:

Stored size: 1.62 KB

Contents

module Vedeu

  module Output

    # Refresh an interface, or collection of interfaces belonging to a
    # group.
    #
    # The interfaces will be refreshed in z-index order, meaning that
    # interfaces with a lower z-index will be drawn first. This means
    # overlapping interfaces will be drawn as specified.
    #
    # @example
    #   Vedeu.trigger(:_refresh_group_, group_name)
    #
    class RefreshGroup

      include Vedeu::Common

      # @param name [String] The name of the group to be refreshed.
      # @return [Array|Vedeu::Error::ModelNotFound] A collection of
      #   the names of interfaces refreshed, or an exception when the
      #   group was not found.
      def self.by_name(name)
        new(name).by_name
      end

      # Return a new instance of Vedeu::Output::RefreshGroup.
      #
      # @param name [String]
      # @return [Vedeu::Output::RefreshGroup]
      def initialize(name)
        @name = name
      end

      # @return [void]
      def by_name
        Vedeu.timer("Refresh Group: '#{group_name}'") do
          Vedeu.groups.by_name(group_name).by_zindex.each do |name|
            Vedeu::Buffers::Refresh.by_name(name)
          end
        end
      end

      protected

      # @!attribute [r] name
      # @return [String]
      attr_reader :name

      private

      # @raise [Vedeu::Error::MissingRequired] When the name is empty
      #   or nil.
      # @return [String]
      def group_name
        return name if present?(name)

        fail Vedeu::Error::MissingRequired,
             'Cannot refresh group with an empty group name.'
      end

    end # RefreshGroup

  end # Output

end # Vedeu

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
vedeu-0.6.19 lib/vedeu/output/refresh/refresh_group.rb
vedeu-0.6.18 lib/vedeu/output/refresh/refresh_group.rb
vedeu-0.6.17 lib/vedeu/output/refresh/refresh_group.rb
vedeu-0.6.16 lib/vedeu/output/refresh/refresh_group.rb
vedeu-0.6.15 lib/vedeu/output/refresh/refresh_group.rb
vedeu-0.6.14 lib/vedeu/output/refresh/refresh_group.rb
vedeu-0.6.13 lib/vedeu/output/refresh/refresh_group.rb
vedeu-0.6.12 lib/vedeu/output/refresh/refresh_group.rb
vedeu-0.6.11 lib/vedeu/output/refresh/refresh_group.rb