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