The following code will dynamically create a class, C, inside of module
A. Class C would like to include module B which is also defined in
module A but the 'include B' line for C fails with `module_eval':
uninitialized constant Class::B (NameError).

I've included a class D definition as well which obviously works.

    module A
    end

    def create_class(c, &b)
        klass = A.const_set(c.capitalize, Class.new)
        klass.instance_exec(&b)
    end
    A.module_eval <<-EOF
        module B
            def self.append_features(m)
                puts "B"
            end
        end
        class D
            include B
        end
        create_class :c do
            include B
        end
    EOF

Any insight would be greatly appreciated.

Thanks,
Charlton
-- 
Posted via http://www.ruby-forum.com/.