Sha256: 37ba840a67a76f9b716761bfcfa026f5a309c4278beb53634d145434633bd675

Contents?: true

Size: 1.19 KB

Versions: 32

Compression:

Stored size: 1.19 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, pkg.packages.map(&:children_packages)] }.flatten.uniq
      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

32 entries across 32 versions & 2 rubygems

Version Path
lutaml-0.9.27 lib/lutaml/uml/package.rb
lutaml-0.9.26 lib/lutaml/uml/package.rb
lutaml-0.9.25 lib/lutaml/uml/package.rb
lutaml-0.9.24 lib/lutaml/uml/package.rb
lutaml-0.9.23 lib/lutaml/uml/package.rb
lutaml-0.9.22 lib/lutaml/uml/package.rb
lutaml-0.9.21 lib/lutaml/uml/package.rb
lutaml-0.9.20 lib/lutaml/uml/package.rb
lutaml-0.9.19 lib/lutaml/uml/package.rb
lutaml-0.9.18 lib/lutaml/uml/package.rb
lutaml-0.9.17 lib/lutaml/uml/package.rb
lutaml-0.9.16 lib/lutaml/uml/package.rb
lutaml-0.9.15 lib/lutaml/uml/package.rb
lutaml-0.9.14 lib/lutaml/uml/package.rb
lutaml-0.9.13 lib/lutaml/uml/package.rb
lutaml-0.9.12 lib/lutaml/uml/package.rb
lutaml-0.9.11 lib/lutaml/uml/package.rb
lutaml-0.9.10 lib/lutaml/uml/package.rb
lutaml-0.9.9 lib/lutaml/uml/package.rb
lutaml-0.9.8 lib/lutaml/uml/package.rb