Class: ModelFromTableGenerator::Resource

Inherits:
Object
  • Object
show all
Defined in:
lib/generators/model_from_table_generator.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(connection, table_name) ⇒ Resource

Returns a new instance of Resource.



21
22
23
24
# File 'lib/generators/model_from_table_generator.rb', line 21

def initialize connection, table_name
  @connection = connection
  @table_name = table_name
end

Instance Attribute Details

#table_nameObject (readonly)

Returns the value of attribute table_name.



19
20
21
# File 'lib/generators/model_from_table_generator.rb', line 19

def table_name
  @table_name
end

Instance Method Details

#belongs_to_columnsObject



58
59
60
# File 'lib/generators/model_from_table_generator.rb', line 58

def belongs_to_columns
  @connection.columns(table_name).select { |col| col.name =~ /^.*_id$/ }
end

#belongs_to_symsObject



54
55
56
# File 'lib/generators/model_from_table_generator.rb', line 54

def belongs_to_syms
  belongs_to_columns.map { |col| col.name.sub('_id', '').to_sym }
end

#class_nameObject



26
27
28
# File 'lib/generators/model_from_table_generator.rb', line 26

def class_name
  @class_name ||= table_name.classify
end

#file_pathObject



30
31
32
# File 'lib/generators/model_from_table_generator.rb', line 30

def file_path
  "app/models/#{class_name.underscore}.rb"
end

#primary_keyObject



42
43
44
45
46
47
48
49
50
51
52
# File 'lib/generators/model_from_table_generator.rb', line 42

def primary_key
  @pk if @pk != nil

  if @connection.respond_to?(:pk_and_sequence_for)
    @pk, _ = @connection.pk_and_sequence_for(table_name)
  elsif @connection.respond_to?(:primary_key)
    @pk = @connection.primary_key(table_name)
  end

  @pk
end

#primary_key_required?Boolean

Returns:

  • (Boolean)


38
39
40
# File 'lib/generators/model_from_table_generator.rb', line 38

def primary_key_required?
  primary_key != nil && primary_key.to_s != 'id'
end

#table_name_required?Boolean

Returns:

  • (Boolean)


34
35
36
# File 'lib/generators/model_from_table_generator.rb', line 34

def table_name_required?
  class_name.tableize != table_name
end