HEX
Server: Apache
System: Linux sg241.singhost.net 2.6.32-896.16.1.lve1.4.51.el6.x86_64 #1 SMP Wed Jan 17 13:19:23 EST 2018 x86_64
User: honghock (909)
PHP: 8.0.30
Disabled: passthru,system,shell_exec,show_source,exec,popen,proc_open
Upload Files
File: //proc/self/root/usr/lib/ruby/site_ruby/1.8/puppet/vendor/rgen/lib/rgen/ecore/ecore_interface.rb
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