Sha256: fcb025e94e932ac33d3b06766a74ce21cf7f259136eef68ccce3ab690ee97dd2
Contents?: true
Size: 1.61 KB
Versions: 3
Compression:
Stored size: 1.61 KB
Contents
module Expressir module Model class Procedure include Scope include Identifier attr_accessor :parameters attr_accessor :declarations attr_accessor :constants attr_accessor :variables attr_accessor :statements def initialize(options = {}) @id = options[:id] @parameters = options[:parameters] @declarations = options[:declarations] @constants = options[:constants] @variables = options[:variables] @statements = options[:statements] end def types @declarations.select{|x| x.instance_of? Expressir::Model::Type} end def entities @declarations.select{|x| x.instance_of? Expressir::Model::Entity} end def subtype_constraints @declarations.select{|x| x.instance_of? Expressir::Model::SubtypeConstraint} end def functions @declarations.select{|x| x.instance_of? Expressir::Model::Function} end def procedures @declarations.select{|x| x.instance_of? Expressir::Model::Procedure} end def children items = [] items.push(*@parameters) if @parameters items.push(*@declarations.flat_map do |x| [ x, *if x.instance_of? Expressir::Model::Type and x.type.instance_of? Expressir::Model::Types::Enumeration x.type.items end ] end) if @declarations items.push(*@constants) if @constants items.push(*@variables) if @variables items end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
expressir-0.2.6 | lib/expressir/model/procedure.rb |
expressir-0.2.5-x64-mingw32 | lib/expressir/model/procedure.rb |
expressir-0.2.4-x64-mingw32 | lib/expressir/model/procedure.rb |