Sha256: 550739bf6240c3d17ba91ebb6d293ead6bfe578aa860ff853f1b0f261162c51d

Contents?: true

Size: 757 Bytes

Versions: 2

Compression:

Stored size: 757 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)
        query(klass, :name, value).tap do |interface|
          fail UndefinedInterface unless interface
        end
      end

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

      def klass
        Interface
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
vedeu-0.0.20 lib/vedeu/repository/interface_repository.rb
vedeu-0.0.19 lib/vedeu/repository/interface_repository.rb