sproutcore 0.9.9 → 0.9.10
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +9 -0
- data/Manifest.txt +32 -32
- data/app_generators/sproutcore/sproutcore_generator.rb +2 -0
- data/app_generators/sproutcore/templates/README +5 -5
- data/bin/sc-gen +1 -1
- data/bin/sproutcore +1 -0
- data/frameworks/sproutcore/Core.js +26 -11
- data/frameworks/sproutcore/HISTORY +6 -0
- data/frameworks/sproutcore/controllers/array.js +1 -1
- data/frameworks/sproutcore/drag/drag.js +2 -2
- data/frameworks/sproutcore/english.lproj/panes.css +1 -1
- data/frameworks/sproutcore/english.lproj/theme.css +4 -4
- data/frameworks/sproutcore/foundation/binding.js +2 -1
- data/frameworks/sproutcore/foundation/input_manager.js +9 -8
- data/frameworks/sproutcore/foundation/path_module.js +1 -1
- data/frameworks/sproutcore/lib/core_views.rb +3 -1
- data/frameworks/sproutcore/lib/index.rhtml +2 -2
- data/frameworks/sproutcore/lib/menu_views.rb +6 -1
- data/frameworks/sproutcore/mixins/observable.js +119 -17
- data/frameworks/sproutcore/mixins/scrollable.js +5 -3
- data/frameworks/sproutcore/tests/views/view/innerFrame.rhtml +3 -1
- data/frameworks/sproutcore/views/button/button.js +15 -0
- data/frameworks/sproutcore/views/field/textarea_field.js +8 -0
- data/frameworks/sproutcore/views/form.js +39 -33
- data/frameworks/sproutcore/views/popup_menu.js +7 -11
- data/frameworks/sproutcore/views/view.js +31 -7
- data/lib/sproutcore/bundle.rb +44 -11
- data/lib/sproutcore/library.rb +5 -5
- data/lib/sproutcore/merb/bundle_controller.rb +7 -3
- data/lib/sproutcore/version.rb +1 -1
- data/{generators → sc_generators}/client/README +1 -1
- data/{generators → sc_generators}/client/USAGE +0 -0
- data/{generators → sc_generators}/client/client_generator.rb +0 -0
- data/{generators → sc_generators}/client/templates/core.js +0 -0
- data/{generators → sc_generators}/client/templates/english.lproj/body.css +0 -0
- data/{generators → sc_generators}/client/templates/english.lproj/body.rhtml +0 -0
- data/{generators → sc_generators}/client/templates/english.lproj/strings.js +0 -0
- data/{generators → sc_generators}/client/templates/main.js +0 -0
- data/{generators → sc_generators}/controller/USAGE +0 -0
- data/{generators → sc_generators}/controller/controller_generator.rb +0 -0
- data/{generators → sc_generators}/controller/templates/controller.js +0 -0
- data/{generators → sc_generators}/controller/templates/test.rhtml +0 -0
- data/{generators → sc_generators}/framework/README +1 -1
- data/{generators → sc_generators}/framework/USAGE +0 -0
- data/{generators → sc_generators}/framework/framework_generator.rb +0 -0
- data/{generators → sc_generators}/framework/templates/core.js +0 -0
- data/{generators → sc_generators}/framework/templates/english.lproj/strings.js +0 -0
- data/{generators → sc_generators}/language/USAGE +0 -0
- data/{generators → sc_generators}/language/language_generator.rb +0 -0
- data/{generators → sc_generators}/language/templates/strings.js +0 -0
- data/{generators → sc_generators}/model/USAGE +0 -0
- data/{generators → sc_generators}/model/model_generator.rb +0 -0
- data/{generators → sc_generators}/model/templates/fixture.js +0 -0
- data/{generators → sc_generators}/model/templates/model.js +0 -0
- data/{generators → sc_generators}/model/templates/test.rhtml +0 -0
- data/{generators → sc_generators}/test/USAGE +0 -0
- data/{generators → sc_generators}/test/templates/test.rhtml +0 -0
- data/{generators → sc_generators}/test/test_generator.rb +0 -0
- data/{generators → sc_generators}/view/USAGE +0 -0
- data/{generators → sc_generators}/view/templates/test.rhtml +0 -0
- data/{generators → sc_generators}/view/templates/view.js +0 -0
- data/{generators → sc_generators}/view/view_generator.rb +0 -0
- metadata +34 -34
@@ -104,7 +104,9 @@ SC.Scrollable = {
|
|
104
104
|
|
105
105
|
// compute new sf
|
106
106
|
var newSf = { x: sf.x - (amount.x || 0), y: sf.y - (amount.y || 0) } ;
|
107
|
-
|
107
|
+
this.set('scrollFrame', newSf) ;
|
108
|
+
newSf = this.get('scrollFrame') ;
|
109
|
+
|
108
110
|
return { x: newSf.x - sf.x, y: newSf.y - sf.y };
|
109
111
|
},
|
110
112
|
|
@@ -141,8 +143,8 @@ SC.Scrollable = {
|
|
141
143
|
};
|
142
144
|
|
143
145
|
// if top edge is not visible, shift origin
|
144
|
-
vo.y
|
145
|
-
vo.x
|
146
|
+
vo.y -= Math.max(0, SC.minY(vo) - SC.minY(vf)) ;
|
147
|
+
vo.x -= Math.max(0, SC.minX(vo) - SC.minX(vf)) ;
|
146
148
|
|
147
149
|
// if bottom edge is not visible, shift origin
|
148
150
|
vo.y += Math.max(0, SC.maxY(vf) - SC.maxY(vo)) ;
|
@@ -112,7 +112,9 @@ Test.context("CASE 3: manual-layout view with some padding and no border", {
|
|
112
112
|
},
|
113
113
|
|
114
114
|
"after frame change, innerFrame should == frame less border, viewFrameDidChange is not required.": function() {
|
115
|
-
var f
|
115
|
+
var f ;
|
116
|
+
|
117
|
+
this.v.set('frame', f = { width: 50, x: 10, y: 10, height: 50 }) ;
|
116
118
|
f.x += CASE3_OFFSET; f.y += CASE3_OFFSET;
|
117
119
|
f.width -= (CASE3_OFFSET*2); f.height -= (CASE3_OFFSET*2) ;
|
118
120
|
//console.log('f: %@ if: %@'.fmt($H(f).inspect(), $H(this.v.get('innerFrame')).inspect()));
|
@@ -184,6 +184,21 @@ SC.ButtonView = SC.View.extend(SC.Control,
|
|
184
184
|
return this._title ;
|
185
185
|
}.property(),
|
186
186
|
|
187
|
+
/**
|
188
|
+
The button href value.
|
189
|
+
|
190
|
+
This property is observable and bindable. Can be used to create localized button href values.
|
191
|
+
*/
|
192
|
+
href: function(key, value) {
|
193
|
+
var el = this.rootElement;
|
194
|
+
if (value !== undefined) {
|
195
|
+
if (el) {
|
196
|
+
el.setAttribute('href', value);
|
197
|
+
}
|
198
|
+
}
|
199
|
+
return (el) ? el.getAttribute('href') : null;
|
200
|
+
}.property(),
|
201
|
+
|
187
202
|
/**
|
188
203
|
The name of the action you want triggered when the button is pressed.
|
189
204
|
|
@@ -18,6 +18,14 @@ SC.TextareaFieldView = SC.TextFieldView.extend(
|
|
18
18
|
/** @scope SC.TextareaFieldView.prototype */ {
|
19
19
|
|
20
20
|
emptyElement: '<textarea></textarea>',
|
21
|
+
didBecomeFirstResponder: function() {
|
22
|
+
if (this.get('isVisibleInWindow')) {
|
23
|
+
this.rootElement.focus();
|
24
|
+
this.invokeLater(this._selectRootElement, 1) ;
|
25
|
+
}
|
26
|
+
// hide the hint text if it is showing.
|
27
|
+
this._updateFieldHint() ;
|
28
|
+
},
|
21
29
|
|
22
30
|
insertNewline: function(evt) { evt._stopWhenHandled = false; return true; }
|
23
31
|
|
@@ -7,39 +7,45 @@ require('views/view') ;
|
|
7
7
|
require('views/button/button') ;
|
8
8
|
require('views/field/text_field') ;
|
9
9
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
10
|
+
/**
|
11
|
+
FormView provides a simple way for you to focus a group of views onto a
|
12
|
+
single content object or set of content objects. It can also be used to
|
13
|
+
"stage" input by buffering data from your views into the form before it is
|
14
|
+
set on your actual content object. This approach is generally deprecated
|
15
|
+
however as the Controller objects now provide this same buffering feature
|
16
|
+
in a more robust way.
|
17
|
+
|
18
|
+
h2. How It Works
|
19
|
+
|
20
|
+
On startup, FormView will walk any child views looking for any views
|
21
|
+
with the property "fieldKey". Any views with this key will be saved as
|
22
|
+
fields on the form. You can access their value directly on the form by
|
23
|
+
getting the value of fieldKey.
|
24
|
+
|
25
|
+
Used this way, you can easily combine multiple views into a single,
|
26
|
+
bindable object. To gain the full functionality however, you should use
|
27
|
+
the content commit capability.
|
28
|
+
|
29
|
+
IMPORTANT: FormView defines some properties of its own. If you try to
|
30
|
+
name your fields with properties already declared in FormView, they will
|
31
|
+
be ignored and a warning will be logged to the console.
|
32
|
+
|
33
|
+
h2. Content Commit
|
34
|
+
|
35
|
+
If you set the content object on a form view, then the form fields will
|
36
|
+
automatically be bound to the same named keys on the content object. When
|
37
|
+
the content object value's change, the fields on the form will update
|
38
|
+
automatically. Likewise, if you change the value of the field, the value
|
39
|
+
of the content object will generally be changed as wel.
|
40
|
+
|
41
|
+
If you prefer, you can also turn on buffered commits by setting the
|
42
|
+
commitChangesImmediately property to NO. This will cause the form to
|
43
|
+
buffer any changes to the field values and only forwards them to the content
|
44
|
+
when you call commitChanges() on the form. This method of buffering is
|
45
|
+
still supported for some simple cases, however it is better to use the newer
|
46
|
+
Controller objects that provide this same buffering in a more robust way.
|
47
|
+
|
48
|
+
*/
|
43
49
|
SC.FormView = SC.View.extend({
|
44
50
|
|
45
51
|
// PROPERTIES
|
@@ -127,17 +127,13 @@ SC.PopupMenuView = SC.View.extend({
|
|
127
127
|
if (w > requiredWidth) requiredWidth = w ;
|
128
128
|
child = child.get('nextSibling') ;
|
129
129
|
}
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
}
|
138
|
-
|
139
|
-
// set this view to the same size.
|
140
|
-
this.set('size',size) ;
|
130
|
+
var oldWidth = this.get("size").width;
|
131
|
+
if(requiredWidth != oldWidth)
|
132
|
+
{
|
133
|
+
var size = { width: requiredWidth };
|
134
|
+
// set this view to the same size.
|
135
|
+
this.set('size',size) ;
|
136
|
+
}
|
141
137
|
}
|
142
138
|
|
143
139
|
});
|
@@ -61,7 +61,7 @@ SC.View = SC.Responder.extend(SC.PathModule, SC.DelegateSupport,
|
|
61
61
|
@param view {SC.View} the view to insert as a child node.
|
62
62
|
@param beforeView {SC.View} view to insert before, or null to insert at
|
63
63
|
end
|
64
|
-
@returns {
|
64
|
+
@returns {SC.View} the receiver
|
65
65
|
*/
|
66
66
|
insertBefore: function(view, beforeView) {
|
67
67
|
this._insertBefore(view,beforeView,true);
|
@@ -125,7 +125,7 @@ SC.View = SC.Responder.extend(SC.PathModule, SC.DelegateSupport,
|
|
125
125
|
This will also remove the view's DOM element from the recievers DOM.
|
126
126
|
|
127
127
|
@param view {SC.View} the view to remove
|
128
|
-
@returns {
|
128
|
+
@returns {SC.View} the receiver
|
129
129
|
*/
|
130
130
|
removeChild: function(view) {
|
131
131
|
if (!view) return ;
|
@@ -163,6 +163,7 @@ SC.View = SC.Responder.extend(SC.PathModule, SC.DelegateSupport,
|
|
163
163
|
|
164
164
|
view.didRemoveFromParent(this) ;
|
165
165
|
this.didRemoveChild(view);
|
166
|
+
return this;
|
166
167
|
},
|
167
168
|
|
168
169
|
/**
|
@@ -175,31 +176,54 @@ SC.View = SC.Responder.extend(SC.PathModule, SC.DelegateSupport,
|
|
175
176
|
|
176
177
|
@param view {SC.View} the view to insert in the DOM
|
177
178
|
@param view {SC.View} the view to remove from the DOM.
|
178
|
-
@returns {
|
179
|
+
@returns {SC.View} the receiver
|
179
180
|
*/
|
180
181
|
replaceChild: function(view, oldView) {
|
181
182
|
this.insertBefore(view,oldView) ; this.removeChild(oldView) ;
|
183
|
+
return this;
|
182
184
|
},
|
183
185
|
|
184
186
|
/**
|
185
187
|
Removes the receiver from its parentNode. If the receiver does not belong
|
186
188
|
to a parentNode, this method does nothing.
|
187
189
|
|
188
|
-
@returns {
|
190
|
+
@returns {null}
|
189
191
|
*/
|
190
192
|
removeFromParent: function() {
|
191
193
|
if (this.parentNode) this.parentNode.removeChild(this) ;
|
194
|
+
return null ;
|
192
195
|
},
|
193
196
|
|
197
|
+
/**
|
198
|
+
Works just like removeFromParent but also removes the view from internal
|
199
|
+
caches and sets the rootElement to null so that the view and its DOM can
|
200
|
+
be garbage collected.
|
201
|
+
|
202
|
+
SproutCore includes special gaurds that ensure views and their related
|
203
|
+
DOM elements will be garbage collected whenever your web page unloads.
|
204
|
+
However, if you create and destroy views frequently while your application
|
205
|
+
is running, you should call this method when views are no longer needed
|
206
|
+
to ensure they will be garbage collected even while your application is
|
207
|
+
still running.
|
208
|
+
|
209
|
+
@returns {null}
|
210
|
+
*/
|
211
|
+
destroy: function() {
|
212
|
+
this.removeFromParent() ;
|
213
|
+
delete SC.View._view[SC.guidFor(this)];
|
214
|
+
return null ;
|
215
|
+
},
|
216
|
+
|
194
217
|
/**
|
195
218
|
Appends the specified view to the end of the receivers childNodes array.
|
196
219
|
This is equivalent to calling insertBefore(view, null);
|
197
220
|
|
198
221
|
@param view {SC.View} the view to insert
|
199
|
-
@returns {
|
222
|
+
@returns {SC.View} the receiver
|
200
223
|
*/
|
201
224
|
appendChild: function(view) {
|
202
|
-
this.insertBefore(view,null) ;
|
225
|
+
this.insertBefore(view,null) ;
|
226
|
+
return this ;
|
203
227
|
},
|
204
228
|
|
205
229
|
/**
|
@@ -636,7 +660,7 @@ SC.View = SC.Responder.extend(SC.PathModule, SC.DelegateSupport,
|
|
636
660
|
@returns {String} the set attribute name
|
637
661
|
*/
|
638
662
|
setAttribute: function(attrName, value) {
|
639
|
-
this.rootElement.setAttribute(
|
663
|
+
this.rootElement.setAttribute(attrName, value) ;
|
640
664
|
},
|
641
665
|
|
642
666
|
/**
|
data/lib/sproutcore/bundle.rb
CHANGED
@@ -81,9 +81,10 @@ module SproutCore
|
|
81
81
|
|
82
82
|
attr_reader :bundle_name, :bundle_type, :required_bundles, :preferred_language
|
83
83
|
attr_reader :javascript_libs, :stylesheet_libs
|
84
|
-
attr_reader :library, :public_root, :url_prefix, :index_prefix
|
84
|
+
attr_reader :library, :public_root, :url_prefix, :index_prefix, :build_prefix
|
85
85
|
attr_reader :source_root, :build_root, :url_root, :index_root
|
86
86
|
attr_reader :build_mode, :layout
|
87
|
+
attr_reader :make_resources_relative
|
87
88
|
|
88
89
|
def library_root
|
89
90
|
@library_root ||= library.nil? ? nil : library.root_path
|
@@ -175,10 +176,15 @@ module SproutCore
|
|
175
176
|
|
176
177
|
# public_root:: The root directory accessible to the web browser.
|
177
178
|
@public_root = normalize_path(opts[:public_root] || 'public')
|
178
|
-
|
179
|
+
|
180
|
+
@make_resources_relative = opts[:resources_relative] || false
|
181
|
+
|
179
182
|
# url_prefix:: The prefix to put in front of all resource requests.
|
180
|
-
@url_prefix = opts[:url_prefix] || opts[:resources_at] || opts[:at] || 'static'
|
181
|
-
|
183
|
+
@url_prefix = opts[:url_prefix] || opts[:resources_at] || opts[:at] || (make_resources_relative ? '../..' : 'static')
|
184
|
+
|
185
|
+
# build_prefix:: The prefix to put in front of the built files directory. Generally if you are using absolute paths you want your build_prefix to match the url_prefix. If you are using relative paths, you don't want a build prefix.
|
186
|
+
@build_prefix = opts[:build_prefix] || (make_resources_relative ? '' : url_prefix)
|
187
|
+
|
182
188
|
# index_prefix:: The prefix to put in front of all index.html request.
|
183
189
|
@index_prefix = opts[:index_prefix] || opts[:index_at] || ''
|
184
190
|
|
@@ -188,10 +194,17 @@ module SproutCore
|
|
188
194
|
@source_root = normalize_path(opts[:source_root] || File.join(bundle_type.to_s.pluralize, bundle_name.to_s))
|
189
195
|
|
190
196
|
# build_root:: The directory that should contain the built files.
|
191
|
-
@build_root = normalize_path(opts[:build_root] || File.join(public_root,
|
197
|
+
@build_root = normalize_path(opts[:build_root] || File.join(public_root, build_prefix.to_s, bundle_name.to_s))
|
192
198
|
|
193
199
|
# url_root:: The url that can be used to reach the built resources
|
194
|
-
|
200
|
+
|
201
|
+
# Note that if the resources are relative, we don't want to include a
|
202
|
+
# '/' at the front. Using nil will cause it to be removed during
|
203
|
+
# compact.
|
204
|
+
@url_root = opts[:url_root] || [
|
205
|
+
(make_resources_relative ? nil : ''),
|
206
|
+
(url_prefix.nil? || url_prefix.size==0) ? nil : url_prefix,
|
207
|
+
bundle_name.to_s].compact.join('/')
|
195
208
|
|
196
209
|
# index_root:: The root url that can be used to reach retrieve the index.html.
|
197
210
|
@index_root = opts[:index_root] || ['',(index_prefix.nil? || index_prefix.size==0) ? nil : index_prefix, bundle_name.to_s].compact.join('/')
|
@@ -489,12 +502,32 @@ module SproutCore
|
|
489
502
|
|
490
503
|
languages.uniq.each { |lang| build_language(lang) }
|
491
504
|
|
492
|
-
# After build is complete, try to copy the index.html file of the
|
493
|
-
# to the build_root
|
505
|
+
# After build is complete, try to copy the index.html file of the
|
506
|
+
# preferred language to the build_root
|
494
507
|
index_entry = entry_for('index.html', :language => preferred_language)
|
495
508
|
if index_entry && File.exists?(index_entry.build_path)
|
496
|
-
|
497
|
-
|
509
|
+
|
510
|
+
# If we are publishing relative resources, then the default
|
511
|
+
# index.html needs to just redirect to the default language.
|
512
|
+
if make_resources_relative
|
513
|
+
index_url = index_entry.url.gsub("#{self.index_root}/",'')
|
514
|
+
file = %(<html><head>
|
515
|
+
<meta http-equiv="refresh" content="0;url=#{index_url}" />
|
516
|
+
<script type="text/javascript">
|
517
|
+
window.location.href='#{index_url}';
|
518
|
+
</script>
|
519
|
+
</head>
|
520
|
+
<body><a href="#{index_url}">Click here</a> if you are not redirected.</body></html>)
|
521
|
+
f = File.open(File.join(build_root, 'index.html'), 'w+')
|
522
|
+
f.write(file)
|
523
|
+
f.close
|
524
|
+
|
525
|
+
# Otherwise, just copy the contents of the index.html for the
|
526
|
+
# preferred language.
|
527
|
+
else
|
528
|
+
FileUtils.mkdir_p(build_root)
|
529
|
+
FileUtils.cp_r(index_entry.build_path, File.join(build_root,'index.html'))
|
530
|
+
end
|
498
531
|
end
|
499
532
|
end
|
500
533
|
|
@@ -682,7 +715,7 @@ module SproutCore
|
|
682
715
|
# Converts the named path to a fully qualified path name using the library
|
683
716
|
# root, if it does not begin with a slash
|
684
717
|
def normalize_path(path)
|
685
|
-
|
718
|
+
File.expand_path(path, library_root)
|
686
719
|
end
|
687
720
|
|
688
721
|
end
|
data/lib/sproutcore/library.rb
CHANGED
@@ -167,9 +167,9 @@ module SproutCore
|
|
167
167
|
end
|
168
168
|
|
169
169
|
# Returns the computed environment for a particular client or framework.
|
170
|
-
# This will go up the chain of parent libraries, retrieving and merging
|
171
|
-
# environment settings. The returned options are suitable for
|
172
|
-
# for registration.
|
170
|
+
# This will go up the chain of parent libraries, retrieving and merging
|
171
|
+
# any known environment settings. The returned options are suitable for
|
172
|
+
# passing to the ClientBuilder for registration.
|
173
173
|
def environment_for(bundle_name)
|
174
174
|
|
175
175
|
is_local_client = client_directories.include?(bundle_name.to_s)
|
@@ -204,8 +204,8 @@ module SproutCore
|
|
204
204
|
ret[key] = all[key] if all.include?(key)
|
205
205
|
end
|
206
206
|
|
207
|
-
# Either way, if we have local settings for this specific client, they
|
208
|
-
# we cooked up just now.
|
207
|
+
# Either way, if we have local settings for this specific client, they
|
208
|
+
# override whatever we cooked up just now.
|
209
209
|
local_settings = environment[bundle_name.to_sym]
|
210
210
|
ret = ret.merge(local_settings) unless local_settings.nil?
|
211
211
|
|
@@ -93,10 +93,14 @@ module SproutCore
|
|
93
93
|
ret = File.open(build_path)
|
94
94
|
|
95
95
|
|
96
|
-
# In development mode only, immediately delete built composite
|
97
|
-
# each request to come directly to us.
|
96
|
+
# In development mode only, immediately delete built composite
|
97
|
+
# resources. We want each request to come directly to us.
|
98
98
|
if (current_bundle.build_mode == :development) && (!entry.cacheable?)
|
99
|
-
|
99
|
+
|
100
|
+
# Deleting composite resources will not work in windows because it
|
101
|
+
# does not like to have files you just open deleted. (Its OK on
|
102
|
+
# windows)
|
103
|
+
FileUtils.rm(build_path) if (RUBY_PLATFORM !~ /mswin32/)
|
100
104
|
end
|
101
105
|
|
102
106
|
return ret
|
data/lib/sproutcore/version.rb
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
Your new SproutCore client application has been created. To access your application, just start sc-
|
1
|
+
Your new SproutCore client application has been created. To access your application, just start sc-server and visit your client name in the web browser.
|
2
2
|
|
3
3
|
If you want to change the deployment settings for your application edit the sc-config.rb file to get started.
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sproutcore
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Charles Jolley
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-06-
|
12
|
+
date: 2008-06-17 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -295,38 +295,6 @@ files:
|
|
295
295
|
- frameworks/sproutcore/views/tab.js
|
296
296
|
- frameworks/sproutcore/views/toolbar.js
|
297
297
|
- frameworks/sproutcore/views/view.js
|
298
|
-
- generators/client/client_generator.rb
|
299
|
-
- generators/client/README
|
300
|
-
- generators/client/templates/core.js
|
301
|
-
- generators/client/templates/english.lproj/body.css
|
302
|
-
- generators/client/templates/english.lproj/body.rhtml
|
303
|
-
- generators/client/templates/english.lproj/strings.js
|
304
|
-
- generators/client/templates/main.js
|
305
|
-
- generators/client/USAGE
|
306
|
-
- generators/controller/controller_generator.rb
|
307
|
-
- generators/controller/templates/controller.js
|
308
|
-
- generators/controller/templates/test.rhtml
|
309
|
-
- generators/controller/USAGE
|
310
|
-
- generators/framework/framework_generator.rb
|
311
|
-
- generators/framework/README
|
312
|
-
- generators/framework/templates/core.js
|
313
|
-
- generators/framework/templates/english.lproj/strings.js
|
314
|
-
- generators/framework/USAGE
|
315
|
-
- generators/language/language_generator.rb
|
316
|
-
- generators/language/templates/strings.js
|
317
|
-
- generators/language/USAGE
|
318
|
-
- generators/model/model_generator.rb
|
319
|
-
- generators/model/templates/fixture.js
|
320
|
-
- generators/model/templates/model.js
|
321
|
-
- generators/model/templates/test.rhtml
|
322
|
-
- generators/model/USAGE
|
323
|
-
- generators/test/templates/test.rhtml
|
324
|
-
- generators/test/test_generator.rb
|
325
|
-
- generators/test/USAGE
|
326
|
-
- generators/view/templates/test.rhtml
|
327
|
-
- generators/view/templates/view.js
|
328
|
-
- generators/view/USAGE
|
329
|
-
- generators/view/view_generator.rb
|
330
298
|
- History.txt
|
331
299
|
- jsdoc/app/DocFile.js
|
332
300
|
- jsdoc/app/Doclet.js
|
@@ -379,6 +347,38 @@ files:
|
|
379
347
|
- Rakefile
|
380
348
|
- README.txt
|
381
349
|
- sc-config.rb
|
350
|
+
- sc_generators/client/client_generator.rb
|
351
|
+
- sc_generators/client/README
|
352
|
+
- sc_generators/client/templates/core.js
|
353
|
+
- sc_generators/client/templates/english.lproj/body.css
|
354
|
+
- sc_generators/client/templates/english.lproj/body.rhtml
|
355
|
+
- sc_generators/client/templates/english.lproj/strings.js
|
356
|
+
- sc_generators/client/templates/main.js
|
357
|
+
- sc_generators/client/USAGE
|
358
|
+
- sc_generators/controller/controller_generator.rb
|
359
|
+
- sc_generators/controller/templates/controller.js
|
360
|
+
- sc_generators/controller/templates/test.rhtml
|
361
|
+
- sc_generators/controller/USAGE
|
362
|
+
- sc_generators/framework/framework_generator.rb
|
363
|
+
- sc_generators/framework/README
|
364
|
+
- sc_generators/framework/templates/core.js
|
365
|
+
- sc_generators/framework/templates/english.lproj/strings.js
|
366
|
+
- sc_generators/framework/USAGE
|
367
|
+
- sc_generators/language/language_generator.rb
|
368
|
+
- sc_generators/language/templates/strings.js
|
369
|
+
- sc_generators/language/USAGE
|
370
|
+
- sc_generators/model/model_generator.rb
|
371
|
+
- sc_generators/model/templates/fixture.js
|
372
|
+
- sc_generators/model/templates/model.js
|
373
|
+
- sc_generators/model/templates/test.rhtml
|
374
|
+
- sc_generators/model/USAGE
|
375
|
+
- sc_generators/test/templates/test.rhtml
|
376
|
+
- sc_generators/test/test_generator.rb
|
377
|
+
- sc_generators/test/USAGE
|
378
|
+
- sc_generators/view/templates/test.rhtml
|
379
|
+
- sc_generators/view/templates/view.js
|
380
|
+
- sc_generators/view/USAGE
|
381
|
+
- sc_generators/view/view_generator.rb
|
382
382
|
- script/destroy
|
383
383
|
- script/generate
|
384
384
|
- script/txt2html
|