Sha256: f2f8cc2455cd135fe5265f15d8c6cc4bd97d5c8ed2fd5537cc16f2ca62082f66

Contents?: true

Size: 1.17 KB

Versions: 1

Compression:

Stored size: 1.17 KB

Contents

# frozen_string_literal: true

module Lutaml
  module Uml
    class Package < TopElement
      include HasAttributes

      attr_accessor :imports, :contents
      attr_reader :classes, :enums, :data_types, :children_packages

      def initialize(attributes)
        update_attributes(attributes)
        @children_packages ||= packages.map { |pkg| [pkg, pkg.packages.map(&:children_packages)] }.flatten
      end

      def classes=(value)
        @classes = value.to_a.map { |attributes| Class.new(attributes) }
      end

      def enums=(value)
        @enums = value.to_a.map { |attributes| Enum.new(attributes) }
      end

      def data_types=(value)
        @data_types = value.to_a.map { |attributes| DataType.new(attributes) }
      end

      def packages=(value)
        @packages = value.to_a.map { |attributes| Package.new(attributes) }
      end

      def diagrams=(value)
        @diagrams = value.to_a.map { |attributes| Diagram.new(attributes) }
      end

      def classes
        @classes || []
      end

      def enums
        @enums || []
      end

      def packages
        @packages || []
      end

      def diagrams
        @diagrams || []
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
lutaml-uml-0.4.0 lib/lutaml/uml/package.rb