Sha256: 1d6935d166da79a679576128c9af0c7925cbca073d8cb7c799c244b7ea28f5e2

Contents?: true

Size: 1.45 KB

Versions: 14

Compression:

Stored size: 1.45 KB

Contents

module Expressir
  module Model
    class Procedure < ModelElement
      include Identifier

      model_attr_accessor :parameters
      model_attr_accessor :types
      model_attr_accessor :entities
      model_attr_accessor :subtype_constraints
      model_attr_accessor :functions
      model_attr_accessor :procedures
      model_attr_accessor :constants
      model_attr_accessor :variables
      model_attr_accessor :statements

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

        @parameters = options[:parameters] || []
        @types = options[:types] || []
        @entities = options[:entities] || []
        @subtype_constraints = options[:subtype_constraints] || []
        @functions = options[:functions] || []
        @procedures = options[:procedures] || []
        @constants = options[:constants] || []
        @variables = options[:variables] || []
        @statements = options[:statements] || []

        super
      end

      def enumeration_items
        types.flat_map{|x| x.enumeration_items}
      end

      def children
        [
          *parameters,
          *types,
          *enumeration_items,
          *entities,
          *subtype_constraints,
          *functions,
          *procedures,
          *constants,
          *variables,
          *remark_items
        ]
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

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