Class: DynamicActiveModel::TemplateClassFile

Inherits:
Object
  • Object
show all
Defined in:
lib/dynamic-active-model/template_class_file.rb

Overview

DynamicActiveModel::TemplateClassFile creates ActiveRecord file for model

Instance Method Summary collapse

Constructor Details

#initialize(model) ⇒ TemplateClassFile

Returns a new instance of TemplateClassFile.



6
7
8
# File 'lib/dynamic-active-model/template_class_file.rb', line 6

def initialize(model)
  @model = model
end

Instance Method Details

#create_template!(dir) ⇒ Object



10
11
12
13
# File 'lib/dynamic-active-model/template_class_file.rb', line 10

def create_template!(dir)
  file = dir + '/' + @model.name.underscore + '.rb'
  File.open(file, 'wb') { |f| f.write(to_s) }
end

#to_sObject



15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/dynamic-active-model/template_class_file.rb', line 15

def to_s
  str = "class #{@model.name} < ActiveRecord::Base\n".dup
  str << "  self.table_name = #{@model.table_name.to_sym.inspect}\n" unless @model.name.underscore.pluralize == @model.table_name
  all_has_many_relationships.each do |assoc|
    append_association!(str, assoc)
  end
  all_belongs_to_relationships.each do |assoc|
    append_association!(str, assoc)
  end
  str << "end\n"
  str
end