Sha256: 8662fd0455d081e3f1a81330af131a687a369ae935f41b1f92f9d69b15987892

Contents?: true

Size: 1.27 KB

Versions: 1

Compression:

Stored size: 1.27 KB

Contents

class Ponytail.Models.Column extends Backbone.Model
  defaults:
    name: "new_column",
    type: "string",

  initialize: (attrs) ->
    @attributes.isRemoved = attrs.isRemoved || false
    @attributes.isAdded = attrs.isAdded || false
    @beforeType = attrs.type || ""
    @beforeName = attrs.name || ""
    table = @get("table")
    func = _.bind(table.trigger, table, "change")
    @bind("change", func)

  isRemoved: ->
    @get("isRemoved") == true

  isAdded: ->
    @get("isAdded") == true

  isRename: ->
    @beforeName != @get("name")

  isChangeType: ->
    @beforeType != @get("type")

  getCommands: ->
    table = @get("table")
    if @isRemoved() && @isAdded()
      []
    else if @isRemoved()
      [new Ponytail.Models.Command("remove_column", ":" + table.get("name"), ":" + @beforeName)]
    else if @isAdded()
      [new Ponytail.Models.Command("add_column", ":" + table.get("name"), ":" + @get("name"), ":" + @get("type"))]
    else
      commands = []
      if @isRename()
        commands.push(new Ponytail.Models.Command("rename_column", ":" + table.get("name"), ":" + @beforeName, ":" + @get("name")))
      if @isChangeType()
        commands.push(new Ponytail.Models.Command("change_column", ":" + table.get("name"), ":" + @get("name"), ":" + @get("type")))

      commands

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ponytail-0.6.0 app/assets/javascripts/ponytail/models/column.coffee