Sha256: 68132ae4f2a6e19cc33c0003eb06d69779dae9e8593f0058bbdd618ef72ab42a

Contents?: true

Size: 1.66 KB

Versions: 8

Compression:

Stored size: 1.66 KB

Contents

var CucumberJsDsl = {
  registerStepDefinition: function(regexp, func) {
    if(func == null){
      jsLanguage.executeStepDefinition(regexp);
    }
    else{
      jsLanguage.addStepDefinition(regexp, func);
    }
  },

  registerTransform: function(regexp, func){
    jsLanguage.registerJsTransform(regexp, func);
  },

  beforeHook: function(tag_or_func, func){
    CucumberJsDsl.__registerJsHook('before', tag_or_func, func);
  },

  afterHook: function(tag_or_func, func){
    CucumberJsDsl.__registerJsHook('after', tag_or_func, func);
  },

  Table: function(raw_table){
     this.raw = raw_table;
  },

  __registerJsHook: function(label, tag_or_func, func){
    if(func != null){
      var hook_func = func;
      var tag = tag_or_func;
    }
    else{
      var hook_func = tag_or_func;
      var tag = null;
    }
    jsLanguage.registerJsHook(label, hook_func, tag);
  }
}

CucumberJsDsl.Table.prototype.hashes = function(){
  var rows = this.rows();
  var headers = this.headers();
  var hashes = [];

  for (var rowIndex in rows){
    var hash_row = [];
    for (var cellIndex in headers){
      hash_row[headers[cellIndex]] = rows[rowIndex][cellIndex];
    }
    hashes[rowIndex] = hash_row;
  }
  return hashes;
}

CucumberJsDsl.Table.prototype.rows = function(){
  return this.raw.slice(1);
}

CucumberJsDsl.Table.prototype.headers = function(){
  var raw_cells = this.raw.slice(0);
  return raw_cells.shift();
}

var Given = CucumberJsDsl.registerStepDefinition;
var When = CucumberJsDsl.registerStepDefinition;
var Then = CucumberJsDsl.registerStepDefinition;

var Before = CucumberJsDsl.beforeHook;
var After = CucumberJsDsl.afterHook;
var Transform = CucumberJsDsl.registerTransform;

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
cucumber-0.7.2 lib/cucumber/js_support/js_dsl.js
cucumber-0.7.1 lib/cucumber/js_support/js_dsl.js
cucumber-0.7.0 lib/cucumber/js_support/js_dsl.js
cucumber-0.7.0.beta.8 lib/cucumber/js_support/js_dsl.js
cucumber-0.7.0.beta.7 lib/cucumber/js_support/js_dsl.js
cucumber-0.7.0.beta.6 lib/cucumber/js_support/js_dsl.js
cucumber-0.7.0.beta.5 lib/cucumber/js_support/js_dsl.js
cucumber-0.7.0.beta.4 lib/cucumber/js_support/js_dsl.js