yellow-brick-road 0.2.0 → 0.2.1

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