to_b

by alr3

HTML

<div id="results"></div>

CSS

#results div { width: 80%; clear: both; padding: 5px; margin:3px; border: #eee 1px solid; }
.pass { background-color: #C4FFC3; }
.fail { background-color: #FF7E7E; }

JavaScript

/// Converts a value of any supported type into a true boolean 
///    Supported Type: [string, int, int as string]
function to_b(some_boolean) {        
    var parsed_bool = null;
    //console.log(typeof(some_boolean));
    
    if (typeof(some_boolean) === 'boolean') {
        parsed_bool = some_boolean === true ? true
            : some_boolean === false ? false
                : null;
    } else if (typeof(some_boolean) === 'string') {
        parsed_bool = some_boolean.toLowerCase() === 'true' ? true
            : some_boolean.toLowerCase() === 'false' ? false
                : some_boolean.toLowerCase() === '0' ? false
                    : some_boolean.toLowerCase() === '1' ? true 
                        : null;
    } else if (typeof(some_boolean) === 'number') {
        parsed_bool = some_boolean === 0 ? false
            : some_boolean === 1 ? true
                : null;
    } else if (typeof(some_boolean) === 'function') {
        var args = [].splice.call(arguments,0);
        args.splice(0, 1);
        
        var func_result = some_boolean.apply(this, args);
        
        parsed_bool = to_b(func_result);
    }
    
    return parsed_bool;
}

function a(is_good, txt) {
    //console.log(is_good.toString() + ' ' + txt);
    $('#results').append('<div class="' + (is_good ? 'pass' : 'fail') + '">' + txt + '</div>');
}



//TEST Functions

function subtract_me(a, b) {
    //console.log(this + ' subtract_me ' + arguments.length.toString());
    return a - b;
}




//RUN TESTS
$(function() {
    var test_var = to_b('true');
    a(test_var === true, 'Should be true: ' + test_var);
    
    
    var test_var = to_b('True');
    a(test_var === true, 'Should be true: ' + test_var);
    
    
    test_var = to_b('1');
    a(test_var === true,'Should be true: ' + test_var);
    
    
    test_var = to_b(1);
    a(test_var === true,'Should be true: ' + test_var);
    
    
    test_var = to_b('false');
    a(test_var === false,'Should be false: ' +...