sprockets-source-url 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,5 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
5
+ .DS_Store
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in sprockets-source-url.gemspec
4
+ gemspec
data/README.md ADDED
@@ -0,0 +1,23 @@
1
+ # Sprockets Source URL
2
+
3
+ Source URLs are awesome little 'meta comments' that the browser can use for finding the names of scripts. For example:
4
+
5
+ //@ sourceURL=my/script/name
6
+
7
+ This means that instead of seeing one compiled file in Chrome's inspector, like this:
8
+
9
+ ![Before](http://img.svbtle.com/maccman-24080139362178-raw.png)
10
+
11
+ You see your whole directory tree:
12
+
13
+ ![After](http://img.svbtle.com/maccman-24080139476460-raw.png)
14
+
15
+ So much easier to navigate! The alternative to this is to spit out multiple script tags into the page.
16
+
17
+ ## Usage
18
+
19
+ Just require `sprockets/source_url` in development.
20
+
21
+ ## @sourceURL
22
+
23
+ Both Chrome and Firefox have `@sourceURL` support. For more information, please see this [excellent post on the subject](http://pmuellr.blogspot.com/2009/06/debugger-friendly.html).
data/Rakefile ADDED
@@ -0,0 +1,19 @@
1
+ require 'bundler/gem_tasks'
2
+ require 'sprockets'
3
+ require 'sprockets/source_url'
4
+ require 'rake/testtask'
5
+
6
+ task :example do
7
+ env = Sprockets::Environment.new(File.expand_path('..', __FILE__))
8
+ env.append_path 'examples/'
9
+
10
+ target = File.expand_path('../examples/example.js', __FILE__)
11
+ env['application.js'].write_to target
12
+ end
13
+
14
+ task :default => :test
15
+
16
+ Rake::TestTask.new do |t|
17
+ t.libs << "test"
18
+ t.warning = true
19
+ end
@@ -0,0 +1,3 @@
1
+ //= require_tree ./modules
2
+
3
+ var self = 'application.js';
@@ -0,0 +1,7 @@
1
+ eval("var element = 1;\n" + "\n//@ sourceURL=/modules/element");
2
+ eval("var event = 1;\n" + "\n//@ sourceURL=/modules/event");
3
+ eval("var group = 1;\n" + "\n//@ sourceURL=/modules/group");
4
+ eval("var another = 1;\n" + "\n//@ sourceURL=/modules/models/another");
5
+ eval("window.program = function(){\n alert('Long live the Programs!');\n\n throw new Error('Here is a stack trace');\n};\n" + "\n//@ sourceURL=/modules/program");
6
+ eval("window.user = function(){\n alert('Long live the Users');\n window.program();\n};\n" + "\n//@ sourceURL=/modules/user");
7
+ eval("\nvar self = 'application.js';\n" + "\n//@ sourceURL=/application");
@@ -0,0 +1,4 @@
1
+ <script src="example.js" type="text/javascript" charset="utf-8"></script>
2
+ <script type="text/javascript" charset="utf-8">
3
+ window.user();
4
+ </script>
@@ -0,0 +1 @@
1
+ var element = 1;
@@ -0,0 +1 @@
1
+ var event = 1;
@@ -0,0 +1 @@
1
+ var group = 1;
@@ -0,0 +1 @@
1
+ var another = 1;
@@ -0,0 +1,5 @@
1
+ window.program = function(){
2
+ alert('Long live the Programs!');
3
+
4
+ throw new Error('Here is a stack trace');
5
+ };
@@ -0,0 +1,4 @@
1
+ window.user = function(){
2
+ alert('Long live the Users');
3
+ window.program();
4
+ };
@@ -0,0 +1,24 @@
1
+ require 'sprockets'
2
+ require 'tilt'
3
+
4
+ module Sprockets
5
+ class SourceURL < Tilt::Template
6
+ self.default_mime_type = 'application/javascript'
7
+
8
+ def prepare
9
+ end
10
+
11
+ def evaluate(scope, locals, &block)
12
+ code = ''
13
+ code << 'eval('
14
+ code << data.inspect
15
+ code << " + \"\\n//@ sourceURL=/#{scope.logical_path}\""
16
+ code << ");\n"
17
+ code
18
+ end
19
+ end
20
+
21
+ if defined?(register_postprocessor)
22
+ register_postprocessor 'application/javascript', SourceURL
23
+ end
24
+ end
@@ -0,0 +1,23 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+
4
+ Gem::Specification.new do |s|
5
+ s.name = "sprockets-source-url"
6
+ s.version = '0.0.1'
7
+ s.authors = ["Alex MacCaw"]
8
+ s.email = ["info@eribium.org"]
9
+ s.homepage = ""
10
+ s.summary = %q{Adds SourceURL support to Sprockets}
11
+ s.description = s.summary
12
+
13
+ s.rubyforge_project = "sprockets-source-url"
14
+
15
+ s.files = `git ls-files`.split("\n")
16
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
17
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
18
+ s.require_paths = ["lib"]
19
+
20
+ # specify any dependencies here; for example:
21
+ # s.add_development_dependency "rspec"
22
+ s.add_runtime_dependency "sprockets", "~>2.4.0"
23
+ end
metadata ADDED
@@ -0,0 +1,71 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sprockets-source-url
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Alex MacCaw
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-05-23 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: sprockets
16
+ requirement: &70304890717080 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 2.4.0
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *70304890717080
25
+ description: Adds SourceURL support to Sprockets
26
+ email:
27
+ - info@eribium.org
28
+ executables: []
29
+ extensions: []
30
+ extra_rdoc_files: []
31
+ files:
32
+ - .gitignore
33
+ - Gemfile
34
+ - README.md
35
+ - Rakefile
36
+ - examples/application.js
37
+ - examples/example.js
38
+ - examples/index.html
39
+ - examples/modules/element.js
40
+ - examples/modules/event.js
41
+ - examples/modules/group.js
42
+ - examples/modules/models/another.js
43
+ - examples/modules/program.js
44
+ - examples/modules/user.js
45
+ - lib/sprockets/source_url.rb
46
+ - sprockets-source.gemspec
47
+ homepage: ''
48
+ licenses: []
49
+ post_install_message:
50
+ rdoc_options: []
51
+ require_paths:
52
+ - lib
53
+ required_ruby_version: !ruby/object:Gem::Requirement
54
+ none: false
55
+ requirements:
56
+ - - ! '>='
57
+ - !ruby/object:Gem::Version
58
+ version: '0'
59
+ required_rubygems_version: !ruby/object:Gem::Requirement
60
+ none: false
61
+ requirements:
62
+ - - ! '>='
63
+ - !ruby/object:Gem::Version
64
+ version: '0'
65
+ requirements: []
66
+ rubyforge_project: sprockets-source-url
67
+ rubygems_version: 1.8.15
68
+ signing_key:
69
+ specification_version: 3
70
+ summary: Adds SourceURL support to Sprockets
71
+ test_files: []