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 
     | 
    
         
             
            -----
         
     |