Sha256: 5f4b814e17cff62ed54e7cfb955c9e9139adb7a709f06bebd4f97b94d47e7eb4

Contents?: true

Size: 1.83 KB

Versions: 2

Compression:

Stored size: 1.83 KB

Contents

class <%= class_name -%> < ActiveRecord::Base
  set_table_name <%= table_name.to_sym.inspect %>
  <%= "set_primary_key #{primary_key.to_sym.inspect}" if primary_key %>
  
  # Relationships
  <%- relations[:has_some               ].each do |table_name, options| 
  -%>  has_many                <%= LegacyData::TableClassNameMapper.class_name_for(table_name).underscore.pluralize.to_sym.inspect %><% options.each {|key, value| %>, <%="#{key.inspect} => #{value.inspect} "%> <%} %>
  <%- end -%>
  <%- relations[:belongs_to             ].each do |table_name, foreign_key| 
  -%>  belongs_to              <%= LegacyData::TableClassNameMapper.class_name_for(table_name).underscore.to_sym.inspect           %>, :foreign_key => <%= foreign_key.inspect %>
  <%- end -%>
  <%- relations[:has_and_belongs_to_many].each do |table_name, opts|  
  -%>  has_and_belongs_to_many <%= LegacyData::TableClassNameMapper.class_name_for(table_name).underscore.pluralize.to_sym.inspect %>, :foreign_key => <%= options[:foreign_key].inspect%>, :association_foreign_key => <%= options[:association_foreign_key].inspect%>, :join_table => <%= options[:join_table].inspect %>
  <%- end -%>

  # Constraints
  <%= "validates_uniqueness_of #{constraints[:unique    ].map {|cols| cols.first.downcase.to_sym.inspect}.join(', ')}" unless constraints[:unique].blank? %>
  <%- constraints[:multi_column_unique].each do |cols| 
  -%>  #validates_uniqueness_of_multiple_column_constraint :<%= cols.inspect %>
  <%- end -%>
  <%= "validates_presence_of #{constraints[:non_nullable].map {|cols| cols.downcase.to_sym.inspect}.join(', ')}" unless constraints[:non_nullable].blank? %>
  <%- constraints[:custom].each do |name, sql_rule| 
  -%>  validate <%= "validate_#{name}".to_sym.inspect %>
  def <%= "validate_#{name}" %>
    # TODO: validate this SQL constraint 
    "<%= sql_rule %>"
  end
  <%- end %>
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
alexrothenberg-legacy_data-0.0.10 generators/models_from_tables/templates/model.rb
alexrothenberg-legacy_data-0.0.11 generators/models_from_tables/templates/model.rb