<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -66,6 +66,7 @@ module EC2
     end
 
     def initialize(fields = nil)
+      @attrs = Hash.new
       update(fields) if fields
       yield self if block_given?
     end
@@ -96,13 +97,19 @@ module EC2
     end
 
     def [](f)
-      fail &quot;Invalid field #{f}&quot; unless fields.include?(f.to_s)
-      send(f)
+      if fields.include?(f.to_s)
+        send(f)
+      else
+        @attrs[f.to_s]
+      end
     end
 
     def []=(f, v)
-      fail &quot;Invalid field #{f}&quot; unless fields.include?(f.to_s)
-      send(f.to_s + &quot;=&quot;, v)
+      if fields.include?(f.to_s)
+        send(f.to_s + &quot;=&quot;, v)
+      else
+        @attrs[f.to_s] = v
+      end
     end
 
     def c(*args)
@@ -110,7 +117,8 @@ module EC2
     end
 
     def to_hash
-      fields.inject({}) {|m,f| m[f] = self[f]; m}
+      field_hash = fields.inject({}) {|m,f| m[f] = self[f]; m}
+      @attrs.merge(field_hash)
     end
 
     def to_a</diff>
      <filename>lib/ec2/common.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>1743710f04b5ab4c67261e347c10c6e8977f3b0f</id>
    </parent>
  </parents>
  <author>
    <name>Blake Mizerany</name>
    <email>blake.mizerany@gmail.com</email>
  </author>
  <url>http://github.com/bmizerany/beldam/commit/b0e541683fbff0b583d1250c8f3ba9d6127f7c69</url>
  <id>b0e541683fbff0b583d1250c8f3ba9d6127f7c69</id>
  <committed-date>2009-05-26T15:27:53-07:00</committed-date>
  <authored-date>2009-05-26T15:27:53-07:00</authored-date>
  <message>custom attrs</message>
  <tree>45d533fd5b963372829b4163da14db636cbaf8b1</tree>
  <committer>
    <name>Blake Mizerany</name>
    <email>blake.mizerany@gmail.com</email>
  </committer>
</commit>
