Skip to content

Instantly share code, notes, and snippets.

@fgrehm
Forked from wiecklabs/gist:186777
Created September 14, 2009 17:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fgrehm/186797 to your computer and use it in GitHub Desktop.
Save fgrehm/186797 to your computer and use it in GitHub Desktop.
class Address # Our custom, embedded-value type
accessor :address => String
accessor :address_2 => String
accessor :city => String
accessor :state => String
accessor :zip_code => String
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
class Zoo
accessor :id => Integer
accessor :name => String
accessor :address => Address
orm.map(self, "zoos") do |zoos, type|
zoos.field :id, type.serial
zoos.field :name, type.string(200)
zoos.field :address, type.string(200, "address_address_1"),
type.string(100, "address_address_2"),
type.string(100, "address_city"),
type.string(50, "address_state"),
type.string(50, "address_zip_code")
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment