Class: ModelFromTableGenerator::Resource
- Inherits:
-
Object
- Object
- ModelFromTableGenerator::Resource
- Defined in:
- lib/generators/model_from_table_generator.rb
Instance Attribute Summary collapse
-
#table_name ⇒ Object
readonly
Returns the value of attribute table_name.
Instance Method Summary collapse
- #belongs_to_columns ⇒ Object
- #belongs_to_syms ⇒ Object
- #class_name ⇒ Object
- #file_path ⇒ Object
-
#initialize(connection, table_name) ⇒ Resource
constructor
A new instance of Resource.
- #primary_key ⇒ Object
- #primary_key_required? ⇒ Boolean
- #table_name_required? ⇒ Boolean
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_name ⇒ Object (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_columns ⇒ Object
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_syms ⇒ Object
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_name ⇒ Object
26 27 28 |
# File 'lib/generators/model_from_table_generator.rb', line 26 def class_name @class_name ||= table_name.classify end |
#file_path ⇒ Object
30 31 32 |
# File 'lib/generators/model_from_table_generator.rb', line 30 def file_path "app/models/#{class_name.underscore}.rb" end |
#primary_key ⇒ Object
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
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
34 35 36 |
# File 'lib/generators/model_from_table_generator.rb', line 34 def table_name_required? class_name.tableize != table_name end |