<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -31,14 +31,13 @@ class Address # Our custom, embedded-value type
     Address.accessors.values.map { |accessor| accessor.get(address) }
   end
 
-  TYPES = Clipper::Repositories::Abstract::Types
-
-  Clipper::Repositories::Abstract.type_map &lt;&lt; Clipper::TypeMap::Signature.new(
-    [self],
-    [TYPES::String, TYPES::String, TYPES::String, TYPES::String, TYPES::String],
-    method(:__load__),
-    method(:__dump__)
-  )
+  # Adds signature to default repository type map
+  orm.map_type do |signature, types|
+    signature.from [self]
+    signature.typecast_left method(:__load__)
+    signature.to [types.string, types.string, types.string, types.string, types.string]
+    signature.typecast_right method(:__dump__)
+  end
 
 end
 
@@ -67,23 +66,19 @@ class Zoo
     check.size(zoo.address.state, 50)
   end
 
-  # This allows us to simply shortcut to the repository specific types.
-  # We could do this on include Clipper::Model: namely, copy over the types
-  # for any database adapters loaded, which in most cases, would be just one.
-  Postgres = Clipper::Adapters::Postgres::Types
-
-  orm.map(self, &quot;zoos&quot;) do |zoos|
-    zoos.field :id,   Postgres::Serial.new
+  # type object is a shortcut to current repository types
+  orm.map(self, &quot;zoos&quot;) do |zoos, type|
+    zoos.field :id,      type.serial
 
     # The Field will use the bound-method name as the field-name by default.
-    zoos.field :name, Postgres::String.new(200)
+    zoos.field :name,    type.string(200)
 
     # Here we must specify the field names for the embedded-value.
-    zoos.field :city, Postgres::String.new(100, &quot;address_address_1&quot;),
-                      Postgres::String.new(100, &quot;address_address_2&quot;),
-                      Postgres::String.new(100, &quot;address_city&quot;),
-                      Postgres::String.new(50, &quot;address_state&quot;),
-                      Postgres::String.new(50, &quot;address_zip_code&quot;)
+    zoos.field :address, type.string(200, &quot;address_address_1&quot;),
+                         type.string(100, &quot;address_address_2&quot;),
+                         type.string(100, &quot;address_city&quot;),
+                         type.string(50, &quot;address_state&quot;),
+                         type.string(50, &quot;address_zip_code&quot;)
   end
 
 end
\ No newline at end of file</diff>
      <filename>scratch/embedded-value.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>8a2cfc0787aa844f2d23e9e73ca772b61099f7d5</id>
    </parent>
  </parents>
  <author>
    <name>Fabio Rehm</name>
    <email>fgrehm@gmail.com</email>
  </author>
  <url>http://github.com/wiecklabs/clipper/commit/ffb85dd20b4f00eec78024779b44448bb3ed9472</url>
  <id>ffb85dd20b4f00eec78024779b44448bb3ed9472</id>
  <committed-date>2009-09-14T14:41:53-07:00</committed-date>
  <authored-date>2009-09-14T14:41:53-07:00</authored-date>
  <message>Updating examples</message>
  <tree>67bfe6ddf77707d16ac381195839109c4652298c</tree>
  <committer>
    <name>Fabio Rehm</name>
    <email>fgrehm@gmail.com</email>
  </committer>
</commit>
