Skip to content

Instantly share code, notes, and snippets.

@thecodejack
Forked from doginthehat/gist:1890659
Last active August 29, 2015 14:04
Show Gist options
  • Select an option

  • Save thecodejack/a8de97f4ec410ea23722 to your computer and use it in GitHub Desktop.

Select an option

Save thecodejack/a8de97f4ec410ea23722 to your computer and use it in GitHub Desktop.

Revisions

  1. thecodejack revised this gist Aug 5, 2014. 1 changed file with 3 additions and 1 deletion.
    4 changes: 3 additions & 1 deletion gistfile1.js
    Original file line number Diff line number Diff line change
    @@ -29,7 +29,9 @@

    if (!operators[operator])
    throw new Error("Handlerbars Helper 'compare' doesn't know the operator "+operator);


    lvalue = Ember.Handlebars.get(this,lvalue, options);
    rvalue = Ember.Handlebars.get(this,rvalue, options);
    var result = operators[operator](lvalue,rvalue);

    if( result ) {
  2. @doginthehat doginthehat created this gist Feb 23, 2012.
    41 changes: 41 additions & 0 deletions gistfile1.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,41 @@
    // {{compare unicorns ponies operator="<"}}
    // I knew it, unicorns are just low-quality ponies!
    // {{/compare}}
    //
    // (defaults to == if operator omitted)
    //
    // {{equal unicorns ponies }}
    // That's amazing, unicorns are actually undercover ponies
    // {{/equal}}
    // (from http://doginthehat.com.au/2012/02/comparison-block-helper-for-handlebars-templates/)

    Handlebars.registerHelper('compare', function(lvalue, rvalue, options) {

    if (arguments.length < 3)
    throw new Error("Handlerbars Helper 'compare' needs 2 parameters");

    operator = options.hash.operator || "==";

    var operators = {
    '==': function(l,r) { return l == r; },
    '===': function(l,r) { return l === r; },
    '!=': function(l,r) { return l != r; },
    '<': function(l,r) { return l < r; },
    '>': function(l,r) { return l > r; },
    '<=': function(l,r) { return l <= r; },
    '>=': function(l,r) { return l >= r; },
    'typeof': function(l,r) { return typeof l == r; }
    }

    if (!operators[operator])
    throw new Error("Handlerbars Helper 'compare' doesn't know the operator "+operator);

    var result = operators[operator](lvalue,rvalue);

    if( result ) {
    return options.fn(this);
    } else {
    return options.inverse(this);
    }

    });