closure 1.1.692 → 1.2.701

Sign up to get free protection for your applications and to get access to all the features.
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>