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
@@ -6,6 +6,8 @@
|
|
6
6
|
# Tasks invoked while building Manifest objects. You can override these
|
7
7
|
# tasks in your buildfiles.
|
8
8
|
|
9
|
+
require File.dirname(__FILE__) + '/helpers/file_rule_list'
|
10
|
+
|
9
11
|
namespace :manifest do
|
10
12
|
|
11
13
|
desc "Invoked just before a manifest object is built to setup standard properties"
|
@@ -52,47 +54,21 @@ namespace :manifest do
|
|
52
54
|
|
53
55
|
source_root = target[:source_root]
|
54
56
|
|
55
|
-
|
56
|
-
|
57
|
-
#
|
58
|
-
|
59
|
-
Dir.glob("#{Dir.pwd}/Whitelist").each do |path|
|
60
|
-
next unless File.file?(path)
|
61
|
-
|
62
|
-
contents = File.read(path)
|
63
|
-
parser = JSON.parser.new(contents)
|
64
|
-
whitelist = parser.parse
|
57
|
+
file_rule_list = SproutCore::FileRuleList.new
|
58
|
+
|
59
|
+
Dir.glob("#{Dir.pwd}/#{SC.env[:whitelist_name]}").each do |path|
|
60
|
+
file_rule_list.read_json(path, :allow) if File.file? path
|
65
61
|
end
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
defaultAcceptableFiles = [
|
72
|
-
'.manifest',
|
73
|
-
'.htm',
|
74
|
-
'.html',
|
75
|
-
'.rhtml',
|
76
|
-
'.png',
|
77
|
-
'.jpg',
|
78
|
-
'.jpeg',
|
79
|
-
'.gif'
|
80
|
-
]
|
81
|
-
|
82
|
-
if acceptableFilesForTarget.kind_of?(Array)
|
83
|
-
acceptableFilesForTarget += defaultAcceptableFiles
|
84
|
-
|
85
|
-
# I make an assumption that if the type of acceptableFilesForTarget is String,
|
86
|
-
# then the user wants to match that across any file, so make it an array to accomodate
|
87
|
-
elsif acceptableFilesForTarget.kind_of?(String)
|
88
|
-
acceptableFilesForTarget = [acceptableFilesForTarget] + defaultAcceptableFiles
|
89
|
-
|
90
|
-
else
|
91
|
-
#WhiteList isn't defined, don't include anything
|
92
|
-
acceptableFilesForTarget = defaultAcceptableFiles
|
62
|
+
|
63
|
+
Dir.glob("#{Dir.pwd}/#{SC.env[:blacklist_name]}").each do |path|
|
64
|
+
if File.file? path
|
65
|
+
file_rule_list.allow_by_default = true
|
66
|
+
file_rule_list.read_json(path, :deny)
|
93
67
|
end
|
94
|
-
|
95
|
-
|
68
|
+
end
|
69
|
+
|
70
|
+
Dir.glob("#{Dir.pwd}/#{SC.env[:accept_name]}").each do |path|
|
71
|
+
file_rule_list.read(path) if File.file? path
|
96
72
|
end
|
97
73
|
|
98
74
|
number_rejected_entries = 0
|
@@ -100,18 +76,8 @@ namespace :manifest do
|
|
100
76
|
Dir.glob("#{source_root}/**/*").each do |path|
|
101
77
|
next unless File.file?(path)
|
102
78
|
next if target.target_directory?(path)
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
acceptableFilesForTarget.each do |acceptableFile|
|
107
|
-
if path =~ Regexp.new(acceptableFile) then
|
108
|
-
valid = true
|
109
|
-
break
|
110
|
-
end
|
111
|
-
end
|
112
|
-
|
113
|
-
if valid
|
114
|
-
# cut source root out to make filename. make sure path separators are /
|
79
|
+
|
80
|
+
if file_rule_list.include?(target[:target_name], path)
|
115
81
|
filename = path.sub /^#{Regexp.escape source_root}\//, ''
|
116
82
|
filename = filename.split(::File::SEPARATOR).join('/')
|
117
83
|
manifest.add_entry filename, :original => true # entry:prepare will fill in the rest
|
@@ -214,7 +180,7 @@ namespace :manifest do
|
|
214
180
|
namespace :prepare_build_tasks do
|
215
181
|
|
216
182
|
desc "main entrypoint for preparing all build tasks. This should invoke all needed tasks"
|
217
|
-
task :all => %w(css handlebars javascript module_info sass less combine string_wrap minify string_wrap html strings tests packed)
|
183
|
+
task :all => %w(css handlebars javascript module_info sass less combine string_wrap minify string_wrap html strings tests packed split)
|
218
184
|
|
219
185
|
desc "executes prerequisites needed before one of the subtasks can be invoked. All subtasks that have this as a prereq"
|
220
186
|
task :setup => %w(manifest:catalog manifest:hide_buildfiles manifest:localize)
|
@@ -275,6 +241,7 @@ namespace :manifest do
|
|
275
241
|
desc "scans for javascript files, annotates them and prepares combined entries for each output target"
|
276
242
|
task :javascript => :setup do |task, env|
|
277
243
|
manifest = env[:manifest]
|
244
|
+
target = env[:target]
|
278
245
|
config = CONFIG
|
279
246
|
|
280
247
|
# select all original entries with with ext of css
|
@@ -293,6 +260,7 @@ namespace :manifest do
|
|
293
260
|
:build_task => 'build:javascript',
|
294
261
|
:resource => 'javascript',
|
295
262
|
:entry_type => :javascript
|
263
|
+
|
296
264
|
entry.discover_build_directives!
|
297
265
|
end
|
298
266
|
end
|
@@ -426,9 +394,10 @@ namespace :manifest do
|
|
426
394
|
task :chance => %w(setup images javascript module_info css sass less) do |task, env|
|
427
395
|
config = CONFIG
|
428
396
|
manifest = env[:manifest]
|
397
|
+
target = manifest.target
|
429
398
|
|
430
399
|
sprited = CONFIG[:use_sprites]
|
431
|
-
minify = CONFIG[:minify_css]
|
400
|
+
minify = !SC.env[:dont_minify] && (CONFIG[:minify_css].nil? ? CONFIG[:minify] : CONFIG[:minify_css])
|
432
401
|
|
433
402
|
# the image files will be shared between all css_entries-- that is,
|
434
403
|
# all instances of Chance created
|
@@ -458,10 +427,6 @@ namespace :manifest do
|
|
458
427
|
all_chance_entries = []
|
459
428
|
timestamps = []
|
460
429
|
|
461
|
-
# We need a collection of source paths for our mhtml and JS files to
|
462
|
-
# check mtimes against.
|
463
|
-
source_paths = []
|
464
|
-
|
465
430
|
# build combined CSS entry
|
466
431
|
css_entries.each do |resource_name, entries|
|
467
432
|
# Send image files to the build task if Chance is being used
|
@@ -472,23 +437,57 @@ namespace :manifest do
|
|
472
437
|
# way to know what sprties, etc. need to be put into the manifest.
|
473
438
|
#
|
474
439
|
# Still, Chance has to get created sometime.
|
475
|
-
|
476
|
-
|
440
|
+
#
|
441
|
+
# To help, we cache the Chance Instance based on a key we generate. The Chance Factory does
|
442
|
+
# this for us. It will automatically handle when things change, for the most part (though
|
443
|
+
# the builder still has to tell Chance to double-check things, etc.)
|
444
|
+
opts = {
|
445
|
+
# the value of $theme
|
446
|
+
:theme => CONFIG[:css_theme],
|
447
|
+
|
448
|
+
# whether it should minify
|
449
|
+
:minify => minify,
|
450
|
+
|
451
|
+
# whether it should optimize sprites. This is opt-in, and comes from the buildfile.
|
452
|
+
:optimize_sprites => CONFIG[:optimize_sprites],
|
453
|
+
|
454
|
+
# Whether it should pad slices for debugging when writing them to the sprite. This is opt-out
|
455
|
+
# in development, but is off during production.
|
456
|
+
:pad_sprites_for_debugging => CONFIG[:pad_sprites_for_debugging],
|
457
|
+
|
458
|
+
# a unique identifier for the instance. we can share across localizations; this is
|
459
|
+
# merely used to prevent conflicts within the SAME CSS file: Chance makes sure
|
460
|
+
# all rules for generated images include this key. We'll use the target name.
|
461
|
+
:instance_id => target[:target_name]
|
462
|
+
}
|
463
|
+
chance_key = manifest[:staging_root] + "/" + resource_name
|
464
|
+
|
465
|
+
chance = Chance::ChanceFactory.instance_for_key(chance_key, opts)
|
466
|
+
chance_files = {}
|
467
|
+
|
477
468
|
timestamp = 0
|
478
469
|
has_2x_entries = false
|
479
470
|
entries.each do |entry|
|
480
471
|
timestamp = [entry.timestamp, timestamp].max
|
481
472
|
|
482
|
-
# unfortunately, we have to stage the source entries NOW.
|
483
|
-
|
473
|
+
# unfortunately, we have to stage the source entries NOW. But only if they require
|
474
|
+
# building to be used. This applies primarily to sass and less entries.
|
475
|
+
if entry[:build_required]
|
476
|
+
src_path = entry.stage![:staging_path]
|
477
|
+
else
|
478
|
+
src_path = entry[:source_path]
|
479
|
+
end
|
480
|
+
|
484
481
|
next unless File.exist?(src_path)
|
485
482
|
|
486
483
|
Chance.add_file src_path
|
487
484
|
# Also remove source/ from the filename for sc_require and @import
|
488
|
-
|
485
|
+
chance_files[entry.filename.sub(/^source\//, '')] = src_path
|
489
486
|
|
490
487
|
has_2x_entries = true if src_path.include?("@2x")
|
491
488
|
end
|
489
|
+
|
490
|
+
Chance::ChanceFactory.update_instance(chance_key, opts, chance_files)
|
492
491
|
|
493
492
|
timestamps << timestamp
|
494
493
|
chance_instances << chance
|
@@ -501,11 +500,11 @@ namespace :manifest do
|
|
501
500
|
# for the entry to compare mtimes with to know if it needs to update.
|
502
501
|
entry_source_paths = entries.map {|e| e[:source_path] }
|
503
502
|
|
504
|
-
add_chance_file = lambda {|entry_name, chance_file|
|
503
|
+
add_chance_file = lambda {|entry_name, chance_file, entry_type|
|
505
504
|
manifest.add_entry entry_name,
|
506
505
|
:variation => manifest.variation,
|
507
506
|
:build_task => 'build:chance_file',
|
508
|
-
:entry_type =>
|
507
|
+
:entry_type => entry_type,
|
509
508
|
:combined => true,
|
510
509
|
|
511
510
|
:source_entries => entries,
|
@@ -524,9 +523,7 @@ namespace :manifest do
|
|
524
523
|
|
525
524
|
# So that modules, etc. can figure out what resource it belongs to
|
526
525
|
:resource => resource_name,
|
527
|
-
|
528
|
-
# Chance does minification on its own
|
529
|
-
:minify => minify,
|
526
|
+
:minified => minify,
|
530
527
|
|
531
528
|
# So that it can easily be recognized as an @2x entry.
|
532
529
|
:x2 => entry_name.include?("@2x")
|
@@ -535,52 +532,25 @@ namespace :manifest do
|
|
535
532
|
|
536
533
|
chance_file = "chance" + (sprited ? "-sprited" : "") + ".css"
|
537
534
|
|
538
|
-
add_chance_file.call(resource_name + ".css", chance_file)
|
535
|
+
add_chance_file.call(resource_name + ".css", chance_file, :css)
|
539
536
|
|
540
537
|
# We only want to add the 2x version if there is a need for it.
|
541
538
|
# NOTE: the HTML builder will need to pick the normal version if it
|
542
539
|
# cannot find the @2x version.
|
543
540
|
if has_2x_entries
|
544
541
|
chance_2x_file = "chance" + (sprited ? "-sprited" : "") + "@2x.css"
|
545
|
-
add_chance_file.call(resource_name + "@2x.css", chance_2x_file)
|
542
|
+
add_chance_file.call(resource_name + "@2x.css", chance_2x_file, :css)
|
546
543
|
end
|
547
544
|
|
548
545
|
if sprited
|
549
546
|
chance.sprite_names.each {|name|
|
550
|
-
add_chance_file.call(resource_name + "-" + name, name);
|
547
|
+
add_chance_file.call(resource_name + "-" + name, name, :image);
|
551
548
|
}
|
552
549
|
|
553
550
|
chance.sprite_names({:x2 => true}).each {|name|
|
554
|
-
add_chance_file.call(resource_name + "-" + name, name);
|
551
|
+
add_chance_file.call(resource_name + "-" + name, name, :image);
|
555
552
|
}
|
556
553
|
end
|
557
|
-
|
558
|
-
# We also have a set of all source paths for the chance task. We need
|
559
|
-
# to keep it up-to-date so that the MHTML and JS tasks can compare mtimes
|
560
|
-
# with the entries.
|
561
|
-
source_paths += entry_source_paths
|
562
|
-
all_chance_entries += entries
|
563
|
-
end
|
564
|
-
|
565
|
-
if chance_instances.length > 0
|
566
|
-
manifest.add_entry "__sc_chance.js",
|
567
|
-
:build_task => 'build:chance_file',
|
568
|
-
:chance_instances => chance_instances,
|
569
|
-
:entry_type => :javascript,
|
570
|
-
:resource => "javascript",
|
571
|
-
:chance_file => "chance.js",
|
572
|
-
:timestamp => timestamps.max,
|
573
|
-
:source_paths => source_paths,
|
574
|
-
:source_entries => all_chance_entries
|
575
|
-
|
576
|
-
manifest.add_entry "__sc_chance_mhtml.txt",
|
577
|
-
:build_task => 'build:chance_file',
|
578
|
-
:chance_instances => chance_instances,
|
579
|
-
:entry_type => :mhtml,
|
580
|
-
:chance_file => "chance-mhtml.txt",
|
581
|
-
:timestamp => timestamps.max,
|
582
|
-
:source_paths => source_paths,
|
583
|
-
:source_entries => all_chance_entries
|
584
554
|
end
|
585
555
|
|
586
556
|
end
|
@@ -607,7 +577,7 @@ namespace :manifest do
|
|
607
577
|
resource_name = resource_name.ext('js')
|
608
578
|
|
609
579
|
if resource_name == 'javascript.js'
|
610
|
-
pf = ['source/lproj/strings.js', 'source/core.js', 'source/utils.js']
|
580
|
+
pf = ['source/lproj/layout.js', 'source/lproj/strings.js', 'source/core.js', 'source/utils.js']
|
611
581
|
if manifest.target.target_type == :app
|
612
582
|
target_name = manifest.target.target_name.to_s.split('/')[-1]
|
613
583
|
pf.insert(2, "source/#{target_name}.js")
|
@@ -642,6 +612,10 @@ namespace :manifest do
|
|
642
612
|
:entry_type => :javascript,
|
643
613
|
:hide_entries => false,
|
644
614
|
:source_entries => [entry],
|
615
|
+
|
616
|
+
# carry forward minification so we can do a last-minute security check
|
617
|
+
# and not reject this file.
|
618
|
+
:minified => entry.minified?,
|
645
619
|
:packed => entry.packed? # carry forward
|
646
620
|
end
|
647
621
|
|
@@ -687,18 +661,30 @@ namespace :manifest do
|
|
687
661
|
|
688
662
|
# packed entries only for apps now.
|
689
663
|
if target[:target_type] == :app
|
690
|
-
|
691
|
-
|
664
|
+
|
665
|
+
combine_entries = [{
|
666
|
+
:resource => 'stylesheet',
|
667
|
+
:fallback => nil
|
668
|
+
}, {
|
669
|
+
:resource => 'stylesheet@2x',
|
670
|
+
:fallback => 'stylesheet'
|
671
|
+
}]
|
672
|
+
|
673
|
+
combine_entries.each {|combine_entry|
|
674
|
+
resource = combine_entry[:resource]
|
675
|
+
fallback = combine_entry[:fallback]
|
692
676
|
|
693
677
|
# Handle CSS version. get all required targets and find their
|
694
678
|
# stylesheet.css. Build packed css from that.
|
695
679
|
targets = target.expand_required_targets({ :theme => true }) + [target]
|
696
680
|
entries = targets.map do |target|
|
697
681
|
m = target.manifest_for(manifest.variation).build!
|
698
|
-
|
699
|
-
# need to find the version that is not minified
|
700
682
|
entry = m.entry_for(resource + ".css")
|
701
|
-
|
683
|
+
|
684
|
+
if entry.nil? and not fallback.nil?
|
685
|
+
entry = m.entry_for(fallback + ".css")
|
686
|
+
end
|
687
|
+
|
702
688
|
entry
|
703
689
|
end
|
704
690
|
|
@@ -719,8 +705,30 @@ namespace :manifest do
|
|
719
705
|
end
|
720
706
|
|
721
707
|
end
|
708
|
+
|
709
|
+
desc "splits packed CSS files into chunks based on selector count because internet explorer is shitty"
|
710
|
+
task :split => %w(packed) do |task, env|
|
711
|
+
# The split_css transform, which we add to stylesheet-packed, splits CSS based on number
|
712
|
+
# of selectors (because IE has a maximum of ~4096 per file). It actually ends up adding
|
713
|
+
# more manifest entries, which is UBER HACKY!!! But, what can you do when you don't
|
714
|
+
# know what files you'll have to create until you've already started building?
|
715
|
+
target = env[:target]
|
716
|
+
manifest = env[:manifest]
|
717
|
+
|
718
|
+
if target[:target_type] == :app
|
719
|
+
# We don't need to do @2x: it is safari only.
|
720
|
+
resource = "stylesheet-packed.css"
|
721
|
+
entry = manifest.entry_for(resource)
|
722
|
+
|
723
|
+
# There may not be a stylesheet-packed.
|
724
|
+
if not entry.nil?
|
725
|
+
entry = manifest.add_transform entry,
|
726
|
+
:build_task => 'build:split_css'
|
727
|
+
end
|
728
|
+
end
|
729
|
+
end
|
722
730
|
|
723
|
-
task :minify => :
|
731
|
+
task :minify => :split # IMPORTANT: don't want minified version
|
724
732
|
|
725
733
|
#Create builder tasks for sass and less in a DRY way
|
726
734
|
[:sass, :less].each do |csscompiler|
|
@@ -737,6 +745,7 @@ namespace :manifest do
|
|
737
745
|
:url => [manifest[:url_root], 'source', entry[:filename]].join("/"),
|
738
746
|
:build_task => 'build:'+csscompiler.to_s,
|
739
747
|
:entry_type => :css,
|
748
|
+
:build_required => true, # tells the :chance step that it needs to stage it before it can use it
|
740
749
|
:ext => 'css',
|
741
750
|
:resource => 'stylesheet',
|
742
751
|
:required => []
|
@@ -843,37 +852,39 @@ namespace :manifest do
|
|
843
852
|
end
|
844
853
|
|
845
854
|
desc "creates transform entries for all css and Js entries to minify them if needed"
|
846
|
-
task :minify => %w(setup javascript module_info css combine sass less) do |task, env|
|
855
|
+
task :minify => %w(setup javascript module_info css combine sass less html) do |task, env|
|
847
856
|
manifest = env[:manifest]
|
848
857
|
config = CONFIG
|
849
858
|
|
850
|
-
minify_css = config[:minify_css]
|
851
|
-
minify_css = config[:minify] if minify_css.nil?
|
852
|
-
|
853
859
|
minify_javascript = config[:minify_javascript]
|
854
860
|
minify_javascript = config[:minify] if minify_javascript.nil?
|
861
|
+
|
862
|
+
minify_html = config[:minify_html]
|
863
|
+
minify_html = config[:minify] if minify_html.nil?
|
864
|
+
|
865
|
+
if SC.env[:dont_minify]
|
866
|
+
minify_javascript = false
|
867
|
+
minify_html = false
|
868
|
+
end
|
855
869
|
|
856
870
|
manifest.entries.dup.each do |entry|
|
857
871
|
case entry[:entry_type]
|
858
|
-
|
859
|
-
|
860
|
-
|
861
|
-
|
862
|
-
|
863
|
-
|
864
|
-
|
865
|
-
|
866
|
-
|
867
|
-
# :minified => true,
|
868
|
-
# :packed => entry.packed? # carry forward
|
869
|
-
# end
|
870
|
-
|
872
|
+
# NOTE: CSS IS MINIFIED BY CHANCE. So we ignore it here.
|
873
|
+
|
874
|
+
when :html
|
875
|
+
if minify_html
|
876
|
+
manifest.add_transform entry,
|
877
|
+
:build_task => 'build:minify:html',
|
878
|
+
:entry_type => :html,
|
879
|
+
:minified => true
|
880
|
+
end
|
871
881
|
when :javascript
|
872
882
|
if minify_javascript
|
873
883
|
manifest.add_transform entry,
|
874
884
|
:build_task => 'build:minify:javascript',
|
875
885
|
:entry_type => :javascript,
|
876
886
|
:minified => true,
|
887
|
+
:combined => entry.combined?, # carry forward
|
877
888
|
:packed => entry.packed? # carry forward
|
878
889
|
end
|
879
890
|
end
|
@@ -1,5 +1,72 @@
|
|
1
|
-
CHANGE LOG FOR 1.6
|
2
|
-
|
1
|
+
CHANGE LOG FOR 1.6+
|
2
|
+
===================
|
3
|
+
|
4
|
+
1.7.1.beta
|
5
|
+
----------
|
6
|
+
|
7
|
+
### MINOR FEATURES
|
8
|
+
|
9
|
+
* Added Safari Lion browser detection.
|
10
|
+
* Speed improvements in renderContext, switching from joining arrays of strings to simple string concatenation.
|
11
|
+
* Faster code escaping using regular expressions instead of DOM.
|
12
|
+
* New flag to stop picker repositioning when the window is resized.
|
13
|
+
* SegmentedView update to enable/disable overflow.
|
14
|
+
* Small performance improvement for splitView.
|
15
|
+
* New string measurement functions to optimize for string wrapping.
|
16
|
+
* Added support for autoCorrect and autoCapitalize in TextFields.
|
17
|
+
* Added back object types previously removed by the refactored SC.Object
|
18
|
+
* Refactored observer paths code for a more robust handling.
|
19
|
+
* Rewrite SC.LOG_RUNLOOP_INVOCATIONS — now renamed to SC.LOG_DEFERRED_CALLS — to work with the new runloop implementation.
|
20
|
+
* Added this SC.RunLoop.kill to terminate cleanly a run loop in case of an error.
|
21
|
+
* Added the ability to dynamically add substates to a statechart via a state's addSubstate method.
|
22
|
+
* Updated the statechart tracing logic.
|
23
|
+
* Updated SC.State. getSubstate now accepts a callback; added getState method; gotoState and gotoHistoryState now use getState
|
24
|
+
* Updated state's gotoState and gotoHistoryState to allow for a more expressive state arg that now allows for the use of 'parentState'
|
25
|
+
* Updated SC.State's getSubstate method to allow for path expressions. Also refacted the findFirstRelativeCurrentState method.
|
26
|
+
* New SC globals to provide information like build mode, build number and locale.
|
27
|
+
|
28
|
+
### BUG FIXES
|
29
|
+
|
30
|
+
* Bug fix, when the apps don’t have a first responder at loading time the app throws an error.
|
31
|
+
* Tweaked scrolling acceleration and speed to match native scroller.
|
32
|
+
* Removed Internet Explorer legacy code.
|
33
|
+
* Passing the native event when a focus or blur event is called. This makes it consistent with all the other event handlers.
|
34
|
+
* Workarounds for mobileSafari touch handling in textfields and links.
|
35
|
+
* IE was getting two blur/focus events.
|
36
|
+
* Small bug fix for timers when there is no currentRunLoop.
|
37
|
+
* Unit test updates for renderContext.
|
38
|
+
* Reverted change to receive focus if it the view becomes key responder.
|
39
|
+
* Disabling layout style calculations for opacity in IE, as this will always break transparent pngs.
|
40
|
+
* Changed code to get a reliable anchor for pickers and menus.
|
41
|
+
* Reposition pickers based on the size of the app and not the window viewport.
|
42
|
+
* Added tooltips back to button.
|
43
|
+
* Fix for popup_buttons as they were not rendering as expected.
|
44
|
+
* Removing acceleration layer on sliders as this was creating GPU glitches on views appended after the slider.
|
45
|
+
* Removing legacy handler of buttons to improve speed.
|
46
|
+
* Bug fix to update list scrollers when adding new items to the list.
|
47
|
+
* Changed timeout value for a faster experience in menu scrolling.
|
48
|
+
* Removed deltaAdjust in scrollView and left only the calculations done in SC.Event.
|
49
|
+
* Updated values in select button to fix rendering regressions.
|
50
|
+
* Refactored childViews creation in formView.
|
51
|
+
* Updated new selectView to correctly support width resizing.
|
52
|
+
* Better string measurements for autoResize mixin. Also included the support to auto fit text (reduce font size if neccessary.
|
53
|
+
* FlowedLayout fixes when the view changes visibility and code clean up.
|
54
|
+
* Added back hints to labels.
|
55
|
+
* Removed unneccesary font-weight label css attribute.
|
56
|
+
* Removed zIndex in text-fields.
|
57
|
+
* Removed preload images task for “Chance” slicing system .
|
58
|
+
* Several modular loading bug fixes, including support for css.
|
59
|
+
* Bug fix for string measurement. It was double escaping.
|
60
|
+
* Observers failing in IE as strings don’t work as arrays.
|
61
|
+
* Don't schedule multiple run loops when we only need one in SC.Binding.
|
62
|
+
* Add in support for specifying an optional prefix that will be applied to all messages.
|
63
|
+
* Updated observable unit tests
|
64
|
+
* Updated SC.Logger unit tests
|
65
|
+
* Updated SC.State's getSubstate method to allow for path expressions.
|
66
|
+
* Updated Statechart unit tests
|
67
|
+
* Updated state charts unit tests
|
68
|
+
* Updated css to match abbot css fixes for $skip parameter in chance.
|
69
|
+
* Added css style namespace to sc-focus, this was generating problems when focusing the elements the first time in the app.
|
3
70
|
|
4
71
|
1.6.0
|
5
72
|
-----
|