From f9fe221e9a989cf3c1079cd0a46d93a668caa6e7 Mon Sep 17 00:00:00 2001 From: Robert Jackson Date: Wed, 5 Nov 2014 07:39:45 -0500 Subject: [PATCH] Use standard Ember.Handlebars.registerBoundHelper. No need for the custom Ember.registerBoundHelper implementation. --- assets/scripts/app/helpers/handlebars.coffee | 16 ++--- assets/scripts/lib/ext/ember/bound_helper.js | 68 -------------------- 2 files changed, 7 insertions(+), 77 deletions(-) delete mode 100644 assets/scripts/lib/ext/ember/bound_helper.js diff --git a/assets/scripts/app/helpers/handlebars.coffee b/assets/scripts/app/helpers/handlebars.coffee index bc555d96..c10bf131 100644 --- a/assets/scripts/app/helpers/handlebars.coffee +++ b/assets/scripts/app/helpers/handlebars.coffee @@ -1,5 +1,3 @@ -require 'ext/ember/bound_helper' - safe = (string) -> new Handlebars.SafeString(string) @@ -125,7 +123,7 @@ Ember.Handlebars.helper('travis-errors', (name, options) -> Handlebars.registerHelper 'tipsy', (text, tip) -> safe '' + text + '' -Ember.registerBoundHelper 'capitalize', (value, options) -> +Ember.Handlebars.registerBoundHelper 'capitalize', (value, options) -> if value? safe $.capitalize(value) else @@ -140,10 +138,10 @@ Ember.Handlebars.helper('githubCommitLink', (slug, commitSha) -> safe '' + sha + '' ) -Ember.registerBoundHelper 'formatTime', (value, options) -> +Ember.Handlebars.registerBoundHelper 'formatTime', (value, options) -> safe Travis.Helpers.timeAgoInWords(value) || '-' -Ember.registerBoundHelper 'formatDuration', (duration, options) -> +Ember.Handlebars.registerBoundHelper 'formatDuration', (duration, options) -> safe Travis.Helpers.timeInWords(duration) Ember.Handlebars.helper('formatCommit', (commit) -> @@ -153,16 +151,16 @@ Ember.Handlebars.helper('formatCommit', (commit) -> Ember.Handlebars.helper 'formatSha', (sha) -> safe Travis.Helpers.formatSha(sha) -Ember.registerBoundHelper 'pathFrom', (url, options) -> +Ember.Handlebars.registerBoundHelper 'pathFrom', (url, options) -> safe Travis.Helpers.pathFrom(url) Ember.Handlebars.helper 'formatMessage', (message, options) -> safe Travis.Helpers.formatMessage(message, options.hash) -Ember.registerBoundHelper 'formatConfig', (config, options) -> +Ember.Handlebars.registerBoundHelper 'formatConfig', (config, options) -> safe Travis.Helpers.formatConfig(config) -Ember.registerBoundHelper 'shortCompareShas', (url, options) -> +Ember.Handlebars.registerBoundHelper 'shortCompareShas', (url, options) -> path = Travis.Helpers.pathFrom(url) if path.indexOf('...') >= 0 shas = path.split('...') @@ -170,7 +168,7 @@ Ember.registerBoundHelper 'shortCompareShas', (url, options) -> else path -Ember.registerBoundHelper 'formatLog', (log, options) -> +Ember.Handlebars.registerBoundHelper 'formatLog', (log, options) -> parentView = @get 'parentView' repo = parentView.get(options.repo) item = parentView.get(options.item) diff --git a/assets/scripts/lib/ext/ember/bound_helper.js b/assets/scripts/lib/ext/ember/bound_helper.js deleted file mode 100644 index 6b6fe699..00000000 --- a/assets/scripts/lib/ext/ember/bound_helper.js +++ /dev/null @@ -1,68 +0,0 @@ -// https://gist.github.com/2018185 -// For reference: https://github.com/wagenet/ember.js/blob/ac66dcb8a1cbe91d736074441f853e0da474ee6e/packages/ember-handlebars/lib/views/bound_property_view.js -var BoundHelperView = Ember.View.extend(Ember._Metamorph, { - - context: null, - options: null, - property: null, - // paths of the property that are also observed - propertyPaths: [], - - value: Ember.K, - - valueForRender: function() { - var value = this.value(Ember.get(this.context, this.property), this.options); - if (this.options.escaped) { value = Handlebars.Utils.escapeExpression(value); } - return value; - }, - - render: function(buffer) { - buffer.push(this.valueForRender()); - }, - - valueDidChange: function() { - if (this.morph.isRemoved()) { return; } - this.morph.html(this.valueForRender()); - }, - - didInsertElement: function() { - this.valueDidChange(); - }, - - init: function() { - this._super(); - Ember.addObserver(this.context, this.property, this, 'valueDidChange'); - this.get('propertyPaths').forEach(function(propName) { - Ember.addObserver(this.context, this.property + '.' + propName, this, 'valueDidChange'); - }, this); - }, - - destroy: function() { - Ember.removeObserver(this.context, this.property, this, 'valueDidChange'); - this.get('propertyPaths').forEach(function(propName) { - this.context.removeObserver(this.property + '.' + propName, this, 'valueDidChange'); - }, this); - this._super(); - } - -}); - -Ember.registerBoundHelper = function(name, func) { - var propertyPaths = Array.prototype.slice.call(arguments, 2); - Ember.Handlebars.registerHelper(name, function(property, options) { - var data = options.data, - view = data.view, - ctx = this; - - var bindView = view.createChildView(BoundHelperView, { - property: property, - propertyPaths: propertyPaths, - context: ctx, - options: options.hash, - value: func - }); - - view.appendChild(bindView); - }); -}; -