sproutcore 1.6.0.1-java → 1.7.1.beta-java
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.
- data/CHANGELOG +21 -0
- data/Gemfile +5 -0
- data/Rakefile +26 -13
- data/VERSION.yml +2 -2
- data/lib/Buildfile +43 -4
- data/lib/buildtasks/build.rake +10 -0
- data/lib/buildtasks/helpers/file_rule.rb +22 -0
- data/lib/buildtasks/helpers/file_rule_list.rb +137 -0
- data/lib/buildtasks/manifest.rake +133 -122
- data/lib/frameworks/sproutcore/CHANGELOG.md +69 -2
- data/lib/frameworks/sproutcore/apps/tests/english.lproj/strings.js +1 -0
- data/lib/frameworks/sproutcore/frameworks/bootstrap/system/browser.js +28 -22
- data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/array.js +9 -5
- data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/controller.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/controls/button.js +18 -13
- data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/handlebars/bind.js +5 -3
- data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/handlebars/collection.js +2 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/action_support.js +80 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/template_helpers/text_field_support.js +84 -116
- data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/pane.js +8 -5
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/event.js +157 -157
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/platform.js +5 -3
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/root_responder.js +6 -6
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/sparse_array.js +10 -7
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/mixins/action_support.js +106 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template/collection.js +18 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template/handlebars.js +71 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/attribute_bindings_test.js +38 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/class_name_bindings_test.js +47 -0
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/layoutChildViews.js +18 -18
- data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/layoutStyle.js +42 -10
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view.js +158 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/keyboard.js +26 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/layout_style.js +14 -8
- data/lib/frameworks/sproutcore/frameworks/datastore/models/record.js +15 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/models/record_attribute.js +108 -108
- data/lib/frameworks/sproutcore/frameworks/datastore/system/query.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/system/record_array.js +2 -4
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/record/error_methods.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/models/single_attribute.js +26 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/builders.js +7 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/record_array/error_methods.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/core/system/datetime.js +4 -1
- data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/core/tests/system/datetime.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/menu.js +26 -5
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/picker.js +97 -96
- data/lib/frameworks/sproutcore/frameworks/desktop/system/drag.js +4 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/menu/ui.js +17 -4
- data/lib/frameworks/sproutcore/frameworks/desktop/views/collection.js +7 -7
- data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_item.js +7 -5
- data/lib/frameworks/sproutcore/frameworks/desktop/views/scroll.js +12 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/views/web.js +23 -14
- data/lib/frameworks/sproutcore/frameworks/experimental/Buildfile +5 -1
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/menu/render_delegates/menu_scroller.js +28 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/menu/tests/menu/scroll.js +235 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/menu/views/menu/scroll.js +363 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/menu/views/menu/scroller.js +250 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/render_delegates/desktop_scroller.js +92 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/render_delegates/native_scroll.js +25 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/render_delegates/scroll.js +33 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/render_delegates/touch_scroller.js +76 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/tests/scroll/integration.js +50 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/tests/scroll/methods.js +143 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/tests/scroll/ui.js +258 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/core_scroll.js +1164 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/core_scroller.js +332 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/desktop/scroll.js +236 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/desktop/scroller.js +347 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/scroll.js +15 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/scroller.js +10 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/touch/scroll.js +804 -0
- data/lib/frameworks/sproutcore/frameworks/experimental/frameworks/scroll_view/views/touch/scroller.js +133 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/resources/text_field.css +3 -3
- data/lib/frameworks/sproutcore/frameworks/foundation/validators/number.js +3 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/views/text_field.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/media/views/audio.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/media/views/controls.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/media/views/media_slider.js +2 -4
- data/lib/frameworks/sproutcore/frameworks/media/views/mini_controls.js +2 -4
- data/lib/frameworks/sproutcore/frameworks/media/views/simple_controls.js +2 -4
- data/lib/frameworks/sproutcore/frameworks/media/views/video.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/routing/system/routes.js +29 -3
- data/lib/frameworks/sproutcore/frameworks/runtime/core.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/replace.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/private/property_chain.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/runtime/system/binding.js +3 -3
- data/lib/frameworks/sproutcore/frameworks/runtime/system/index_set.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/system/object.js +1 -1
- data/lib/frameworks/sproutcore/themes/ace/resources/collection/normal/list_item.css +2 -2
- data/lib/frameworks/sproutcore/themes/legacy_theme/english.lproj/segmented.css +1 -1
- data/lib/gen/app/templates/apps/@target_name@/Buildfile +3 -5
- data/lib/gen/app/templates/apps/@target_name@/resources/_theme.css +18 -0
- data/lib/gen/project/templates/@filename@/Buildfile +2 -2
- data/lib/sproutcore.rb +30 -5
- data/lib/sproutcore/builders.rb +1 -0
- data/lib/sproutcore/builders/chance_file.rb +9 -16
- data/lib/sproutcore/builders/html.rb +2 -1
- data/lib/sproutcore/builders/minify.rb +4 -35
- data/lib/sproutcore/builders/module.rb +38 -1
- data/lib/sproutcore/builders/split.rb +63 -0
- data/lib/sproutcore/builders/strings.rb +7 -1
- data/lib/sproutcore/helpers.rb +1 -1
- data/lib/sproutcore/helpers/css_split.rb +190 -0
- data/lib/sproutcore/helpers/entry_sorter.rb +2 -0
- data/lib/sproutcore/helpers/minifier.rb +40 -16
- data/lib/sproutcore/helpers/static_helper.rb +35 -17
- data/lib/sproutcore/models/manifest.rb +26 -0
- data/lib/sproutcore/models/target.rb +12 -1
- data/lib/sproutcore/rack.rb +1 -0
- data/lib/sproutcore/rack/proxy.rb +244 -225
- data/lib/sproutcore/rack/restrict_ip.rb +67 -0
- data/lib/sproutcore/rack/service.rb +8 -2
- data/lib/sproutcore/tools.rb +102 -46
- data/lib/sproutcore/tools/build.rb +91 -43
- data/lib/sproutcore/tools/gen.rb +2 -3
- data/lib/sproutcore/tools/manifest.rb +22 -16
- data/lib/sproutcore/tools/server.rb +21 -0
- data/spec/buildtasks/helpers/accept_list +22 -0
- data/spec/buildtasks/helpers/accept_list.rb +128 -0
- data/spec/buildtasks/helpers/list.json +11 -0
- data/spec/buildtasks/manifest/prepare_build_tasks/chance_2x_spec.rb +1 -39
- data/spec/buildtasks/manifest/prepare_build_tasks/chance_spec.rb +0 -38
- data/spec/buildtasks/manifest/prepare_build_tasks/combine_spec.rb +4 -4
- data/spec/buildtasks/manifest/prepare_build_tasks/module_spec.rb +2 -2
- data/spec/buildtasks/manifest/prepare_build_tasks/packed_2x_indirect_spec.rb +7 -16
- data/spec/buildtasks/manifest/prepare_build_tasks/packed_2x_spec.rb +7 -17
- data/spec/buildtasks/manifest/prepare_build_tasks/packed_spec.rb +11 -6
- data/spec/fixtures/builder_tests/Buildfile +2 -1
- data/spec/fixtures/builder_tests/apps/module_test/modules/required_module/core.js +0 -0
- data/spec/lib/builders/module_spec.rb +1 -1
- data/spec/spec_helper.rb +1 -0
- data/sproutcore.gemspec +4 -9
- data/vendor/chance/lib/chance.rb +25 -6
- data/vendor/chance/lib/chance/factory.rb +45 -0
- data/vendor/chance/lib/chance/instance.rb +173 -28
- data/vendor/chance/lib/chance/instance/data_url.rb +0 -29
- data/vendor/chance/lib/chance/instance/slicing.rb +57 -4
- data/vendor/chance/lib/chance/instance/spriting.rb +112 -21
- data/vendor/chance/lib/chance/parser.rb +80 -52
- data/vendor/sproutcore/SCCompiler.jar +0 -0
- data/vendor/sproutcore/lib/args4j-2.0.12.jar +0 -0
- data/vendor/sproutcore/lib/yuicompressor-2.4.2.jar +0 -0
- metadata +84 -25
data/CHANGELOG
CHANGED
@@ -1,3 +1,24 @@
|
|
1
|
+
*SproutCore 1.7.1.beta (August 30, 2011)*
|
2
|
+
|
3
|
+
MINOR FEATURES
|
4
|
+
|
5
|
+
* When the file hits the 4096 CSS selectors limit in IE , the tools will split the files.
|
6
|
+
* Sprites are now optimized to use space in the most optimal way, to reduce
|
7
|
+
memory foot print generated by a lot of extra transparent space.
|
8
|
+
* Layout.js will be always first when building the js files , just as strings.js (Layout.js includes loc metrics)
|
9
|
+
* Added security feature for dev environment. By default sc-server can only be used from your local machine unless you set a flag.
|
10
|
+
|
11
|
+
BUG FIXES
|
12
|
+
|
13
|
+
* Sprites is again the default for abbot after several perf problems with base64 urls across different browsers.
|
14
|
+
* Minification is optimized again to minify the index.html.
|
15
|
+
* Fixes for whitelist, when the name filenames include the 'html' string.
|
16
|
+
* Several bug fixes for speed and reliability of whitelisting.
|
17
|
+
* Fixed retina display styling.
|
18
|
+
* Fixed --help command line option.
|
19
|
+
* Updated abbot gem dependencies.
|
20
|
+
|
21
|
+
|
1
22
|
*SproutCore 1.6.0 (June 09, 2011)*
|
2
23
|
|
3
24
|
* Code cleanup + Stream the headers and body directly across the proxy as they arrive, which will work with streaming APIs like Twitter
|
data/Gemfile
CHANGED
data/Rakefile
CHANGED
@@ -66,11 +66,6 @@ end
|
|
66
66
|
|
67
67
|
### RELEASE TASKS ###
|
68
68
|
|
69
|
-
rvm_data = `rvm list` rescue nil
|
70
|
-
rvm_versions = rvm_data ? rvm_data.split("\n")[3..-1].map{|l| l[3..-1].split(" ")[0] } : []
|
71
|
-
rvm_mri = rvm_versions.select{|v| v =~ /^ruby-/ }[-1]
|
72
|
-
rvm_jruby = rvm_versions.select{|v| v =~ /^jruby-/ }[-1]
|
73
|
-
|
74
69
|
version = SproutCore::VERSION
|
75
70
|
|
76
71
|
namespace :release do
|
@@ -85,6 +80,7 @@ namespace :release do
|
|
85
80
|
chdir File.expand_path('../lib/frameworks/sproutcore', __FILE__)
|
86
81
|
end
|
87
82
|
|
83
|
+
desc "Update framework"
|
88
84
|
task :update do
|
89
85
|
branch = `git describe --contains --all HEAD`
|
90
86
|
puts "Checking out framework branch: #{branch}"
|
@@ -95,6 +91,7 @@ namespace :release do
|
|
95
91
|
end
|
96
92
|
end
|
97
93
|
|
94
|
+
desc "Update framework changelog with latest changes"
|
98
95
|
task :changelog => :chdir do
|
99
96
|
last_tag = `git describe --tags --abbrev=0`.strip
|
100
97
|
puts "Getting Changes since #{last_tag}"
|
@@ -117,6 +114,7 @@ namespace :release do
|
|
117
114
|
end
|
118
115
|
end
|
119
116
|
|
117
|
+
desc "Update framework version references"
|
120
118
|
task :update_references => :chdir do
|
121
119
|
puts "Updating version references to #{version}"
|
122
120
|
|
@@ -127,6 +125,7 @@ namespace :release do
|
|
127
125
|
pretend? ? puts(cmd) : system(cmd)
|
128
126
|
end
|
129
127
|
|
128
|
+
desc "Commit framework version bump"
|
130
129
|
task :commit => :chdir do
|
131
130
|
puts "Commiting Version Bump"
|
132
131
|
unless pretend?
|
@@ -136,11 +135,13 @@ namespace :release do
|
|
136
135
|
end
|
137
136
|
end
|
138
137
|
|
138
|
+
desc "Tag new framework version"
|
139
139
|
task :tag => :chdir do
|
140
140
|
puts "Tagging REL-#{version}"
|
141
141
|
system "git tag REL-#{version}" unless pretend?
|
142
142
|
end
|
143
143
|
|
144
|
+
desc "Push framework to git"
|
144
145
|
task :push => :chdir do
|
145
146
|
puts "Pushing Repo"
|
146
147
|
unless pretend?
|
@@ -155,7 +156,10 @@ namespace :release do
|
|
155
156
|
end
|
156
157
|
end
|
157
158
|
|
159
|
+
desc "Prepare for new framework release"
|
158
160
|
task :prepare => [:update, :changelog, :update_references]
|
161
|
+
|
162
|
+
desc "Commit framework updates and push"
|
159
163
|
task :deploy => [:commit, :tag, :push]
|
160
164
|
|
161
165
|
end
|
@@ -166,11 +170,13 @@ namespace :release do
|
|
166
170
|
chdir File.dirname(__FILE__)
|
167
171
|
end
|
168
172
|
|
173
|
+
desc "Update repo"
|
169
174
|
task :update do
|
170
175
|
puts "Checking updating repo"
|
171
176
|
system "git pull" unless pretend?
|
172
177
|
end
|
173
178
|
|
179
|
+
desc "Update Changelog"
|
174
180
|
task :changelog => :chdir do
|
175
181
|
last_tag = `git describe --tags --abbrev=0`.strip
|
176
182
|
puts "Getting Changes since #{last_tag}"
|
@@ -193,6 +199,7 @@ namespace :release do
|
|
193
199
|
end
|
194
200
|
end
|
195
201
|
|
202
|
+
desc "Commit version bump"
|
196
203
|
task :commit => :chdir do
|
197
204
|
puts "Commiting Version Bump"
|
198
205
|
unless pretend?
|
@@ -202,11 +209,13 @@ namespace :release do
|
|
202
209
|
end
|
203
210
|
end
|
204
211
|
|
212
|
+
desc "Tag new version"
|
205
213
|
task :tag => :chdir do
|
206
214
|
puts "Tagging REL-#{version}"
|
207
215
|
system "git tag REL-#{version}" unless pretend?
|
208
216
|
end
|
209
217
|
|
218
|
+
desc "Push new commit to git"
|
210
219
|
task :push => :chdir do
|
211
220
|
puts "Pushing Repo"
|
212
221
|
unless pretend?
|
@@ -221,24 +230,23 @@ namespace :release do
|
|
221
230
|
end
|
222
231
|
end
|
223
232
|
|
233
|
+
desc "Prepare for a new release"
|
224
234
|
task :prepare => [:update, :changelog]
|
235
|
+
|
236
|
+
desc "Commit the new release"
|
225
237
|
task :deploy => [:commit, :tag, :push]
|
226
238
|
|
227
239
|
end
|
228
240
|
|
229
241
|
namespace :gems do
|
230
242
|
|
243
|
+
desc "Build a new sproutcore gem"
|
231
244
|
task :build do
|
232
|
-
|
233
|
-
unless
|
234
|
-
puts "Building for #{versions.join(", ")}"
|
235
|
-
system "rvm #{versions.join(',')} exec gem build sproutcore.gemspec" unless pretend?
|
236
|
-
else
|
237
|
-
puts "Building for current version"
|
238
|
-
system "gem build sproutcore.gemspec" unless pretend?
|
239
|
-
end
|
245
|
+
puts "Building for current version"
|
246
|
+
system "gem build sproutcore.gemspec" unless pretend?
|
240
247
|
end
|
241
248
|
|
249
|
+
desc "Push new sproutcore gems"
|
242
250
|
task :push do
|
243
251
|
Dir["sproutcore-#{version}*.gem"].each do |g|
|
244
252
|
puts "Pushing #{g}"
|
@@ -255,11 +263,16 @@ namespace :release do
|
|
255
263
|
end
|
256
264
|
|
257
265
|
task :prepare => []
|
266
|
+
|
267
|
+
desc "Build and push new sproutcore gems"
|
258
268
|
task :deploy => [:build, :push]
|
259
269
|
|
260
270
|
end
|
261
271
|
|
272
|
+
desc "Prepare for a new gem release"
|
262
273
|
task :prepare => ["framework:prepare", "abbot:prepare", "gems:prepare"]
|
274
|
+
|
275
|
+
desc "Push new release to github and rubygems.org"
|
263
276
|
task :deploy => ["framework:deploy", "abbot:deploy", "gems:deploy"]
|
264
277
|
|
265
278
|
end
|
data/VERSION.yml
CHANGED
data/lib/Buildfile
CHANGED
@@ -57,13 +57,26 @@ mode :all do
|
|
57
57
|
# Generate a combined javascript and stylesheet
|
58
58
|
:combine_javascript => true,
|
59
59
|
:combine_stylesheets => true,
|
60
|
+
|
61
|
+
# We do NOT want to pad sprites for debugging in production. This both increases filesize
|
62
|
+
# and makes the background of the sprite an embarrassing pink.
|
63
|
+
:pad_sprites_for_debugging => false,
|
64
|
+
|
65
|
+
# Optimizing sprites is good, but some apps that (appeared) to work before may break with
|
66
|
+
# this turned on. :pad_sprites_for_debugging makes the errors very visible, and that IS
|
67
|
+
# turned on in dev by default, so hopefully we should be able to make this default eventually.
|
68
|
+
#
|
69
|
+
# For reference, optimized sprites lay out sprites horizontally in addition to vertically.
|
70
|
+
:optimize_sprites => false,
|
71
|
+
|
72
|
+
# enable the hack that splits CSS into files with only ~4000 selectors for IE
|
73
|
+
:split_css_for_ie => true,
|
60
74
|
|
61
75
|
# by default all targets autobuild
|
62
76
|
:autobuild => true,
|
63
77
|
|
64
78
|
# by default minify javacript and stylesheets
|
65
79
|
:minify => true,
|
66
|
-
:minify_css => true,
|
67
80
|
|
68
81
|
# use the default layout defined in SproutCore
|
69
82
|
:layout => 'sproutcore:lib/index.rhtml',
|
@@ -82,6 +95,11 @@ mode :all do
|
|
82
95
|
# packs all JavaScript and CSS into one file for reduced HTTP requests
|
83
96
|
:use_packed => true,
|
84
97
|
|
98
|
+
# generates output using sprites rather than data urls. This is default
|
99
|
+
# for all modes: it is faster to generate and browsers handle sprites better
|
100
|
+
# than data urls.
|
101
|
+
:use_sprites => true,
|
102
|
+
|
85
103
|
# If set to true, the specified framework, if loaded via the SC.loadBundle
|
86
104
|
# API, will be set up to be lazily instantiated when loaded.
|
87
105
|
:lazy_instantiation => false,
|
@@ -103,10 +121,26 @@ mode :all do
|
|
103
121
|
:html5_manifest => false,
|
104
122
|
# Which networks/URLs to allow if HTML5 application caching is turned on
|
105
123
|
:html5_manifest_networks => [],
|
106
|
-
|
107
|
-
#
|
124
|
+
|
125
|
+
# Default favicon. You can set your own or set it to nil to not use one.
|
126
|
+
# If one is set, the path will be evaluated via sc_static() in the
|
127
|
+
# index.rhtml file.
|
128
|
+
:favicon => 'favicon.ico',
|
129
|
+
|
130
|
+
# Whether to include touch icons in the index.html and other touch related
|
108
131
|
# properties
|
109
|
-
:touch_enabled => true
|
132
|
+
:touch_enabled => true,
|
133
|
+
|
134
|
+
# If touch graphics are enabled (see above), then these are the paths which
|
135
|
+
# will be used for the various graphics. The paths will be evaluated via
|
136
|
+
# sc_static() in the index.rhtml file.
|
137
|
+
#
|
138
|
+
# Note: If you specify both a precomposed icon and a "regular" icon, the
|
139
|
+
# precomposed version will be used.
|
140
|
+
:icon => 'sproutcore-logo.png',
|
141
|
+
:precomposed_icon => nil,
|
142
|
+
:startup_image_portrait => 'sproutcore-startup-portrait.png',
|
143
|
+
:startup_image_landscape => 'sproutcore-startup-landscape.png'
|
110
144
|
|
111
145
|
end
|
112
146
|
|
@@ -126,6 +160,11 @@ mode :debug do
|
|
126
160
|
|
127
161
|
:minify_javascript => false,
|
128
162
|
:minify_css => false,
|
163
|
+
:minify_html => false,
|
164
|
+
|
165
|
+
# In debug mode, we want to pad sprites for debugging so it is clear
|
166
|
+
# when the developer messes up their CSS.
|
167
|
+
:pad_sprites_for_debugging => true,
|
129
168
|
|
130
169
|
:build_prefix => 'tmp/debug/build',
|
131
170
|
:staging_prefix => 'tmp/debug/staging',
|
data/lib/buildtasks/build.rake
CHANGED
@@ -33,6 +33,11 @@ namespace :build do
|
|
33
33
|
SC::Builder::Handlebars.build env[:entry], env[:dst_path]
|
34
34
|
end
|
35
35
|
|
36
|
+
desc "splits CSS files by rule count so IE doesn't crap out"
|
37
|
+
build_task :split_css do |task, env|
|
38
|
+
SC::Builder::SplitCSS.build env[:entry], env[:dst_path]
|
39
|
+
end
|
40
|
+
|
36
41
|
desc "builds a single sass file"
|
37
42
|
build_task :sass do |task, env|
|
38
43
|
SC::Builder::Sass.build env[:entry], env[:dst_path]
|
@@ -95,6 +100,11 @@ namespace :build do
|
|
95
100
|
SC::Builder::Minify.build env[:entry], env[:dst_path], :javascript
|
96
101
|
end
|
97
102
|
|
103
|
+
desc "minifies a HTML file by invoking the HTML compressor"
|
104
|
+
build_task :html do |task, env|
|
105
|
+
SC::Builder::Minify.build env[:entry], env[:dst_path], :html
|
106
|
+
end
|
107
|
+
|
98
108
|
desc "minifies a Javascript file immediately by invoking the YUI compressor"
|
99
109
|
build_task :inline_javascript do |task, env|
|
100
110
|
SC::Builder::Minify.build env[:entry], env[:dst_path], :inline_javascript
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module SproutCore
|
2
|
+
class FileRule
|
3
|
+
|
4
|
+
def initialize(exp, mode)
|
5
|
+
@mode = mode
|
6
|
+
@expression = Regexp.new(exp)
|
7
|
+
end
|
8
|
+
|
9
|
+
# Decides whether or not a file should be included.
|
10
|
+
# Returns either true, false, or nil (for not a match at all)
|
11
|
+
def include?(file)
|
12
|
+
ret = (@mode == :deny) ? false : true
|
13
|
+
|
14
|
+
if file =~ @expression
|
15
|
+
return ret
|
16
|
+
else
|
17
|
+
return nil
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,137 @@
|
|
1
|
+
require "json"
|
2
|
+
require "buildtasks/helpers/file_rule"
|
3
|
+
|
4
|
+
module SproutCore
|
5
|
+
|
6
|
+
# The FileRuleList applies a list of ordered rules to a file path to
|
7
|
+
# determine whether to reject it or approve it.
|
8
|
+
#
|
9
|
+
# The FileRuleList actually manages multiple sets of rules, separated by
|
10
|
+
# target name.
|
11
|
+
#
|
12
|
+
# The FileRuleList can read in JSON files (in either Allow or Deny mode)
|
13
|
+
# and SproutCore Approve Lists.
|
14
|
+
#
|
15
|
+
# To read JSON:
|
16
|
+
# list.read_json(path, :allow)
|
17
|
+
#
|
18
|
+
# To read Approve Lists
|
19
|
+
# list.read(path)
|
20
|
+
#
|
21
|
+
class FileRuleList
|
22
|
+
attr_accessor :allow_by_default, :ignore_list
|
23
|
+
|
24
|
+
ALWAYS_ACCEPTED_FILE_TYPES= [
|
25
|
+
'.manifest',
|
26
|
+
'.htm',
|
27
|
+
'.html',
|
28
|
+
'.rhtml',
|
29
|
+
'.png',
|
30
|
+
'.jpg',
|
31
|
+
'.jpeg',
|
32
|
+
'.gif'
|
33
|
+
]
|
34
|
+
|
35
|
+
def initialize
|
36
|
+
@allow_by_default = false
|
37
|
+
@ignore_list = true
|
38
|
+
@file_rule_lists = {}
|
39
|
+
end
|
40
|
+
|
41
|
+
def add_rule(target, rule)
|
42
|
+
@ignore_list = false
|
43
|
+
|
44
|
+
@file_rule_lists[target] ||= []
|
45
|
+
@file_rule_lists[target] << rule
|
46
|
+
end
|
47
|
+
|
48
|
+
def include?(target, file)
|
49
|
+
return true if @ignore_list
|
50
|
+
return true if ALWAYS_ACCEPTED_FILE_TYPES.include?(File.extname file)
|
51
|
+
|
52
|
+
list = @file_rule_lists[target.to_s]
|
53
|
+
return @allow_by_default if list.nil?
|
54
|
+
|
55
|
+
approved = @allow_by_default
|
56
|
+
list.each {|rule|
|
57
|
+
_approved = rule.include? file
|
58
|
+
approved = _approved if not _approved.nil?
|
59
|
+
}
|
60
|
+
|
61
|
+
approved
|
62
|
+
end
|
63
|
+
|
64
|
+
#
|
65
|
+
# Read methods
|
66
|
+
#
|
67
|
+
def read_json(path, mode)
|
68
|
+
@ignore_list = false
|
69
|
+
|
70
|
+
if mode != :allow and mode != :deny
|
71
|
+
raise "read_json must be given either mode :allow or mode :deny"
|
72
|
+
end
|
73
|
+
|
74
|
+
content = JSON.parse(File.read(path))
|
75
|
+
|
76
|
+
content.each do |target, list|
|
77
|
+
list = [list] if list.kind_of?(String)
|
78
|
+
|
79
|
+
list.each do |expression|
|
80
|
+
rule = SproutCore::FileRule.new(expression, mode)
|
81
|
+
add_rule(target, rule)
|
82
|
+
end
|
83
|
+
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
def read(path)
|
88
|
+
@ignore_list = false
|
89
|
+
|
90
|
+
mode = :allow
|
91
|
+
target = nil
|
92
|
+
line_number = 0
|
93
|
+
File.new(path).each_line {|line|
|
94
|
+
line_number += 1
|
95
|
+
|
96
|
+
line.strip!
|
97
|
+
next if line == ""
|
98
|
+
next if line =~ /^#/
|
99
|
+
|
100
|
+
target_match = /^TARGET\s+(?<target>[^\s]+)\s*$/.match line
|
101
|
+
if target_match
|
102
|
+
target = target_match[:target]
|
103
|
+
mode = :allow
|
104
|
+
next
|
105
|
+
end
|
106
|
+
|
107
|
+
if target.nil?
|
108
|
+
raise "Expected TARGET (target name) in Accept list at #{path}, line #{line_number}"
|
109
|
+
end
|
110
|
+
|
111
|
+
mode_match = /^(?<mode>ALLOW|DENY)(\s+(?<what>.*))?\s*$/i.match line
|
112
|
+
if mode_match
|
113
|
+
_mode = mode_match[:mode].downcase
|
114
|
+
_mode = (_mode == "allow" ? :allow : :deny)
|
115
|
+
|
116
|
+
if mode_match[:what]
|
117
|
+
exp = mode_match[:what]
|
118
|
+
exp = ".*" if exp == "all"
|
119
|
+
rule = SproutCore::FileRule.new(exp, _mode)
|
120
|
+
|
121
|
+
add_rule target, rule
|
122
|
+
else
|
123
|
+
mode = _mode
|
124
|
+
end
|
125
|
+
|
126
|
+
next
|
127
|
+
end
|
128
|
+
|
129
|
+
match = /(?<expression>.*)$/.match(line)
|
130
|
+
raise "Invalid rule: #{line}" if match.nil?
|
131
|
+
|
132
|
+
rule = SproutCore::FileRule.new(match[:expression], mode)
|
133
|
+
add_rule target, rule
|
134
|
+
}
|
135
|
+
end
|
136
|
+
end
|
137
|
+
end
|