Sha256: 731117ac8fb513f0788596d55e9bb7d0af39adc006404f1318212d29020dbc56

Contents?: true

Size: 1.03 KB

Versions: 14

Compression:

Stored size: 1.03 KB

Contents

module Vedeu

  # Refreshes the given named group of interfaces.
  #
  class RefreshGroup

    include Vedeu::Common

    # @param name [String]
    # @return [void]
    def self.by_name(name)
      new(name).by_name
    end

    # @param name [String]
    # @return [Vedeu::RefreshGroup]
    def initialize(name)
      @name = name
    end

    # @return [void]
    def by_name
      zindexed.each { |name| Vedeu::Refresh.by_name(name) }
    end

    protected

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

    private

    # @return [Array<String>]
    def zindexed
      interfaces.sort { |a, b| a.zindex <=> b.zindex }.map(&:name)
    end

    # @return [Array<Vedeu::Interface>]
    def interfaces
      members.map { |name| Vedeu.interfaces.by_name(name) }
    end

    # @return [Set]
    def members
      unless present?(name)
        fail Vedeu::MissingRequired,
             'Cannot refresh group with an empty group name.'
      end

      Vedeu.groups.by_name(name).members
    end

  end # RefreshGroup

end # Vedeu

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
vedeu-0.5.6 lib/vedeu/output/refresh_group.rb
vedeu-0.5.5 lib/vedeu/output/refresh_group.rb
vedeu-0.5.4 lib/vedeu/output/refresh_group.rb
vedeu-0.5.3 lib/vedeu/output/refresh_group.rb
vedeu-0.5.2 lib/vedeu/output/refresh_group.rb
vedeu-0.5.1 lib/vedeu/output/refresh_group.rb
vedeu-0.5.0 lib/vedeu/output/refresh_group.rb
vedeu-0.4.65 lib/vedeu/output/refresh_group.rb
vedeu-0.4.64 lib/vedeu/output/refresh_group.rb
vedeu-0.4.63 lib/vedeu/output/refresh_group.rb
vedeu-0.4.62 lib/vedeu/output/refresh_group.rb
vedeu-0.4.61 lib/vedeu/output/refresh_group.rb
vedeu-0.4.60 lib/vedeu/output/refresh_group.rb
vedeu-0.4.59 lib/vedeu/output/refresh_group.rb