Sha256: f4e7560729f100c2b19a457be6bfba354f85ee7780ef5273e362512528a7c220

Contents?: true

Size: 1.24 KB

Versions: 5

Compression:

Stored size: 1.24 KB

Contents

module Vedeu

  module Buffers

    # Refreshes the given named interface.
    #
    # @example
    #   Vedeu.trigger(:_refresh_view_, name)
    #
    class Refresh

      include Vedeu::Common

      # @param name [String] The name of the interface to be refreshed
      #   using the named buffer.
      # @return [Array|Vedeu::Error::ModelNotFound]
      def self.by_name(name)
        new(name).by_name
      end

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

      # @return [void]
      def by_name
        Vedeu.timer("Refresh Buffer: '#{buffer_name}'") do
          Vedeu.buffers.by_name(buffer_name).render
        end if Vedeu.ready?
      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 buffer_name
        return name if present?(name)

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

    end # Refresh

  end # Buffers

end # Vedeu

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
vedeu-0.6.20 lib/vedeu/buffers/refresh.rb
vedeu-0.6.19 lib/vedeu/buffers/refresh.rb
vedeu-0.6.18 lib/vedeu/buffers/refresh.rb
vedeu-0.6.17 lib/vedeu/buffers/refresh.rb
vedeu-0.6.16 lib/vedeu/buffers/refresh.rb