Prompt:
Convert this CoffeeScript to JavaScript.
```coffeescript
Api =
  # load a flag's data
  #
  # @params at[String] the flag
  # @params data [Array] data to storage.
  load: (at, data) -> c.model.load data if c = this.controller(at)
  setIframe: (iframe, standalone) -> this.setupRootElement(iframe, standalone); null;
  run: -> this.dispatch()
  destroy: ->
    this.shutdown()
    @$inputor.data('atwho', null)

$.fn.atwho = (method) ->
  _args = arguments
  result = null
  this.filter('textarea, input, [contenteditable=""], [contenteditable=true]').each ->
    if not app = ($this = $ this).data "atwho"
      $this.data 'atwho', (app = new App this)
    if typeof method is 'object' || !method
      app.reg method.at, method
    else if Api[method] and app
      result = Api[method].apply app, Array::slice.call(_args, 1)
    else
      $.error "Method #{method} does not exist on jQuery.caret"
  result || this

$.fn.atwho.default =
  at: undefined
  alias: undefined
  data: null
  displayTpl: "<li>${name}</li>"
  insertTpl: "${atwho-at}${name}"
  callbacks: DEFAULT_CALLBACKS
  searchKey: "name"
  suffix: undefined
  hideWithoutSuffix: no
  startWithSpace: yes
  highlightFirst: yes
  limit: 5
  maxLen: 20
  displayTimeout: 300
  delay: null
```

Response:
var Api;

Api = {
  // load a flag's data

  // @params at[String] the flag
  // @params data [Array] data to storage.
  load: function(at, data) {
    var c;
    if (c = this.controller(at)) {
      return c.model.load(data);
    }
  },
  setIframe: function(iframe, standalone) {
    this.setupRootElement(iframe, standalone);
    return null;
  },
  run: function() {
    return this.dispatch();
  },
  destroy: function() {
    this.shutdown();
    return this.$inputor.data('atwho', null);
  }
};

$.fn.atwho = function(method) {
  var _args, result;
  _args = arguments;
  result = null;
  this.filter('textarea, input, [contenteditable=""], [contenteditable=true]').each(function() {
    var $this, app;
    if (!(app = ($this = $(this)).data("atwho"))) {
      $this.data('atwho', (app = new App(this)));
    }
    if (typeof method === 'object' || !method) {
      return app.reg(method.at, method);
    } else if (Api[method] && app) {
      return result = Api[method].apply(app, Array.prototype.slice.call(_args, 1));
    } else {
      return $.error(`Method ${method} does not exist on jQuery.caret`);
    }
  });
  return result || this;
};

$.fn.atwho.default = {
  at: void 0,
  alias: void 0,
  data: null,
  displayTpl: "<li>${name}</li>",
  insertTpl: "${atwho-at}${name}",
  callbacks: DEFAULT_CALLBACKS,
  searchKey: "name",
  suffix: void 0,
  hideWithoutSuffix: false,
  startWithSpace: true,
  highlightFirst: true,
  limit: 5,
  maxLen: 20,
  displayTimeout: 300,
  delay: null
};


Prompt:
Convert this JavaScript to CoffeeScript.
```javascript
var Api;

Api = {
  // load a flag's data

  // @params at[String] the flag
  // @params data [Array] data to storage.
  load: function(at, data) {
    var c;
    if (c = this.controller(at)) {
      return c.model.load(data);
    }
  },
  setIframe: function(iframe, standalone) {
    this.setupRootElement(iframe, standalone);
    return null;
  },
  run: function() {
    return this.dispatch();
  },
  destroy: function() {
    this.shutdown();
    return this.$inputor.data('atwho', null);
  }
};

$.fn.atwho = function(method) {
  var _args, result;
  _args = arguments;
  result = null;
  this.filter('textarea, input, [contenteditable=""], [contenteditable=true]').each(function() {
    var $this, app;
    if (!(app = ($this = $(this)).data("atwho"))) {
      $this.data('atwho', (app = new App(this)));
    }
    if (typeof method === 'object' || !method) {
      return app.reg(method.at, method);
    } else if (Api[method] && app) {
      return result = Api[method].apply(app, Array.prototype.slice.call(_args, 1));
    } else {
      return $.error(`Method ${method} does not exist on jQuery.caret`);
    }
  });
  return result || this;
};

$.fn.atwho.default = {
  at: void 0,
  alias: void 0,
  data: null,
  displayTpl: "<li>${name}</li>",
  insertTpl: "${atwho-at}${name}",
  callbacks: DEFAULT_CALLBACKS,
  searchKey: "name",
  suffix: void 0,
  hideWithoutSuffix: false,
  startWithSpace: true,
  highlightFirst: true,
  limit: 5,
  maxLen: 20,
  displayTimeout: 300,
  delay: null
};
```

Response:
Api =
  # load a flag's data
  #
  # @params at[String] the flag
  # @params data [Array] data to storage.
  load: (at, data) -> c.model.load data if c = this.controller(at)
  setIframe: (iframe, standalone) -> this.setupRootElement(iframe, standalone); null;
  run: -> this.dispatch()
  destroy: ->
    this.shutdown()
    @$inputor.data('atwho', null)

$.fn.atwho = (method) ->
  _args = arguments
  result = null
  this.filter('textarea, input, [contenteditable=""], [contenteditable=true]').each ->
    if not app = ($this = $ this).data "atwho"
      $this.data 'atwho', (app = new App this)
    if typeof method is 'object' || !method
      app.reg method.at, method
    else if Api[method] and app
      result = Api[method].apply app, Array::slice.call(_args, 1)
    else
      $.error "Method #{method} does not exist on jQuery.caret"
  result || this

$.fn.atwho.default =
  at: undefined
  alias: undefined
  data: null
  displayTpl: "<li>${name}</li>"
  insertTpl: "${atwho-at}${name}"
  callbacks: DEFAULT_CALLBACKS
  searchKey: "name"
  suffix: undefined
  hideWithoutSuffix: no
  startWithSpace: yes
  highlightFirst: yes
  limit: 5
  maxLen: 20
  displayTimeout: 300
  delay: null


Prompt:
Api =
  # load a flag's data
  #
  # @params at[String] the flag
  # @params data [Array] data to storage.
  load: (at, data) -> c.model.load data if c = this.controller(at)
  setIframe: (iframe, standalone) -> this.setupRootElement(iframe, standalone); null;
  run: -> this.dispatch()
  destroy: ->
    this.shutdown()
    @$inputor.data('atwho', null)

$.fn.atwho = (method) ->
  _args = arguments
  result = null
  this.filter('textarea, input, [contenteditable=""], [contenteditable=true]').each ->
    if not app = ($this = $ this).data "atwho"
      $this.data 'atwho', (app = new App this)
    if typeof method is 'object' || !method
      app.reg method.at, method
    else if Api[method] and app

Response:
result = Api[method].apply app, Array::slice.call(_args, 1)
    else
      $.error "Method #{method} does not exist on jQuery.caret"
  result || this

$.fn.atwho.default =
  at: undefined
  alias: undefined
  data: null
  displayTpl: "<li>${name}</li>"
  insertTpl: "${atwho-at}${name}"
  callbacks: DEFAULT_CALLBACKS
  searchKey: "name"
  suffix: undefined
  hideWithoutSuffix: no
  startWithSpace: yes
  highlightFirst: yes
  limit: 5
  maxLen: 20
  displayTimeout: 300
  delay: null


Response:
Api =
  # load a flag's data
  #
  # @params at[String] the flag
  # @params data [Array] data to storage.
  load: (at, data) -> c.model.load data if c = this.controller(at)
  setIframe: (iframe, standalone) -> this.setIframe(iframe, standalone); null;
  run: -> this.dispatch()
  destroy: ->
    this.shutdown()
    @$inputor.data('atwho', null)

$.fn.atwho = (method) ->
  _args = arguments
  result = null
  this.filter('textarea, input, [contenteditable=""], [contenteditable=true]').each ->
    if not app = ($this = $ this).data "atwho"
      $this.data 'atwho', (app = new App this)
    if typeof method is 'object' || !method
      app.reg method.at, method
    else if Api[method] and app
      result = Api[method].apply app, Array::slice.call(_args, 1)
    else
      $.error "Method #{method} does not exist on jQuery.caret"
  result || this

$.fn.atwho.default =
  at: undefined
  alias: undefined
  data: null
  displayTpl: "<li>${name}</li>"
  insertTpl: "${atwho-at}${name}"
  callbacks: DEFAULT_CALLBACKS
  searchKey: "name"
  suffix: undefined
  hideWithoutSuffix: no
  startWithSpace: yes
  highlightFirst: yes
  limit: 5
  maxLen: 20
  displayTimeout: 300
  delay: null


Prompt:
Convert this CoffeeScript to JavaScript.
```coffeescript
Api =
  # load a flag's data
  #
  # @params at[String] the flag
  # @params data [Array] data to storage.
  load: (at, data) -> c.model.load data if c = this.controller(at)
  setIframe: (iframe, standalone) -> this.setIframe(iframe, standalone); null;
  run: -> this.dispatch()
  destroy: ->
    this.shutdown()
    @$inputor.data('atwho', null)

$.fn.atwho = (method) ->
  _args = arguments
  result = null
  this.filter('textarea, input, [contenteditable=""], [contenteditable=true]').each ->
    if not app = ($this = $ this).data "atwho"
      $this.data 'atwho', (app = new App this)
    if typeof method is 'object' || !method
      app.reg method.at, method
    else if Api[method] and app
      result = Api[method].apply app, Array::slice.call(_args, 1)
    else
      $.error "Method #{method} does not exist on jQuery.caret"
  result || this

$.fn.atwho.default =
  at: undefined
  alias: undefined
  data: null
  displayTpl: "<li>${name}</li>"
  insertTpl: "${atwho-at}${name}"
  callbacks: DEFAULT_CALLBACKS
  searchKey: "name"
  suffix: undefined
  hideWithoutSuffix: no
  startWithSpace: yes
  highlightFirst: yes
  limit: 5
  maxLen: 20
  displayTimeout: 300
  delay: null
```

Response:
var Api;

Api = {
  // load a flag's data

  // @params at[String] the flag
  // @params data [Array] data to storage.
  load: function(at, data) {
    var c;
    if (c = this.controller(at)) {
      return c.model.load(data);
    }
  },
  setIframe: function(iframe, standalone) {
    this.setIframe(iframe, standalone);
    return null;
  },
  run: function() {
    return this.dispatch();
  },
  destroy: function() {
    this.shutdown();
    return this.$inputor.data('atwho', null);
  }
};

$.fn.atwho = function(method) {
  var _args, result;
  _args = arguments;
  result = null;
  this.filter('textarea, input, [contenteditable=""], [contenteditable=true]').each(function() {
    var $this, app;
    if (!(app = ($this = $(this)).data("atwho"))) {
      $this.data('atwho', (app = new App(this)));
    }
    if (typeof method === 'object' || !method) {
      return app.reg(method.at, method);
    } else if (Api[method] && app) {
      return result = Api[method].apply(app, Array.prototype.slice.call(_args, 1));
    } else {
      return $.error(`Method ${method} does not exist on jQuery.caret`);
    }
  });
  return result || this;
};

$.fn.atwho.default = {
  at: void 0,
  alias: void 0,
  data: null,
  displayTpl: "<li>${name}</li>",
  insertTpl: "${atwho-at}${name}",
  callbacks: DEFAULT_CALLBACKS,
  searchKey: "name",
  suffix: void 0,
  hideWithoutSuffix: false,
  startWithSpace: true,
  highlightFirst: true,
  limit: 5,
  maxLen: 20,
  displayTimeout: 300,
  delay: null
};


Prompt:
Convert this JavaScript to CoffeeScript.
```javascript
var Api;

Api = {
  // load a flag's data

  // @params at[String] the flag
  // @params data [Array] data to storage.
  load: function(at, data) {
    var c;
    if (c = this.controller(at)) {
      return c.model.load(data);
    }
  },
  setIframe: function(iframe, standalone) {
    this.setIframe(iframe, standalone);
    return null;
  },
  run: function() {
    return this.dispatch();
  },
  destroy: function() {
    this.shutdown();
    return this.$inputor.data('atwho', null);
  }
};

$.fn.atwho = function(method) {
  var _args, result;
  _args = arguments;
  result = null;
  this.filter('textarea, input, [contenteditable=""], [contenteditable=true]').each(function() {
    var $this, app;
    if (!(app = ($this = $(this)).data("atwho"))) {
      $this.data('atwho', (app = new App(this)));
    }
    if (typeof method === 'object' || !method) {
      return app.reg(method.at, method);
    } else if (Api[method] && app) {
      return result = Api[method].apply(app, Array.prototype.slice.call(_args, 1));
    } else {
      return $.error(`Method ${method} does not exist on jQuery.caret`);
    }
  });
  return result || this;
};

$.fn.atwho.default = {
  at: void 0,
  alias: void 0,
  data: null,
  displayTpl: "<li>${name}</li>",
  insertTpl: "${atwho-at}${name}",
  callbacks: DEFAULT_CALLBACKS,
  searchKey: "name",
  suffix: void 0,
  hideWithoutSuffix: false,
  startWithSpace: true,
  highlightFirst: true,
  limit: 5,
  maxLen: 20,
  displayTimeout: 300,
  delay: null
};
```

Response:
Api =
  # load a flag's data
  #
  # @params at[String] the flag
  # @params data [Array] data to storage.
  load: (at, data) -> c.model.load data if c = this.controller(at)
  setIframe: (iframe, standalone) -> this.setIframe(iframe, standalone); null;
  run: -> this.dispatch()
  destroy: ->
    this.shutdown()
    @$inputor.data('atwho', null)

$.fn.atwho = (method) ->
  _args = arguments
  result = null
  this.filter('textarea, input, [contenteditable=""], [contenteditable=true]').each ->
    if not app = ($this = $ this).data "atwho"
      $this.data 'atwho', (app = new App this)
    if typeof method is 'object' || !method
      app.reg method.at, method
    else if Api[method] and app
      result = Api[method].apply app, Array::slice.call(_args, 1)
    else
      $.error "Method #{method} does not exist on jQuery.caret"
  result || this

$.fn.atwho.default =
  at: undefined
  alias: undefined
  data: null
  displayTpl: "<li>${name}</li>"
  insertTpl: "${atwho-at}${name}"
  callbacks: DEFAULT_CALLBACKS
  searchKey: "name"
  suffix: undefined
  hideWithoutSuffix: no
  startWithSpace: yes
  highlightFirst: yes
  limit: 5
  maxLen: 20
  displayTimeout: 300
  delay: null


Prompt:
Api =
  # load a flag's data
  #
  # @params at[String] the flag
  # @params data [Array] data to storage.
  load: (at, data) -> c.model.load data if c = this.controller(at)
  setIframe: (iframe, standalone) -> this.setIframe(iframe, standalone); null;
  run: -> this.dispatch()
  destroy: ->
    this.shutdown()
    @$inputor.data('atwho', null)

$.fn.atwho = (method) ->
  _args = arguments
  result = null
  this.filter('textarea, input, [contenteditable=""], [contenteditable=true]').each ->
    if not app = ($this = $ this).data "atwho"
      $this.data 'atwho', (app = new App this)
    if typeof method is 'object' || !method
      app.reg method.at, method
    else if Api[method] and app

Response:
result = Api[method].apply app, Array::slice.call(_args, 1)
    else
      $.error "Method #{method} does not exist on jQuery.caret"
  result || this

$.fn.atwho.default =
  at: undefined
  alias: undefined
  data: null
  displayTpl: "<li>${name}</li>"
  insertTpl: "${atwho-at}${name}"
  callbacks: DEFAULT_CALLBACKS
  searchKey: "name"
  suffix: undefined
  hideWithoutSuffix: no
  startWithSpace: yes
  highlightFirst: yes
  limit: 5
  maxLen: 20
  displayTimeout: 300
  delay: null


Response:
Api =
  # load a flag's data
  #
  # @params at[String] the flag
  # @params data [Array] data to storage.
  load: (at, data) -> c.model.load data if c = this.controller(at)
  setIframe: (iframe, standalone) -> this.setIframe(iframe, standalone); null;
  run: -> this.dispatch()
  destroy: ->
    this.shutdown()
    @$inputor.data('atwho', null)

$.fn.atwho = (method) ->
  _args = arguments
  result = null
  this.filter('textarea, input, [contenteditable=""], [contenteditable=true]').each ->
    if not app = ($this = $ this).data "atwho"
      $this.data 'atwho', (app = new App this)
    if typeof method is 'object' || !method
      app.reg method.at, method
    else if Api[method] and app
      result = Api[method].apply app, Array::slice.call(_args, 1)
    else
      $.error "Method #{method} does not exist on jQuery.caret"
  result || this

$.fn.atwho.default =
  at: undefined
  alias: undefined
  data: null
  tpl: "<li>${name}</li>"
  insertTpl: "${atwho-at}${name}"
  callbacks: DEFAULT_CALLBACKS
  searchKey: "name"
  suffix: undefined
  hideWithoutSuffix: no
  startWithSpace: yes
  highlightFirst: yes
  limit: 5
  maxLen: 20
  displayTimeout: 300
  delay: null


Prompt:
Convert this CoffeeScript to JavaScript.
```coffeescript
Api =
  # load a flag's data
  #
  # @params at[String] the flag
  # @params data [Array] data to storage.
  load: (at, data) -> c.model.load data if c = this.controller(at)
  setIframe: (iframe, standalone) -> this.setIframe(iframe, standalone); null;
  run: -> this.dispatch()
  destroy: ->
    this.shutdown()
    @$inputor.data('atwho', null)

$.fn.atwho = (method) ->
  _args = arguments
  result = null
  this.filter('textarea, input, [contenteditable=""], [contenteditable=true]').each ->
    if not app = ($this = $ this).data "atwho"
      $this.data 'atwho', (app = new App this)
    if typeof method is 'object' || !method
      app.reg method.at, method
    else if Api[method] and app
      result = Api[method].apply app, Array::slice.call(_args, 1)
    else
      $.error "Method #{method} does not exist on jQuery.caret"
  result || this

$.fn.atwho.default =
  at: undefined
  alias: undefined
  data: null
  tpl: "<li>${name}</li>"
  insertTpl: "${atwho-at}${name}"
  callbacks: DEFAULT_CALLBACKS
  searchKey: "name"
  suffix: undefined
  hideWithoutSuffix: no
  startWithSpace: yes
  highlightFirst: yes
  limit: 5
  maxLen: 20
  displayTimeout: 300
  delay: null
```

Response:
var Api;

Api = {
  // load a flag's data

  // @params at[String] the flag
  // @params data [Array] data to storage.
  load: function(at, data) {
    var c;
    if (c = this.controller(at)) {
      return c.model.load(data);
    }
  },
  setIframe: function(iframe, standalone) {
    this.setIframe(iframe, standalone);
    return null;
  },
  run: function() {
    return this.dispatch();
  },
  destroy: function() {
    this.shutdown();
    return this.$inputor.data('atwho', null);
  }
};

$.fn.atwho = function(method) {
  var _args, result;
  _args = arguments;
  result = null;
  this.filter('textarea, input, [contenteditable=""], [contenteditable=true]').each(function() {
    var $this, app;
    if (!(app = ($this = $(this)).data("atwho"))) {
      $this.data('atwho', (app = new App(this)));
    }
    if (typeof method === 'object' || !method) {
      return app.reg(method.at, method);
    } else if (Api[method] && app) {
      return result = Api[method].apply(app, Array.prototype.slice.call(_args, 1));
    } else {
      return $.error(`Method ${method} does not exist on jQuery.caret`);
    }
  });
  return result || this;
};

$.fn.atwho.default = {
  at: void 0,
  alias: void 0,
  data: null,
  tpl: "<li>${name}</li>",
  insertTpl: "${atwho-at}${name}",
  callbacks: DEFAULT_CALLBACKS,
  searchKey: "name",
  suffix: void 0,
  hideWithoutSuffix: false,
  startWithSpace: true,
  highlightFirst: true,
  limit: 5,
  maxLen: 20,
  displayTimeout: 300,
  delay: null
};


Prompt:
Convert this JavaScript to CoffeeScript.
```javascript
var Api;

Api = {
  // load a flag's data

  // @params at[String] the flag
  // @params data [Array] data to storage.
  load: function(at, data) {
    var c;
    if (c = this.controller(at)) {
      return c.model.load(data);
    }
  },
  setIframe: function(iframe, standalone) {
    this.setIframe(iframe, standalone);
    return null;
  },
  run: function() {
    return this.dispatch();
  },
  destroy: function() {
    this.shutdown();
    return this.$inputor.data('atwho', null);
  }
};

$.fn.atwho = function(method) {
  var _args, result;
  _args = arguments;
  result = null;
  this.filter('textarea, input, [contenteditable=""], [contenteditable=true]').each(function() {
    var $this, app;
    if (!(app = ($this = $(this)).data("atwho"))) {
      $this.data('atwho', (app = new App(this)));
    }
    if (typeof method === 'object' || !method) {
      return app.reg(method.at, method);
    } else if (Api[method] && app) {
      return result = Api[method].apply(app, Array.prototype.slice.call(_args, 1));
    } else {
      return $.error(`Method ${method} does not exist on jQuery.caret`);
    }
  });
  return result || this;
};

$.fn.atwho.default = {
  at: void 0,
  alias: void 0,
  data: null,
  tpl: "<li>${name}</li>",
  insertTpl: "${atwho-at}${name}",
  callbacks: DEFAULT_CALLBACKS,
  searchKey: "name",
  suffix: void 0,
  hideWithoutSuffix: false,
  startWithSpace: true,
  highlightFirst: true,
  limit: 5,
  maxLen: 20,
  displayTimeout: 300,
  delay: null
};
```

Response:
Api =
  # load a flag's data
  #
  # @params at[String] the flag
  # @params data [Array] data to storage.
  load: (at, data) -> c.model.load data if c = this.controller(at)
  setIframe: (iframe, standalone) -> this.setIframe(iframe, standalone); null;
  run: -> this.dispatch()
  destroy: ->
    this.shutdown()
    @$inputor.data('atwho', null)

$.fn.atwho = (method) ->
  _args = arguments
  result = null
  this.filter('textarea, input, [contenteditable=""], [contenteditable=true]').each ->
    if not app = ($this = $ this).data "atwho"
      $this.data 'atwho', (app = new App this)
    if typeof method is 'object' || !method
      app.reg method.at, method
    else if Api[method] and app
      result = Api[method].apply app, Array::slice.call(_args, 1)
    else
      $.error "Method #{method} does not exist on jQuery.caret"
  result || this

$.fn.atwho.default =
  at: undefined
  alias: undefined
  data: null
  tpl: "<li>${name}</li>"
  insertTpl: "${atwho-at}${name}"
  callbacks: DEFAULT_CALLBACKS
  searchKey: "name"
  suffix: undefined
  hideWithoutSuffix: no
  startWithSpace: yes
  highlightFirst: yes
  limit: 5
  maxLen: 20
  displayTimeout: 300
  delay: null


Prompt:
Api =
  # load a flag's data
  #
  # @params at[String] the flag
  # @params data [Array] data to storage.
  load: (at, data) -> c.model.load data if c = this.controller(at)
  setIframe: (iframe, standalone) -> this.setIframe(iframe, standalone); null;
  run: -> this.dispatch()
  destroy: ->
    this.shutdown()
    @$inputor.data('atwho', null)

$.fn.atwho = (method) ->
  _args = arguments
  result = null
  this.filter('textarea, input, [contenteditable=""], [contenteditable=true]').each ->
    if not app = ($this = $ this).data "atwho"
      $this.data 'atwho', (app = new App this)
    if typeof method is 'object' || !method
      app.reg method.at, method
    else if Api[method] and app

Response:
result = Api[method].apply app, Array::slice.call(_args, 1)
    else
      $.error "Method #{method} does not exist on jQuery.caret"
  result || this

$.fn.atwho.default =
  at: undefined
  alias: undefined
  data: null
  tpl: "<li>${name}</li>"
  insertTpl: "${atwho-at}${name}"
  callbacks: DEFAULT_CALLBACKS
  searchKey: "name"
  suffix: undefined
  hideWithoutSuffix: no
  startWithSpace: yes
  highlightFirst: yes
  limit: 5
  maxLen: 20
  displayTimeout: 300
  delay: null


Response:
Api =
  # load a flag's data
  #
  # @params at[String] the flag
  # @params data [Array] data to storage.
  load: (at, data) -> c.model.load data if c = this.controller(at)
  setIframe: (iframe, standalone) -> this.setIframe(iframe, standalone); null;
  run: -> this.dispatch()
  destroy: ->
    this.shutdown()
    @$inputor.data('atwho', null)

$.fn.atwho = (method) ->
  _args = arguments
  result = null
  this.filter('textarea, input, [contenteditable=""], [contenteditable=true]').each ->
    if not app = ($this = $ this).data "atwho"
      $this.data 'atwho', (app = new App this)
    if typeof method is 'object' || !method
      app.reg method.at, method
    else if Api[method] and app
      result = Api[method].apply app, Array::slice.call(_args, 1)
    else
      $.error "Method #{method} does not exist on jQuery.caret"
  result || this

$.fn.atwho.default =
  at: undefined
  alias: undefined
  data: null
  tpl: "<li>${name}</li>"
  insert_tpl: "${atwho-at}${name}"
  callbacks: DEFAULT_CALLBACKS
  search_key: "name"
  suffix: undefined
  hide_without_suffix: no
  start_with_space: yes
  highlight_first: yes
  limit: 5
  max_len: 20
  display_timeout: 300
  delay: null


Prompt:
Convert this CoffeeScript to JavaScript.
```coffeescript
Api =
  # load a flag's data
  #
  # @params at[String] the flag
  # @params data [Array] data to storage.
  load: (at, data) -> c.model.load data if c = this.controller(at)
  setIframe: (iframe, standalone) -> this.setIframe(iframe, standalone); null;
  run: -> this.dispatch()
  destroy: ->
    this.shutdown()
    @$inputor.data('atwho', null)

$.fn.atwho = (method) ->
  _args = arguments
  result = null
  this.filter('textarea, input, [contenteditable=""], [contenteditable=true]').each ->
    if not app = ($this = $ this).data "atwho"
      $this.data 'atwho', (app = new App this)
    if typeof method is 'object' || !method
      app.reg method.at, method
    else if Api[method] and app
      result = Api[method].apply app, Array::slice.call(_args, 1)
    else
      $.error "Method #{method} does not exist on jQuery.caret"
  result || this

$.fn.atwho.default =
  at: undefined
  alias: undefined
  data: null
  tpl: "<li>${name}</li>"
  insert_tpl: "${atwho-at}${name}"
  callbacks: DEFAULT_CALLBACKS
  search_key: "name"
  suffix: undefined
  hide_without_suffix: no
  start_with_space: yes
  highlight_first: yes
  limit: 5
  max_len: 20
  display_timeout: 300
  delay: null
```

Response:
var Api;

Api = {
  // load a flag's data

  // @params at[String] the flag
  // @params data [Array] data to storage.
  load: function(at, data) {
    var c;
    if (c = this.controller(at)) {
      return c.model.load(data);
    }
  },
  setIframe: function(iframe, standalone) {
    this.setIframe(iframe, standalone);
    return null;
  },
  run: function() {
    return this.dispatch();
  },
  destroy: function() {
    this.shutdown();
    return this.$inputor.data('atwho', null);
  }
};

$.fn.atwho = function(method) {
  var _args, result;
  _args = arguments;
  result = null;
  this.filter('textarea, input, [contenteditable=""], [contenteditable=true]').each(function() {
    var $this, app;
    if (!(app = ($this = $(this)).data("atwho"))) {
      $this.data('atwho', (app = new App(this)));
    }
    if (typeof method === 'object' || !method) {
      return app.reg(method.at, method);
    } else if (Api[method] && app) {
      return result = Api[method].apply(app, Array.prototype.slice.call(_args, 1));
    } else {
      return $.error(`Method ${method} does not exist on jQuery.caret`);
    }
  });
  return result || this;
};

$.fn.atwho.default = {
  at: void 0,
  alias: void 0,
  data: null,
  tpl: "<li>${name}</li>",
  insert_tpl: "${atwho-at}${name}",
  callbacks: DEFAULT_CALLBACKS,
  search_key: "name",
  suffix: void 0,
  hide_without_suffix: false,
  start_with_space: true,
  highlight_first: true,
  limit: 5,
  max_len: 20,
  display_timeout: 300,
  delay: null
};


Prompt:
Convert this JavaScript to CoffeeScript.
```javascript
var Api;

Api = {
  // load a flag's data

  // @params at[String] the flag
  // @params data [Array] data to storage.
  load: function(at, data) {
    var c;
    if (c = this.controller(at)) {
      return c.model.load(data);
    }
  },
  setIframe: function(iframe, standalone) {
    this.setIframe(iframe, standalone);
    return null;
  },
  run: function() {
    return this.dispatch();
  },
  destroy: function() {
    this.shutdown();
    return this.$inputor.data('atwho', null);
  }
};

$.fn.atwho = function(method) {
  var _args, result;
  _args = arguments;
  result = null;
  this.filter('textarea, input, [contenteditable=""], [contenteditable=true]').each(function() {
    var $this, app;
    if (!(app = ($this = $(this)).data("atwho"))) {
      $this.data('atwho', (app = new App(this)));
    }
    if (typeof method === 'object' || !method) {
      return app.reg(method.at, method);
    } else if (Api[method] && app) {
      return result = Api[method].apply(app, Array.prototype.slice.call(_args, 1));
    } else {
      return $.error(`Method ${method} does not exist on jQuery.caret`);
    }
  });
  return result || this;
};

$.fn.atwho.default = {
  at: void 0,
  alias: void 0,
  data: null,
  tpl: "<li>${name}</li>",
  insert_tpl: "${atwho-at}${name}",
  callbacks: DEFAULT_CALLBACKS,
  search_key: "name",
  suffix: void 0,
  hide_without_suffix: false,
  start_with_space: true,
  highlight_first: true,
  limit: 5,
  max_len: 20,
  display_timeout: 300,
  delay: null
};
```

Response:
Api =
  # load a flag's data
  #
  # @params at[String] the flag
  # @params data [Array] data to storage.
  load: (at, data) -> c.model.load data if c = this.controller(at)
  setIframe: (iframe, standalone) -> this.setIframe(iframe, standalone); null;
  run: -> this.dispatch()
  destroy: ->
    this.shutdown()
    @$inputor.data('atwho', null)

$.fn.atwho = (method) ->
  _args = arguments
  result = null
  this.filter('textarea, input, [contenteditable=""], [contenteditable=true]').each ->
    if not app = ($this = $ this).data "atwho"
      $this.data 'atwho', (app = new App this)
    if typeof method is 'object' || !method
      app.reg method.at, method
    else if Api[method] and app
      result = Api[method].apply app, Array::slice.call(_args, 1)
    else
      $.error "Method #{method} does not exist on jQuery.caret"
  result || this

$.fn.atwho.default =
  at: undefined
  alias: undefined
  data: null
  tpl: "<li>${name}</li>"
  insert_tpl: "${atwho-at}${name}"
  callbacks: DEFAULT_CALLBACKS
  search_key: "name"
  suffix: undefined
  hide_without_suffix: no
  start_with_space: yes
  highlight_first: yes
  limit: 5
  max_len: 20
  display_timeout: 300
  delay: null


Prompt:
Api =
  # load a flag's data
  #
  # @params at[String] the flag
  # @params data [Array] data to storage.
  load: (at, data) -> c.model.load data if c = this.controller(at)
  setIframe: (iframe, standalone) -> this.setIframe(iframe, standalone); null;
  run: -> this.dispatch()
  destroy: ->
    this.shutdown()
    @$inputor.data('atwho', null)

$.fn.atwho = (method) ->
  _args = arguments
  result = null
  this.filter('textarea, input, [contenteditable=""], [contenteditable=true]').each ->
    if not app = ($this = $ this).data "atwho"
      $this.data 'atwho', (app = new App this)
    if typeof method is 'object' || !method
      app.reg method.at, method
    else if Api[method] and app

Response:
result = Api[method].apply app, Array::slice.call(_args, 1)
    else
      $.error "Method #{method} does not exist on jQuery.caret"
  result || this

$.fn.atwho.default =
  at: undefined
  alias: undefined
  data: null
  tpl: "<li>${name}</li>"
  insert_tpl: "${atwho-at}${name}"
  callbacks: DEFAULT_CALLBACKS
  search_key: "name"
  suffix: undefined
  hide_without_suffix: no
  start_with_space: yes
  highlight_first: yes
  limit: 5
  max_len: 20
  display_timeout: 300
  delay: null


Response:
Api =
  # load a flag's data
  #
  # @params at[String] the flag
  # @params data [Array] data to storage.
  load: (at, data) -> c.model.load data if c = this.controller(at)
  setIframe: (iframe, standalone) -> this.setIframe(iframe, standalone); null;
  run: -> this.dispatch()
  destroy: ->
    this.shutdown()
    @$inputor.data('atwho', null)

$.fn.atwho = (method) ->
  _args = arguments
  result = null
  this.filter('textarea, input, [contenteditable=""], [contenteditable=true]').each ->
    if not app = ($this = $ this).data "atwho"
      $this.data 'atwho', (app = new App this)
    if typeof method is 'object' || !method
      app.reg method.at, method
    else if Api[method] and app
      result = Api[method].apply app, Array::slice.call(_args, 1)
    else
      $.error "Method #{method} does not exist on jQuery.caret"
  result || this

$.fn.atwho.default =
  at: undefined
  alias: undefined
  data: null
  tpl: "
${name}
"
  insert_tpl: "${atwho-data-value}"
  callbacks: DEFAULT_CALLBACKS
  search_key: "name"
  suffix: undefined
  hide_without_suffix: no
  start_with_space: yes
  highlight_first: yes
  limit: 5
  max_len: 20
  display_timeout: 300
  delay: null


Prompt:
Convert this CoffeeScript to JavaScript.
```coffeescript
Api =
  # load a flag's data
  #
  # @params at[String] the flag
  # @params data [Array] data to storage.
  load: (at, data) -> c.model.load data if c = this.controller(at)
  setIframe: (iframe, standalone) -> this.setIframe(iframe, standalone); null;
  run: -> this.dispatch()
  destroy: ->
    this.shutdown()
    @$inputor.data('atwho', null)

$.fn.atwho = (method) ->
  _args = arguments
  result = null
  this.filter('textarea, input, [contenteditable=""], [contenteditable=true]').each ->
    if not app = ($this = $ this).data "atwho"
      $this.data 'atwho', (app = new App this)
    if typeof method is 'object' || !method
      app.reg method.at, method
    else if Api[method] and app
      result = Api[method].apply app, Array::slice.call(_args, 1)
    else
      $.error "Method #{method} does not exist on jQuery.caret"
  result || this

$.fn.atwho.default =
  at: undefined
  alias: undefined
  data: null
  tpl: "<li data-value='${atwho-at}${name}'>${name}</li>"
  insert_tpl: "<span id='${id}'>${atwho-data-value}</span>"
  callbacks: DEFAULT_CALLBACKS
  search_key: "name"
  suffix: undefined
  hide_without_suffix: no
  start_with_space: yes
  highlight_first: yes
  limit: 5
  max_len: 20
  display_timeout: 300
  delay: null
```

Response:
var Api;

Api = {
  // load a flag's data

  // @params at[String] the flag
  // @params data [Array] data to storage.
  load: function(at, data) {
    var c;
    if (c = this.controller(at)) {
      return c.model.load(data);
    }
  },
  setIframe: function(iframe, standalone) {
    this.setIframe(iframe, standalone);
    return null;
  },
  run: function() {
    return this.dispatch();
  },
  destroy: function() {
    this.shutdown();
    return this.$inputor.data('atwho', null);
  }
};

$.fn.atwho = function(method) {
  var _args, result;
  _args = arguments;
  result = null;
  this.filter('textarea, input, [contenteditable=""], [contenteditable=true]').each(function() {
    var $this, app;
    if (!(app = ($this = $(this)).data("atwho"))) {
      $this.data('atwho', (app = new App(this)));
    }
    if (typeof method === 'object' || !method) {
      return app.reg(method.at, method);
    } else if (Api[method] && app) {
      return result = Api[method].apply(app, Array.prototype.slice.call(_args, 1));
    } else {
      return $.error(`Method ${method} does not exist on jQuery.caret`);
    }
  });
  return result || this;
};

$.fn.atwho.default = {
  at: void 0,
  alias: void 0,
  data: null,
  tpl: "
${name}
",
  insert_tpl: "${atwho-data-value}",
  callbacks: DEFAULT_CALLBACKS,
  search_key: "name",
  suffix: void 0,
  hide_without_suffix: false,
  start_with_space: true,
  highlight_first: true,
  limit: 5,
  max_len: 20,
  display_timeout: 300,
  delay: null
};


Prompt:
Convert this JavaScript to CoffeeScript.
```javascript
var Api;

Api = {
  // load a flag's data

  // @params at[String] the flag
  // @params data [Array] data to storage.
  load: function(at, data) {
    var c;
    if (c = this.controller(at)) {
      return c.model.load(data);
    }
  },
  setIframe: function(iframe, standalone) {
    this.setIframe(iframe, standalone);
    return null;
  },
  run: function() {
    return this.dispatch();
  },
  destroy: function() {
    this.shutdown();
    return this.$inputor.data('atwho', null);
  }
};

$.fn.atwho = function(method) {
  var _args, result;
  _args = arguments;
  result = null;
  this.filter('textarea, input, [contenteditable=""], [contenteditable=true]').each(function() {
    var $this, app;
    if (!(app = ($this = $(this)).data("atwho"))) {
      $this.data('atwho', (app = new App(this)));
    }
    if (typeof method === 'object' || !method) {
      return app.reg(method.at, method);
    } else if (Api[method] && app) {
      return result = Api[method].apply(app, Array.prototype.slice.call(_args, 1));
    } else {
      return $.error(`Method ${method} does not exist on jQuery.caret`);
    }
  });
  return result || this;
};

$.fn.atwho.default = {
  at: void 0,
  alias: void 0,
  data: null,
  tpl: "<li data-value='${atwho-at}${name}'>${name}</li>",
  insert_tpl: "<span id='${id}'>${atwho-data-value}</span>",
  callbacks: DEFAULT_CALLBACKS,
  search_key: "name",
  suffix: void 0,
  hide_without_suffix: false,
  start_with_space: true,
  highlight_first: true,
  limit: 5,
  max_len: 20,
  display_timeout: 300,
  delay: null
};
```

Response:
Api =
  # load a flag's data
  #
  # @params at[String] the flag
  # @params data [Array] data to storage.
  load: (at, data) -> c.model.load data if c = this.controller(at)
  setIframe: (iframe, standalone) -> this.setIframe(iframe, standalone); null;
  run: -> this.dispatch()
  destroy: ->
    this.shutdown()
    @$inputor.data('atwho', null)

$.fn.atwho = (method) ->
  _args = arguments
  result = null
  this.filter('textarea, input, [contenteditable=""], [contenteditable=true]').each ->
    if not app = ($this = $ this).data "atwho"
      $this.data 'atwho', (app = new App this)
    if typeof method is 'object' || !method
      app.reg method.at, method
    else if Api[method] and app
      result = Api[method].apply app, Array::slice.call(_args, 1)
    else
      $.error "Method #{method} does not exist on jQuery.caret"
  result || this

$.fn.atwho.default =
  at: undefined
  alias: undefined
  data: null
  tpl: "
${name}
"
  insert_tpl: "${atwho-data-value}"
  callbacks: DEFAULT_CALLBACKS
  search_key: "name"
  suffix: undefined
  hide_without_suffix: no
  start_with_space: yes
  highlight_first: yes
  limit: 5
  max_len: 20
  display_timeout: 300
  delay: null


Prompt:
Api =
  # load a flag's data
  #
  # @params at[String] the flag
  # @params data [Array] data to storage.
  load: (at, data) -> c.model.load data if c = this.controller(at)
  setIframe: (iframe, standalone) -> this.setIframe(iframe, standalone); null;
  run: -> this.dispatch()
  destroy: ->
    this.shutdown()
    @$inputor.data('atwho', null)

$.fn.atwho = (method) ->
  _args = arguments
  result = null
  this.filter('textarea, input, [contenteditable=""], [contenteditable=true]').each ->
    if not app = ($this = $ this).data "atwho"
      $this.data 'atwho', (app = new App this)
    if typeof method is 'object' || !method
      app.reg method.at, method
    else if Api[method] and app

Response:
result = Api[method].apply app, Array::slice.call(_args, 1)
    else
      $.error "Method #{method} does not exist on jQuery.caret"
  result || this

$.fn.atwho.default =
  at: undefined
  alias: undefined
  data: null
  tpl: "
${name}
"
  insert_tpl: "${atwho-data-value}"
  callbacks: DEFAULT_CALLBACKS
  search_key: "name"
  suffix: undefined
  hide_without_suffix: no
  start_with_space: yes
  highlight_first: yes
  limit: 5
  max_len: 20
  display_timeout: 300
  delay: null


Response:
Api =
  # load a flag's data
  #
  # @params at[String] the flag
  # @params data [Array] data to storage.
  load: (at, data) -> c.model.load data if c = this.controller(at)
  setIframe: (iframe) -> this.setIframe(iframe); null;
  run: -> this.dispatch()
  destroy: ->
    this.shutdown()
    @$inputor.data('atwho', null)

$CONTAINER = $("

")

$.fn.atwho = (method) ->
  _args = arguments
  $('body').append($CONTAINER)
  result = null
  this.filter('textarea, input, [contenteditable=""], [contenteditable=true]').each ->
    if not app = ($this = $ this).data "atwho"
      $this.data 'atwho', (app = new App this)
    if typeof method is 'object' || !method
      app.reg method.at, method
    else if Api[method] and app
      result = Api[method].apply app, Array::slice.call(_args, 1)
    else
      $.error "Method #{method} does not exist on jQuery.caret"
  result || this

$.fn.atwho.default =
  at: undefined
  alias: undefined
  data: null
  tpl: "
${name}
"
  insert_tpl: "${atwho-data-value}"
  callbacks: DEFAULT_CALLBACKS
  search_key: "name"
  suffix: undefined
  hide_without_suffix: no
  start_with_space: yes
  highlight_first: yes
  limit: 5
  max_len: 20
  display_timeout: 300
  delay: null


Prompt:
Convert this CoffeeScript to JavaScript.
```coffeescript
Api =
  # load a flag's data
  #
  # @params at[String] the flag
  # @params data [Array] data to storage.
  load: (at, data) -> c.model.load data if c = this.controller(at)
  setIframe: (iframe) -> this.setIframe(iframe); null;
  run: -> this.dispatch()
  destroy: ->
    this.shutdown()
    @$inputor.data('atwho', null)

$CONTAINER = $("<div id='atwho-container'></div>")

$.fn.atwho = (method) ->
  _args = arguments
  $('body').append($CONTAINER)
  result = null
  this.filter('textarea, input, [contenteditable=""], [contenteditable=true]').each ->
    if not app = ($this = $ this).data "atwho"
      $this.data 'atwho', (app = new App this)
    if typeof method is 'object' || !method
      app.reg method.at, method
    else if Api[method] and app
      result = Api[method].apply app, Array::slice.call(_args, 1)
    else
      $.error "Method #{method} does not exist on jQuery.caret"
  result || this

$.fn.atwho.default =
  at: undefined
  alias: undefined
  data: null
  tpl: "<li data-value='${atwho-at}${name}'>${name}</li>"
  insert_tpl: "<span id='${id}'>${atwho-data-value}</span>"
  callbacks: DEFAULT_CALLBACKS
  search_key: "name"
  suffix: undefined
  hide_without_suffix: no
  start_with_space: yes
  highlight_first: yes
  limit: 5
  max_len: 20
  display_timeout: 300
  delay: null
```

Response:
var $CONTAINER, Api;

Api = {
  // load a flag's data

  // @params at[String] the flag
  // @params data [Array] data to storage.
  load: function(at, data) {
    var c;
    if (c = this.controller(at)) {
      return c.model.load(data);
    }
  },
  setIframe: function(iframe) {
    this.setIframe(iframe);
    return null;
  },
  run: function() {
    return this.dispatch();
  },
  destroy: function() {
    this.shutdown();
    return this.$inputor.data('atwho', null);
  }
};

$CONTAINER = $("

");

$.fn.atwho = function(method) {
  var _args, result;
  _args = arguments;
  $('body').append($CONTAINER);
  result = null;
  this.filter('textarea, input, [contenteditable=""], [contenteditable=true]').each(function() {
    var $this, app;
    if (!(app = ($this = $(this)).data("atwho"))) {
      $this.data('atwho', (app = new App(this)));
    }
    if (typeof method === 'object' || !method) {
      return app.reg(method.at, method);
    } else if (Api[method] && app) {
      return result = Api[method].apply(app, Array.prototype.slice.call(_args, 1));
    } else {
      return $.error(`Method ${method} does not exist on jQuery.caret`);
    }
  });
  return result || this;
};

$.fn.atwho.default = {
  at: void 0,
  alias: void 0,
  data: null,
  tpl: "
${name}
",
  insert_tpl: "${atwho-data-value}",
  callbacks: DEFAULT_CALLBACKS,
  search_key: "name",
  suffix: void 0,
  hide_without_suffix: false,
  start_with_space: true,
  highlight_first: true,
  limit: 5,
  max_len: 20,
  display_timeout: 300,
  delay: null
};


Prompt:
Convert this JavaScript to CoffeeScript.
```javascript
var $CONTAINER, Api;

Api = {
  // load a flag's data

  // @params at[String] the flag
  // @params data [Array] data to storage.
  load: function(at, data) {
    var c;
    if (c = this.controller(at)) {
      return c.model.load(data);
    }
  },
  setIframe: function(iframe) {
    this.setIframe(iframe);
    return null;
  },
  run: function() {
    return this.dispatch();
  },
  destroy: function() {
    this.shutdown();
    return this.$inputor.data('atwho', null);
  }
};

$CONTAINER = $("<div id='atwho-container'></div>");

$.fn.atwho = function(method) {
  var _args, result;
  _args = arguments;
  $('body').append($CONTAINER);
  result = null;
  this.filter('textarea, input, [contenteditable=""], [contenteditable=true]').each(function() {
    var $this, app;
    if (!(app = ($this = $(this)).data("atwho"))) {
      $this.data('atwho', (app = new App(this)));
    }
    if (typeof method === 'object' || !method) {
      return app.reg(method.at, method);
    } else if (Api[method] && app) {
      return result = Api[method].apply(app, Array.prototype.slice.call(_args, 1));
    } else {
      return $.error(`Method ${method} does not exist on jQuery.caret`);
    }
  });
  return result || this;
};

$.fn.atwho.default = {
  at: void 0,
  alias: void 0,
  data: null,
  tpl: "<li data-value='${atwho-at}${name}'>${name}</li>",
  insert_tpl: "<span id='${id}'>${atwho-data-value}</span>",
  callbacks: DEFAULT_CALLBACKS,
  search_key: "name",
  suffix: void 0,
  hide_without_suffix: false,
  start_with_space: true,
  highlight_first: true,
  limit: 5,
  max_len: 20,
  display_timeout: 300,
  delay: null
};
```

Response:
Api =
  # load a flag's data
  #
  # @params at[String] the flag
  # @params data [Array] data to storage.
  load: (at, data) -> c.model.load data if c = this.controller(at)
  setIframe: (iframe) -> this.setIframe(iframe); null;
  run: -> this.dispatch()
  destroy: ->
    this.shutdown()
    @$inputor.data('atwho', null)

$CONTAINER = $("

")

$.fn.atwho = (method) ->
  _args = arguments
  $('body').append($CONTAINER)
  result = null
  this.filter('textarea, input, [contenteditable=""], [contenteditable=true]').each ->
    if not app = ($this = $ this).data "atwho"
      $this.data 'atwho', (app = new App this)
    if typeof method is 'object' || !method
      app.reg method.at, method
    else if Api[method] and app
      result = Api[method].apply app, Array::slice.call(_args, 1)
    else
      $.error "Method #{method} does not exist on jQuery.caret"
  result || this

$.fn.atwho.default =
  at: undefined
  alias: undefined
  data: null
  tpl: "
${name}
"
  insert_tpl: "${atwho-data-value}"
  callbacks: DEFAULT_CALLBACKS
  search_key: "name"
  suffix: undefined
  hide_without_suffix: no
  start_with_space: yes
  highlight_first: yes
  limit: 5
  max_len: 20
  display_timeout: 300
  delay: null


Prompt:
Api =
  # load a flag's data
  #
  # @params at[String] the flag
  # @params data [Array] data to storage.
  load: (at, data) -> c.model.load data if c = this.controller(at)
  setIframe: (iframe) -> this.setIframe(iframe); null;
  run: -> this.dispatch()
  destroy: ->
    this.shutdown()
    @$inputor.data('atwho', null)

$CONTAINER = $("

")

$.fn.atwho = (method) ->
  _args = arguments
  $('body').append($CONTAINER)
  result = null
  this.filter('textarea, input, [contenteditable=""], [contenteditable=true]').each ->
    if not app = ($this = $ this).data "atwho"
      $this.data 'atwho', (app = new App this)
    if typeof method is 'object' || !method

Response:
app.reg method.at, method
    else if Api[method] and app
      result = Api[method].apply app, Array::slice.call(_args, 1)
    else
      $.error "Method #{method} does not exist on jQuery.caret"
  result || this

$.fn.atwho.default =
  at: undefined
  alias: undefined
  data: null
  tpl: "
${name}
"
  insert_tpl: "${atwho-data-value}"
  callbacks: DEFAULT_CALLBACKS
  search_key: "name"
  suffix: undefined
  hide_without_suffix: no
  start_with_space: yes
  highlight_first: yes
  limit: 5
  max_len: 20
  display_timeout: 300
  delay: null


Response:
Api =
  # load a flag's data
  #
  # @params at[String] the flag
  # @params data [Array] data to storage.
  load: (at, data) -> c.model.load data if c = this.controller(at)
  setIframe: (iframe) -> this.setIframe(iframe); null;
  run: -> this.dispatch()
  destroy: ->
    this.shutdown()
    @$inputor.data('atwho', null)

$CONTAINER = $("

")

$.fn.atwho = (method) ->
  _args = arguments
  $('body').append($CONTAINER)
  result = null
  this.filter('textarea, input, [contenteditable=true]').each ->
    if not app = ($this = $ this).data "atwho"
      $this.data 'atwho', (app = new App this)
    if typeof method is 'object' || !method
      app.reg method.at, method
    else if Api[method] and app
      result = Api[method].apply app, Array::slice.call(_args, 1)
    else
      $.error "Method #{method} does not exist on jQuery.caret"
  result || this

$.fn.atwho.default =
  at: undefined
  alias: undefined
  data: null
  tpl: "
${name}
"
  insert_tpl: "${atwho-data-value}"
  callbacks: DEFAULT_CALLBACKS
  search_key: "name"
  suffix: undefined
  hide_without_suffix: no
  start_with_space: yes
  highlight_first: yes
  limit: 5
  max_len: 20
  display_timeout: 300
  delay: null


Prompt:
Convert this CoffeeScript to JavaScript.
```coffeescript
Api =
  # load a flag's data
  #
  # @params at[String] the flag
  # @params data [Array] data to storage.
  load: (at, data) -> c.model.load data if c = this.controller(at)
  setIframe: (iframe) -> this.setIframe(iframe); null;
  run: -> this.dispatch()
  destroy: ->
    this.shutdown()
    @$inputor.data('atwho', null)

$CONTAINER = $("<div id='atwho-container'></div>")

$.fn.atwho = (method) ->
  _args = arguments
  $('body').append($CONTAINER)
  result = null
  this.filter('textarea, input, [contenteditable=true]').each ->
    if not app = ($this = $ this).data "atwho"
      $this.data 'atwho', (app = new App this)
    if typeof method is 'object' || !method
      app.reg method.at, method
    else if Api[method] and app
      result = Api[method].apply app, Array::slice.call(_args, 1)
    else
      $.error "Method #{method} does not exist on jQuery.caret"
  result || this

$.fn.atwho.default =
  at: undefined
  alias: undefined
  data: null
  tpl: "<li data-value='${atwho-at}${name}'>${name}</li>"
  insert_tpl: "<span id='${id}'>${atwho-data-value}</span>"
  callbacks: DEFAULT_CALLBACKS
  search_key: "name"
  suffix: undefined
  hide_without_suffix: no
  start_with_space: yes
  highlight_first: yes
  limit: 5
  max_len: 20
  display_timeout: 300
  delay: null
```

Response:
var $CONTAINER, Api;

Api = {
  // load a flag's data

  // @params at[String] the flag
  // @params data [Array] data to storage.
  load: function(at, data) {
    var c;
    if (c = this.controller(at)) {
      return c.model.load(data);
    }
  },
  setIframe: function(iframe) {
    this.setIframe(iframe);
    return null;
  },
  run: function() {
    return this.dispatch();
  },
  destroy: function() {
    this.shutdown();
    return this.$inputor.data('atwho', null);
  }
};

$CONTAINER = $("

");

$.fn.atwho = function(method) {
  var _args, result;
  _args = arguments;
  $('body').append($CONTAINER);
  result = null;
  this.filter('textarea, input, [contenteditable=true]').each(function() {
    var $this, app;
    if (!(app = ($this = $(this)).data("atwho"))) {
      $this.data('atwho', (app = new App(this)));
    }
    if (typeof method === 'object' || !method) {
      return app.reg(method.at, method);
    } else if (Api[method] && app) {
      return result = Api[method].apply(app, Array.prototype.slice.call(_args, 1));
    } else {
      return $.error(`Method ${method} does not exist on jQuery.caret`);
    }
  });
  return result || this;
};

$.fn.atwho.default = {
  at: void 0,
  alias: void 0,
  data: null,
  tpl: "
${name}
",
  insert_tpl: "${atwho-data-value}",
  callbacks: DEFAULT_CALLBACKS,
  search_key: "name",
  suffix: void 0,
  hide_without_suffix: false,
  start_with_space: true,
  highlight_first: true,
  limit: 5,
  max_len: 20,
  display_timeout: 300,
  delay: null
};


Prompt:
Convert this JavaScript to CoffeeScript.
```javascript
var $CONTAINER, Api;

Api = {
  // load a flag's data

  // @params at[String] the flag
  // @params data [Array] data to storage.
  load: function(at, data) {
    var c;
    if (c = this.controller(at)) {
      return c.model.load(data);
    }
  },
  setIframe: function(iframe) {
    this.setIframe(iframe);
    return null;
  },
  run: function() {
    return this.dispatch();
  },
  destroy: function() {
    this.shutdown();
    return this.$inputor.data('atwho', null);
  }
};

$CONTAINER = $("<div id='atwho-container'></div>");

$.fn.atwho = function(method) {
  var _args, result;
  _args = arguments;
  $('body').append($CONTAINER);
  result = null;
  this.filter('textarea, input, [contenteditable=true]').each(function() {
    var $this, app;
    if (!(app = ($this = $(this)).data("atwho"))) {
      $this.data('atwho', (app = new App(this)));
    }
    if (typeof method === 'object' || !method) {
      return app.reg(method.at, method);
    } else if (Api[method] && app) {
      return result = Api[method].apply(app, Array.prototype.slice.call(_args, 1));
    } else {
      return $.error(`Method ${method} does not exist on jQuery.caret`);
    }
  });
  return result || this;
};

$.fn.atwho.default = {
  at: void 0,
  alias: void 0,
  data: null,
  tpl: "<li data-value='${atwho-at}${name}'>${name}</li>",
  insert_tpl: "<span id='${id}'>${atwho-data-value}</span>",
  callbacks: DEFAULT_CALLBACKS,
  search_key: "name",
  suffix: void 0,
  hide_without_suffix: false,
  start_with_space: true,
  highlight_first: true,
  limit: 5,
  max_len: 20,
  display_timeout: 300,
  delay: null
};
```

Response:
Api =
  # load a flag's data
  #
  # @params at[String] the flag
  # @params data [Array] data to storage.
  load: (at, data) -> c.model.load data if c = this.controller(at)
  setIframe: (iframe) -> this.setIframe(iframe); null;
  run: -> this.dispatch()
  destroy: ->
    this.shutdown()
    @$inputor.data('atwho', null)

$CONTAINER = $("

")

$.fn.atwho = (method) ->
  _args = arguments
  $('body').append($CONTAINER)
  result = null
  this.filter('textarea, input, [contenteditable=true]').each ->
    if not app = ($this = $ this).data "atwho"
      $this.data 'atwho', (app = new App this)
    if typeof method is 'object' || !method
      app.reg method.at, method
    else if Api[method] and app
      result = Api[method].apply app, Array::slice.call(_args, 1)
    else
      $.error "Method #{method} does not exist on jQuery.caret"
  result || this

$.fn.atwho.default =
  at: undefined
  alias: undefined
  data: null
  tpl: "
${name}
"
  insert_tpl: "${atwho-data-value}"
  callbacks: DEFAULT_CALLBACKS
  search_key: "name"
  suffix: undefined
  hide_without_suffix: no
  start_with_space: yes
  highlight_first: yes
  limit: 5
  max_len: 20
  display_timeout: 300
  delay: null


Prompt:
Api =
  # load a flag's data
  #
  # @params at[String] the flag
  # @params data [Array] data to storage.
  load: (at, data) -> c.model.load data if c = this.controller(at)
  setIframe: (iframe) -> this.setIframe(iframe); null;
  run: -> this.dispatch()
  destroy: ->
    this.shutdown()
    @$inputor.data('atwho', null)

$CONTAINER = $("

")

$.fn.atwho = (method) ->
  _args = arguments
  $('body').append($CONTAINER)
  result = null
  this.filter('textarea, input, [contenteditable=true]').each ->
    if not app = ($this = $ this).data "atwho"
      $this.data 'atwho', (app = new App this)
    if typeof method is 'object' || !method

Response:
app.reg method.at, method
    else if Api[method] and app
      result = Api[method].apply app, Array::slice.call(_args, 1)
    else
      $.error "Method #{method} does not exist on jQuery.caret"
  result || this

$.fn.atwho.default =
  at: undefined
  alias: undefined
  data: null
  tpl: "
${name}
"
  insert_tpl: "${atwho-data-value}"
  callbacks: DEFAULT_CALLBACKS
  search_key: "name"
  suffix: undefined
  hide_without_suffix: no
  start_with_space: yes
  highlight_first: yes
  limit: 5
  max_len: 20
  display_timeout: 300
  delay: null


Response:
Api =
  # load a flag's data
  #
  # @params at[String] the flag
  # @params data [Array] data to storage.
  load: (at, data) -> c.model.load data if c = this.controller(at)

  getInsertedItemsWithIDs: (at) ->
    return [null, null] unless c = this.controller at
    at = "-#{c.get_opt('alias') || c.at}" if at
    ids = []
    items = $.map @$inputor.find("span.atwho-view-flag#{at || ""}"), (item) ->
      data = $(item).data('atwho-data-item')
      return if ids.indexOf(data.id) > -1
      ids.push = data.id if data.id
      data
    [ids, items]
  getInsertedItems: (at) -> Api.getInsertedItemsWithIDs.apply(this, [at])[1]
  getInsertedIDs: (at) -> Api.getInsertedItemsWithIDs.apply(this, [at])[0]
  setIframe: (iframe) -> this.setIframe(iframe); null;

  run: -> this.dispatch()
  destroy: ->
    this.shutdown()
    @$inputor.data('atwho', null)

$CONTAINER = $("

")

$.fn.atwho = (method) ->
  _args = arguments
  $('body').append($CONTAINER)
  result = null
  this.filter('textarea, input, [contenteditable=true]').each ->
    if not app = ($this = $ this).data "atwho"
      $this.data 'atwho', (app = new App this)
    if typeof method is 'object' || !method
      app.reg method.at, method
    else if Api[method] and app
      result = Api[method].apply app, Array::slice.call(_args, 1)
    else
      $.error "Method #{method} does not exist on jQuery.caret"
  result || this

$.fn.atwho.default =
  at: undefined
  alias: undefined
  data: null
  tpl: "
${name}
"
  insert_tpl: "${atwho-data-value}"
  callbacks: DEFAULT_CALLBACKS


Prompt:
Convert this CoffeeScript to JavaScript.
```coffeescript
Api =
  # load a flag's data
  #
  # @params at[String] the flag
  # @params data [Array] data to storage.
  load: (at, data) -> c.model.load data if c = this.controller(at)

  getInsertedItemsWithIDs: (at) ->
    return [null, null] unless c = this.controller at
    at = "-#{c.get_opt('alias') || c.at}" if at
    ids = []
    items = $.map @$inputor.find("span.atwho-view-flag#{at || ""}"), (item) ->
      data = $(item).data('atwho-data-item')
      return if ids.indexOf(data.id) > -1
      ids.push = data.id if data.id
      data
    [ids, items]
  getInsertedItems: (at) -> Api.getInsertedItemsWithIDs.apply(this, [at])[1]
  getInsertedIDs: (at) -> Api.getInsertedItemsWithIDs.apply(this, [at])[0]
  setIframe: (iframe) -> this.setIframe(iframe); null;

  run: -> this.dispatch()
  destroy: ->
    this.shutdown()
    @$inputor.data('atwho', null)

$CONTAINER = $("<div id='atwho-container'></div>")

$.fn.atwho = (method) ->
  _args = arguments
  $('body').append($CONTAINER)
  result = null
  this.filter('textarea, input, [contenteditable=true]').each ->
    if not app = ($this = $ this).data "atwho"
      $this.data 'atwho', (app = new App this)
    if typeof method is 'object' || !method
      app.reg method.at, method
    else if Api[method] and app
      result = Api[method].apply app, Array::slice.call(_args, 1)
    else
      $.error "Method #{method} does not exist on jQuery.caret"
  result || this

$.fn.atwho.default =
  at: undefined
  alias: undefined
  data: null
  tpl: "<li data-value='${atwho-at}${name}'>${name}</li>"
  insert_tpl: "<span>${atwho-data-value}</span>"
  callbacks: DEFAULT_CALLBACKS
```

Response:
var $CONTAINER, Api;

Api = {
  // load a flag's data

  // @params at[String] the flag
  // @params data [Array] data to storage.
  load: function(at, data) {
    var c;
    if (c = this.controller(at)) {
      return c.model.load(data);
    }
  },
  getInsertedItemsWithIDs: function(at) {
    var c, ids, items;
    if (!(c = this.controller(at))) {
      return [null, null];
    }
    if (at) {
      at = `-${c.get_opt('alias') || c.at}`;
    }
    ids = [];
    items = $.map(this.$inputor.find(`span.atwho-view-flag${at || ""}`), function(item) {
      var data;
      data = $(item).data('atwho-data-item');
      if (ids.indexOf(data.id) > -1) {
        return;
      }
      if (data.id) {
        ids.push = data.id;
      }
      return data;
    });
    return [ids, items];
  },
  getInsertedItems: function(at) {
    return Api.getInsertedItemsWithIDs.apply(this, [at])[1];
  },
  getInsertedIDs: function(at) {
    return Api.getInsertedItemsWithIDs.apply(this, [at])[0];
  },
  setIframe: function(iframe) {
    this.setIframe(iframe);
    return null;
  },
  run: function() {
    return this.dispatch();
  },
  destroy: function() {
    this.shutdown();
    return this.$inputor.data('atwho', null);
  }
};

$CONTAINER = $("

");

$.fn.atwho = function(method) {
  var _args, result;
  _args = arguments;
  $('body').append($CONTAINER);
  result = null;
  this.filter('textarea, input, [contenteditable=true]').each(function() {
    var $this, app;
    if (!(app = ($this = $(this)).data("atwho"))) {
      $this.data('atwho', (app = new App(this)));
    }
    if (typeof method === 'object' || !method) {
      return app.reg(method.at, method);
    } else if (Api[method] && app) {
      return result = Api[method].apply(app, Array.prototype.slice.call(_args, 1));
    } else {
      return $.error(`Method ${method} does not exist on jQuery.caret`);
    }
  });
  return result || this;
};

$.fn.atwho.default = {
  at: void 0,
  alias: void 0,
  data: null,
  tpl: "
${name}
",
  insert_tpl: "${atwho-data-value}",
  callbacks: DEFAULT_CALLBACKS
};


Prompt:
Convert this JavaScript to CoffeeScript.
```javascript
var $CONTAINER, Api;

Api = {
  // load a flag's data

  // @params at[String] the flag
  // @params data [Array] data to storage.
  load: function(at, data) {
    var c;
    if (c = this.controller(at)) {
      return c.model.load(data);
    }
  },
  getInsertedItemsWithIDs: function(at) {
    var c, ids, items;
    if (!(c = this.controller(at))) {
      return [null, null];
    }
    if (at) {
      at = `-${c.get_opt('alias') || c.at}`;
    }
    ids = [];
    items = $.map(this.$inputor.find(`span.atwho-view-flag${at || ""}`), function(item) {
      var data;
      data = $(item).data('atwho-data-item');
      if (ids.indexOf(data.id) > -1) {
        return;
      }
      if (data.id) {
        ids.push = data.id;
      }
      return data;
    });
    return [ids, items];
  },
  getInsertedItems: function(at) {
    return Api.getInsertedItemsWithIDs.apply(this, [at])[1];
  },
  getInsertedIDs: function(at) {
    return Api.getInsertedItemsWithIDs.apply(this, [at])[0];
  },
  setIframe: function(iframe) {
    this.setIframe(iframe);
    return null;
  },
  run: function() {
    return this.dispatch();
  },
  destroy: function() {
    this.shutdown();
    return this.$inputor.data('atwho', null);
  }
};

$CONTAINER = $("<div id='atwho-container'></div>");

$.fn.atwho = function(method) {
  var _args, result;
  _args = arguments;
  $('body').append($CONTAINER);
  result = null;
  this.filter('textarea, input, [contenteditable=true]').each(function() {
    var $this, app;
    if (!(app = ($this = $(this)).data("atwho"))) {
      $this.data('atwho', (app = new App(this)));
    }
    if (typeof method === 'object' || !method) {
      return app.reg(method.at, method);
    } else if (Api[method] && app) {
      return result = Api[method].apply(app, Array.prototype.slice.call(_args, 1));
    } else {
      return $.error(`Method ${method} does not exist on jQuery.caret`);
    }
  });
  return result || this;
};

$.fn.atwho.default = {
  at: void 0,
  alias: void 0,
  data: null,
  tpl: "<li data-value='${atwho-at}${name}'>${name}</li>",
  insert_tpl: "<span>${atwho-data-value}</span>",
  callbacks: DEFAULT_CALLBACKS
};
```

Response:
Api =
  # load a flag's data
  #
  # @params at[String] the flag
  # @params data [Array] data to storage.
  load: (at, data) -> c.model.load data if c = this.controller(at)

  getInsertedItemsWithIDs: (at) ->
    return [null, null] unless c = this.controller at
    at = "-#{c.get_opt('alias') || c.at}" if at
    ids = []
    items = $.map @$inputor.find("span.atwho-view-flag#{at || ""}"), (item) ->
      data = $(item).data('atwho-data-item')
      return if ids.indexOf(data.id) > -1
      ids.push = data.id if data.id
      data
    [ids, items]
  getInsertedItems: (at) -> Api.getInsertedItemsWithIDs.apply(this, [at])[1]
  getInsertedIDs: (at) -> Api.getInsertedItemsWithIDs.apply(this, [at])[0]
  setIframe: (iframe) -> this.setIframe(iframe); null;

  run: -> this.dispatch()
  destroy: ->
    this.shutdown()
    @$inputor.data('atwho', null)

$CONTAINER = $("

")

$.fn.atwho = (method) ->
  _args = arguments
  $('body').append($CONTAINER)
  result = null
  this.filter('textarea, input, [contenteditable=true]').each ->
    if not app = ($this = $ this).data "atwho"
      $this.data 'atwho', (app = new App this)
    if typeof method is 'object' || !method
      app.reg method.at, method
    else if Api[method] and app
      result = Api[method].apply app, Array::slice.call(_args, 1)
    else
      $.error "Method #{method} does not exist on jQuery.caret"
  result || this

$.fn.atwho.default =
  at: undefined
  alias: undefined
  data: null
  tpl: "
${name}
"
  insert_tpl: "${atwho-data-value}"
  callbacks: DEFAULT_CALLBACKS


Prompt:
Api =
  # load a flag's data
  #
  # @params at[String] the flag
  # @params data [Array] data to storage.
  load: (at, data) -> c.model.load data if c = this.controller(at)

  getInsertedItemsWithIDs: (at) ->
    return [null, null] unless c = this.controller at
    at = "-#{c.get_opt('alias') || c.at}" if at
    ids = []
    items = $.map @$inputor.find("span.atwho-view-flag#{at || ""}"), (item) ->
      data = $(item).data('atwho-data-item')
      return if ids.indexOf(data.id) > -1
      ids.push = data.id if data.id
      data
    [ids, items]
  getInsertedItems: (at) -> Api.getInsertedItemsWithIDs.apply(this, [at])[1]
  getInsertedIDs: (at) -> Api.getInsertedItemsWithIDs.apply(this, [at])[0]
  setIframe: (iframe) -> this.setIframe(iframe); null;

  run: -> this.dispatch()
  destroy: ->
    this.shutdown()
    @$inputor.data('atwho', null)

Response:
$CONTAINER = $("

")

$.fn.atwho = (method) ->
  _args = arguments
  $('body').append($CONTAINER)
  result = null
  this.filter('textarea, input, [contenteditable=true]').each ->
    if not app = ($this = $ this).data "atwho"
      $this.data 'atwho', (app = new App this)
    if typeof method is 'object' || !method
      app.reg method.at, method
    else if Api[method] and app
      result = Api[method].apply app, Array::slice.call(_args, 1)
    else
      $.error "Method #{method} does not exist on jQuery.caret"
  result || this

$.fn.atwho.default =
  at: undefined
  alias: undefined
  data: null
  tpl: "
${name}
"
  insert_tpl: "${atwho-data-value}"
  callbacks: DEFAULT_CALLBACKS


Response:
Api =
  # load a flag's data
  #
  # @params at[String] the flag
  # @params data [Array] data to storage.
  load: (at, data) -> c.model.load data if c = this.controller(at)

  getInsertedItemsWithIDs: (at) ->
    return [null, null] unless c = this.controller at
    at = "-#{c.get_opt('alias') || c.at}" if at
    ids = []
    items = $.map @$inputor.find("span.atwho-view-flag#{at || ""}"), (item) ->
      data = $(item).data('atwho-data-item')
      return if ids.indexOf(data.id) > -1
      ids.push = data.id if data.id
      data
    [ids, items]
  getInsertedItems: (at) -> Api.getInsertedItemsWithIDs.apply(this, [at])[1]
  getInsertedIDs: (at) -> Api.getInsertedItemsWithIDs.apply(this, [at])[0]
  setIframe: (iframe) -> this.setIframe(iframe); null;

  run: -> this.dispatch()
  destroy: ->
    this.shutdown()
    @$inputor.data('atwho', null)

$CONTAINER = $("

")

$.fn.atwho = (method) ->
  _args = arguments
  $('body').append($CONTAINER)
  result = null
  this.filter('textarea, input, [contenteditable=true]').each ->
    if not app = ($this = $ this).data "atwho"
      $this.data 'atwho', (app = new App this)
    if typeof method is 'object' || !method
      app.reg method.at, method
    else if Api[method] and app
      result = Api[method].apply app, Array::slice.call(_args, 1)
    else
      $.error "Method #{method} does not exist on jQuery.caret"
  result || this

$.fn.atwho.default =
  at: undefined
  alias: undefined
  space_after: true
  data: null
  tpl: "
${name}
"
  insert_tpl: "${atwho-data-value}"


Prompt:
Convert this CoffeeScript to JavaScript.
```coffeescript
Api =
  # load a flag's data
  #
  # @params at[String] the flag
  # @params data [Array] data to storage.
  load: (at, data) -> c.model.load data if c = this.controller(at)

  getInsertedItemsWithIDs: (at) ->
    return [null, null] unless c = this.controller at
    at = "-#{c.get_opt('alias') || c.at}" if at
    ids = []
    items = $.map @$inputor.find("span.atwho-view-flag#{at || ""}"), (item) ->
      data = $(item).data('atwho-data-item')
      return if ids.indexOf(data.id) > -1
      ids.push = data.id if data.id
      data
    [ids, items]
  getInsertedItems: (at) -> Api.getInsertedItemsWithIDs.apply(this, [at])[1]
  getInsertedIDs: (at) -> Api.getInsertedItemsWithIDs.apply(this, [at])[0]
  setIframe: (iframe) -> this.setIframe(iframe); null;

  run: -> this.dispatch()
  destroy: ->
    this.shutdown()
    @$inputor.data('atwho', null)

$CONTAINER = $("<div id='atwho-container'></div>")

$.fn.atwho = (method) ->
  _args = arguments
  $('body').append($CONTAINER)
  result = null
  this.filter('textarea, input, [contenteditable=true]').each ->
    if not app = ($this = $ this).data "atwho"
      $this.data 'atwho', (app = new App this)
    if typeof method is 'object' || !method
      app.reg method.at, method
    else if Api[method] and app
      result = Api[method].apply app, Array::slice.call(_args, 1)
    else
      $.error "Method #{method} does not exist on jQuery.caret"
  result || this

$.fn.atwho.default =
  at: undefined
  alias: undefined
  space_after: true
  data: null
  tpl: "<li data-value='${atwho-at}${name}'>${name}</li>"
  insert_tpl: "<span>${atwho-data-value}</span>"
```

Response:
var $CONTAINER, Api;

Api = {
  // load a flag's data

  // @params at[String] the flag
  // @params data [Array] data to storage.
  load: function(at, data) {
    var c;
    if (c = this.controller(at)) {
      return c.model.load(data);
    }
  },
  getInsertedItemsWithIDs: function(at) {
    var c, ids, items;
    if (!(c = this.controller(at))) {
      return [null, null];
    }
    if (at) {
      at = `-${c.get_opt('alias') || c.at}`;
    }
    ids = [];
    items = $.map(this.$inputor.find(`span.atwho-view-flag${at || ""}`), function(item) {
      var data;
      data = $(item).data('atwho-data-item');
      if (ids.indexOf(data.id) > -1) {
        return;
      }
      if (data.id) {
        ids.push = data.id;
      }
      return data;
    });
    return [ids, items];
  },
  getInsertedItems: function(at) {
    return Api.getInsertedItemsWithIDs.apply(this, [at])[1];
  },
  getInsertedIDs: function(at) {
    return Api.getInsertedItemsWithIDs.apply(this, [at])[0];
  },
  setIframe: function(iframe) {
    this.setIframe(iframe);
    return null;
  },
  run: function() {
    return this.dispatch();
  },
  destroy: function() {
    this.shutdown();
    return this.$inputor.data('atwho', null);
  }
};

$CONTAINER = $("

");

$.fn.atwho = function(method) {
  var _args, result;
  _args = arguments;
  $('body').append($CONTAINER);
  result = null;
  this.filter('textarea, input, [contenteditable=true]').each(function() {
    var $this, app;
    if (!(app = ($this = $(this)).data("atwho"))) {
      $this.data('atwho', (app = new App(this)));
    }
    if (typeof method === 'object' || !method) {
      return app.reg(method.at, method);
    } else if (Api[method] && app) {
      return result = Api[method].apply(app, Array.prototype.slice.call(_args, 1));
    } else {
      return $.error(`Method ${method} does not exist on jQuery.caret`);
    }
  });
  return result || this;
};

$.fn.atwho.default = {
  at: void 0,
  alias: void 0,
  space_after: true,
  data: null,
  tpl: "
${name}
",
  insert_tpl: "${atwho-data-value}"
};


Prompt:
Convert this JavaScript to CoffeeScript.
```javascript
var $CONTAINER, Api;

Api = {
  // load a flag's data

  // @params at[String] the flag
  // @params data [Array] data to storage.
  load: function(at, data) {
    var c;
    if (c = this.controller(at)) {
      return c.model.load(data);
    }
  },
  getInsertedItemsWithIDs: function(at) {
    var c, ids, items;
    if (!(c = this.controller(at))) {
      return [null, null];
    }
    if (at) {
      at = `-${c.get_opt('alias') || c.at}`;
    }
    ids = [];
    items = $.map(this.$inputor.find(`span.atwho-view-flag${at || ""}`), function(item) {
      var data;
      data = $(item).data('atwho-data-item');
      if (ids.indexOf(data.id) > -1) {
        return;
      }
      if (data.id) {
        ids.push = data.id;
      }
      return data;
    });
    return [ids, items];
  },
  getInsertedItems: function(at) {
    return Api.getInsertedItemsWithIDs.apply(this, [at])[1];
  },
  getInsertedIDs: function(at) {
    return Api.getInsertedItemsWithIDs.apply(this, [at])[0];
  },
  setIframe: function(iframe) {
    this.setIframe(iframe);
    return null;
  },
  run: function() {
    return this.dispatch();
  },
  destroy: function() {
    this.shutdown();
    return this.$inputor.data('atwho', null);
  }
};

$CONTAINER = $("<div id='atwho-container'></div>");

$.fn.atwho = function(method) {
  var _args, result;
  _args = arguments;
  $('body').append($CONTAINER);
  result = null;
  this.filter('textarea, input, [contenteditable=true]').each(function() {
    var $this, app;
    if (!(app = ($this = $(this)).data("atwho"))) {
      $this.data('atwho', (app = new App(this)));
    }
    if (typeof method === 'object' || !method) {
      return app.reg(method.at, method);
    } else if (Api[method] && app) {
      return result = Api[method].apply(app, Array.prototype.slice.call(_args, 1));
    } else {
      return $.error(`Method ${method} does not exist on jQuery.caret`);
    }
  });
  return result || this;
};

$.fn.atwho.default = {
  at: void 0,
  alias: void 0,
  space_after: true,
  data: null,
  tpl: "<li data-value='${atwho-at}${name}'>${name}</li>",
  insert_tpl: "<span>${atwho-data-value}</span>"
};
```

Response:
Api =
  # load a flag's data
  #
  # @params at[String] the flag
  # @params data [Array] data to storage.
  load: (at, data) -> c.model.load data if c = this.controller(at)

  getInsertedItemsWithIDs: (at) ->
    return [null, null] unless c = this.controller at
    at = "-#{c.get_opt('alias') || c.at}" if at
    ids = []
    items = $.map @$inputor.find("span.atwho-view-flag#{at || ""}"), (item) ->
      data = $(item).data('atwho-data-item')
      return if ids.indexOf(data.id) > -1
      ids.push = data.id if data.id
      data
    [ids, items]
  getInsertedItems: (at) -> Api.getInsertedItemsWithIDs.apply(this, [at])[1]
  getInsertedIDs: (at) -> Api.getInsertedItemsWithIDs.apply(this, [at])[0]
  setIframe: (iframe) -> this.setIframe(iframe); null;

  run: -> this.dispatch()
  destroy: ->
    this.shutdown()
    @$inputor.data('atwho', null)

$CONTAINER = $("

")

$.fn.atwho = (method) ->
  _args = arguments
  $('body').append($CONTAINER)
  result = null
  this.filter('textarea, input, [contenteditable=true]').each ->
    if not app = ($this = $ this).data "atwho"
      $this.data 'atwho', (app = new App this)
    if typeof method is 'object' || !method
      app.reg method.at, method
    else if Api[method] and app
      result = Api[method].apply app, Array::slice.call(_args, 1)
    else
      $.error "Method #{method} does not exist on jQuery.caret"
  result || this

$.fn.atwho.default =
  at: undefined
  alias: undefined
  space_after: true
  data: null
  tpl: "
${name}
"
  insert_tpl: "${atwho-data-value}"


Prompt:
Api =
  # load a flag's data
  #
  # @params at[String] the flag
  # @params data [Array] data to storage.
  load: (at, data) -> c.model.load data if c = this.controller(at)

  getInsertedItemsWithIDs: (at) ->
    return [null, null] unless c = this.controller at
    at = "-#{c.get_opt('alias') || c.at}" if at
    ids = []
    items = $.map @$inputor.find("span.atwho-view-flag#{at || ""}"), (item) ->
      data = $(item).data('atwho-data-item')
      return if ids.indexOf(data.id) > -1
      ids.push = data.id if data.id
      data
    [ids, items]
  getInsertedItems: (at) -> Api.getInsertedItemsWithIDs.apply(this, [at])[1]
  getInsertedIDs: (at) -> Api.getInsertedItemsWithIDs.apply(this, [at])[0]
  setIframe: (iframe) -> this.setIframe(iframe); null;

  run: -> this.dispatch()
  destroy: ->
    this.shutdown()
    @$inputor.data('atwho', null)

Response:
$CONTAINER = $("

")

$.fn.atwho = (method) ->
  _args = arguments
  $('body').append($CONTAINER)
  result = null
  this.filter('textarea, input, [contenteditable=true]').each ->
    if not app = ($this = $ this).data "atwho"
      $this.data 'atwho', (app = new App this)
    if typeof method is 'object' || !method
      app.reg method.at, method
    else if Api[method] and app
      result = Api[method].apply app, Array::slice.call(_args, 1)
    else
      $.error "Method #{method} does not exist on jQuery.caret"
  result || this

$.fn.atwho.default =
  at: undefined
  alias: undefined
  space_after: true
  data: null
  tpl: "
${name}
"
  insert_tpl: "${atwho-data-value}"


Response:
Api =
  # load a flag's data
  #
  # @params at[String] the flag
  # @params data [Array] data to storage.
  load: (at, data) -> c.model.load data if c = this.controller(at)

  getInsertedItemsWithIDs: (at) ->
    return [null, null] unless c = this.controller at
    at = "-#{c.get_opt('alias') || c.at}" if at
    ids = []
    items = $.map @$inputor.find("span.atwho-view-flag#{at || ""}"), (item) ->
      data = $(item).data('atwho-data-item')
      return if ids.indexOf(data.id) > -1
      ids.push = data.id if data.id
      data
    [ids, items]
  getInsertedItems: (at) -> Api.getInsertedItemsWithIDs.apply(this, [at])[1]
  getInsertedIDs: (at) -> Api.getInsertedItemsWithIDs.apply(this, [at])[0]
  setIframe: (iframe) -> this.setIframe(iframe)

  run: -> this.dispatch()
  destroy: ->
    this.shutdown()
    @$inputor.data('atwho', null)

Atwho =
  # init or update an inputor with a special flag
  #
  # @params options [Object] settings of At.js
  init: (options) ->
    app = ($this = $(this)).data "atwho"
    $this.data 'atwho', (app = new App(this)) if not app
    app.reg options.at, options
    this

$CONTAINER = $("

")

$.fn.atwho = (method) ->
  _args = arguments
  $('body').append($CONTAINER)
  result = null
  this.filter('textarea, input, [contenteditable=true]').each ->
    if typeof method is 'object' || !method
      Atwho.init.apply this, _args
    else if Api[method]
      result = Api[method].apply app, Array::slice.call(_args, 1) if app = $(this).data('atwho')
    else
      $.error "Method #{method} does not exist on jQuery.caret"
  result || this


Prompt:
Convert this CoffeeScript to JavaScript.
```coffeescript
Api =
  # load a flag's data
  #
  # @params at[String] the flag
  # @params data [Array] data to storage.
  load: (at, data) -> c.model.load data if c = this.controller(at)

  getInsertedItemsWithIDs: (at) ->
    return [null, null] unless c = this.controller at
    at = "-#{c.get_opt('alias') || c.at}" if at
    ids = []
    items = $.map @$inputor.find("span.atwho-view-flag#{at || ""}"), (item) ->
      data = $(item).data('atwho-data-item')
      return if ids.indexOf(data.id) > -1
      ids.push = data.id if data.id
      data
    [ids, items]
  getInsertedItems: (at) -> Api.getInsertedItemsWithIDs.apply(this, [at])[1]
  getInsertedIDs: (at) -> Api.getInsertedItemsWithIDs.apply(this, [at])[0]
  setIframe: (iframe) -> this.setIframe(iframe)

  run: -> this.dispatch()
  destroy: ->
    this.shutdown()
    @$inputor.data('atwho', null)

Atwho =
  # init or update an inputor with a special flag
  #
  # @params options [Object] settings of At.js
  init: (options) ->
    app = ($this = $(this)).data "atwho"
    $this.data 'atwho', (app = new App(this)) if not app
    app.reg options.at, options
    this

$CONTAINER = $("<div id='atwho-container'></div>")

$.fn.atwho = (method) ->
  _args = arguments
  $('body').append($CONTAINER)
  result = null
  this.filter('textarea, input, [contenteditable=true]').each ->
    if typeof method is 'object' || !method
      Atwho.init.apply this, _args
    else if Api[method]
      result = Api[method].apply app, Array::slice.call(_args, 1) if app = $(this).data('atwho')
    else
      $.error "Method #{method} does not exist on jQuery.caret"
  result || this
```

Response:
var $CONTAINER, Api, Atwho;

Api = {
  // load a flag's data

  // @params at[String] the flag
  // @params data [Array] data to storage.
  load: function(at, data) {
    var c;
    if (c = this.controller(at)) {
      return c.model.load(data);
    }
  },
  getInsertedItemsWithIDs: function(at) {
    var c, ids, items;
    if (!(c = this.controller(at))) {
      return [null, null];
    }
    if (at) {
      at = `-${c.get_opt('alias') || c.at}`;
    }
    ids = [];
    items = $.map(this.$inputor.find(`span.atwho-view-flag${at || ""}`), function(item) {
      var data;
      data = $(item).data('atwho-data-item');
      if (ids.indexOf(data.id) > -1) {
        return;
      }
      if (data.id) {
        ids.push = data.id;
      }
      return data;
    });
    return [ids, items];
  },
  getInsertedItems: function(at) {
    return Api.getInsertedItemsWithIDs.apply(this, [at])[1];
  },
  getInsertedIDs: function(at) {
    return Api.getInsertedItemsWithIDs.apply(this, [at])[0];
  },
  setIframe: function(iframe) {
    return this.setIframe(iframe);
  },
  run: function() {
    return this.dispatch();
  },
  destroy: function() {
    this.shutdown();
    return this.$inputor.data('atwho', null);
  }
};

Atwho = {
  // init or update an inputor with a special flag

  // @params options [Object] settings of At.js
  init: function(options) {
    var $this, app;
    app = ($this = $(this)).data("atwho");
    if (!app) {
      $this.data('atwho', (app = new App(this)));
    }
    app.reg(options.at, options);
    return this;
  }
};

$CONTAINER = $("

");

$.fn.atwho = function(method) {
  var _args, result;
  _args = arguments;
  $('body').append($CONTAINER);
  result = null;
  this.filter('textarea, input, [contenteditable=true]').each(function() {
    var app;
    if (typeof method === 'object' || !method) {
      return Atwho.init.apply(this, _args);
    } else if (Api[method]) {
      if (app = $(this).data('atwho')) {
        return result = Api[method].apply(app, Array.prototype.slice.call(_args, 1));
      }
    } else {
      return $.error(`Method ${method} does not exist on jQuery.caret`);
    }
  });
  return result || this;
};


Prompt:
Convert this JavaScript to CoffeeScript.
```javascript
var $CONTAINER, Api, Atwho;

Api = {
  // load a flag's data

  // @params at[String] the flag
  // @params data [Array] data to storage.
  load: function(at, data) {
    var c;
    if (c = this.controller(at)) {
      return c.model.load(data);
    }
  },
  getInsertedItemsWithIDs: function(at) {
    var c, ids, items;
    if (!(c = this.controller(at))) {
      return [null, null];
    }
    if (at) {
      at = `-${c.get_opt('alias') || c.at}`;
    }
    ids = [];
    items = $.map(this.$inputor.find(`span.atwho-view-flag${at || ""}`), function(item) {
      var data;
      data = $(item).data('atwho-data-item');
      if (ids.indexOf(data.id) > -1) {
        return;
      }
      if (data.id) {
        ids.push = data.id;
      }
      return data;
    });
    return [ids, items];
  },
  getInsertedItems: function(at) {
    return Api.getInsertedItemsWithIDs.apply(this, [at])[1];
  },
  getInsertedIDs: function(at) {
    return Api.getInsertedItemsWithIDs.apply(this, [at])[0];
  },
  setIframe: function(iframe) {
    return this.setIframe(iframe);
  },
  run: function() {
    return this.dispatch();
  },
  destroy: function() {
    this.shutdown();
    return this.$inputor.data('atwho', null);
  }
};

Atwho = {
  // init or update an inputor with a special flag

  // @params options [Object] settings of At.js
  init: function(options) {
    var $this, app;
    app = ($this = $(this)).data("atwho");
    if (!app) {
      $this.data('atwho', (app = new App(this)));
    }
    app.reg(options.at, options);
    return this;
  }
};

$CONTAINER = $("<div id='atwho-container'></div>");

$.fn.atwho = function(method) {
  var _args, result;
  _args = arguments;
  $('body').append($CONTAINER);
  result = null;
  this.filter('textarea, input, [contenteditable=true]').each(function() {
    var app;
    if (typeof method === 'object' || !method) {
      return Atwho.init.apply(this, _args);
    } else if (Api[method]) {
      if (app = $(this).data('atwho')) {
        return result = Api[method].apply(app, Array.prototype.slice.call(_args, 1));
      }
    } else {
      return $.error(`Method ${method} does not exist on jQuery.caret`);
    }
  });
  return result || this;
};
```

Response:
Api =
  # load a flag's data
  #
  # @params at[String] the flag
  # @params data [Array] data to storage.
  load: (at, data) -> c.model.load data if c = this.controller(at)

  getInsertedItemsWithIDs: (at) ->
    return [null, null] unless c = this.controller at
    at = "-#{c.get_opt('alias') || c.at}" if at
    ids = []
    items = $.map @$inputor.find("span.atwho-view-flag#{at || ""}"), (item) ->
      data = $(item).data('atwho-data-item')
      return if ids.indexOf(data.id) > -1
      ids.push = data.id if data.id
      data
    [ids, items]
  getInsertedItems: (at) -> Api.getInsertedItemsWithIDs.apply(this, [at])[1]
  getInsertedIDs: (at) -> Api.getInsertedItemsWithIDs.apply(this, [at])[0]
  setIframe: (iframe) -> this.setIframe(iframe)

  run: -> this.dispatch()
  destroy: ->
    this.shutdown()
    @$inputor.data('atwho', null)

Atwho =
  # init or update an inputor with a special flag
  #
  # @params options [Object] settings of At.js
  init: (options) ->
    app = ($this = $(this)).data "atwho"
    $this.data 'atwho', (app = new App(this)) if not app
    app.reg options.at, options
    this

$CONTAINER = $("

")

$.fn.atwho = (method) ->
  _args = arguments
  $('body').append($CONTAINER)
  result = null
  this.filter('textarea, input, [contenteditable=true]').each ->
    if typeof method is 'object' || !method
      Atwho.init.apply this, _args
    else if Api[method]
      result = Api[method].apply app, Array::slice.call(_args, 1) if app = $(this).data('atwho')
    else
      $.error "Method #{method} does not exist on jQuery.caret"
  result || this


Prompt:
Api =
  # load a flag's data
  #
  # @params at[String] the flag
  # @params data [Array] data to storage.
  load: (at, data) -> c.model.load data if c = this.controller(at)

  getInsertedItemsWithIDs: (at) ->
    return [null, null] unless c = this.controller at
    at = "-#{c.get_opt('alias') || c.at}" if at
    ids = []
    items = $.map @$inputor.find("span.atwho-view-flag#{at || ""}"), (item) ->
      data = $(item).data('atwho-data-item')
      return if ids.indexOf(data.id) > -1
      ids.push = data.id if data.id
      data
    [ids, items]
  getInsertedItems: (at) -> Api.getInsertedItemsWithIDs.apply(this, [at])[1]
  getInsertedIDs: (at) -> Api.getInsertedItemsWithIDs.apply(this, [at])[0]
  setIframe: (iframe) -> this.setIframe(iframe)

  run: -> this.dispatch()
  destroy: ->
    this.shutdown()
    @$inputor.data('atwho', null)

Response:
Atwho =
  # init or update an inputor with a special flag
  #
  # @params options [Object] settings of At.js
  init: (options) ->
    app = ($this = $(this)).data "atwho"
    $this.data 'atwho', (app = new App(this)) if not app
    app.reg options.at, options
    this

$CONTAINER = $("

")

$.fn.atwho = (method) ->
  _args = arguments
  $('body').append($CONTAINER)
  result = null
  this.filter('textarea, input, [contenteditable=true]').each ->
    if typeof method is 'object' || !method
      Atwho.init.apply this, _args
    else if Api[method]
      result = Api[method].apply app, Array::slice.call(_args, 1) if app = $(this).data('atwho')
    else
      $.error "Method #{method} does not exist on jQuery.caret"
  result || this


Response:
Api =
  # load a flag's data
  #
  # @params at[String] the flag
  # @params data [Array] data to storage.
  load: (at, data) -> c.model.load data if c = this.controller(at)

  getInsertedItemsWithIDs: (at) ->
    return [null, null] unless c = this.controller at
    at = "-#{c.get_opt('alias') || c.at}" if at
    ids = []
    items = $.map @$inputor.find("span.atwho-view-flag#{at || ""}"), (item) ->
      data = $(item).data('atwho-data-item')
      return if ids.indexOf(data.id) > -1
      ids.push = data.id if data.id
      data
    [ids, items]
  getInsertedItems: (at) -> Api.getInsertedItemsWithIDs.apply(this, [at])[1]
  getInsertedIDs: (at) -> Api.getInsertedItemsWithIDs.apply(this, [at])[0]

  run: -> this.dispatch()
  destroy: ->
    this.shutdown()
    @$inputor.data('atwho', null)

Atwho =
  # init or update an inputor with a special flag
  #
  # @params options [Object] settings of At.js
  init: (options) ->
    app = ($this = $(this)).data "atwho"
    $this.data 'atwho', (app = new App(this)) if not app
    app.reg options.at, options
    this

$CONTAINER = $("

")

$.fn.atwho = (method) ->
  _args = arguments
  $('body').append($CONTAINER)
  result = null
  this.filter('textarea, input, [contenteditable=true]').each ->
    if typeof method is 'object' || !method
      Atwho.init.apply this, _args
    else if Api[method]
      result = Api[method].apply app, Array::slice.call(_args, 1) if app = $(this).data('atwho')
    else
      $.error "Method #{method} does not exist on jQuery.caret"
  result || this


Prompt:
Convert this CoffeeScript to JavaScript.
```coffeescript
Api =
  # load a flag's data
  #
  # @params at[String] the flag
  # @params data [Array] data to storage.
  load: (at, data) -> c.model.load data if c = this.controller(at)

  getInsertedItemsWithIDs: (at) ->
    return [null, null] unless c = this.controller at
    at = "-#{c.get_opt('alias') || c.at}" if at
    ids = []
    items = $.map @$inputor.find("span.atwho-view-flag#{at || ""}"), (item) ->
      data = $(item).data('atwho-data-item')
      return if ids.indexOf(data.id) > -1
      ids.push = data.id if data.id
      data
    [ids, items]
  getInsertedItems: (at) -> Api.getInsertedItemsWithIDs.apply(this, [at])[1]
  getInsertedIDs: (at) -> Api.getInsertedItemsWithIDs.apply(this, [at])[0]

  run: -> this.dispatch()
  destroy: ->
    this.shutdown()
    @$inputor.data('atwho', null)

Atwho =
  # init or update an inputor with a special flag
  #
  # @params options [Object] settings of At.js
  init: (options) ->
    app = ($this = $(this)).data "atwho"
    $this.data 'atwho', (app = new App(this)) if not app
    app.reg options.at, options
    this

$CONTAINER = $("<div id='atwho-container'></div>")

$.fn.atwho = (method) ->
  _args = arguments
  $('body').append($CONTAINER)
  result = null
  this.filter('textarea, input, [contenteditable=true]').each ->
    if typeof method is 'object' || !method
      Atwho.init.apply this, _args
    else if Api[method]
      result = Api[method].apply app, Array::slice.call(_args, 1) if app = $(this).data('atwho')
    else
      $.error "Method #{method} does not exist on jQuery.caret"
  result || this
```

Response:
var $CONTAINER, Api, Atwho;

Api = {
  // load a flag's data

  // @params at[String] the flag
  // @params data [Array] data to storage.
  load: function(at, data) {
    var c;
    if (c = this.controller(at)) {
      return c.model.load(data);
    }
  },
  getInsertedItemsWithIDs: function(at) {
    var c, ids, items;
    if (!(c = this.controller(at))) {
      return [null, null];
    }
    if (at) {
      at = `-${c.get_opt('alias') || c.at}`;
    }
    ids = [];
    items = $.map(this.$inputor.find(`span.atwho-view-flag${at || ""}`), function(item) {
      var data;
      data = $(item).data('atwho-data-item');
      if (ids.indexOf(data.id) > -1) {
        return;
      }
      if (data.id) {
        ids.push = data.id;
      }
      return data;
    });
    return [ids, items];
  },
  getInsertedItems: function(at) {
    return Api.getInsertedItemsWithIDs.apply(this, [at])[1];
  },
  getInsertedIDs: function(at) {
    return Api.getInsertedItemsWithIDs.apply(this, [at])[0];
  },
  run: function() {
    return this.dispatch();
  },
  destroy: function() {
    this.shutdown();
    return this.$inputor.data('atwho', null);
  }
};

Atwho = {
  // init or update an inputor with a special flag

  // @params options [Object] settings of At.js
  init: function(options) {
    var $this, app;
    app = ($this = $(this)).data("atwho");
    if (!app) {
      $this.data('atwho', (app = new App(this)));
    }
    app.reg(options.at, options);
    return this;
  }
};

$CONTAINER = $("

");

$.fn.atwho = function(method) {
  var _args, result;
  _args = arguments;
  $('body').append($CONTAINER);
  result = null;
  this.filter('textarea, input, [contenteditable=true]').each(function() {
    var app;
    if (typeof method === 'object' || !method) {
      return Atwho.init.apply(this, _args);
    } else if (Api[method]) {
      if (app = $(this).data('atwho')) {
        return result = Api[method].apply(app, Array.prototype.slice.call(_args, 1));
      }
    } else {
      return $.error(`Method ${method} does not exist on jQuery.caret`);
    }
  });
  return result || this;
};


Prompt:
Convert this JavaScript to CoffeeScript.
```javascript
var $CONTAINER, Api, Atwho;

Api = {
  // load a flag's data

  // @params at[String] the flag
  // @params data [Array] data to storage.
  load: function(at, data) {
    var c;
    if (c = this.controller(at)) {
      return c.model.load(data);
    }
  },
  getInsertedItemsWithIDs: function(at) {
    var c, ids, items;
    if (!(c = this.controller(at))) {
      return [null, null];
    }
    if (at) {
      at = `-${c.get_opt('alias') || c.at}`;
    }
    ids = [];
    items = $.map(this.$inputor.find(`span.atwho-view-flag${at || ""}`), function(item) {
      var data;
      data = $(item).data('atwho-data-item');
      if (ids.indexOf(data.id) > -1) {
        return;
      }
      if (data.id) {
        ids.push = data.id;
      }
      return data;
    });
    return [ids, items];
  },
  getInsertedItems: function(at) {
    return Api.getInsertedItemsWithIDs.apply(this, [at])[1];
  },
  getInsertedIDs: function(at) {
    return Api.getInsertedItemsWithIDs.apply(this, [at])[0];
  },
  run: function() {
    return this.dispatch();
  },
  destroy: function() {
    this.shutdown();
    return this.$inputor.data('atwho', null);
  }
};

Atwho = {
  // init or update an inputor with a special flag

  // @params options [Object] settings of At.js
  init: function(options) {
    var $this, app;
    app = ($this = $(this)).data("atwho");
    if (!app) {
      $this.data('atwho', (app = new App(this)));
    }
    app.reg(options.at, options);
    return this;
  }
};

$CONTAINER = $("<div id='atwho-container'></div>");

$.fn.atwho = function(method) {
  var _args, result;
  _args = arguments;
  $('body').append($CONTAINER);
  result = null;
  this.filter('textarea, input, [contenteditable=true]').each(function() {
    var app;
    if (typeof method === 'object' || !method) {
      return Atwho.init.apply(this, _args);
    } else if (Api[method]) {
      if (app = $(this).data('atwho')) {
        return result = Api[method].apply(app, Array.prototype.slice.call(_args, 1));
      }
    } else {
      return $.error(`Method ${method} does not exist on jQuery.caret`);
    }
  });
  return result || this;
};
```

Response:
Api =
  # load a flag's data
  #
  # @params at[String] the flag
  # @params data [Array] data to storage.
  load: (at, data) -> c.model.load data if c = this.controller(at)

  getInsertedItemsWithIDs: (at) ->
    return [null, null] unless c = this.controller at
    at = "-#{c.get_opt('alias') || c.at}" if at
    ids = []
    items = $.map @$inputor.find("span.atwho-view-flag#{at || ""}"), (item) ->
      data = $(item).data('atwho-data-item')
      return if ids.indexOf(data.id) > -1
      ids.push = data.id if data.id
      data
    [ids, items]
  getInsertedItems: (at) -> Api.getInsertedItemsWithIDs.apply(this, [at])[1]
  getInsertedIDs: (at) -> Api.getInsertedItemsWithIDs.apply(this, [at])[0]

  run: -> this.dispatch()
  destroy: ->
    this.shutdown()
    @$inputor.data('atwho', null)

Atwho =
  # init or update an inputor with a special flag
  #
  # @params options [Object] settings of At.js
  init: (options) ->
    app = ($this = $(this)).data "atwho"
    $this.data 'atwho', (app = new App(this)) if not app
    app.reg options.at, options
    this

$CONTAINER = $("

")

$.fn.atwho = (method) ->
  _args = arguments
  $('body').append($CONTAINER)
  result = null
  this.filter('textarea, input, [contenteditable=true]').each ->
    if typeof method is 'object' || !method
      Atwho.init.apply this, _args
    else if Api[method]
      result = Api[method].apply app, Array::slice.call(_args, 1) if app = $(this).data('atwho')
    else
      $.error "Method #{method} does not exist on jQuery.caret"
  result || this


Prompt:
Api =
  # load a flag's data
  #
  # @params at[String] the flag
  # @params data [Array] data to storage.
  load: (at, data) -> c.model.load data if c = this.controller(at)

  getInsertedItemsWithIDs: (at) ->
    return [null, null] unless c = this.controller at
    at = "-#{c.get_opt('alias') || c.at}" if at
    ids = []
    items = $.map @$inputor.find("span.atwho-view-flag#{at || ""}"), (item) ->
      data = $(item).data('atwho-data-item')
      return if ids.indexOf(data.id) > -1
      ids.push = data.id if data.id
      data
    [ids, items]
  getInsertedItems: (at) -> Api.getInsertedItemsWithIDs.apply(this, [at])[1]
  getInsertedIDs: (at) -> Api.getInsertedItemsWithIDs.apply(this, [at])[0]

  run: -> this.dispatch()
  destroy: ->
    this.shutdown()
    @$inputor.data('atwho', null)

Response:
Atwho =
  # init or update an inputor with a special flag
  #
  # @params options [Object] settings of At.js
  init: (options) ->
    app = ($this = $(this)).data "atwho"
    $this.data 'atwho', (app = new App(this)) if not app
    app.reg options.at, options
    this

$CONTAINER = $("

")

$.fn.atwho = (method) ->
  _args = arguments
  $('body').append($CONTAINER)
  result = null
  this.filter('textarea, input, [contenteditable=true]').each ->
    if typeof method is 'object' || !method
      Atwho.init.apply this, _args
    else if Api[method]
      result = Api[method].apply app, Array::slice.call(_args, 1) if app = $(this).data('atwho')
    else
      $.error "Method #{method} does not exist on jQuery.caret"
  result || this


Response:
Api =
  # load a flag's data
  #
  # @params at[String] the flag
  # @params data [Array] data to storage.
  load: (at, data) -> c.model.load data if c = this.controller(at)

  getInsertedItemsWithIDs: (at) ->
    return [null, null] unless c = this.controller at
    at = "-#{c.get_opt('alias') || c.at}" if at
    ids = []
    items = $.map @$inputor.find("span.atwho-view-flag#{at || ""}"), (item) ->
      data = $(item).data('atwho-data-item')
      return if ids.indexOf(data.id) > -1
      ids.push = data.id if data.id
      data
    [ids, items]
  getInsertedItems: (at) -> Api.getInsertedItemsWithIDs.apply(this, [at])[1]
  getInsertedIDs: (at) -> Api.getInsertedItemsWithIDs.apply(this, [at])[0]

  run: -> this.dispatch()

Atwho =
  # init or update an inputor with a special flag
  #
  # @params options [Object] settings of At.js
  init: (options) ->
    app = ($this = $(this)).data "atwho"
    $this.data 'atwho', (app = new App(this)) if not app
    app.reg options.at, options
    this

$CONTAINER = $("

")

$.fn.atwho = (method) ->
  _args = arguments
  $('body').append($CONTAINER)
  result = null
  this.filter('textarea, input, [contenteditable=true]').each ->
    if typeof method is 'object' || !method
      Atwho.init.apply this, _args
    else if Api[method]
      result = Api[method].apply app, Array::slice.call(_args, 1) if app = $(this).data('atwho')
    else
      $.error "Method #{method} does not exist on jQuery.caret"
  result || this

$.fn.atwho.default =
  at: undefined
  alias: undefined