Sha256: 549f6a33f6a47e9a76bf518882dc7daa289e99de1480272689b8eb878414f5b7

Contents?: true

Size: 758 Bytes

Versions: 1

Compression:

Stored size: 758 Bytes

Contents

module Vedeu
  class InterfaceRepository
    extend Repository

    class << self
      def create(*args)
        activate(super)
      end

      def activate(interface)
        deactivate

        all.map do |stored|
          stored.active = true if stored == interface
        end
      end

      def deactivate
        all.map { |interface| interface.active = false }
      end

      def activated
        query(klass, :active, true)
      end

      def find_by_name(value)
        interface = query(klass, :name, value)

        raise UndefinedInterface if interface.nil?

        interface
      end

      def update
        all.map { |interface| interface.update }.compact
      end

      def klass
        Interface
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
vedeu-0.0.18 lib/vedeu/repository/interface_repository.rb