Sha256: 800940990b0184de62fc108d9776bba4b33660a9332270a412bc0c4db35610cc
Contents?: true
Size: 1.44 KB
Versions: 2
Compression:
Stored size: 1.44 KB
Contents
module RbPlusPlus module Builders # Handles code generation dealing with user-defined modules. class ModuleNode < Base include ModuleHelpers include EnumerationHelpers include ClassHelpers # Has a name attr_accessor :name # And needs to specially handle any other nexted modules attr_accessor :modules # Node is the RbModule object, it proxies any unknown calls # off to it's internal Node object def initialize(code, parent = nil) super @name ||= code.name @modules ||= code.modules end def qualified_name self.code.qualified_name end def build with_modules add_child IncludeNode.new(self, "rice/Module.hpp", :system) # Make sure we ignore anything from the :: namespace if self.code && self.code.name != "::" with_module_functions with_enumerations with_classes end nodes.flatten! self.rice_variable_type = "Rice::Module" self.rice_variable = "rb_m#{self.qualified_name.as_variable}" end def write prefix = "#{rice_variable_type} #{rice_variable} = " if parent.rice_variable registrations << "#{prefix} Rice::define_module_under(#{parent.rice_variable}, \"#{@name}\");" else registrations << "#{prefix} Rice::define_module(\"#{@name}\");" end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rbplusplus-0.9.1 | lib/rbplusplus/builders/module.rb |
rbplusplus-0.9 | lib/rbplusplus/builders/module.rb |