examples/objattr.rb

#!/usr/bin/env ruby

require 'cgen/cshadow'

SAME_LIBRARY = true

class A
  include CShadow
  shadow_attr_accessor :obj => Object, :sym => Symbol
end

class B
  include CShadow
  
  if SAME_LIBRARY
    shadow_library A                # in the same lib as A
    shadow_library_file 'B'         # but in a different file
  else  
    # different lib, but connected with a '#include'
    shadow_library_include_file.include '../A/A.h'
  end
  
  shadow_attr_accessor :a => [A]

  def initialize
    self.a = A.new
    self.a.sym = :something
  end
end

require 'ftools'
dir = File.join("tmp", RUBY_VERSION)
File.mkpath dir
Dir.chdir dir

A.commit
unless SAME_LIBRARY
  B.commit
end

p B.new.a.sym

A.shadow_library.make 'distclean'
unless SAME_LIBRARY
  B.shadow_library.make 'distclean'
end

Generated by GNU enscript 1.6.4.