Sha256: c7da10d2a6d90ac50211c5ce316d9d9cc4f2aa63aa80935c9b77cfeb82af5ce6

Contents?: true

Size: 1.14 KB

Versions: 7

Compression:

Stored size: 1.14 KB

Contents

module Expressir
  module Model
    class Entity < ModelElement
      include Identifier

      model_attr_accessor :abstract
      model_attr_accessor :supertype_expression
      model_attr_accessor :subtype_of
      model_attr_accessor :attributes
      model_attr_accessor :unique_rules
      model_attr_accessor :where_rules
      model_attr_accessor :informal_propositions

      def initialize(options = {})
        @id = options[:id]
        @remarks = options[:remarks] || []
        @remark_items = options[:remark_items] || []
        @source = options[:source]

        @abstract = options[:abstract]
        @supertype_expression = options[:supertype_expression]
        @subtype_of = options[:subtype_of] || []
        @attributes = options[:attributes] || []
        @unique_rules = options[:unique_rules] || []
        @where_rules = options[:where_rules] || []
        @informal_propositions = options[:informal_propositions] || []

        super
      end

      def children
        [
          *attributes,
          *unique_rules,
          *where_rules,
          *informal_propositions,
          *remark_items
        ]
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
expressir-1.0.0 lib/expressir/model/entity.rb
expressir-1.0.0-x86_64-linux lib/expressir/model/entity.rb
expressir-1.0.0-x86_64-darwin lib/expressir/model/entity.rb
expressir-1.0.0-x86-mingw32 lib/expressir/model/entity.rb
expressir-1.0.0-x86-linux lib/expressir/model/entity.rb
expressir-1.0.0-x64-mingw32 lib/expressir/model/entity.rb
expressir-1.0.0-arm64-darwin lib/expressir/model/entity.rb