closure 1.1.692 → 1.2.701

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 (66) hide show
  1. data/README.md +0 -13
  2. data/closure-library/alltests.js +1 -1
  3. data/closure-library/closure/goog/debug/reflect.js +5 -1
  4. data/closure-library/closure/goog/deps.js +7 -0
  5. data/closure-library/closure/goog/i18n/messageformat.js +4 -1
  6. data/closure-library/closure/goog/i18n/messageformat_test.html +11 -0
  7. data/closure-library/closure/goog/math/vec3.js +0 -19
  8. data/closure-library/closure/goog/messaging/portcaller.js +150 -0
  9. data/closure-library/closure/goog/messaging/portcaller_test.html +66 -0
  10. data/closure-library/closure/goog/messaging/portnetwork.js +78 -0
  11. data/closure-library/closure/goog/messaging/portnetwork_test.html +64 -0
  12. data/closure-library/closure/goog/messaging/portoperator.js +196 -0
  13. data/closure-library/closure/goog/messaging/portoperator_test.html +112 -0
  14. data/closure-library/closure/goog/messaging/testdata/portchannel_inner.html +28 -0
  15. data/closure-library/closure/goog/messaging/testdata/portnetwork_inner.html +35 -0
  16. data/closure-library/closure/goog/messaging/testdata/portnetwork_worker1.js +33 -0
  17. data/closure-library/closure/goog/messaging/testdata/portnetwork_worker2.js +33 -0
  18. data/closure-library/closure/goog/testing/functionmock.js +1 -1
  19. data/closure-library/closure/goog/testing/messaging/mockmessageport.js +85 -0
  20. data/closure-library/closure/goog/testing/messaging/mockportnetwork.js +64 -0
  21. data/closure-library/closure/goog/tweak/tweak.js +1 -1
  22. data/closure-library/closure/goog/ui/advancedtooltip.js +1 -2
  23. data/closure-library/closure/goog/ui/filteredmenu.js +2 -2
  24. data/closure-library/closure/goog/ui/menubutton.js +6 -0
  25. data/closure-library/third_party/closure/goog/dojo/dom/query.js +9 -4
  26. data/closure.gemspec +1 -2
  27. data/config.ru +4 -4
  28. data/lib/closure.rb +3 -1
  29. data/lib/closure/compiler.rb +11 -24
  30. data/lib/closure/goog.rb +37 -16
  31. data/lib/closure/middleware.rb +2 -2
  32. data/lib/closure/script.rb +12 -4
  33. data/lib/closure/server.rb +3 -1
  34. data/lib/closure/show_exceptions.rb +63 -0
  35. data/lib/closure/sources.rb +22 -6
  36. data/lib/closure/templates.rb +2 -2
  37. data/lib/closure/version.rb +1 -1
  38. data/scripts/demos/compiler.build +1 -0
  39. data/scripts/demos/compiler.debug +24 -0
  40. data/scripts/demos/compiler.js.erb +22 -0
  41. data/scripts/demos/compiler.map +114 -0
  42. data/scripts/demos/googly.erb +19 -0
  43. data/scripts/demos/googly.js +24 -0
  44. data/scripts/demos/helloworld.erb +24 -0
  45. data/scripts/demos/index.erb +29 -0
  46. data/scripts/demos/{externs_jquery.js → jquery.js} +0 -0
  47. data/scripts/demos/rails_ujs.erb +38 -0
  48. data/scripts/{examples/rails/ujs.js → demos/rails_ujs.js} +0 -0
  49. data/scripts/externs/jquery-ui.externs +10 -0
  50. data/scripts/externs/jquery.externs +4 -0
  51. data/scripts/{demos/externs_jquery.externs → externs/jquery_1_4_2.externs} +1 -1
  52. data/scripts/index.erb +19 -0
  53. metadata +36 -24
  54. data/scripts/demos/compile.js.erb +0 -8
  55. data/scripts/demos/compile.out +0 -1
  56. data/scripts/demos/compiler.haml +0 -17
  57. data/scripts/demos/compiler.js +0 -12
  58. data/scripts/demos/externs.haml +0 -16
  59. data/scripts/demos/externs.js.erb +0 -8
  60. data/scripts/demos/externs.out +0 -1
  61. data/scripts/demos/externs_jquerytest.js +0 -11
  62. data/scripts/demos/helloworld.haml +0 -15
  63. data/scripts/demos/index.haml +0 -21
  64. data/scripts/demos/rails_ujs.haml +0 -24
  65. data/scripts/favicon.ico +0 -0
  66. data/scripts/index.haml +0 -14
@@ -28,6 +28,8 @@ class Closure
28
28
  # you can use for redirects, cookies, and other controller actions.
29
29
  class Script < Rack::Request
30
30
 
31
+ ENV_ERROR_CONTENT_TYPE = 'closure.error.content_type'
32
+
31
33
  def initialize(env, sources, filename)
32
34
  super(env)
33
35
  @closure_script_render_stack = []
@@ -38,12 +40,19 @@ class Closure
38
40
  @response.write rendering
39
41
  end
40
42
  rescue ScriptCallStackTooDeepError, ScriptNotFoundError => e
41
- e.set_backtrace e.backtrace[1..-1]
42
- raise e if @closure_script_render_stack.size > 1
43
+ if @closure_script_render_stack.size > 0
44
+ # Make errors appear from the render instead of the engine.call
45
+ e.set_backtrace e.backtrace[1..-1]
46
+ env[ENV_ERROR_CONTENT_TYPE] = @response.finish[1]["Content-Type"] rescue nil
47
+ raise e
48
+ end
43
49
  @response.status = 404
44
50
  @response.write "404 Not Found\n"
45
51
  @response.header["X-Cascade"] = "pass"
46
52
  @response.header["Content-Type"] = "text/plain"
53
+ rescue StandardError, LoadError, SyntaxError => e
54
+ env[ENV_ERROR_CONTENT_TYPE] = @response.finish[1]["Content-Type"] rescue nil
55
+ raise e
47
56
  end
48
57
 
49
58
  # After rendering, #finish will be sent to the client.
@@ -129,8 +138,7 @@ class Closure
129
138
  # @param [String]
130
139
  # @return [String]
131
140
  def expand_src(s)
132
- # If the file can't be read, simply skip the cache string.
133
- "#{s}?#{File.mtime(expand_path(s)).to_i}" rescue s
141
+ @goog.path_for(expand_path(s)) rescue s
134
142
  end
135
143
 
136
144
 
@@ -71,11 +71,13 @@ class Closure
71
71
  # Status 404 with X-Cascade => pass.
72
72
  # @return (Array)[status, headers, body]
73
73
  def not_found
74
+ return @not_found if @not_found
74
75
  body = "404 Not Found\n"
75
- [404, {'Content-Type' => 'text/plain',
76
+ @not_found = [404, {'Content-Type' => 'text/plain',
76
77
  'Content-Length' => body.size.to_s,
77
78
  'X-Cascade' => 'pass'},
78
79
  [body]]
80
+ @not_found
79
81
  end
80
82
 
81
83
  end
@@ -0,0 +1,63 @@
1
+ # Copyright 2011 The Closure Script Authors
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+
16
+ class Closure
17
+
18
+ # This is Rack middleware to show Ruby exceptions. It is automatically loaded when
19
+ # using Closure::Middleware. It works very much like Rack::ShowExceptions but will
20
+ # use the Javascript console when it can detect the request was for javascript.
21
+
22
+ class ShowExceptions
23
+
24
+ # @private - internal use only
25
+ class Javascript
26
+ def initialize(app)
27
+ @app = app
28
+ end
29
+
30
+ def call(env)
31
+ @app.call(env)
32
+ rescue StandardError, LoadError, SyntaxError => e
33
+ raise e unless env[Script::ENV_ERROR_CONTENT_TYPE] == 'application/javascript'
34
+ body = 'try{console.error('
35
+ body += '"Ruby Exception: %s\n\n", '
36
+ body += "#{e.class.to_s.dump}, "
37
+ body += "#{e.message.dump}, "
38
+ body += '"\n\n", '
39
+ body += "#{e.backtrace.join("\n").dump}"
40
+ body += ')}catch(err){}'
41
+ body
42
+ [200,
43
+ {"Content-Type" => "application/javascript",
44
+ "Content-Length" => body.size.to_s},
45
+ [body]]
46
+ end
47
+ end
48
+
49
+ # @private - internal use only
50
+ class Html < Rack::ShowExceptions
51
+ # We may implement our own someday
52
+ end
53
+
54
+ def initialize(app)
55
+ @app = Html.new(Javascript.new(app))
56
+ end
57
+
58
+ def call(env)
59
+ @app.call(env)
60
+ end
61
+ end
62
+
63
+ end
@@ -88,11 +88,11 @@ class Closure
88
88
  end
89
89
 
90
90
 
91
- # Determine the path_info for where base_js is located.
91
+ # Determine the path_info and query_string for loading base_js.
92
92
  # @return [String]
93
93
  def base_js(env={})
94
94
  if (goog = @goog) and @last_been_run
95
- return goog[:base_js]
95
+ return "#{goog[:base_js]}?#{goog[:base_js_mtime].to_i}"
96
96
  end
97
97
  @semaphore.synchronize do
98
98
  refresh(env)
@@ -128,13 +128,13 @@ class Closure
128
128
  unless @deps[base]
129
129
  response = @deps[base] ||= Rack::Response.new
130
130
  response.write "// Dynamic Deps by Closure Script\n"
131
- @files.reject{|a,b|!b[:path]}.sort{|a,b|a[1][:path]<=>b[1][:path]}.each do |filename, dep|
132
- path = Pathname.new(dep[:path]).relative_path_from(base)
133
- if path.to_s =~ /\.externs$/
131
+ @files.sort{|a,b|(a[1][:path]||'')<=>(b[1][:path]||'')}.each do |filename, dep|
132
+ if filename =~ /\.externs$/
134
133
  dep[:provide].each do |dep_provide|
135
134
  response.write "goog.provide(#{dep_provide.dump});\n"
136
135
  end
137
- else
136
+ elsif dep[:path]
137
+ path = Pathname.new(dep[:path]).relative_path_from(base)
138
138
  path = "#{path}?#{dep[:mtime].to_i}"
139
139
  response.write "goog.addDependency(#{path.dump}, #{dep[:provide].inspect}, #{dep[:require].inspect});\n"
140
140
  end
@@ -198,6 +198,21 @@ class Closure
198
198
  end
199
199
 
200
200
 
201
+ # Calculate the file server path for a filename
202
+ # @param (String) filename
203
+ # @return (String)
204
+ def path_for(filename, env={})
205
+ @semaphore.synchronize do
206
+ refresh(env)
207
+ f, dep = @files.find {|f, dep| f == filename}
208
+ unless dep and dep.has_key? :path
209
+ raise "#{filename.dump} is not available from file server"
210
+ end
211
+ "#{dep[:path]}?#{dep[:mtime].to_i}"
212
+ end
213
+ end
214
+
215
+
201
216
  protected
202
217
 
203
218
  # Namespace recursion with circular stop on the filename
@@ -271,6 +286,7 @@ class Closure
271
286
  goog = {:base_filename => filename}
272
287
  if dep[:path]
273
288
  goog[:base_js] = dep[:path]
289
+ goog[:base_js_mtime] = mtime
274
290
  goog[:deps_js] = dep[:path].gsub(/base.js$/, 'deps.js')
275
291
  end
276
292
  end
@@ -45,7 +45,7 @@ class Closure
45
45
  ENV_ERRORS = 'closure.template.errors'
46
46
 
47
47
  # Creates javascript for errors in a Rack environment.
48
- # @private - flagged for possible refactoring.
48
+ # @private - internal use only
49
49
  # @param (Hash) env Rack environment.
50
50
  def self.errors_js(env)
51
51
  errors = [env[ENV_ERRORS]].flatten.compact
@@ -96,7 +96,7 @@ class Closure
96
96
  args_index += 1
97
97
  else
98
98
  arg = args[args_index]
99
- if arg =~ /\/\*\*\//
99
+ if arg =~ /\*/
100
100
  args[args_index,1] = Dir.glob arg
101
101
  else
102
102
  args_index += 1
@@ -16,5 +16,5 @@
16
16
  class Closure
17
17
  # The first two numerics are the Closure Script major and minor version.
18
18
  # The third numeric is the Closure Library version.
19
- VERSION = "1.1.692"
19
+ VERSION = "1.2.701"
20
20
  end
@@ -0,0 +1 @@
1
+ var d=this;function f(b,e,a){b=b.split(".");a=a||d;!(b[0]in a)&&a.execScript&&a.execScript("var "+b[0]);for(var c;b.length&&(c=b.shift());)if(!b.length&&e!==undefined)a[c]=e;else a=a[c]?a[c]:a[c]={}};f("jqueryTest",function(){document.write("<p>Javascript jqueryTest() executed.</p>");$(".jqtest").hide()},void 0);f("simpleTest",function(){document.write("<p>Javascript simpleTest() executed.</p>")},void 0);f("helloWorld",function(){document.write("<p>Hello from the Closure Script demo code.</p>")},void 0);
@@ -0,0 +1,24 @@
1
+ var $goog$global$$ = this;
2
+ function $goog$exportPath_$$($name$$43_parts$$, $opt_object$$, $cur_opt_objectToExportTo$$) {
3
+ $name$$43_parts$$ = $name$$43_parts$$.split(".");
4
+ $cur_opt_objectToExportTo$$ = $cur_opt_objectToExportTo$$ || $goog$global$$;
5
+ !($name$$43_parts$$[0] in $cur_opt_objectToExportTo$$) && $cur_opt_objectToExportTo$$.execScript && $cur_opt_objectToExportTo$$.execScript("var " + $name$$43_parts$$[0]);
6
+ for(var $part$$;$name$$43_parts$$.length && ($part$$ = $name$$43_parts$$.shift());) {
7
+ if(!$name$$43_parts$$.length && $opt_object$$ !== undefined) {
8
+ $cur_opt_objectToExportTo$$[$part$$] = $opt_object$$
9
+ }else {
10
+ $cur_opt_objectToExportTo$$ = $cur_opt_objectToExportTo$$[$part$$] ? $cur_opt_objectToExportTo$$[$part$$] : $cur_opt_objectToExportTo$$[$part$$] = {}
11
+ }
12
+ }
13
+ }
14
+ ;$goog$exportPath_$$("jqueryTest", function() {
15
+ document.write("<p>Javascript jqueryTest() executed.</p>");
16
+ $(".jqtest").hide()
17
+ }, void 0);
18
+ $goog$exportPath_$$("simpleTest", function() {
19
+ document.write("<p>Javascript simpleTest() executed.</p>")
20
+ }, void 0);
21
+ $goog$exportPath_$$("helloWorld", function() {
22
+ document.write("<p>Hello from the Closure Script demo code.</p>")
23
+ }, void 0);
24
+
@@ -0,0 +1,22 @@
1
+ <% args = %w{
2
+ --summary_detail_level 3
3
+ --define goog.DEBUG=false
4
+ --warning_level VERBOSE
5
+ --ns googly
6
+ }
7
+
8
+ args << case query_string
9
+ when 'build': %w{
10
+ --compilation_level ADVANCED_OPTIMIZATIONS
11
+ --js_output_file compiler.build
12
+ --create_source_map compiler.map
13
+ }
14
+ when 'debug': %w{
15
+ --debug true
16
+ --formatting PRETTY_PRINT
17
+ --compilation_level ADVANCED_OPTIMIZATIONS
18
+ --js_output_file compiler.debug
19
+ }
20
+ end
21
+
22
+ @response = goog.compile(args.flatten).to_response_with_console %>
@@ -0,0 +1,114 @@
1
+ /** Begin line maps. **/{ "file" : "/Users/dturnbull/rails/googlyscript/scripts/demos/compiler.map", "count": 1 }
2
+ [0,0,0,0,1,1,2,2,2,2,3,3,3,3,3,3,3,3,3,4,4,5,6,5,7,5,8,5,9,11,10,14,13,13,13,13,13,13,12,15,15,15,12,17,17,16,18,16,16,19,21,21,21,23,22,24,22,21,21,25,25,21,20,20,27,26,26,26,26,26,26,26,26,26,26,26,20,20,30,29,29,29,29,29,29,29,29,29,29,29,28,31,31,31,31,31,31,28,33,32,34,32,28,35,35,35,35,35,36,36,36,36,37,35,39,38,38,38,38,38,38,38,35,35,35,40,35,43,42,42,42,42,42,42,41,41,35,35,35,44,44,44,45,47,46,46,46,46,46,46,46,44,44,48,44,44,44,49,49,49,49,49,49,49,49,49,44,52,51,53,51,50,54,44,44,44,44,44,56,56,55,59,58,60,58,57,62,61,63,61,57,65,64,66,64,57,67,67,9,-1,69,68,70,70,70,70,70,70,70,70,70,70,70,70,68,71,71,71,71,71,71,71,71,72,72,73,76,76,76,76,76,76,76,76,75,75,75,75,75,75,74,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,74,81,81,80,82,82,82,82,82,82,82,82,82,80,79,79,79,79,79,78,78,73,68,83,83,83,83,84,84,68,86,86,85,87,87,87,87,87,87,87,87,87,87,87,87,85,88,88,88,88,88,88,88,88,89,89,90,93,93,93,93,93,93,93,93,92,92,92,92,92,92,91,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,91,90,85,95,95,95,95,96,96,85,98,98,97,99,99,99,99,99,99,99,99,99,99,99,99,97,100,100,100,100,100,100,100,100,101,101,102,105,105,105,105,105,105,105,105,104,104,104,104,104,104,103,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,103,102,97,107,107,107,107,108,108,97]
3
+ /** Begin file information. **/
4
+ []
5
+ /** Begin mapping definitions. **/
6
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",45,0]
7
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",45,12,"goog.global"]
8
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",45,14]
9
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",158,27,"goog.exportPath_"]
10
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",158,27,""]
11
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",158,27]
12
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",158,28,"name"]
13
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",158,34,"opt_object"]
14
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",158,46,"opt_objectToExportTo"]
15
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",158,68]
16
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",159,6,"parts"]
17
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",159,6,"parts"]
18
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",159,24]
19
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",159,14,"split"]
20
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",159,14,"name"]
21
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",159,25]
22
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",160,6,"cur"]
23
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",160,6,"cur"]
24
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",160,12,"opt_objectToExportTo"]
25
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",160,36,"goog.global"]
26
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",165,2]
27
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",165,6]
28
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",165,8]
29
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",165,8,"parts"]
30
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",165,14]
31
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",165,20,"cur"]
32
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",165,28,"execScript"]
33
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",165,28,"cur"]
34
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",166,18]
35
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",166,4,"execScript"]
36
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",166,4,"cur"]
37
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",166,19]
38
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",166,28]
39
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",166,28,"parts"]
40
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",166,34]
41
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",175,2]
42
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",175,7]
43
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",175,11,"part"]
44
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",175,17,"length"]
45
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",175,17,"parts"]
46
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",175,34,"part"]
47
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",175,52]
48
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",175,41,"shift"]
49
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",175,41,"parts"]
50
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",176,4]
51
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",176,8]
52
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",176,9,"length"]
53
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",176,9,"parts"]
54
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",176,36,"opt_object"]
55
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",730,17,"undefined"]
56
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",178,6]
57
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",178,6]
58
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",178,6,"cur"]
59
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",178,10,"part"]
60
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",178,18,"opt_object"]
61
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",180,10]
62
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",180,6,"cur"]
63
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",179,11]
64
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",179,15]
65
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",179,15,"cur"]
66
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",179,19,"part"]
67
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",180,12]
68
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",180,12,"cur"]
69
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",180,16,"part"]
70
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",182,12]
71
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",182,12,"cur"]
72
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",182,16,"part"]
73
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",182,24]
74
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",1342,18]
75
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",1342,2,"goog.exportPath_"]
76
+ ["/Users/dturnbull/rails/googlyscript/scripts/demos/googly.js",8,18,"publicPath"]
77
+ ["/Users/dturnbull/rails/googlyscript/scripts/demos/googly.js",4,28,"googly.jqueryTest"]
78
+ ["/Users/dturnbull/rails/googlyscript/scripts/demos/googly.js",4,28,"googly.jqueryTest"]
79
+ ["/Users/dturnbull/rails/googlyscript/scripts/demos/googly.js",4,31,"googly.jqueryTest"]
80
+ ["/Users/dturnbull/rails/googlyscript/scripts/demos/googly.js",5,16,"googly.jqueryTest"]
81
+ ["/Users/dturnbull/rails/googlyscript/scripts/demos/googly.js",5,2,"write"]
82
+ ["/Users/dturnbull/rails/googlyscript/scripts/demos/googly.js",5,2,"document"]
83
+ ["/Users/dturnbull/rails/googlyscript/scripts/demos/googly.js",5,17,"googly.jqueryTest"]
84
+ ["/Users/dturnbull/rails/googlyscript/scripts/demos/googly.js",6,19,"googly.jqueryTest"]
85
+ ["/Users/dturnbull/rails/googlyscript/scripts/demos/googly.js",6,2,"hide"]
86
+ ["/Users/dturnbull/rails/googlyscript/scripts/demos/googly.js",6,3,"googly.jqueryTest"]
87
+ ["/Users/dturnbull/rails/googlyscript/scripts/demos/googly.js",6,2,"$"]
88
+ ["/Users/dturnbull/rails/googlyscript/scripts/demos/googly.js",6,4,"googly.jqueryTest"]
89
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",1341,49,"opt_objectToExportTo"]
90
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",1341,49,"opt_objectToExportTo"]
91
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",1342,18]
92
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",1342,2,"goog.exportPath_"]
93
+ ["/Users/dturnbull/rails/googlyscript/scripts/demos/googly.js",13,18,"publicPath"]
94
+ ["/Users/dturnbull/rails/googlyscript/scripts/demos/googly.js",10,28,"googly.simpleTest"]
95
+ ["/Users/dturnbull/rails/googlyscript/scripts/demos/googly.js",10,28,"googly.simpleTest"]
96
+ ["/Users/dturnbull/rails/googlyscript/scripts/demos/googly.js",10,31,"googly.simpleTest"]
97
+ ["/Users/dturnbull/rails/googlyscript/scripts/demos/googly.js",11,16,"googly.simpleTest"]
98
+ ["/Users/dturnbull/rails/googlyscript/scripts/demos/googly.js",11,2,"write"]
99
+ ["/Users/dturnbull/rails/googlyscript/scripts/demos/googly.js",11,2,"document"]
100
+ ["/Users/dturnbull/rails/googlyscript/scripts/demos/googly.js",11,17,"googly.simpleTest"]
101
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",1341,49,"opt_objectToExportTo"]
102
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",1341,49,"opt_objectToExportTo"]
103
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",1342,18]
104
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",1342,2,"goog.exportPath_"]
105
+ ["/Users/dturnbull/rails/googlyscript/scripts/demos/googly.js",18,18,"publicPath"]
106
+ ["/Users/dturnbull/rails/googlyscript/scripts/demos/googly.js",15,28,"googly.helloWorld"]
107
+ ["/Users/dturnbull/rails/googlyscript/scripts/demos/googly.js",15,28,"googly.helloWorld"]
108
+ ["/Users/dturnbull/rails/googlyscript/scripts/demos/googly.js",15,31,"googly.helloWorld"]
109
+ ["/Users/dturnbull/rails/googlyscript/scripts/demos/googly.js",16,16,"googly.helloWorld"]
110
+ ["/Users/dturnbull/rails/googlyscript/scripts/demos/googly.js",16,2,"write"]
111
+ ["/Users/dturnbull/rails/googlyscript/scripts/demos/googly.js",16,2,"document"]
112
+ ["/Users/dturnbull/rails/googlyscript/scripts/demos/googly.js",16,17,"googly.helloWorld"]
113
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",1341,49,"opt_objectToExportTo"]
114
+ ["/Users/dturnbull/rails/googlyscript/closure-library/closure/goog/base.js",1341,49,"opt_objectToExportTo"]
@@ -0,0 +1,19 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <script src='<%= expand_src('jquery.js') %>'></script>
5
+ <script src='compiler.js?<%= query_string %>'></script>
6
+ </head>
7
+ <body>
8
+ <p>Mode: <%= h query_string.empty? ? 'raw' : query_string %></p>
9
+ <p class='jqtest'>
10
+ Should not see this. It will be hidden by jQuery.
11
+ </p>
12
+ <script type='text/javascript'>
13
+ //<![CDATA[
14
+ simpleTest();
15
+ jqueryTest();
16
+ //]]>
17
+ </script>
18
+ </body>
19
+ </html>
@@ -0,0 +1,24 @@
1
+ goog.provide('googly');
2
+ goog.require('externs.jQuery');
3
+
4
+ googly.jqueryTest = function() {
5
+ document.write('<p>Javascript jqueryTest() executed.</p>')
6
+ $('.jqtest').hide()
7
+ }
8
+ goog.exportSymbol('jqueryTest', googly.jqueryTest)
9
+
10
+ googly.simpleTest = function() {
11
+ document.write('<p>Javascript simpleTest() executed.</p>')
12
+ }
13
+ goog.exportSymbol('simpleTest', googly.simpleTest)
14
+
15
+ googly.helloWorld = function() {
16
+ document.write('<p>Hello from the Closure Script demo code.</p>')
17
+ }
18
+ goog.exportSymbol('helloWorld', googly.helloWorld)
19
+
20
+ googly.warningNoOp = function(){
21
+ function warningNoOp(){
22
+ this.demonstrates = 'warnings in the Javascript console';
23
+ }
24
+ }
@@ -0,0 +1,24 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <script src="<%= goog.base_js %>"></script>
5
+ <script type='text/javascript'>
6
+ //<![CDATA[
7
+ goog.require('googly.demos.soy.helloworld');
8
+ //]]>
9
+ </script>
10
+ </head>
11
+ <body>
12
+ <script type='text/javascript'>
13
+ //<![CDATA[
14
+ // Exercise the .helloWorld template
15
+ document.write(googly.demos.soy.helloworld.helloWorld());
16
+ // Exercise the .helloName template
17
+ document.write('<hr>' + googly.demos.soy.helloworld.helloName({name: 'Ana'}));
18
+ // Exercise the .helloNames template
19
+ document.write('<hr>' + googly.demos.soy.helloworld.helloNames(
20
+ {name: 'Ana', additionalNames: ['Bob', 'Cid', 'Dee']}));
21
+ //]]>
22
+ </script>
23
+ </body>
24
+ </html>
@@ -0,0 +1,29 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Closure Script Demos</title>
5
+ </head>
6
+ <body>
7
+ <h1>Closure Script Demos</h1>
8
+ <ul>
9
+ <li>
10
+ <a href='googly'>Raw Test</a>
11
+ </li>
12
+ <li>
13
+ <a href='googly?build'>Build Test</a>
14
+ </li>
15
+ <li>
16
+ <a href='googly?debug'>Debug Test</a>
17
+ </li>
18
+ <li>
19
+ <a href='deps.js'>Alternate deps</a>
20
+ </li>
21
+ <li>
22
+ <a href='helloworld'>Soy helloworld</a>
23
+ </li>
24
+ <li>
25
+ <a href='rails_ujs'>Rails unobtrusive javascript</a>
26
+ </li>
27
+ </ul>
28
+ </body>
29
+ </html>