Sha256: e6140630e9df7596474991b88ae5ac403ec99a5ce677d326a5440415edfffafe

Contents?: true

Size: 611 Bytes

Versions: 1

Compression:

Stored size: 611 Bytes

Contents

require 'json'
require 'virtus'

require_relative 'interface_collection'

module Vedeu
  class Composition
    include Virtus.model

    attribute :interfaces, InterfaceCollection

    def self.enqueue(composition)
      new(composition).enqueue
    end

    def enqueue
      interfaces.map do |interface|
        interface.enqueue(interface.to_s)
        interface
      end

      self
    end

    def to_json
      json_attributes.to_json
    end

    def to_s
      interfaces.map(&:to_s).join
    end

    private

    def json_attributes
      {
        interfaces: interfaces
      }
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
vedeu-0.0.33 lib/vedeu/models/composition.rb