sproutcore 1.0.1009 → 1.0.1024

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 (64) hide show
  1. data/DISTRIBUTION.yml +14 -0
  2. data/Rakefile +150 -23
  3. data/VERSION.yml +4 -2
  4. data/frameworks/sproutcore/Buildfile +1 -1
  5. data/frameworks/sproutcore/frameworks/bootstrap/system/loader.js +1 -0
  6. data/frameworks/sproutcore/frameworks/datastore/models/record.js +66 -5
  7. data/frameworks/sproutcore/frameworks/datastore/models/record_attribute.js +14 -0
  8. data/frameworks/sproutcore/frameworks/datastore/tests/models/record_attribute.js +28 -3
  9. data/frameworks/sproutcore/frameworks/desktop/english.lproj/alert.css +1 -1
  10. data/frameworks/sproutcore/frameworks/desktop/english.lproj/menu_item_view.css +22 -2
  11. data/frameworks/sproutcore/frameworks/desktop/english.lproj/panel.css +5 -1
  12. data/frameworks/sproutcore/frameworks/desktop/english.lproj/well.css +72 -0
  13. data/frameworks/sproutcore/frameworks/desktop/panes/alert.js +1 -1
  14. data/frameworks/sproutcore/frameworks/desktop/panes/picker.js +1 -1
  15. data/frameworks/sproutcore/frameworks/desktop/panes/select_button.js +33 -7
  16. data/frameworks/sproutcore/frameworks/desktop/system/root_responder.js +24 -23
  17. data/frameworks/sproutcore/frameworks/desktop/tests/views/list/ui_alternatingrows.js +130 -0
  18. data/frameworks/sproutcore/frameworks/desktop/tests/views/list/ui_row_heights.js +9 -10
  19. data/frameworks/sproutcore/frameworks/desktop/tests/views/list_item.js +4 -0
  20. data/frameworks/sproutcore/frameworks/desktop/tests/views/progress/ui.js +18 -9
  21. data/frameworks/sproutcore/frameworks/desktop/tests/views/scroll/methods.js +7 -6
  22. data/frameworks/sproutcore/frameworks/desktop/tests/views/well/ui.js +54 -0
  23. data/frameworks/sproutcore/frameworks/desktop/views/button.js +21 -9
  24. data/frameworks/sproutcore/frameworks/desktop/views/checkbox.js +4 -3
  25. data/frameworks/sproutcore/frameworks/desktop/views/collection.js +1 -1
  26. data/frameworks/sproutcore/frameworks/desktop/views/grid.js +23 -14
  27. data/frameworks/sproutcore/frameworks/desktop/views/list_item.js +2 -2
  28. data/frameworks/sproutcore/frameworks/desktop/views/menu_item.js +3 -3
  29. data/frameworks/sproutcore/frameworks/desktop/views/radio.js +1 -2
  30. data/frameworks/sproutcore/frameworks/desktop/views/scroll.js +1 -1
  31. data/frameworks/sproutcore/frameworks/desktop/views/segmented.js +1 -1
  32. data/frameworks/sproutcore/frameworks/desktop/views/slider.js +1 -1
  33. data/frameworks/sproutcore/frameworks/desktop/views/source_list_group.js +1 -1
  34. data/frameworks/sproutcore/frameworks/desktop/views/well.js +80 -0
  35. data/frameworks/sproutcore/frameworks/foundation/fixtures/malformed.json +11 -0
  36. data/frameworks/sproutcore/frameworks/foundation/mixins/button.js +1 -1
  37. data/frameworks/sproutcore/frameworks/foundation/mixins/inline_text_field.js +5 -1
  38. data/frameworks/sproutcore/frameworks/foundation/panes/pane.js +1 -1
  39. data/frameworks/sproutcore/frameworks/foundation/system/cursor.js +11 -10
  40. data/frameworks/sproutcore/frameworks/foundation/system/event.js +16 -15
  41. data/frameworks/sproutcore/frameworks/foundation/system/render_context.js +3 -3
  42. data/frameworks/sproutcore/frameworks/foundation/system/request.js +6 -5
  43. data/frameworks/sproutcore/frameworks/foundation/system/response.js +26 -8
  44. data/frameworks/sproutcore/frameworks/foundation/system/root_responder.js +2 -2
  45. data/frameworks/sproutcore/frameworks/foundation/system/timer.js +2 -2
  46. data/frameworks/sproutcore/frameworks/foundation/system/utils.js +122 -13
  47. data/frameworks/sproutcore/frameworks/foundation/tests/system/core_query/jquery_core.js +2 -3
  48. data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/tag.js +9 -9
  49. data/frameworks/sproutcore/frameworks/foundation/tests/system/render_context/update.js +3 -3
  50. data/frameworks/sproutcore/frameworks/foundation/tests/system/request.js +27 -0
  51. data/frameworks/sproutcore/frameworks/foundation/tests/system/utils/rect.js +99 -0
  52. data/frameworks/sproutcore/frameworks/foundation/tests/views/image/ui.js +1 -1
  53. data/frameworks/sproutcore/frameworks/foundation/tests/views/view/updateLayer.js +1 -1
  54. data/frameworks/sproutcore/frameworks/foundation/views/image.js +3 -1
  55. data/frameworks/sproutcore/frameworks/foundation/views/label.js +1 -1
  56. data/frameworks/sproutcore/frameworks/runtime/system/cookie.js +160 -0
  57. data/frameworks/sproutcore/frameworks/runtime/system/object.js +1 -1
  58. data/frameworks/sproutcore/frameworks/runtime/tests/system/cookie.js +163 -0
  59. data/frameworks/sproutcore/themes/standard_theme/english.lproj/pane.css +12 -2
  60. data/lib/sproutcore/rack/proxy.rb +4 -2
  61. data/sproutcore-abbot.gemspec +23 -9
  62. metadata +32 -5
  63. data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/standard_fade/000000.png +0 -0
  64. data/frameworks/sproutcore/frameworks/desktop/english.lproj/images/standard_fade/ffffff.png +0 -0
@@ -34,7 +34,7 @@ htmlbody('<style> .sc-static-layout { border: 1px red dotted; } </style>');
34
34
  ok(view.get('status') !== 'loaded', 'PRECOND - status should not be loaded (status=%@)'.fmt(view.get('status')));
35
35
 
36
36
  var url = view.$().attr('src')
37
- ok((url.indexOf('blank.gif')!=-1), "The src should be blank URL. url = %@".fmt(url));
37
+ ok((url.indexOf('base64')!=-1) || (url.indexOf('blank.gif')!=-1), "The src should be blank URL. url = %@".fmt(url));
38
38
  });
39
39
 
40
40
  test("Verify that all the rendering properties of an image that is loaded are correct", function() {
@@ -24,7 +24,7 @@ test("invokes prepareContext() and then updates layer element", function() {
24
24
  });
25
25
 
26
26
  view.updateLayer();
27
- ok(layer.getAttribute('class').toString().indexOf('did-update')>=0, 'has class name added by prepareContext()');
27
+ ok(SC.$(layer).attr('class').indexOf('did-update')>=0, 'has class name added by prepareContext()');
28
28
  });
29
29
 
30
30
  // ..........................................................
@@ -17,7 +17,9 @@ SC.IMAGE_STATE_SPRITE = 'sprite';
17
17
  /**
18
18
  URL to a transparent GIF. Used for spriting.
19
19
  */
20
- SC.BLANK_IMAGE_URL = sc_static('blank.gif');
20
+ SC.BLANK_IMAGE_DATAURL = "data:image/gif;base64,R0lGODlhAQABAJAAAP///wAAACH5BAUQAAAALAAAAAABAAEAAAICBAEAOw==";
21
+
22
+ SC.BLANK_IMAGE_URL = SC.browser.msie && SC.browser.msie<8 ? sc_static('blank.gif') : SC.BLANK_IMAGE_DATAURL;
21
23
 
22
24
  /**
23
25
  @class
@@ -272,7 +272,7 @@ SC.LabelView = SC.View.extend(SC.Control,
272
272
 
273
273
  // add icon if needed
274
274
  if (icon) {
275
- var url = (icon.indexOf('/')>=0) ? icon : static_url('blank');
275
+ var url = (icon.indexOf('/')>=0) ? icon : SC.BLANK_IMAGE_URL;
276
276
  var className = (url === icon) ? '' : icon ;
277
277
  icon = '<img src="%@" alt="" class="icon %@" />'.fmt(url, className) ;
278
278
  context.push(icon);
@@ -0,0 +1,160 @@
1
+ // ==========================================================================
2
+ // SC.Cookie
3
+ // ==========================================================================
4
+
5
+ /** @class
6
+
7
+ Allows for easier handling of the document.cookie object. To create a cookie,
8
+ simply call SC.Cookie.create. To retrieve a cookie, use SC.Cookie.find.
9
+ Cookies are not added to document.cookie, which SC.Cookie.find uses, until you
10
+ have called SC.Cookie#write.
11
+
12
+ Heavy inspiration from the
13
+ {@link <a href="http://plugins.jquery.com/project/cookie">jQuery cookie plugin</a>}.
14
+
15
+ @extends SC.Object
16
+ @since Sproutcore 1.0
17
+ @author Colin Campbell
18
+ */
19
+
20
+ SC.Cookie = SC.Object.extend({
21
+
22
+ // ..........................................................
23
+ // PROPERTIES
24
+ //
25
+
26
+ /**
27
+ The name of the cookie
28
+
29
+ @property {String}
30
+ */
31
+ name: null,
32
+
33
+ /**
34
+ The value of the cookie
35
+
36
+ @property {String}
37
+ */
38
+ value: '',
39
+
40
+ /**
41
+ Amount of time until the cookie expires. Set to -1 in order to delete the cookie.
42
+
43
+ @property {Integer|SC.DateTime|Date}
44
+ */
45
+ expires: null,
46
+
47
+ /**
48
+ The value of the path atribute of the cookie (default: path of page that created the cookie).
49
+
50
+ @property {String}
51
+ */
52
+ path: null,
53
+
54
+ /**
55
+ The value of the domain attribute of the cookie (default: domain of page that created the cookie).
56
+
57
+ @property {String}
58
+ */
59
+ domain: null,
60
+
61
+ /**
62
+ If true, the secure attribute of the cookie will be set and the cookie transmission will
63
+ require a secure protocol (like HTTPS).
64
+
65
+ @property {Boolean}
66
+ */
67
+ secure: NO,
68
+
69
+ /**
70
+ Walk like a duck
71
+
72
+ @property {Boolean}
73
+ @isReadOnly
74
+ */
75
+ isCookie: YES,
76
+
77
+ // ..........................................................
78
+ // METHODS
79
+ //
80
+
81
+ /**
82
+ Sets SC.Cookie#expires to -1, which destroys the cookie.
83
+ */
84
+ destroy: function() {
85
+ this.set('expires', -1);
86
+ this.write();
87
+
88
+ sc_super();
89
+ },
90
+
91
+ /**
92
+ Writes this SC.Cookie to document.cookie and adds it to SC.Cookie collection. To find this
93
+ cookie later, or on reload, use SC.Cookie.find.
94
+
95
+ @see SC.Cookie.find
96
+ */
97
+ write: function() {
98
+ var name = this.get('name'),
99
+ value = this.get('value'),
100
+ expires = this.get('expires'),
101
+ path = this.get('path'),
102
+ domain = this.get('domain'),
103
+ secure = this.get('secure');
104
+
105
+ var expiresOutput = '';
106
+ if (expires && (SC.typeOf(expires) === SC.T_NUMBER || (SC.DateTime && expires.get && expires.get('milliseconds')) || SC.typeOf(expires.toUTCString) === SC.T_FUNCTION)) {
107
+ var date;
108
+ if (SC.typeOf(expires) === SC.T_NUMBER) {
109
+ date = new Date();
110
+ date.setTime(date.getTime()+(expires*24*60*60*1000));
111
+ }
112
+ else if (SC.DateTime && expires.get && expires.get('milliseconds')) {
113
+ date = new Date(expires.get('milliseconds'));
114
+ }
115
+ else if (SC.typeOf(expires.toUTCString) === SC.T_FUNCTION) {
116
+ date = expires;
117
+ }
118
+
119
+ if (date) {
120
+ expiresOutput = '; expires=' + date.toUTCString();
121
+ }
122
+ }
123
+
124
+ var pathOutput = path ? '; path=' + path : '';
125
+ var domainOutput = domain ? '; domain=' + domain : '';
126
+ var secureOutput = secure ? '; secure' : '';
127
+
128
+ document.cookie = [name, '=', encodeURIComponent(value), expiresOutput, pathOutput, domainOutput, secureOutput].join('');
129
+
130
+ return this;
131
+ }
132
+
133
+ });
134
+
135
+ SC.Cookie.mixin(
136
+ /** @scope SC.Cookie */ {
137
+
138
+ /**
139
+ Finds a cookie that has been stored
140
+
141
+ @param {String} name The name of the cookie
142
+ @returns SC.Cookie object containing name and value of cookie
143
+ */
144
+ find: function(name) {
145
+ if (document.cookie && document.cookie != '') {
146
+ var cookies = document.cookie.split(';');
147
+ for (var i = 0; i < cookies.length; i++) {
148
+ var cookie = String(cookies[i]).trim();
149
+ if (cookie.substring(0, name.length + 1) === (name + "=")) {
150
+ return SC.Cookie.create({
151
+ name: name,
152
+ value: decodeURIComponent(cookie.substring(name.length + 1))
153
+ });
154
+ }
155
+ }
156
+ }
157
+ return null;
158
+ }
159
+
160
+ });
@@ -822,7 +822,7 @@ SC.instanceOf = function(scObject, scClass) {
822
822
  */
823
823
  SC.kindOf = function(scObject, scClass) {
824
824
  if (scObject && !scObject.isClass) scObject = scObject.constructor;
825
- return !!(scObject && scObject.kindOf(scClass));
825
+ return !!(scObject && scObject.kindOf && scObject.kindOf(scClass));
826
826
  };
827
827
 
828
828
  /** @private
@@ -0,0 +1,163 @@
1
+ // ==========================================================================
2
+ // SC.Cookie Unit Test
3
+ // ==========================================================================
4
+
5
+ /*globals module test equals */
6
+
7
+ var setCookies = ['cookie', 'cookie2', 'cookie-hashincreate', 'cookie-usingset', 'cookie-2-1', 'cookie-2-2', 'cookie-2-3', 'cookie-expires', 'cookie-destroy', 'cookie-find'];
8
+ eraseCookies();
9
+ setCookies = [];
10
+
11
+ if (document.cookie != "") {
12
+ SC.Logger.warn("document.cookie not empty -- test results may be contaminated -- %@".fmt(document.cookie));
13
+ }
14
+
15
+ module("SC.Cookie", {
16
+ setup: function() {
17
+ setCookies = [];
18
+ },
19
+ teardown: function() {
20
+ eraseCookies();
21
+ }
22
+ });
23
+
24
+
25
+ // functions borrowed from http://www.quirksmode.org/js/cookies.html
26
+ // should be good to test against
27
+
28
+ function createCookie(name,value,days) {
29
+ var expires;
30
+ if (days) {
31
+ var date = new Date();
32
+ date.setTime(date.getTime()+(days*24*60*60*1000));
33
+ expires = "; expires="+date.toGMTString();
34
+ }
35
+ else expires = "";
36
+ document.cookie = name+"="+value+expires+"; path=/";
37
+ }
38
+
39
+ function readCookie(name) {
40
+ var nameEQ = name + "=";
41
+ var ca = document.cookie.split(';');
42
+ for(var i=0;i < ca.length;i++) {
43
+ var c = ca[i];
44
+ while (c.charAt(0)==' ') c = c.substring(1,c.length);
45
+ if (c.indexOf(nameEQ) == 0) return decodeURIComponent(c.substring(nameEQ.length,c.length));
46
+ }
47
+ return null;
48
+ }
49
+
50
+ function eraseCookies() {
51
+ setCookies.forEach(function(cookie) {
52
+ createCookie(cookie, "", -1);
53
+ });
54
+ }
55
+
56
+
57
+ test("Setting a cookie - hash in create", function() {
58
+ var date = new Date();
59
+ date.setTime(date.getTime() + 1000);
60
+ var cookie = SC.Cookie.create({name: "cookie-hashincreate", value: "testing value", expires: date}).write();
61
+
62
+ var result = readCookie('cookie-hashincreate');
63
+ equals(result, "testing value", "value from document.cookie should match what we set");
64
+
65
+ setCookies = ["cookie-hashincreate"];
66
+ });
67
+
68
+ test("Setting a cookie - using set", function() {
69
+ var date = new Date();
70
+ date.setTime(date.getTime() + 1000);
71
+ var cookie = SC.Cookie.create({expires: date}).set('name', 'cookie-usingset').set('value', "testing value").write();
72
+
73
+ var result = readCookie('cookie-usingset');
74
+ equals(result, "testing value", "value from document.cookie should match what we set");
75
+
76
+ setCookies = ["cookie-usingset"];
77
+ });
78
+
79
+ test("Setting a cookie - no write", function() {
80
+ var date = new Date();
81
+ date.setTime(date.getTime() + 1000);
82
+ var cookie = SC.Cookie.create({name: "cookie-nowrite", value: "testing value", expires: date});
83
+
84
+ var result = readCookie('cookie-nowrite');
85
+ equals(result, null, "value from document.cookie should be null");
86
+
87
+ setCookies = ["cookie-nowrite"];
88
+ });
89
+
90
+ test("Setting 2 cookies", function() {
91
+ var date = new Date();
92
+ date.setTime(date.getTime() + 1000);
93
+ var cookie = SC.Cookie.create({name: "cookie-2-1", value: "testing value", expires: date}).write();
94
+ var cookie2 = SC.Cookie.create({name: "cookie-2-2", value: "testing value for second", expires: date}).write();
95
+
96
+ var value = readCookie('cookie-2-1');
97
+ equals(value, "testing value", "value from first cookie");
98
+ var value2 = readCookie('cookie-2-2');
99
+ equals(value2, "testing value for second", "value from second cookie");
100
+
101
+ setCookies = ['cookie-2-1', 'cookie-2-2'];
102
+ });
103
+
104
+ test("Setting 2 cookies - overwriting", function() {
105
+ var date = new Date();
106
+ date.setTime(date.getTime() + 1000);
107
+ var cookie = SC.Cookie.create({name: "cookie-2-3", value: "testing value", expires: date}).write();
108
+
109
+ var value = readCookie('cookie-2-3');
110
+ equals(value, "testing value", "value from first cookie");
111
+
112
+ var cookie2 = SC.Cookie.create({name: "cookie-2-3", value: "testing value for second", expires: date}).write();
113
+
114
+ var value2 = readCookie('cookie-2-3');
115
+ equals(value2, "testing value for second", "value from second cookie");
116
+
117
+ setCookies = ['cookie-2-3'];
118
+ });
119
+
120
+ test("Destroying a cookie - expires", function() {
121
+ var date = new Date();
122
+ date.setTime(date.getTime() + 1000);
123
+ var cookie = SC.Cookie.create({name: "cookie-expires", value: "testing value", expires: date}).write();
124
+
125
+ var result = readCookie('cookie-expires');
126
+ equals(result, "testing value", "value from document.cookie should match what we set");
127
+
128
+ cookie.set('expires', -1).write();
129
+
130
+ var result2 = readCookie('cookie-expires');
131
+ equals(result2, null, "value from document.cookie should be null");
132
+
133
+ setCookies = ["cookie-expires"]; // make sure we get rid of it
134
+ });
135
+
136
+ test("Destroying a cookie - destroy", function() {
137
+ var date = new Date();
138
+ date.setTime(date.getTime() + 1000);
139
+ var cookie = SC.Cookie.create({name: "cookie-destroy", value: "testing value", expires: date}).write();
140
+
141
+ var result = readCookie('cookie-destroy');
142
+ equals(result, "testing value", "value from document.cookie should match what we set");
143
+
144
+ cookie.destroy();
145
+
146
+ var result2 = readCookie('cookie-destroy');
147
+ equals(result2, null, "value from document.cookie should be null");
148
+
149
+ setCookies = ["cookie-destroy"]; // make sure we get rid of it
150
+ });
151
+
152
+
153
+ test("find", function() {
154
+ var date = new Date();
155
+ date.setTime(date.getTime() + 1000);
156
+ var cookie = SC.Cookie.create({name: "cookie-find", value: "testing value", expires: date}).write();
157
+
158
+ var result = SC.Cookie.find("cookie-find");
159
+ equals(result.get('name'), cookie.get('name'), "cookie names should be equal");
160
+ equals(result.get('value'), cookie.get('value'), "cookie values should be equal");
161
+
162
+ setCookies = ["cookie-find"];
163
+ });
@@ -1,8 +1,18 @@
1
1
  .sc-theme .sc-dialog-pane {
2
2
  z-index: 2000;
3
- background: static_url('panels/overlay') repeat;
3
+ background: #494949;
4
4
  }
5
5
 
6
+ /*
7
+ Content-Type: multipart/related; boundary="BLANK_IMAGE"
8
+
9
+ --BLANK_IMAGE
10
+ Content-Location:SCTheme
11
+ Content-Transfer-Encoding:base64
12
+
13
+ R0lGODlhAQABAJAAAP///wAAACH5BAUQAAAALAAAAAABAAEAAAICBAEAOw==
14
+ */
6
15
  .sc-theme div.sc-ghost-view {
7
- background: static_url('blank');
16
+ background-image: url(data:image/gif;base64,R0lGODlhAQABAJAAAP///wAAACH5BAUQAAAALAAAAAABAAEAAAICBAEAOw==) top left no-repeat;
17
+ *background-image: sc_static('blank.gif') top left no-repeat; /* IE < 8 */
8
18
  }
@@ -68,8 +68,10 @@ module SC
68
68
  if no_body_method.include?(http_method)
69
69
  response = http.send(http_method, http_path, headers)
70
70
  else
71
- http_body = env['rack.input'].gets || ''
72
- response = http.send(http_method, http_path, http_body, headers)
71
+ http_body = env['rack.input']
72
+ some_request = Net::HTTPGenericRequest.new(http_method, '', '', http_path, headers)
73
+ some_request.body_stream = http_body
74
+ response = http.request(some_request)
73
75
  end
74
76
  end
75
77
 
@@ -1,15 +1,15 @@
1
1
  # Generated by jeweler
2
- # DO NOT EDIT THIS FILE
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{sproutcore}
8
- s.version = "1.0.1009"
8
+ s.version = "1.0.1024"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Sprout Systems, Inc. Apple Inc. and contributors"]
12
- s.date = %q{2009-10-26}
12
+ s.date = %q{2009-11-15}
13
13
  s.description = %q{sproutcore - abbot
14
14
  by Charles Jolley and contributors
15
15
  http://www.sproutcore.com
@@ -122,6 +122,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
122
122
  ]
123
123
  s.files = [
124
124
  "Buildfile",
125
+ "DISTRIBUTION.yml",
125
126
  "History.txt",
126
127
  "README.txt",
127
128
  "Rakefile",
@@ -370,8 +371,6 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
370
371
  "frameworks/sproutcore/frameworks/desktop/english.lproj/images/icons/shared.png",
371
372
  "frameworks/sproutcore/frameworks/desktop/english.lproj/images/panels/sprite-x.png",
372
373
  "frameworks/sproutcore/frameworks/desktop/english.lproj/images/panels/sprite-y.png",
373
- "frameworks/sproutcore/frameworks/desktop/english.lproj/images/standard_fade/000000.png",
374
- "frameworks/sproutcore/frameworks/desktop/english.lproj/images/standard_fade/ffffff.png",
375
374
  "frameworks/sproutcore/frameworks/desktop/english.lproj/list_item.css",
376
375
  "frameworks/sproutcore/frameworks/desktop/english.lproj/menu.css",
377
376
  "frameworks/sproutcore/frameworks/desktop/english.lproj/menu_item_view.css",
@@ -389,6 +388,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
389
388
  "frameworks/sproutcore/frameworks/desktop/english.lproj/strings.js",
390
389
  "frameworks/sproutcore/frameworks/desktop/english.lproj/tab.css",
391
390
  "frameworks/sproutcore/frameworks/desktop/english.lproj/toolbar.css",
391
+ "frameworks/sproutcore/frameworks/desktop/english.lproj/well.css",
392
392
  "frameworks/sproutcore/frameworks/desktop/mixins/border.js",
393
393
  "frameworks/sproutcore/frameworks/desktop/mixins/collection_group.js",
394
394
  "frameworks/sproutcore/frameworks/desktop/mixins/collection_row_delegate.js",
@@ -453,6 +453,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
453
453
  "frameworks/sproutcore/frameworks/desktop/tests/views/list/rowDelegate.js",
454
454
  "frameworks/sproutcore/frameworks/desktop/tests/views/list/rowHeightForContentIndex.js",
455
455
  "frameworks/sproutcore/frameworks/desktop/tests/views/list/rowOffsetForContentIndex.js",
456
+ "frameworks/sproutcore/frameworks/desktop/tests/views/list/ui_alternatingrows.js",
456
457
  "frameworks/sproutcore/frameworks/desktop/tests/views/list/ui_outline.js",
457
458
  "frameworks/sproutcore/frameworks/desktop/tests/views/list/ui_row_heights.js",
458
459
  "frameworks/sproutcore/frameworks/desktop/tests/views/list/ui_simple.js",
@@ -481,6 +482,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
481
482
  "frameworks/sproutcore/frameworks/desktop/tests/views/tab/ui.js",
482
483
  "frameworks/sproutcore/frameworks/desktop/tests/views/web/methods.js",
483
484
  "frameworks/sproutcore/frameworks/desktop/tests/views/web/ui.js",
485
+ "frameworks/sproutcore/frameworks/desktop/tests/views/well/ui.js",
484
486
  "frameworks/sproutcore/frameworks/desktop/views/button.js",
485
487
  "frameworks/sproutcore/frameworks/desktop/views/checkbox.js",
486
488
  "frameworks/sproutcore/frameworks/desktop/views/collection.js",
@@ -509,6 +511,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
509
511
  "frameworks/sproutcore/frameworks/desktop/views/thumb.js",
510
512
  "frameworks/sproutcore/frameworks/desktop/views/toolbar.js",
511
513
  "frameworks/sproutcore/frameworks/desktop/views/web.js",
514
+ "frameworks/sproutcore/frameworks/desktop/views/well.js",
512
515
  "frameworks/sproutcore/frameworks/foundation/TESTING",
513
516
  "frameworks/sproutcore/frameworks/foundation/controllers/array.js",
514
517
  "frameworks/sproutcore/frameworks/foundation/controllers/controller.js",
@@ -531,6 +534,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
531
534
  "frameworks/sproutcore/frameworks/foundation/ext/object.js",
532
535
  "frameworks/sproutcore/frameworks/foundation/ext/run_loop.js",
533
536
  "frameworks/sproutcore/frameworks/foundation/fixtures/file_exists.json",
537
+ "frameworks/sproutcore/frameworks/foundation/fixtures/malformed.json",
534
538
  "frameworks/sproutcore/frameworks/foundation/license.js",
535
539
  "frameworks/sproutcore/frameworks/foundation/mixins/button.js",
536
540
  "frameworks/sproutcore/frameworks/foundation/mixins/collection_content.js",
@@ -631,6 +635,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
631
635
  "frameworks/sproutcore/frameworks/foundation/tests/system/user_defaults.js",
632
636
  "frameworks/sproutcore/frameworks/foundation/tests/system/utils/normalizeURL.js",
633
637
  "frameworks/sproutcore/frameworks/foundation/tests/system/utils/range.js",
638
+ "frameworks/sproutcore/frameworks/foundation/tests/system/utils/rect.js",
634
639
  "frameworks/sproutcore/frameworks/foundation/tests/validators/credit_card.js",
635
640
  "frameworks/sproutcore/frameworks/foundation/tests/validators/date.js",
636
641
  "frameworks/sproutcore/frameworks/foundation/tests/validators/number.js",
@@ -716,6 +721,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
716
721
  "frameworks/sproutcore/frameworks/runtime/protocols/observable_protocol.js",
717
722
  "frameworks/sproutcore/frameworks/runtime/protocols/sparse_array_delegate.js",
718
723
  "frameworks/sproutcore/frameworks/runtime/system/binding.js",
724
+ "frameworks/sproutcore/frameworks/runtime/system/cookie.js",
719
725
  "frameworks/sproutcore/frameworks/runtime/system/enumerator.js",
720
726
  "frameworks/sproutcore/frameworks/runtime/system/error.js",
721
727
  "frameworks/sproutcore/frameworks/runtime/system/index_set.js",
@@ -748,6 +754,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
748
754
  "frameworks/sproutcore/frameworks/runtime/tests/mixins/propertyChanges.js",
749
755
  "frameworks/sproutcore/frameworks/runtime/tests/private/observer_queue/isObservingSuspended.js",
750
756
  "frameworks/sproutcore/frameworks/runtime/tests/system/binding.js",
757
+ "frameworks/sproutcore/frameworks/runtime/tests/system/cookie.js",
751
758
  "frameworks/sproutcore/frameworks/runtime/tests/system/error.js",
752
759
  "frameworks/sproutcore/frameworks/runtime/tests/system/index_set/add.js",
753
760
  "frameworks/sproutcore/frameworks/runtime/tests/system/index_set/addEach.js",
@@ -1554,14 +1561,18 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1554
1561
  s.add_runtime_dependency(%q<extlib>, [">= 0.9.9"])
1555
1562
  s.add_runtime_dependency(%q<erubis>, [">= 2.6.2"])
1556
1563
  s.add_runtime_dependency(%q<thor>, [">= 0.11.7"])
1557
- s.add_development_dependency(%q<jeweler>, [">= 1.0.1"])
1564
+ s.add_development_dependency(%q<gemcutter>, [">= 0.1.0"])
1565
+ s.add_development_dependency(%q<jeweler>, [">= 1.0.0"])
1566
+ s.add_development_dependency(%q<rspec>, [">= 1.2.0"])
1558
1567
  else
1559
1568
  s.add_dependency(%q<rack>, [">= 0.9.1"])
1560
1569
  s.add_dependency(%q<json_pure>, [">= 1.1.0"])
1561
1570
  s.add_dependency(%q<extlib>, [">= 0.9.9"])
1562
1571
  s.add_dependency(%q<erubis>, [">= 2.6.2"])
1563
1572
  s.add_dependency(%q<thor>, [">= 0.11.7"])
1564
- s.add_dependency(%q<jeweler>, [">= 1.0.1"])
1573
+ s.add_dependency(%q<gemcutter>, [">= 0.1.0"])
1574
+ s.add_dependency(%q<jeweler>, [">= 1.0.0"])
1575
+ s.add_dependency(%q<rspec>, [">= 1.2.0"])
1565
1576
  end
1566
1577
  else
1567
1578
  s.add_dependency(%q<rack>, [">= 0.9.1"])
@@ -1569,6 +1580,9 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1569
1580
  s.add_dependency(%q<extlib>, [">= 0.9.9"])
1570
1581
  s.add_dependency(%q<erubis>, [">= 2.6.2"])
1571
1582
  s.add_dependency(%q<thor>, [">= 0.11.7"])
1572
- s.add_dependency(%q<jeweler>, [">= 1.0.1"])
1583
+ s.add_dependency(%q<gemcutter>, [">= 0.1.0"])
1584
+ s.add_dependency(%q<jeweler>, [">= 1.0.0"])
1585
+ s.add_dependency(%q<rspec>, [">= 1.2.0"])
1573
1586
  end
1574
1587
  end
1588
+