Sha256: 6ea0d9a269312f37344840fa5379c89f5dc00cbabd37e3683a227dae349c387e
Contents?: true
Size: 1.1 KB
Versions: 1
Compression:
Stored size: 1.1 KB
Contents
module RbPlusPlus module Builders # Wrap up a class instance variable class InstanceVariableNode < Base def build end def write ruby_name = Inflector.underscore(code.name) parent_name = parent.code.qualified_name.as_variable # Setter, only if it isn't const if !code.cpp_type.const? method_name = "wrap_#{parent_name}_#{code.name}_set" declarations << "void #{method_name}(#{parent.code.qualified_name}* self, #{code.cpp_type.to_cpp} val) {" declarations << "self->#{code.name} = val;" declarations << "}" registrations << "#{parent.rice_variable}.define_method(\"#{ruby_name}=\", &#{method_name});" end # Getter method_name = "wrap_#{parent_name}_#{code.name}_get" declarations << "#{code.cpp_type.to_cpp} #{method_name}(#{parent.code.qualified_name}* self) {" declarations << "return self->#{code.name};" declarations << "}" registrations << "#{parent.rice_variable}.define_method(\"#{ruby_name}\", &#{method_name});" end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rbplusplus-0.9.1 | lib/rbplusplus/builders/instance_variable.rb |