Sha256: 9344cb43adbfbc670cda7313155a3071cd1f883c2297ce4d7b88c5a86f238712

Contents?: true

Size: 672 Bytes

Versions: 10

Compression:

Stored size: 672 Bytes

Contents

require 'rgen/ecore/ecore_instantiator'
require 'rgen/metamodel_builder/intermediate/annotation'

module RGen

module MetamodelBuilder

# This module is used to extend modules which should be
# part of RGen metamodels
module ModuleExtension
  include RGen::ECore::ECoreInstantiator
  
  def annotation(hash)
    _annotations << Intermediate::Annotation.new(hash)
  end
  
  def _annotations
    @_annotations ||= []
  end
  
  def final_method(m)
    @final_methods ||= []
    @final_methods << m
  end
  
  def method_added(m)
    raise "Method #{m} can not be redefined" if @final_methods && @final_methods.include?(m)
  end
end

end

end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
rgen-0.5.1 lib/rgen/metamodel_builder/module_extension.rb
rgen-0.5.2 lib/rgen/metamodel_builder/module_extension.rb
rgen-0.4.1 lib/rgen/metamodel_builder/module_extension.rb
rgen-0.4.2 lib/rgen/metamodel_builder/module_extension.rb
rgen-0.4.0 lib/rgen/metamodel_builder/module_extension.rb
rgen-0.4.4 lib/rgen/metamodel_builder/module_extension.rb
rgen-0.5.0 lib/rgen/metamodel_builder/module_extension.rb
rgen-0.4.5 lib/rgen/metamodel_builder/module_extension.rb
rgen-0.4.6 lib/rgen/metamodel_builder/module_extension.rb
rgen-0.4.3 lib/rgen/metamodel_builder/module_extension.rb