Sha256: 87a2517efd7ca61b230557a10d8959b1d50fcb519ee93c023c466fbf2bfc97f0

Contents?: true

Size: 1.54 KB

Versions: 14

Compression:

Stored size: 1.54 KB

Contents

module Expressir
  module Model
    class Schema < ModelElement
      include Scope
      include Identifier

      attr_accessor :head_source

      attr_accessor :version
      attr_accessor :interfaces
      attr_accessor :constants
      attr_accessor :types
      attr_accessor :entities
      attr_accessor :subtype_constraints
      attr_accessor :functions
      attr_accessor :procedures
      attr_accessor :rules

      def initialize(options = {})
        @id = options[:id]
        @remarks = options.fetch(:remarks, [])
        @source = options[:source]
        @head_source = options[:head_source]

        @version = options[:version]
        @interfaces = options.fetch(:interfaces, [])
        @constants = options.fetch(:constants, [])
        @types = options.fetch(:types, [])
        @entities = options.fetch(:entities, [])
        @subtype_constraints = options.fetch(:subtype_constraints, [])
        @functions = options.fetch(:functions, [])
        @procedures = options.fetch(:procedures, [])
        @rules = options.fetch(:rules, [])
      end

      def children
        items = []
        items.push(*@constants)
        items.push(*@types)
        items.push(*@types.flat_map do |x|
          if x.type.instance_of? Expressir::Model::Types::Enumeration
            x.type.items
          else
            []
          end
        end)
        items.push(*@entities)
        items.push(*@subtype_constraints)
        items.push(*@functions)
        items.push(*@procedures)
        items.push(*@rules)
        items
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
expressir-0.2.11 lib/expressir/model/schema.rb
expressir-0.2.11-x86_64-linux lib/expressir/model/schema.rb
expressir-0.2.11-x86_64-darwin lib/expressir/model/schema.rb
expressir-0.2.11-x86-mingw32 lib/expressir/model/schema.rb
expressir-0.2.11-x86-linux lib/expressir/model/schema.rb
expressir-0.2.11-x64-mingw32 lib/expressir/model/schema.rb
expressir-0.2.11-arm64-darwin lib/expressir/model/schema.rb
expressir-0.2.10 lib/expressir/model/schema.rb
expressir-0.2.10-x86_64-linux lib/expressir/model/schema.rb
expressir-0.2.10-x86_64-darwin lib/expressir/model/schema.rb
expressir-0.2.10-x86-mingw32 lib/expressir/model/schema.rb
expressir-0.2.10-x86-linux lib/expressir/model/schema.rb
expressir-0.2.10-x64-mingw32 lib/expressir/model/schema.rb
expressir-0.2.10-arm64-darwin lib/expressir/model/schema.rb