Class: Masamune::Schema::TableReference
- Inherits:
-
SimpleDelegator
- Object
- SimpleDelegator
- Masamune::Schema::TableReference
- Defined in:
- lib/masamune/schema/table_reference.rb
Constant Summary collapse
- DEFAULT_ATTRIBUTES =
{ label: nil, insert: false, null: false, default: nil, unknown: nil, natural_key: false, denormalize: false, multiple: false, through: [], degenerate: false }.freeze
Instance Method Summary collapse
- #alias ⇒ Object
- #default(column = nil) ⇒ Object
- #foreign_key ⇒ Object
- #foreign_key_name ⇒ Object
- #foreign_key_type ⇒ Object
- #id ⇒ Object
-
#initialize(table, opts = {}) ⇒ TableReference
constructor
A new instance of TableReference.
- #through=(columns) ⇒ Object
- #unknown(column = nil) ⇒ Object
Constructor Details
#initialize(table, opts = {}) ⇒ TableReference
Returns a new instance of TableReference.
43 44 45 46 47 48 49 |
# File 'lib/masamune/schema/table_reference.rb', line 43 def initialize(table, opts = {}) super table @table = table DEFAULT_ATTRIBUTES.merge(opts).each do |name, value| public_send("#{name}=", value) end end |
Instance Method Details
#alias ⇒ Object
55 56 57 |
# File 'lib/masamune/schema/table_reference.rb', line 55 def alias [label, @table.name].compact.join('_') end |
#default(column = nil) ⇒ Object
71 72 73 74 75 76 |
# File 'lib/masamune/schema/table_reference.rb', line 71 def default(column = nil) return if @default == :null default_row = @table.rows.detect { |row| @default ? row.id == @default : row.default } return unless default_row default_row.name(column) end |
#foreign_key ⇒ Object
59 60 61 |
# File 'lib/masamune/schema/table_reference.rb', line 59 def foreign_key @table.surrogate_key end |
#foreign_key_name ⇒ Object
63 64 65 |
# File 'lib/masamune/schema/table_reference.rb', line 63 def foreign_key_name [label, @table.name, foreign_key.name].compact.join('_').to_sym end |
#foreign_key_type ⇒ Object
67 68 69 |
# File 'lib/masamune/schema/table_reference.rb', line 67 def foreign_key_type foreign_key.type end |
#id ⇒ Object
51 52 53 |
# File 'lib/masamune/schema/table_reference.rb', line 51 def id [label, @table.id].compact.join('_').to_sym end |
#through=(columns) ⇒ Object
86 87 88 |
# File 'lib/masamune/schema/table_reference.rb', line 86 def through=(columns) @through = Array.wrap(columns) end |
#unknown(column = nil) ⇒ Object
78 79 80 81 82 83 84 |
# File 'lib/masamune/schema/table_reference.rb', line 78 def unknown(column = nil) return unless @unknown return if @unknown == :null unknown_row = @table.rows.detect { |row| row.id == @unknown } return unless unknown_row unknown_row.name(column) end |