<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -34,16 +34,10 @@ end
 desc &quot;Compiles the clr models&quot;
 task :clr_models do
   Dir.chdir(File.dirname(__FILE__))
-  files = Dir.glob(&quot;spec/models/*.cs&quot;).collect { |f| f.gsub(/\//, &quot;\\&quot;)  }.join(&quot; &quot;)
-  system &quot;#{csc} /noconfig /target:library /debug+ /debug:full /out:spec\\bin\\ClrModels.dll #{files}&quot;
+  files = Dir.glob(&quot;spec/models/*.cs&quot;).join(' ') #.collect { |f| f.gsub(/\//, &quot;\\&quot;)  }.join(&quot; &quot;)
+  system &quot;#{csc} /noconfig /target:library /debug+ /debug:full /out:spec/bin/ClrModels.dll #{files}&quot;
 end
 
-desc &quot;Compiles the CLR workarounds&quot;
-task :workarounds do
-  Dir.chdir(File.dirname(__FILE__))
-  files = Dir.glob(&quot;workarounds/*.cs&quot;).collect { |f| f.gsub(/\//, &quot;\\&quot;)  }.join(&quot; &quot;)
-  system &quot;#{csc} /noconfig /target:library /debug+ /debug:full /out:lib\\bin\\Workarounds.dll #{files}&quot;
-end
 
 file_list = Dir.glob(&quot;lib/**/*.rb&quot;)
 </diff>
      <filename>Rakefile</filename>
    </modified>
    <modified>
      <diff>@@ -1,9 +1,12 @@
-require File.dirname(__FILE__) + &quot;/spec/bin/ClrModels.dll&quot;
+#require File.dirname(__FILE__) + &quot;/spec/bin/ClrModels.dll&quot;
 require File.dirname(__FILE__) + &quot;/lib/caricature.rb&quot;
-require File.dirname(__FILE__) + &quot;/lib/caricature/clr.rb&quot;
+#require File.dirname(__FILE__) + &quot;/lib/caricature/clr.rb&quot;
 
-#w = Caricature::Isolation.for(ClrModels::IWeapon)
+class MyClass; def initialize; puts &quot;in initialize&quot;; end; def self.new; puts &quot;in new&quot;; super; end; end
+
+w = Caricature::Isolation.for(MyClass)    
+puts w.class
 #w.when_receiving(:damage).return(5)
-#puts w
+puts w
 #puts w.damage
 </diff>
      <filename>irb_init.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
-load_assembly 'Workarounds, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'
+#IronRuby.load_assembly 'Workarounds, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'
 
 require File.dirname(__FILE__) + &quot;/clr/descriptor&quot;
 require File.dirname(__FILE__) + &quot;/clr/messenger&quot;</diff>
      <filename>lib/caricature/clr.rb</filename>
    </modified>
    <modified>
      <diff>@@ -2,6 +2,14 @@ module Caricature
 
   # Contains the logic to collect members from a CLR type
   module ClrMemberCollector
+    
+    def instance_flags
+      System::Reflection::BindingFlags.public | System::Reflection::BindingFlags.instance
+    end   
+    
+    def static_flags
+      System::Reflection::BindingFlags.public | System::Reflection::BindingFlags.static
+    end
 
     private
       # collects the instance members for a CLR type.
@@ -62,8 +70,8 @@ module Caricature
     def initialize_instance_members_for(klass)
       clr_type = klass.to_clr_type
 
-      methods = Workarounds::ReflectionHelper.get_instance_methods(clr_type)
-      properties = Workarounds::ReflectionHelper.get_instance_properties(clr_type)
+      methods = clr_type.get_methods(instance_flags) #Workarounds::ReflectionHelper.get_instance_methods(clr_type)
+      properties = clr_type.get_properties(instance_flags) #Workarounds::ReflectionHelper.get_instance_properties(clr_type)
 
       @instance_members = collect_members_from methods, properties
     end
@@ -72,8 +80,8 @@ module Caricature
     def initialize_class_members_for(klass)
       clr_type = klass.to_clr_type
 
-      methods = Workarounds::ReflectionHelper.get_class_methods(clr_type)
-      properties = Workarounds::ReflectionHelper.get_class_properties(clr_type)
+      methods = clr_type.get_methods(static_flags) #Workarounds::ReflectionHelper.get_class_methods(clr_type)
+      properties = clr_type.get_properties(static_flags) #Workarounds::ReflectionHelper.get_class_properties(clr_type)
 
       @class_members = collect_members_from methods, properties, false
     end</diff>
      <filename>lib/caricature/clr/descriptor.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,3 +1,5 @@
+require 'rubygems'
+require 'uuidtools'
 require File.dirname(__FILE__) + '/messenger'
 require File.dirname(__FILE__) + '/descriptor'
 
@@ -194,7 +196,8 @@ module Caricature
     # Creates the new class name for the isolation
     def class_name(subj)
       nm = subj.respond_to?(:class_eval) ? subj.demodulize : subj.class.demodulize
-      @class_name = &quot;#{nm}#{System::Guid.new_guid.to_string('n')}&quot;
+#      @class_name = &quot;#{nm}#{System::Guid.new_guid.to_string('n')}&quot;
+      @class_name = &quot;#{nm}#{UUIDTools::UUID.random_create.to_s.gsub /-/, ''}&quot;
       @class_name
     end
 
@@ -232,7 +235,7 @@ module Caricature
     def initialize(context)
       super
       klass = @context.subject.respond_to?(:class_eval) ? @context.subject : @context.subject.class
-      inst = @context.subject.respond_to?(:class_eval) ? @context.subject.new : @context.subject
+      inst = @context.subject.respond_to?(:class_eval) ? @context.subject.new : @context.subject            
       @descriptor = RubyObjectDescriptor.new klass
       build_isolation klass, inst
     end
@@ -261,7 +264,7 @@ module Caricature
           mn = mn.name.to_s.to_sym
           define_method mn do |*args|
             b = nil
-            b = Proc.new { yield } if block_given?
+            b = Proc.new { yield } if block_given?    
             isolation_context.send_message(mn, nil, *args, &amp;b)
           end
         end
@@ -270,7 +273,7 @@ module Caricature
           mn = mn.name.to_s.to_sym
           define_cmethod mn do |*args|
             b = nil
-            b = Proc.new { yield } if block_given?
+            b = Proc.new { yield } if block_given?  
             isolation_context.send_class_message(mn, nil, *args, &amp;b)
           end
         end</diff>
      <filename>lib/caricature/isolator.rb</filename>
    </modified>
    <modified>
      <diff>@@ -9,6 +9,7 @@ $: &lt;&lt; File.dirname(__FILE__) + &quot;/../lib&quot;
 require &quot;caricature&quot;
 require 'caricature/clr'
 
+require 'rubygems'
 # load the bacon library
 require 'bacon'
 
@@ -16,7 +17,7 @@ require 'bacon'
 require 'mscorlib'
 
 # load the assembly with the C# code
-load_assembly 'ClrModels'
+require 'ClrModels.dll'
 
 class Soldier
 </diff>
      <filename>spec/bacon_helper.rb</filename>
    </modified>
    <modified>
      <diff>@@ -86,16 +86,16 @@ namespace ClrModels{
 
     }
 
-public class Sword : IWeapon{
+	public class Sword : IWeapon {
 
-    public int Attack(IWarrior warrior){
-        return warrior.SurviveAttackWith(this);
-    }
+	    public int Attack(IWarrior warrior){
+	        return warrior.SurviveAttackWith(this);
+	    }
 
-    public int Damage(){
-        return 4;
-    }
-}
+	    public int Damage(){
+	        return 4;
+	    }
+	}
 
     public class SwordWithStatics : Sword{
 </diff>
      <filename>spec/models/ClrModels.cs</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>lib/bin/Workarounds.dll</filename>
    </removed>
    <removed>
      <filename>lib/bin/Workarounds.pdb</filename>
    </removed>
    <removed>
      <filename>workarounds/ReflectionHelper.cs</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>82882800b11c09f1c672c221eb3bc1f4eee7dc91</id>
    </parent>
  </parents>
  <author>
    <name>Ivan Porto Carrero</name>
    <email>ivan@flanders.co.nz</email>
  </author>
  <url>http://github.com/casualjim/caricature/commit/dca813bc1a5dc5628a62538b4dbfd299ad7b55a3</url>
  <id>dca813bc1a5dc5628a62538b4dbfd299ad7b55a3</id>
  <committed-date>2009-09-01T01:02:34-07:00</committed-date>
  <authored-date>2009-09-01T01:02:34-07:00</authored-date>
  <message>Removes workarounds, ensures compatibility with MRI</message>
  <tree>0a9882b700e38bc21af706a94eb121a077ffa408</tree>
  <committer>
    <name>Ivan Porto Carrero</name>
    <email>ivan@flanders.co.nz</email>
  </committer>
</commit>
