yellow-brick-road 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. data/README.rst +10 -5
  2. data/lib/yellow-brick-road/directive_processor.rb +10 -3
  3. data/lib/yellow-brick-road/version.rb +1 -1
  4. data/test/dummy/app/assets/javascripts/closure-deps.js +3 -3
  5. data/test/dummy/log/development.log +159 -0
  6. data/test/dummy/tmp/cache/assets/C1E/0C0/sprockets%2F9c2f7430126aff8d8514326208712832 +165 -0
  7. data/test/dummy/tmp/cache/assets/C29/5D0/sprockets%2F1498f4451d0836a53c7c302c49920996 +0 -0
  8. data/test/dummy/tmp/cache/assets/C7E/9F0/sprockets%2F89862076204c62c4593ac20de32da909 +6 -6
  9. data/test/dummy/tmp/cache/assets/CB4/5B0/sprockets%2Ff17618b71eca9a4621f68626572a75b2 +103 -0
  10. data/test/dummy/tmp/cache/assets/CC2/240/sprockets%2F9f41da672330830c3366594f7ff5e7f6 +590 -0
  11. data/test/dummy/tmp/cache/assets/CC4/2C0/sprockets%2F715db78c7d974ea64406ed9711793f42 +494 -0
  12. data/test/dummy/tmp/cache/assets/CE1/610/sprockets%2F50c01109ecf86153176ccf577595fab4 +53 -0
  13. data/test/dummy/tmp/cache/assets/CE1/C20/sprockets%2F58a7b0499656c97a2204b5821eadab84 +207 -0
  14. data/test/dummy/tmp/cache/assets/CE4/DE0/sprockets%2Fb3aab0604ee02598f339965ec583a746 +204 -0
  15. data/test/dummy/tmp/cache/assets/CE9/B00/sprockets%2F80b139f66661444d6a781bfe56aee076 +0 -0
  16. data/test/dummy/tmp/cache/assets/CEB/840/sprockets%2F38fe57c2a5963f36a49404f672cc707b +0 -0
  17. data/test/dummy/tmp/cache/assets/CEC/6C0/sprockets%2F01b982295748dbd09683557aebd358bd +0 -0
  18. data/test/dummy/tmp/cache/assets/CF0/140/sprockets%2F3974b046fe949e86ef851a0271eb9d50 +1545 -0
  19. data/test/dummy/tmp/cache/assets/D01/DF0/sprockets%2F2ce268622b41a173bb209465a2ced6b9 +806 -0
  20. data/test/dummy/tmp/cache/assets/D05/920/sprockets%2F909507434dcc270db4853e4c147f0aac +4 -5
  21. data/test/dummy/tmp/cache/assets/D0A/C10/sprockets%2Fd050d5ee6a2073aa708a26c589a4c974 +283 -0
  22. data/test/dummy/tmp/cache/assets/D0F/360/sprockets%2Fa18927874a5e02c58c14c5b5df19ec04 +300 -0
  23. data/test/dummy/tmp/cache/assets/D15/700/sprockets%2F2987192f402d2bdc72792b5ae17f9a2f +142 -0
  24. data/test/dummy/tmp/cache/assets/D15/F60/sprockets%2Fa28394e3f80365b5bc86794dd46daa22 +0 -0
  25. data/test/dummy/tmp/cache/assets/D1F/E60/sprockets%2Fe65796b72231e36f5573ce71e2c8bbf8 +511 -0
  26. data/test/dummy/tmp/cache/assets/D22/200/sprockets%2F874bd1079c304ae88fbec8434d6d7794 +187 -0
  27. data/test/dummy/tmp/cache/assets/D3B/6A0/sprockets%2Ff8a978a3672b4f7ba513303b91ad15fc +127 -0
  28. data/test/dummy/tmp/cache/assets/D3C/530/sprockets%2Fe6730ff143273d9a7471b4afc3e1c19d +0 -0
  29. data/test/dummy/tmp/cache/assets/D41/B30/sprockets%2Fba1b93913dd01d83ac9a96df334456f8 +0 -0
  30. data/test/dummy/tmp/cache/assets/D49/570/sprockets%2Fd76be81d59871518ea06d3668f2c4bbb +239 -0
  31. data/test/dummy/tmp/cache/assets/D49/DA0/sprockets%2Fa84f85a305cde80a4d53785d7be0892f +457 -0
  32. data/test/dummy/tmp/cache/assets/D5C/760/sprockets%2F5cd491e0f9106cfd4ec4938896c97de7 +256 -0
  33. data/test/dummy/tmp/cache/assets/D5C/A00/sprockets%2Fefe291b3012745251e2641defbe4cad0 +1529 -0
  34. data/test/dummy/tmp/cache/assets/D68/2B0/sprockets%2Fe51ab0aca893e08c40f9672edef71106 +0 -0
  35. data/test/dummy/tmp/cache/assets/D6E/EA0/sprockets%2Fb52cbc47414c9e60ad4c46824928fbbe +115 -0
  36. data/test/dummy/tmp/cache/assets/D70/0B0/sprockets%2F1ae574bacfb86b4d51281b5e47fe1892 +505 -0
  37. data/test/dummy/tmp/cache/assets/D75/A60/sprockets%2Fab64285176f11f975fb6bb40af8bce76 +0 -0
  38. data/test/dummy/tmp/cache/assets/D76/0A0/sprockets%2F3ad3bd078c47096b34d5bcce886d7b47 +794 -0
  39. data/test/dummy/tmp/cache/assets/D79/C00/sprockets%2F94449fa386c370a1ebd7628eba9afe72 +72 -0
  40. data/test/dummy/tmp/cache/assets/D7B/310/sprockets%2Ff56e44be18b2d65efda80e588e5229a4 +0 -0
  41. data/test/dummy/tmp/cache/assets/D84/210/sprockets%2Fabd0103ccec2b428ac62c94e4c40b384 +7 -8
  42. data/test/dummy/tmp/cache/assets/D95/D20/sprockets%2F05b19351f203fb1eadf8ef1f0e6f9a60 +173 -0
  43. data/test/dummy/tmp/cache/assets/D9F/250/sprockets%2F40dcbb8f852f0e6360c4afb1f39964eb +0 -0
  44. data/test/dummy/tmp/cache/assets/DA8/0E0/sprockets%2F1351359f5bbdb94ef7d247df9af38bd1 +2556 -0
  45. data/test/dummy/tmp/cache/assets/DB3/070/sprockets%2Fd98f91680433cec456e6eb7485dcfdbc +522 -0
  46. data/test/dummy/tmp/cache/assets/DC4/6E0/sprockets%2F72117f09fccb98e6aac4cd1124edae42 +2539 -0
  47. data/test/dummy/tmp/cache/assets/DCC/D50/sprockets%2F9b2b027991c15af6f8afeacdd183c14e +1260 -0
  48. data/test/dummy/tmp/cache/assets/DD9/FF0/sprockets%2Fdf5dcfe86e199b272742a52a4b7e5fbd +823 -0
  49. data/test/dummy/tmp/cache/assets/DE7/0D0/sprockets%2Fe4d9fe29b6d96cdeb070d9b595af83d7 +1354 -0
  50. data/test/dummy/tmp/cache/assets/E00/3A0/sprockets%2Fc1db8cbfbc94bd2736f9f067a4c06cc7 +811 -0
  51. data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
  52. data/test/dummy/tmp/cache/assets/E0C/C80/sprockets%2F55805edb5f27aaef88eef6632fd08ade +1277 -0
  53. data/test/dummy/tmp/cache/assets/E1B/CF0/sprockets%2Feb58b29b94f29d7da8d9fbe666e4a8dd +474 -0
  54. data/test/dummy/tmp/cache/assets/E1E/E00/sprockets%2Fb005d4fa3dc6cfc1c5098e0fdb3f6b2b +1371 -0
  55. data/test/dummy/tmp/cache/assets/E30/8E0/sprockets%2Fef4fdb83b3eefb027cbc8e19b274ec80 +607 -0
  56. metadata +96 -8
data/README.rst CHANGED
@@ -20,21 +20,26 @@ Yellow-brick-road is a set of tools to integrate google `closure library <http:/
20
20
  Setup
21
21
  +++++
22
22
 
23
- To use yellow-brick-road in rails, add the gem to ``Gemfile``:
23
+ To use yellow-brick-road in rails, add these gems to ``Gemfile``:
24
24
 
25
25
  ::
26
26
 
27
27
  gem 'yellow-brick-road'
28
+ gem 'closure-library-wrapper',
29
+ :git => 'git://github.com/alitn/closure-library-wrapper.git',
30
+ :submodules => true
31
+
32
+ When an external closure library source is used, the second gem is not necessary.
28
33
 
29
- Then use this generator for create an initializer:
34
+ Configuration
35
+ +++++++++++++
36
+
37
+ Run this generator to create an initializer for yello-brick-road:
30
38
 
31
39
  ::
32
40
 
33
41
  rails generate yellow_brick_road:install
34
42
 
35
- Configuration
36
- +++++++++++++
37
-
38
43
  Using the internal closure library
39
44
  ''''''''''''''''''''''''''''''''''
40
45
 
@@ -32,7 +32,11 @@ class ClosureBuilderProcessor < Sprockets::DirectiveProcessor
32
32
  raise ArgumentError, 'require_closure_root argument must be a relative path'
33
33
  end
34
34
 
35
- @closure_roots << closure_root.to_s
35
+ relpath = path.starts_with?('./') ? path[2..-1] : path
36
+ @closure_roots << {
37
+ path: closure_root.to_s,
38
+ path_relative_to_goog_base: File.join('..', '..', relpath)
39
+ }
36
40
  end
37
41
 
38
42
  def process_directives
@@ -46,10 +50,13 @@ private
46
50
  return nil if @closure_roots.empty? || @has_executed_closure_builder
47
51
 
48
52
  if !YellowBrickRoad.standalone_soy
49
- @closure_roots.unshift << CLOSURE_SOYUTILS_USEGOOG_ROOT
53
+ @closure_roots.unshift << {
54
+ path: CLOSURE_SOYUTILS_USEGOOG_ROOT,
55
+ path_relative_to_goog_base: '/'
56
+ }
50
57
  end
51
58
 
52
- closure_roots_with_prefix = @closure_roots.map { |cr| "'#{cr} #{@closure_root_prefix}'" }
59
+ closure_roots_with_prefix = @closure_roots.map { |cr| "'#{cr[:path]} #{cr[:path_relative_to_goog_base]}'" }
53
60
 
54
61
  result = Utils::run_command YellowBrickRoad.closure_deps_writer,
55
62
  command_options: {
@@ -1,3 +1,3 @@
1
1
  module YellowBrickRoad
2
- VERSION = '0.2.0'
2
+ VERSION = '0.2.1'
3
3
  end
@@ -1,4 +1,4 @@
1
- // This file was autogenerated by /Users/ali/.rvm/gems/ruby-1.9.3-p0/bundler/gems/closure-library-wrapper-b30bab11ab83/vendor/closure-library/closure/bin/build/depswriter.py.
1
+ // This file was autogenerated by /Users/ali/.rvm/gems/ruby-1.9.3-p0/bundler/gems/closure-library-wrapper-031d1d0f0e50/vendor/closure-library/closure/bin/build/depswriter.py.
2
2
  // Please do not edit.
3
- goog.addDependency('../../soyutils_usegoog.js', ['soy', 'soy.StringBuilder', 'soy.esc', 'soydata', 'soydata.SanitizedHtml', 'soydata.SanitizedHtmlAttribute', 'soydata.SanitizedJsStrChars', 'soydata.SanitizedUri'], ['goog.asserts', 'goog.dom.DomHelper', 'goog.format', 'goog.i18n.BidiFormatter', 'goog.i18n.bidi', 'goog.soy', 'goog.string', 'goog.string.StringBuffer']);
4
- goog.addDependency('../../start.js', ['myproject.start'], ['goog.dom', 'myproject.templates']);
3
+ goog.addDependency('../../my-closure/start.js', ['myproject.start'], ['goog.dom', 'myproject.templates']);
4
+ goog.addDependency('/soyutils_usegoog.js', ['soy', 'soy.StringBuilder', 'soy.esc', 'soydata', 'soydata.SanitizedHtml', 'soydata.SanitizedHtmlAttribute', 'soydata.SanitizedJsStrChars', 'soydata.SanitizedUri'], ['goog.asserts', 'goog.dom.DomHelper', 'goog.format', 'goog.i18n.BidiFormatter', 'goog.i18n.bidi', 'goog.soy', 'goog.string', 'goog.string.StringBuffer']);
@@ -16885,3 +16885,162 @@ Served asset /closure/goog/string/stringbuffer.js - 304 Not Modified (9ms)
16885
16885
 
16886
16886
  Started GET "/assets/soyutils_usegoog.js" for 127.0.0.1 at 2012-01-03 00:07:48 +0000
16887
16887
  Served asset /soyutils_usegoog.js - 304 Not Modified (9ms)
16888
+
16889
+
16890
+ Started GET "/" for 127.0.0.1 at 2012-01-05 02:19:03 +0000
16891
+ Processing by ApplicationController#index as HTML
16892
+ Rendered application/index.html.erb within layouts/application (3.0ms)
16893
+ Cache for Asset (application.js) is stale
16894
+ /Users/ali/.rvm/gems/ruby-1.9.3-p0/bundler/gems/closure-library-wrapper-b30bab11ab83/vendor/closure-library/closure/goog/base.js isn't in paths: /Users/ali/.rvm/gems/ruby-1.9.3-p0/bundler/gems/closure-library-wrapper-031d1d0f0e50/vendor/closure-library, /Volumes/Development/dev-web/yellow-brick-road/vendor/closure-soyutils-usegoog, /Volumes/Development/dev-web/yellow-brick-road/test/dummy/app/assets/images, /Volumes/Development/dev-web/yellow-brick-road/test/dummy/app/assets/javascripts, /Volumes/Development/dev-web/yellow-brick-road/test/dummy/app/assets/stylesheets, /Users/ali/.rvm/gems/ruby-1.9.3-p0/gems/jquery-rails-1.0.19/vendor/assets/javascripts
16895
+ Executed closure depswriter.py on root paths: {:path=>"/Volumes/Development/dev-web/yellow-brick-road/test/dummy/app/assets/javascripts/my-closure", :path_relative_to_goog_base=>"../../my-closure"}, {:path=>"/Volumes/Development/dev-web/yellow-brick-road/vendor/closure-soyutils-usegoog", :path_relative_to_goog_base=>"/"}
16896
+ Compiled application.js (1885ms) (pid 84460)
16897
+ Compiled closure/goog/base.js (29ms) (pid 84460)
16898
+ Compiled closure-deps.js (0ms) (pid 84460)
16899
+ Compiled my-closure/start.js (1ms) (pid 84460)
16900
+ Completed 200 OK in 2253ms (Views: 2252.6ms)
16901
+
16902
+
16903
+ Started GET "/assets/application.css?body=1" for 127.0.0.1 at 2012-01-05 02:19:05 +0000
16904
+ Served asset /application.css - 200 OK (0ms)
16905
+
16906
+
16907
+ Started GET "/assets/closure-deps.js?body=1" for 127.0.0.1 at 2012-01-05 02:19:05 +0000
16908
+ Served asset /closure-deps.js - 200 OK (3ms)
16909
+
16910
+
16911
+ Started GET "/assets/jquery_ujs.js?body=1" for 127.0.0.1 at 2012-01-05 02:19:05 +0000
16912
+ Served asset /jquery_ujs.js - 200 OK (5ms)
16913
+
16914
+
16915
+ Started GET "/assets/jquery.js?body=1" for 127.0.0.1 at 2012-01-05 02:19:05 +0000
16916
+ Served asset /jquery.js - 200 OK (7ms)
16917
+
16918
+
16919
+ Started GET "/assets/closure/goog/base.js?body=1" for 127.0.0.1 at 2012-01-05 02:19:05 +0000
16920
+ Served asset /closure/goog/base.js - 200 OK (27ms)
16921
+
16922
+
16923
+ Started GET "/assets/my-closure/simple.js?body=1" for 127.0.0.1 at 2012-01-05 02:19:05 +0000
16924
+ Served asset /my-closure/simple.js - 200 OK (4ms)
16925
+
16926
+
16927
+ Started GET "/assets/my-closure/start.js?body=1" for 127.0.0.1 at 2012-01-05 02:19:05 +0000
16928
+ Served asset /my-closure/start.js - 200 OK (3ms)
16929
+
16930
+
16931
+ Started GET "/assets/application.js?body=1" for 127.0.0.1 at 2012-01-05 02:19:05 +0000
16932
+ Served asset /application.js - 200 OK (37ms)
16933
+
16934
+
16935
+ Started GET "/assets/closure/goog/deps.js" for 127.0.0.1 at 2012-01-05 02:19:07 +0000
16936
+ Compiled closure/goog/deps.js (2ms) (pid 84460)
16937
+ Served asset /closure/goog/deps.js - 200 OK (211ms)
16938
+
16939
+
16940
+ Started GET "/assets/closure/goog/debug/error.js" for 127.0.0.1 at 2012-01-05 02:19:07 +0000
16941
+ Compiled closure/goog/debug/error.js (0ms) (pid 84460)
16942
+ Served asset /closure/goog/debug/error.js - 200 OK (11ms)
16943
+
16944
+
16945
+ Started GET "/assets/closure/goog/string/string.js" for 127.0.0.1 at 2012-01-05 02:19:07 +0000
16946
+ Compiled closure/goog/string/string.js (1ms) (pid 84460)
16947
+ Served asset /closure/goog/string/string.js - 200 OK (41ms)
16948
+
16949
+
16950
+ Started GET "/assets/closure/goog/useragent/useragent.js" for 127.0.0.1 at 2012-01-05 02:19:07 +0000
16951
+ Compiled closure/goog/useragent/useragent.js (1ms) (pid 84460)
16952
+ Served asset /closure/goog/useragent/useragent.js - 200 OK (25ms)
16953
+
16954
+
16955
+ Started GET "/assets/closure/goog/asserts/asserts.js" for 127.0.0.1 at 2012-01-05 02:19:07 +0000
16956
+ Compiled closure/goog/asserts/asserts.js (1ms) (pid 84460)
16957
+ Served asset /closure/goog/asserts/asserts.js - 200 OK (12ms)
16958
+
16959
+
16960
+ Started GET "/assets/closure/goog/dom/tagname.js" for 127.0.0.1 at 2012-01-05 02:19:07 +0000
16961
+ Compiled closure/goog/dom/tagname.js (1ms) (pid 84460)
16962
+ Served asset /closure/goog/dom/tagname.js - 200 OK (32ms)
16963
+
16964
+
16965
+ Started GET "/assets/closure/goog/dom/browserfeature.js" for 127.0.0.1 at 2012-01-05 02:19:07 +0000
16966
+ Compiled closure/goog/dom/browserfeature.js (1ms) (pid 84460)
16967
+ Served asset /closure/goog/dom/browserfeature.js - 200 OK (9ms)
16968
+
16969
+
16970
+ Started GET "/assets/closure/goog/array/array.js" for 127.0.0.1 at 2012-01-05 02:19:07 +0000
16971
+ Compiled closure/goog/array/array.js (3ms) (pid 84460)
16972
+ Served asset /closure/goog/array/array.js - 200 OK (12ms)
16973
+
16974
+
16975
+ Started GET "/assets/closure/goog/dom/classes.js" for 127.0.0.1 at 2012-01-05 02:19:07 +0000
16976
+ Compiled closure/goog/dom/classes.js (2ms) (pid 84460)
16977
+ Served asset /closure/goog/dom/classes.js - 200 OK (14ms)
16978
+
16979
+
16980
+ Started GET "/assets/closure/goog/math/coordinate.js" for 127.0.0.1 at 2012-01-05 02:19:07 +0000
16981
+ Compiled closure/goog/math/coordinate.js (1ms) (pid 84460)
16982
+ Served asset /closure/goog/math/coordinate.js - 200 OK (14ms)
16983
+
16984
+
16985
+ Started GET "/assets/closure/goog/math/size.js" for 127.0.0.1 at 2012-01-05 02:19:07 +0000
16986
+ Compiled closure/goog/math/size.js (1ms) (pid 84460)
16987
+ Served asset /closure/goog/math/size.js - 200 OK (13ms)
16988
+
16989
+
16990
+ Started GET "/assets/closure/goog/object/object.js" for 127.0.0.1 at 2012-01-05 02:19:07 +0000
16991
+ Compiled closure/goog/object/object.js (0ms) (pid 84460)
16992
+ Served asset /closure/goog/object/object.js - 200 OK (28ms)
16993
+
16994
+
16995
+ Started GET "/assets/closure/goog/dom/dom.js" for 127.0.0.1 at 2012-01-05 02:19:07 +0000
16996
+ Compiled closure/goog/dom/dom.js (1ms) (pid 84460)
16997
+ Served asset /closure/goog/dom/dom.js - 200 OK (13ms)
16998
+
16999
+
17000
+ Started GET "/assets/closure/goog/structs/inversionmap.js" for 127.0.0.1 at 2012-01-05 02:19:07 +0000
17001
+ Compiled closure/goog/structs/inversionmap.js (151ms) (pid 84460)
17002
+ Served asset /closure/goog/structs/inversionmap.js - 200 OK (170ms)
17003
+
17004
+
17005
+ Started GET "/assets/closure/goog/i18n/graphemebreak.js" for 127.0.0.1 at 2012-01-05 02:19:07 +0000
17006
+ Compiled closure/goog/i18n/graphemebreak.js (1ms) (pid 84460)
17007
+ Served asset /closure/goog/i18n/graphemebreak.js - 200 OK (64ms)
17008
+
17009
+
17010
+ Started GET "/assets/closure/goog/format/format.js" for 127.0.0.1 at 2012-01-05 02:19:07 +0000
17011
+ Compiled closure/goog/format/format.js (1ms) (pid 84460)
17012
+ Served asset /closure/goog/format/format.js - 200 OK (10ms)
17013
+
17014
+
17015
+ Started GET "/assets/closure/goog/i18n/bidi.js" for 127.0.0.1 at 2012-01-05 02:19:07 +0000
17016
+ Compiled closure/goog/i18n/bidi.js (1ms) (pid 84460)
17017
+ Served asset /closure/goog/i18n/bidi.js - 200 OK (10ms)
17018
+
17019
+
17020
+ Started GET "/assets/closure/goog/i18n/bidiformatter.js" for 127.0.0.1 at 2012-01-05 02:19:07 +0000
17021
+ Compiled closure/goog/i18n/bidiformatter.js (1ms) (pid 84460)
17022
+ Served asset /closure/goog/i18n/bidiformatter.js - 200 OK (10ms)
17023
+
17024
+
17025
+ Started GET "/assets/closure/goog/soy/soy.js" for 127.0.0.1 at 2012-01-05 02:19:07 +0000
17026
+ Compiled closure/goog/soy/soy.js (1ms) (pid 84460)
17027
+ Served asset /closure/goog/soy/soy.js - 200 OK (9ms)
17028
+
17029
+
17030
+ Started GET "/assets/closure/goog/useragent/jscript.js" for 127.0.0.1 at 2012-01-05 02:19:07 +0000
17031
+ Compiled closure/goog/useragent/jscript.js (1ms) (pid 84460)
17032
+ Served asset /closure/goog/useragent/jscript.js - 200 OK (10ms)
17033
+
17034
+
17035
+ Started GET "/assets/closure/goog/string/stringbuffer.js" for 127.0.0.1 at 2012-01-05 02:19:08 +0000
17036
+ Compiled closure/goog/string/stringbuffer.js (0ms) (pid 84460)
17037
+ Served asset /closure/goog/string/stringbuffer.js - 200 OK (7ms)
17038
+
17039
+
17040
+ Started GET "/assets/closure/goog//soyutils_usegoog.js" for 127.0.0.1 at 2012-01-05 02:19:08 +0000
17041
+ Served asset /closure/goog/soyutils_usegoog.js - 404 Not Found (5ms)
17042
+
17043
+ ActionController::RoutingError (No route matches [GET] "/assets/closure/goog/soyutils_usegoog.js"):
17044
+
17045
+
17046
+ Rendered /Users/ali/.rvm/gems/ruby-1.9.3-p0/gems/actionpack-3.1.3/lib/action_dispatch/middleware/templates/rescues/routing_error.erb within rescues/layout (1.1ms)
@@ -0,0 +1,165 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1325729947.870778: @value{ I" length:EFi�I" digest;
2
+ F"%4677892072a8f5cb3a0f4b57b8396468I" source;
3
+ FI"�// Copyright 2008 The Closure Library Authors. All Rights Reserved.
4
+ //
5
+ // Licensed under the Apache License, Version 2.0 (the "License");
6
+ // you may not use this file except in compliance with the License.
7
+ // You may obtain a copy of the License at
8
+ //
9
+ // http://www.apache.org/licenses/LICENSE-2.0
10
+ //
11
+ // Unless required by applicable law or agreed to in writing, software
12
+ // distributed under the License is distributed on an "AS-IS" BASIS,
13
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ // See the License for the specific language governing permissions and
15
+ // limitations under the License.
16
+
17
+ /**
18
+ * @fileoverview Provides inversion and inversion map functionality for storing
19
+ * integer ranges and corresponding values.
20
+ *
21
+ */
22
+
23
+
24
+ goog.provide('goog.structs.InversionMap');
25
+
26
+ goog.require('goog.array');
27
+
28
+
29
+
30
+ /**
31
+ * Maps ranges to values using goog.structs.Inversion.
32
+ * @param {Array.<number>} rangeArray An array of monotonically
33
+ * increasing integer values, with at least one instance.
34
+ * @param {Array.<*>} valueArray An array of corresponding values.
35
+ * Length must be the same as rangeArray.
36
+ * @param {boolean=} opt_delta If true, saves only delta from previous value.
37
+ * @constructor
38
+ */
39
+ goog.structs.InversionMap = function(rangeArray, valueArray, opt_delta) {
40
+ if (rangeArray.length != valueArray.length) {
41
+ // rangeArray and valueArray has to match in number of entries.
42
+ return null;
43
+ }
44
+ this.storeInversion_(rangeArray, opt_delta);
45
+
46
+ /**
47
+ * @type {Array}
48
+ * @protected
49
+ */
50
+ this.values = valueArray;
51
+ };
52
+
53
+
54
+ /**
55
+ * @type {Array}
56
+ * @protected
57
+ */
58
+ goog.structs.InversionMap.prototype.rangeArray;
59
+
60
+
61
+ /**
62
+ * Stores the integers as ranges (half-open).
63
+ * If delta is true, the integers are delta from the previous value and
64
+ * will be restored to the absolute value.
65
+ * When used as a set, even indices are IN, and odd are OUT.
66
+ * @param {Array.<number?>} rangeArray An array of monotonically
67
+ * increasing integer values, with at least one instance.
68
+ * @param {boolean=} opt_delta If true, saves only delta from previous value.
69
+ * @private
70
+ */
71
+ goog.structs.InversionMap.prototype.storeInversion_ = function(rangeArray,
72
+ opt_delta) {
73
+ this.rangeArray = rangeArray;
74
+
75
+ for (var i = 1; i < rangeArray.length; i++) {
76
+ if (rangeArray[i] == null) {
77
+ rangeArray[i] = rangeArray[i - 1] + 1;
78
+ } else if (opt_delta) {
79
+ rangeArray[i] += rangeArray[i - 1];
80
+ }
81
+ }
82
+ };
83
+
84
+
85
+ /**
86
+ * Splices a range -> value map into this inversion map.
87
+ * @param {Array.<number>} rangeArray An array of monotonically
88
+ * increasing integer values, with at least one instance.
89
+ * @param {Array.<*>} valueArray An array of corresponding values.
90
+ * Length must be the same as rangeArray.
91
+ * @param {boolean=} opt_delta If true, saves only delta from previous value.
92
+ */
93
+ goog.structs.InversionMap.prototype.spliceInversion = function(
94
+ rangeArray, valueArray, opt_delta) {
95
+ // By building another inversion map, we build the arrays that we need
96
+ // to splice in.
97
+ var otherMap = new goog.structs.InversionMap(
98
+ rangeArray, valueArray, opt_delta);
99
+
100
+ // Figure out where to splice those arrays.
101
+ var startRange = otherMap.rangeArray[0];
102
+ var endRange =
103
+ (/** @type {number} */ goog.array.peek(otherMap.rangeArray));
104
+ var startSplice = this.getLeast(startRange);
105
+ var endSplice = this.getLeast(endRange);
106
+
107
+ // The inversion map works by storing the start points of ranges...
108
+ if (startRange != this.rangeArray[startSplice]) {
109
+ // ...if we're splicing in a start point that isn't already here,
110
+ // then we need to insert it after the insertion point.
111
+ startSplice++;
112
+ } // otherwise we overwrite the insertion point.
113
+
114
+ var spliceLength = endSplice - startSplice + 1;
115
+ goog.partial(goog.array.splice, this.rangeArray, startSplice,
116
+ spliceLength).apply(null, otherMap.rangeArray);
117
+ goog.partial(goog.array.splice, this.values, startSplice,
118
+ spliceLength).apply(null, otherMap.values);
119
+ };
120
+
121
+
122
+ /**
123
+ * Gets the value corresponding to a number from the inversion map.
124
+ * @param {number} intKey The number for which value needs to be retrieved
125
+ * from inversion map.
126
+ * @return {*} Value retrieved from inversion map; null if not found.
127
+ */
128
+ goog.structs.InversionMap.prototype.at = function(intKey) {
129
+ var index = this.getLeast(intKey);
130
+ if (index < 0) {
131
+ return null;
132
+ }
133
+ return this.values[index];
134
+ };
135
+
136
+
137
+ /**
138
+ * Gets the largest index such that rangeArray[index] <= intKey from the
139
+ * inversion map.
140
+ * @param {number} intKey The probe for which rangeArray is searched.
141
+ * @return {number} Largest index such that rangeArray[index] <= intKey.
142
+ * @protected
143
+ */
144
+ goog.structs.InversionMap.prototype.getLeast = function(intKey) {
145
+ var arr = this.rangeArray;
146
+ var low = 0;
147
+ var high = arr.length;
148
+ while (high - low > 8) {
149
+ var mid = (high + low) >> 1;
150
+ if (arr[mid] <= intKey) {
151
+ low = mid;
152
+ } else {
153
+ high = mid;
154
+ }
155
+ }
156
+ for (; low < high; ++low) {
157
+ if (intKey < arr[low]) {
158
+ break;
159
+ }
160
+ }
161
+ return low - 1;
162
+ };
163
+ ;
164
+ FI"
165
+ F"%7837f66e6fd4e54fa3a1e72c9a63905a
@@ -1,9 +1,9 @@
1
- o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1325549267.512146: @value{ I" length:EFi�I" digest;
2
- F"%ad6870b3e4927bb1917c19d3873262faI" source;
3
- FI"�// This file was autogenerated by /Users/ali/.rvm/gems/ruby-1.9.3-p0/bundler/gems/closure-library-wrapper-b30bab11ab83/vendor/closure-library/closure/bin/build/depswriter.py.
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1325729945.5889258: @value{ I" length:EFi�I" digest;
2
+ F"%e8d058e562853e6dd6b04cfe2c5f20b6I" source;
3
+ FI"�// This file was autogenerated by /Users/ali/.rvm/gems/ruby-1.9.3-p0/bundler/gems/closure-library-wrapper-031d1d0f0e50/vendor/closure-library/closure/bin/build/depswriter.py.
4
4
  // Please do not edit.
5
- goog.addDependency('../../soyutils_usegoog.js', ['soy', 'soy.StringBuilder', 'soy.esc', 'soydata', 'soydata.SanitizedHtml', 'soydata.SanitizedHtmlAttribute', 'soydata.SanitizedJsStrChars', 'soydata.SanitizedUri'], ['goog.asserts', 'goog.dom.DomHelper', 'goog.format', 'goog.i18n.BidiFormatter', 'goog.i18n.bidi', 'goog.soy', 'goog.string', 'goog.string.StringBuffer']);
6
- goog.addDependency('../../start.js', ['myproject.start'], ['goog.dom', 'myproject.templates']);
5
+ goog.addDependency('../../my-closure/start.js', ['myproject.start'], ['goog.dom', 'myproject.templates']);
6
+ goog.addDependency('/soyutils_usegoog.js', ['soy', 'soy.StringBuilder', 'soy.esc', 'soydata', 'soydata.SanitizedHtml', 'soydata.SanitizedHtmlAttribute', 'soydata.SanitizedJsStrChars', 'soydata.SanitizedUri'], ['goog.asserts', 'goog.dom.DomHelper', 'goog.format', 'goog.i18n.BidiFormatter', 'goog.i18n.bidi', 'goog.soy', 'goog.string', 'goog.string.StringBuffer']);
7
7
  ;
8
8
  FI"
9
- F"%1dfbbf3a4af5ea3eb1861df6f66674b7
9
+ F"%508f605e32d9a455e15341a6f7c85c3d
@@ -0,0 +1,103 @@
1
+ o: ActiveSupport::Cache::Entry :@compressedF:@expires_in0:@created_atf1325729948.002632: @value{ I" length:EFi�
2
+ I" digest;
3
+ F"%b7f2f9f2118221772fcf6fca3140bf0aI" source;
4
+ FI"�
5
+ // Copyright 2007 The Closure Library Authors. All Rights Reserved.
6
+ //
7
+ // Licensed under the Apache License, Version 2.0 (the "License");
8
+ // you may not use this file except in compliance with the License.
9
+ // You may obtain a copy of the License at
10
+ //
11
+ // http://www.apache.org/licenses/LICENSE-2.0
12
+ //
13
+ // Unless required by applicable law or agreed to in writing, software
14
+ // distributed under the License is distributed on an "AS-IS" BASIS,
15
+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ // See the License for the specific language governing permissions and
17
+ // limitations under the License.
18
+
19
+ /**
20
+ * @fileoverview Detection of JScript version.
21
+ *
22
+ * @author arv@google.com (Erik Arvidsson)
23
+ */
24
+
25
+
26
+
27
+ goog.provide('goog.userAgent.jscript');
28
+
29
+ goog.require('goog.string');
30
+
31
+
32
+ /**
33
+ * @define {boolean} True if it is known at compile time that the runtime
34
+ * environment will not be using JScript.
35
+ */
36
+ goog.userAgent.jscript.ASSUME_NO_JSCRIPT = false;
37
+
38
+
39
+ /**
40
+ * Initializer for goog.userAgent.jscript. Detects if the user agent is using
41
+ * Microsoft JScript and which version of it.
42
+ *
43
+ * This is a named function so that it can be stripped via the jscompiler
44
+ * option for stripping types.
45
+ * @private
46
+ */
47
+ goog.userAgent.jscript.init_ = function() {
48
+ var hasScriptEngine = 'ScriptEngine' in goog.global;
49
+
50
+ /**
51
+ * @type {boolean}
52
+ * @private
53
+ */
54
+ goog.userAgent.jscript.DETECTED_HAS_JSCRIPT_ =
55
+ hasScriptEngine && goog.global['ScriptEngine']() == 'JScript';
56
+
57
+ /**
58
+ * @type {string}
59
+ * @private
60
+ */
61
+ goog.userAgent.jscript.DETECTED_VERSION_ =
62
+ goog.userAgent.jscript.DETECTED_HAS_JSCRIPT_ ?
63
+ (goog.global['ScriptEngineMajorVersion']() + '.' +
64
+ goog.global['ScriptEngineMinorVersion']() + '.' +
65
+ goog.global['ScriptEngineBuildVersion']()) :
66
+ '0';
67
+ };
68
+
69
+ if (!goog.userAgent.jscript.ASSUME_NO_JSCRIPT) {
70
+ goog.userAgent.jscript.init_();
71
+ }
72
+
73
+
74
+ /**
75
+ * Whether we detect that the user agent is using Microsoft JScript.
76
+ * @type {boolean}
77
+ */
78
+ goog.userAgent.jscript.HAS_JSCRIPT = goog.userAgent.jscript.ASSUME_NO_JSCRIPT ?
79
+ false : goog.userAgent.jscript.DETECTED_HAS_JSCRIPT_;
80
+
81
+
82
+ /**
83
+ * The installed version of JScript.
84
+ * @type {string}
85
+ */
86
+ goog.userAgent.jscript.VERSION = goog.userAgent.jscript.ASSUME_NO_JSCRIPT ?
87
+ '0' : goog.userAgent.jscript.DETECTED_VERSION_;
88
+
89
+
90
+ /**
91
+ * Whether the installed version of JScript is as new or newer than a given
92
+ * version.
93
+ * @param {string} version The version to check.
94
+ * @return {boolean} Whether the installed version of JScript is as new or
95
+ * newer than the given version.
96
+ */
97
+ goog.userAgent.jscript.isVersion = function(version) {
98
+ return goog.string.compareVersions(goog.userAgent.jscript.VERSION,
99
+ version) >= 0;
100
+ };
101
+ ;
102
+ FI"
103
+ F"%a181c72c42d98272cb874d1a170c09e7