appetizer-ui 0.7.1 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. data/.gitignore +1 -0
  2. data/appetizer-ui.gemspec +1 -1
  3. data/lib/appetizer/ui/jasmine/js/backbone.modelbinding/appetizerExtensions.spec.js +54 -0
  4. data/lib/appetizer/ui/jasmine/js/backbone.modelbinding/checkboxConventionBindings.spec.js +110 -0
  5. data/lib/appetizer/ui/jasmine/js/backbone.modelbinding/configurableBindingAttributes.spec.js +117 -0
  6. data/lib/appetizer/ui/jasmine/js/backbone.modelbinding/configureAllBindingAttributes.spec.js +139 -0
  7. data/lib/appetizer/ui/jasmine/js/backbone.modelbinding/customConvention.spec.js +53 -0
  8. data/lib/appetizer/ui/jasmine/js/backbone.modelbinding/dataBindConvention.spec.js +151 -0
  9. data/lib/appetizer/ui/jasmine/js/backbone.modelbinding/dataBindMultiple.spec.js +36 -0
  10. data/lib/appetizer/ui/jasmine/js/backbone.modelbinding/dataBindSubstitutions.spec.js +137 -0
  11. data/lib/appetizer/ui/jasmine/js/backbone.modelbinding/globalConfiguraAllBindingAttributes.spec.js +124 -0
  12. data/lib/appetizer/ui/jasmine/js/backbone.modelbinding/globalConfigurableBindingAttributes.spec.js +36 -0
  13. data/lib/appetizer/ui/jasmine/js/backbone.modelbinding/helpers/SpecHelper.js +4 -0
  14. data/lib/appetizer/ui/jasmine/js/backbone.modelbinding/helpers/sample.backbone.app.js +159 -0
  15. data/lib/appetizer/ui/jasmine/js/backbone.modelbinding/html5inputConventionBinding.spec.js +142 -0
  16. data/lib/appetizer/ui/jasmine/js/backbone.modelbinding/modelUnbinding.spec.js +73 -0
  17. data/lib/appetizer/ui/jasmine/js/backbone.modelbinding/noConflict.spec.js +36 -0
  18. data/lib/appetizer/ui/jasmine/js/backbone.modelbinding/radioButtonConventionBinding.spec.js +41 -0
  19. data/lib/appetizer/ui/jasmine/js/backbone.modelbinding/selectboxConventionBindings.spec.js +60 -0
  20. data/lib/appetizer/ui/jasmine/js/backbone.modelbinding/textareaConventionBinding.spec.js +29 -0
  21. data/lib/appetizer/ui/jasmine/js/backbone.modelbinding/textboxConventionBinding.spec.js +66 -0
  22. data/lib/appetizer/ui/jasmine/js/jasmine-jquery-matchers.js +1 -1
  23. data/lib/appetizer/ui/jasmine/js/spec-runner.coffee +1 -0
  24. data/lib/appetizer/ui/vendor/js/backbone.modelbinding.js +68 -10
  25. metadata +45 -26
@@ -0,0 +1,41 @@
1
+ describe("radio button convention binding", function(){
2
+ beforeEach(function(){
3
+ this.model = new AModel({
4
+ graduated: "maybe",
5
+ us_citizen: false
6
+ });
7
+ this.view = new AView({model: this.model});
8
+ this.view.render();
9
+ });
10
+
11
+ it("bind view changes to the model's field, by convention of id", function(){
12
+ var el = $(this.view.el).find("#graduated_no");
13
+ el.attr("checked", "checked");
14
+ el.trigger('change');
15
+ expect(this.model.get('graduated')).toEqual("no");
16
+ });
17
+
18
+ it("bind model field changes to the form input, by convention of id", function(){
19
+ this.model.set({graduated: "yes"});
20
+ var el = this.view.$("#graduated_yes");
21
+ var selected = el.attr("checked");
22
+
23
+ expect(selected).toBeTruthy();
24
+ });
25
+
26
+ it("binds the model's value to the form field on render (graduated)", function(){
27
+ var el = this.view.$("input[type=radio][name=graduated]:checked");
28
+ var selected = el.val();
29
+
30
+ expect(selected).toBe("maybe");
31
+ });
32
+
33
+ it("binds the model's value to the form field on render (us_citizen)", function(){
34
+ var el = this.view.$("#us_citizen_false");
35
+ expect(el.is(':checked')).toBe(true);
36
+ });
37
+
38
+ it("binds the view's value to the model, when there is no value in the model", function(){
39
+ expect(this.model.get("another_radio")).toBeTruthy();
40
+ });
41
+ });
@@ -0,0 +1,60 @@
1
+ describe("select element convention binding", function(){
2
+ beforeEach(function(){
3
+ this.model = new AModel({
4
+ name: "Ashelia Bailey",
5
+ education: "graduate",
6
+ age_level: 0,
7
+ graduated: "maybe",
8
+ us_citizen: false,
9
+ drivers_license: true,
10
+ motorcycle_license: false,
11
+ bio: "my baby girl",
12
+ operating_system: "non existent value"
13
+ });
14
+ this.view = new AView({model: this.model});
15
+ this.view.render();
16
+ });
17
+
18
+ it("bind view changes to the model's field, by convention of id", function(){
19
+ var el = this.view.$("#education");
20
+ el.val("college");
21
+ el.trigger('change');
22
+
23
+ expect(this.model.get('education')).toEqual("college");
24
+ });
25
+
26
+ it("bind model field changes to the form input, by convention of id", function(){
27
+ this.model.set({education: "high school"});
28
+ var el = this.view.$("#education");
29
+ expect(el.val()).toEqual("high school");
30
+ });
31
+
32
+ it("binds the model's value to the form field on render (education)", function(){
33
+ var el = this.view.$("#education");
34
+ expect(el.val()).toEqual("graduate");
35
+ });
36
+
37
+ it("binds the model's value to the form field on render (age_level)", function(){
38
+ var el = this.view.$("#age_level");
39
+ expect(el.val()).toEqual("0");
40
+ });
41
+
42
+ it("applies the text of the selection to the model", function(){
43
+ var el = this.view.$("#education");
44
+ el.val("grade_school");
45
+ el.trigger('change');
46
+
47
+ expect(this.model.get('education_text')).toEqual("i dun learned at grade skool");
48
+ });
49
+
50
+ it("updates the model to the selected value when the model is set to a value that doesn't exist, on render", function(){
51
+ var el = this.view.$("#operating_system");
52
+ var elVal = el.val();
53
+
54
+ expect(this.model.get('operating_system')).toEqual(elVal);
55
+ });
56
+
57
+ it("binds the select box value to the model, when there is no model value, on render", function(){
58
+ expect(this.model.get("another_select")).toEqual("pre_selected");
59
+ });
60
+ });
@@ -0,0 +1,29 @@
1
+ describe("text area convention binding", function(){
2
+ beforeEach(function(){
3
+ this.model = new AModel({
4
+ bio: "my biography"
5
+ });
6
+ this.view = new AView({model: this.model});
7
+ this.view.render();
8
+ });
9
+
10
+ it("bind view changes to the model's field, by convention of id", function(){
11
+ var el = this.view.$("#bio");
12
+ el.val("my biography");
13
+ el.trigger('change');
14
+
15
+ expect(this.model.get('bio')).toEqual("my biography");
16
+ });
17
+
18
+ it("bind model field changes to the form input, by convention of id", function(){
19
+ this.model.set({bio: "a modified biogrpahy"});
20
+ var el = this.view.$("#bio");
21
+ expect(el.val()).toEqual("a modified biogrpahy");
22
+ });
23
+
24
+ it("binds the model's value to the form field on render", function(){
25
+ var el = this.view.$("#bio");
26
+ expect(el.val()).toEqual("my biography");
27
+ });
28
+
29
+ });
@@ -0,0 +1,66 @@
1
+ describe("textbox convention bindings", function(){
2
+ beforeEach(function(){
3
+ this.model = new AModel({
4
+ name: "Ashelia Bailey",
5
+ noType: 'there is no type'
6
+ });
7
+ this.view = new AView({model: this.model});
8
+ });
9
+
10
+ describe("text element binding", function(){
11
+ beforeEach(function(){
12
+ this.view.render();
13
+ this.el = this.view.$("#name");
14
+ });
15
+
16
+ it("bind view changes to the model's field, by convention of id", function(){
17
+ this.el.val("Derick Bailey");
18
+ this.el.trigger('change');
19
+
20
+ expect(this.model.get('name')).toEqual("Derick Bailey");
21
+ });
22
+
23
+ it("bind model field changes to the form input, by convention of id", function(){
24
+ this.model.set({name: "Ian Bailey"});
25
+ expect(this.el.val()).toEqual("Ian Bailey");
26
+ });
27
+
28
+ it("binds the model's value to the form field on render", function(){
29
+ expect(this.el.val()).toEqual("Ashelia Bailey");
30
+ });
31
+ });
32
+
33
+ describe("when the form field has a value but the model does not", function(){
34
+ beforeEach(function(){
35
+ this.view.render();
36
+ var el = this.view.$("#prefilled_name");
37
+ });
38
+
39
+ it("binds the form field's value to the model, on render", function(){
40
+ expect(this.model.get("prefilled_name")).toBe("a name");
41
+ });
42
+ });
43
+
44
+ describe("input with no type specified, binding", function(){
45
+ beforeEach(function(){
46
+ this.view.render();
47
+ this.el = this.view.$("#noType");
48
+ });
49
+
50
+ it("bind view changes to the model's field, by convention of id", function(){
51
+ this.el.val("something changed");
52
+ this.el.trigger('change');
53
+
54
+ expect(this.model.get('noType')).toEqual("something changed");
55
+ });
56
+
57
+ it("bind model field changes to the form input, by convention of id", function(){
58
+ this.model.set({noType: "Ian Bailey"});
59
+ expect(this.el.val()).toEqual("Ian Bailey");
60
+ });
61
+
62
+ it("binds the model's value to the form field on render", function(){
63
+ expect(this.el.val()).toEqual("there is no type");
64
+ });
65
+ });
66
+ });
@@ -1,7 +1,7 @@
1
1
 
2
2
  var sandbox = function() {
3
3
  if ($("#sandbox").length == 0)
4
- $("<div id=sandbox class=hide></div>").appendTo($("body"));
4
+ $("<div id=sandbox></div>").appendTo($("body"));
5
5
  return $("#sandbox");
6
6
  }
7
7
 
@@ -1,6 +1,7 @@
1
1
  #= require ./jasmine
2
2
  #= require ./jasmine-html
3
3
  #= require ./jasmine-jquery-matchers
4
+ #= require_tree ./backbone.modelbinding
4
5
 
5
6
  jasmineEnv = jasmine.getEnv()
6
7
  jasmineEnv.updateInterval = 1000
@@ -1,5 +1,7 @@
1
1
  // Backbone.ModelBinding v0.4.3
2
2
  // [jbarnette] Added getAttributeValue, allowing values to come from functions.
3
+ // [cmorse] Added mediate support
4
+ // [toots] Added foo.bar.baz syntax for bound attributes
3
5
  //
4
6
  // Copyright (C)2011 Derick Bailey, Muted Solutions, LLC
5
7
  // Distributed Under MIT Liscene
@@ -29,14 +31,36 @@ var modelbinding = (function(Backbone, _, $) {
29
31
  }
30
32
  };
31
33
 
32
- var getAttributeValue = function(model, name) {
34
+ // pop attribute name from model. It takes, in order
35
+ // of priority:
36
+ // model[name] if defined and not a function
37
+ // model[name]() if defined and a function
38
+ // model.get(name) otherwise
39
+ var popAttribute = function (model, name) {
33
40
  var value = model[name];
34
-
35
- if (value && _.isFunction(value)) {
36
- value = value.apply(model)
41
+ if (value) {
42
+ if (_.isFunction(value))
43
+ value = value.apply(model)
37
44
  } else {
38
- value = model.get(name);
45
+ if (model.get) {
46
+ value = model.get(name);
47
+ } else {
48
+ return undefined;
49
+ }
39
50
  }
51
+ return value;
52
+ }
53
+
54
+ var getAttributeValue = function(model, name) {
55
+ var value = model;
56
+
57
+ name = "" + name;
58
+
59
+ names = name.split(".");
60
+
61
+ _.each(names, function (name) {
62
+ value = popAttribute(value, name);
63
+ });
40
64
 
41
65
  return value;
42
66
  };
@@ -195,13 +219,35 @@ var modelbinding = (function(Backbone, _, $) {
195
219
  var elementType = _getElementType(element);
196
220
  var attribute_name = config.getBindingValue(element, elementType);
197
221
  if (!attribute_name) return;
222
+ var mediator = modelBinding.getMediator(element);
198
223
 
199
- var modelChange = function(changed_model, val){ element.val(val); };
224
+ var modelChange = function(changed_model, val) {
225
+ element.val(mediator.render(val));
226
+ };
227
+
228
+ var popData = function (options, name) {
229
+ var target;
230
+ if (target = options.model[name]) {
231
+ options.model = _.isFunction(target) ? target() : target
232
+ } else {
233
+ options.data[name] = options.model.get(name) || {};
234
+ options.data = options.data[name];
235
+ }
236
+ }
200
237
 
201
238
  var setModelValue = function(attr_name, value){
202
- var data = {};
203
- data[attr_name] = value;
204
- model.set(data);
239
+ var origData = {};
240
+ var options = { data: origData, model: model };
241
+
242
+ attr_names = attr_name.split(".");
243
+ attr_name = attr_names.pop();
244
+
245
+ _.each(attr_names, function (name) {
246
+ popData(options, name);
247
+ });
248
+
249
+ options.data[attr_name] = mediator.parse(value);
250
+ options.model.set(origData);
205
251
  };
206
252
 
207
253
  var elementChange = function(ev){
@@ -214,7 +260,7 @@ var modelbinding = (function(Backbone, _, $) {
214
260
  // set the default value on the form, from the model
215
261
  var attr_value = getAttributeValue(model, attribute_name);
216
262
  if (typeof attr_value !== "undefined" && attr_value !== null) {
217
- element.val(attr_value);
263
+ element.val(mediator.render(attr_value));
218
264
  } else {
219
265
  var elVal = element.val();
220
266
  if (elVal){
@@ -440,6 +486,7 @@ var modelbinding = (function(Backbone, _, $) {
440
486
  var setOnElement = function(element, attr, val){
441
487
  var valBefore = val;
442
488
  val = modelBinding.Configuration.getDataBindSubst(attr, val);
489
+ val = modelBinding.getMediator(element).render(val);
443
490
  switch(attr){
444
491
  case "html":
445
492
  element.html(val);
@@ -513,6 +560,7 @@ var modelbinding = (function(Backbone, _, $) {
513
560
  _.each(databindList, function(databind){
514
561
  var eventConfig = getEventConfiguration(element, databind);
515
562
  modelBinder.registerDataBinding(model, eventConfig.name, eventConfig.callback);
563
+
516
564
  // set default on data-bind element
517
565
  setOnElement(element, databind.elementAttr, getAttributeValue(model, databind.modelAttr));
518
566
  });
@@ -544,6 +592,16 @@ var modelbinding = (function(Backbone, _, $) {
544
592
  email: {selector: "input[type=email]", handler: StandardBinding}
545
593
  };
546
594
 
595
+ modelBinding.Mediators = {}
596
+
597
+ modelBinding.getMediator = function(element) {
598
+ var mediator = modelBinding.Mediators[$(element).attr("data-mediator")] || {};
599
+
600
+ mediator.parse = mediator.parse || function(t) { return t; }
601
+ mediator.render = mediator.render || function(t) { return t; }
602
+ return mediator;
603
+ }
604
+
547
605
  return modelBinding;
548
606
  });
549
607
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: appetizer-ui
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.1
4
+ version: 0.8.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-01-27 00:00:00.000000000Z
12
+ date: 2012-02-11 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: appetizer
16
- requirement: &70317561442100 !ruby/object:Gem::Requirement
16
+ requirement: &70341507624460 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0.0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70317561442100
24
+ version_requirements: *70341507624460
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: coffee-script
27
- requirement: &70317561739000 !ruby/object:Gem::Requirement
27
+ requirement: &70341507623380 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '2.2'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70317561739000
35
+ version_requirements: *70341507623380
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: eco
38
- requirement: &70317561932360 !ruby/object:Gem::Requirement
38
+ requirement: &70341507622620 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '1.0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70317561932360
46
+ version_requirements: *70341507622620
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rack-contrib
49
- requirement: &70317565973760 !ruby/object:Gem::Requirement
49
+ requirement: &70341507621760 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '1.1'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70317565973760
57
+ version_requirements: *70341507621760
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rack-ssl
60
- requirement: &70317566240660 !ruby/object:Gem::Requirement
60
+ requirement: &70341507620920 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '1.3'
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *70317566240660
68
+ version_requirements: *70341507620920
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: sass
71
- requirement: &70317566239800 !ruby/object:Gem::Requirement
71
+ requirement: &70341507620120 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ~>
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '3.1'
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *70317566239800
79
+ version_requirements: *70341507620120
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: sinatra
82
- requirement: &70317566239140 !ruby/object:Gem::Requirement
82
+ requirement: &70341507619240 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ~>
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: '1.3'
88
88
  type: :runtime
89
89
  prerelease: false
90
- version_requirements: *70317566239140
90
+ version_requirements: *70341507619240
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: sprockets
93
- requirement: &70317566238380 !ruby/object:Gem::Requirement
93
+ requirement: &70341507618520 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ~>
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: '2.1'
99
99
  type: :runtime
100
100
  prerelease: false
101
- version_requirements: *70317566238380
101
+ version_requirements: *70341507618520
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: sprockets-sass
104
- requirement: &70317566237600 !ruby/object:Gem::Requirement
104
+ requirement: &70341507617060 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ~>
@@ -109,10 +109,10 @@ dependencies:
109
109
  version: '0.6'
110
110
  type: :runtime
111
111
  prerelease: false
112
- version_requirements: *70317566237600
112
+ version_requirements: *70341507617060
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: uglifier
115
- requirement: &70317566236760 !ruby/object:Gem::Requirement
115
+ requirement: &70341507616160 !ruby/object:Gem::Requirement
116
116
  none: false
117
117
  requirements:
118
118
  - - ~>
@@ -120,10 +120,10 @@ dependencies:
120
120
  version: '1.0'
121
121
  type: :runtime
122
122
  prerelease: false
123
- version_requirements: *70317566236760
123
+ version_requirements: *70341507616160
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: yajl-ruby
126
- requirement: &70317566235940 !ruby/object:Gem::Requirement
126
+ requirement: &70341507615220 !ruby/object:Gem::Requirement
127
127
  none: false
128
128
  requirements:
129
129
  - - ~>
@@ -131,10 +131,10 @@ dependencies:
131
131
  version: '1.0'
132
132
  type: :runtime
133
133
  prerelease: false
134
- version_requirements: *70317566235940
134
+ version_requirements: *70341507615220
135
135
  - !ruby/object:Gem::Dependency
136
136
  name: yui-compressor
137
- requirement: &70317566235180 !ruby/object:Gem::Requirement
137
+ requirement: &70341507613700 !ruby/object:Gem::Requirement
138
138
  none: false
139
139
  requirements:
140
140
  - - ~>
@@ -142,7 +142,7 @@ dependencies:
142
142
  version: '0.9'
143
143
  type: :runtime
144
144
  prerelease: false
145
- version_requirements: *70317566235180
145
+ version_requirements: *70341507613700
146
146
  description: A painfully opinionated Appetizer extension for web apps.
147
147
  email:
148
148
  - tech@audiosocket.com
@@ -166,6 +166,25 @@ files:
166
166
  - lib/appetizer/ui/assets.rb
167
167
  - lib/appetizer/ui/assets/delivery.rb
168
168
  - lib/appetizer/ui/jasmine/css/jasmine.css
169
+ - lib/appetizer/ui/jasmine/js/backbone.modelbinding/appetizerExtensions.spec.js
170
+ - lib/appetizer/ui/jasmine/js/backbone.modelbinding/checkboxConventionBindings.spec.js
171
+ - lib/appetizer/ui/jasmine/js/backbone.modelbinding/configurableBindingAttributes.spec.js
172
+ - lib/appetizer/ui/jasmine/js/backbone.modelbinding/configureAllBindingAttributes.spec.js
173
+ - lib/appetizer/ui/jasmine/js/backbone.modelbinding/customConvention.spec.js
174
+ - lib/appetizer/ui/jasmine/js/backbone.modelbinding/dataBindConvention.spec.js
175
+ - lib/appetizer/ui/jasmine/js/backbone.modelbinding/dataBindMultiple.spec.js
176
+ - lib/appetizer/ui/jasmine/js/backbone.modelbinding/dataBindSubstitutions.spec.js
177
+ - lib/appetizer/ui/jasmine/js/backbone.modelbinding/globalConfiguraAllBindingAttributes.spec.js
178
+ - lib/appetizer/ui/jasmine/js/backbone.modelbinding/globalConfigurableBindingAttributes.spec.js
179
+ - lib/appetizer/ui/jasmine/js/backbone.modelbinding/helpers/SpecHelper.js
180
+ - lib/appetizer/ui/jasmine/js/backbone.modelbinding/helpers/sample.backbone.app.js
181
+ - lib/appetizer/ui/jasmine/js/backbone.modelbinding/html5inputConventionBinding.spec.js
182
+ - lib/appetizer/ui/jasmine/js/backbone.modelbinding/modelUnbinding.spec.js
183
+ - lib/appetizer/ui/jasmine/js/backbone.modelbinding/noConflict.spec.js
184
+ - lib/appetizer/ui/jasmine/js/backbone.modelbinding/radioButtonConventionBinding.spec.js
185
+ - lib/appetizer/ui/jasmine/js/backbone.modelbinding/selectboxConventionBindings.spec.js
186
+ - lib/appetizer/ui/jasmine/js/backbone.modelbinding/textareaConventionBinding.spec.js
187
+ - lib/appetizer/ui/jasmine/js/backbone.modelbinding/textboxConventionBinding.spec.js
169
188
  - lib/appetizer/ui/jasmine/js/jasmine-html.js
170
189
  - lib/appetizer/ui/jasmine/js/jasmine-jquery-matchers.js
171
190
  - lib/appetizer/ui/jasmine/js/jasmine.js