Sha256: cd19ca641632c0f4124ecc7c32593f12e53cb370dc25728c089493b4898d190e

Contents?: true

Size: 1.25 KB

Versions: 229

Compression:

Stored size: 1.25 KB

Contents

module RGen

module ECore

# Mixin to provide access to the ECore model describing a Ruby class or module
# built using MetamodelBuilder.
# The module should be used to +extend+ a class or module, i.e. to make its
# methods class methods.
# 
module ECoreInterface
  
  # This method will lazily build to ECore model element belonging to the calling
  # class or module using RubyToECore.
  # Alternatively, the ECore model element can be provided up front. This is used
  # when the Ruby metamodel classes and modules are created from ECore.
  # 
  def ecore
    if defined?(@ecore)
      @ecore
    else
      unless defined?(@@transformer)
        require 'rgen/ecore/ruby_to_ecore'
        @@transformer = RubyToECore.new
      end
      @@transformer.trans(self)
    end
  end  

  # This method can be used to clear the ecore cache after the metamodel classes
  # or modules have been changed; the ecore model will be recreated on next access
  # to the +ecore+ method
  # Beware, the ecore cache is global, i.e. for all metamodels.
  #
  def self.clear_ecore_cache
    require 'rgen/ecore/ruby_to_ecore'
    @@transformer = RubyToECore.new
  end

  def _set_ecore_internal(ecore) # :nodoc:
    @ecore = ecore
  end

end

end

end

Version data entries

229 entries across 229 versions & 3 rubygems

Version Path
rgen-0.10.2 lib/rgen/ecore/ecore_interface.rb
rgen-0.10.0 lib/rgen/ecore/ecore_interface.rb
rgen-0.9.1 ./lib/rgen/ecore/ecore_interface.rb
rgen-0.8.3 lib/rgen/ecore/ecore_interface.rb
rgen-0.8.4 lib/rgen/ecore/ecore_interface.rb
rgen-0.9.0 lib/rgen/ecore/ecore_interface.rb
puppet-retrospec-1.8.0 vendor/pup410/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_interface.rb
puppet-retrospec-1.7.0 vendor/pup410/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_interface.rb
puppet-4.10.12 lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_interface.rb
puppet-4.10.12-x86-mingw32 lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_interface.rb
puppet-4.10.12-x64-mingw32 lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_interface.rb
puppet-4.10.12-universal-darwin lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_interface.rb
puppet-4.10.11 lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_interface.rb
puppet-4.10.11-x86-mingw32 lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_interface.rb
puppet-4.10.11-x64-mingw32 lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_interface.rb
puppet-4.10.11-universal-darwin lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_interface.rb
puppet-4.10.10 lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_interface.rb
puppet-4.10.10-x86-mingw32 lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_interface.rb
puppet-4.10.10-x64-mingw32 lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_interface.rb
puppet-4.10.10-universal-darwin lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_interface.rb