Skip to content

Instantly share code, notes, and snippets.

@tothda
Created October 3, 2008 09:20
Show Gist options
  • Save tothda/14532 to your computer and use it in GitHub Desktop.
Save tothda/14532 to your computer and use it in GitHub Desktop.
require 'rubygems'
require 'sequel'
DB = Sequel.connect('jdbc:mysql://localhost/sequel_test?user=root&password=')
DB.create_table! :policies do # Create a new table
primary_key :id, :serial
date :term_start_date
varchar :policy_ref, :size => 30
end
DB.create_table! :covers do
primary_key :id, :serial
foreign_key :policy_id, :policies
varchar :cover_code, :size => 30
boolean :is_primary
end
DB.create_table! :mod_factors do
integer :policy_id
varchar :cover_code, :size => 30
varchar :prem_mod_type
float :prem_mod_value
# foreign_key [:policy_id, :cover_code], :covers
end
class Policy < Sequel::Model
set_primary_key :id
has_many :covers
set_allowed_columns :term_start_date, :policy_ref, :cover_attributes
def after_initialize
puts self.id
1.upto(3) do |i|
add_cover(Cover.new({:cover_code => i}))
end
end
def cover_attributes=(attribs)
puts "cover_attributes="
end
end
class Cover < Sequel::Model
has_many :mod_factors
belongs_to :policy
end
class ModFactor < Sequel::Model
belongs_to :cover
end
p = Policy.new.set({
:term_start_date => Date.today,
:cover_attributes => [{:cover_code => "1020"}]})
p.save
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment