jsrequire 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/README.mkd +1 -1
- data/VERSION +1 -1
- data/jsrequire.gemspec +2 -2
- data/lib/jsrequire.rb +11 -5
- data/test/fixtures/different-place/b.js +1 -1
- data/test/fixtures/javascripts/a.js +1 -1
- data/test/fixtures/javascripts/c.js +2 -2
- data/test/fixtures/javascripts/require_filename_with_dot.js +1 -1
- data/test/fixtures/javascripts/require_filename_with_js.js +1 -1
- data/test/fixtures/javascripts/require_namespaced_file.js +1 -1
- data/test/fixtures/javascripts/require_non_existing_file.js +1 -1
- data/test/test_hooks.rb +6 -6
- metadata +3 -3
data/README.mkd
CHANGED
@@ -18,7 +18,7 @@ A JavaScript file
|
|
18
18
|
|
19
19
|
On top of a file add something like:
|
20
20
|
|
21
|
-
/*
|
21
|
+
/* js foo/bar */
|
22
22
|
/* css baz */
|
23
23
|
|
24
24
|
This requires the js file foo/bar.js and the stylesheet baz.css. Dependencies are resolved in right order of require statments over all files.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.1
|
data/jsrequire.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{jsrequire}
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["aekym"]
|
12
|
-
s.date = %q{2010-05-
|
12
|
+
s.date = %q{2010-05-26}
|
13
13
|
s.description = %q{Organizes requirements of assets in JavaScript files, resolved dependencies of js files and helps include depending css files.}
|
14
14
|
s.email = %q{me@aekym.com}
|
15
15
|
s.extra_rdoc_files = [
|
data/lib/jsrequire.rb
CHANGED
@@ -13,6 +13,8 @@ class JsRequire
|
|
13
13
|
@additional_loadpaths = JsRequire::normalize_filepaths(loadpaths.compact)
|
14
14
|
|
15
15
|
@preprocessors = Hash.new { |h,k| h[k] = [] }
|
16
|
+
|
17
|
+
on("css", &method(:collect_css))
|
16
18
|
end
|
17
19
|
|
18
20
|
|
@@ -21,6 +23,12 @@ class JsRequire
|
|
21
23
|
end
|
22
24
|
|
23
25
|
|
26
|
+
def collect_css(action, param)
|
27
|
+
@css << param + ".css"
|
28
|
+
nil
|
29
|
+
end
|
30
|
+
|
31
|
+
|
24
32
|
# resolve dependencies of js input files
|
25
33
|
#
|
26
34
|
# returns a hash with js and css dependencies
|
@@ -37,14 +45,14 @@ class JsRequire
|
|
37
45
|
# }
|
38
46
|
#
|
39
47
|
def resolve_dependencies(files)
|
40
|
-
@
|
48
|
+
@css = []
|
41
49
|
@extract_loadpaths = extract_loadpaths(files)
|
42
50
|
|
43
51
|
js = extract_dependencies_recursive(JsRequire::normalize_filepaths(files))
|
44
52
|
|
45
53
|
{
|
46
54
|
:javascripts => js,
|
47
|
-
:stylesheets => @
|
55
|
+
:stylesheets => @css.uniq.sort
|
48
56
|
}
|
49
57
|
end
|
50
58
|
|
@@ -170,8 +178,7 @@ class JsRequire
|
|
170
178
|
action, parameter = exec_preprocessor(action, parameter)
|
171
179
|
|
172
180
|
case action
|
173
|
-
when "
|
174
|
-
when "css" then @stylesheets[filename] << parameter + ".css"
|
181
|
+
when "js" then js << "#{parameter}.js"
|
175
182
|
end
|
176
183
|
else
|
177
184
|
is_require = false
|
@@ -198,6 +205,5 @@ class JsRequire
|
|
198
205
|
js
|
199
206
|
end
|
200
207
|
|
201
|
-
|
202
208
|
end
|
203
209
|
|
@@ -1,2 +1,2 @@
|
|
1
|
-
/*
|
1
|
+
/* js norequire */
|
2
2
|
|
@@ -1,2 +1,2 @@
|
|
1
|
-
/*
|
1
|
+
/* js b */
|
2
2
|
|
@@ -1,3 +1,3 @@
|
|
1
|
-
/*
|
2
|
-
/*
|
1
|
+
/* js a */
|
2
|
+
/* js b */
|
3
3
|
|
@@ -1 +1 @@
|
|
1
|
-
/*
|
1
|
+
/* js file.with.dot */
|
@@ -1 +1 @@
|
|
1
|
-
/*
|
1
|
+
/* js namespace.json_reader */
|
@@ -1,2 +1,2 @@
|
|
1
|
-
/*
|
1
|
+
/* js afileyouwillneverfind */
|
2
2
|
|
data/test/test_hooks.rb
CHANGED
@@ -67,12 +67,12 @@ class TestHooks < Test::Unit::TestCase
|
|
67
67
|
assert general_called && specific_called, "Callbacks were not called"
|
68
68
|
end
|
69
69
|
|
70
|
-
should "rewrite line to
|
70
|
+
should "rewrite line to js-action" do
|
71
71
|
called = false
|
72
72
|
deps = require("hook.js") do
|
73
73
|
@jsrequire.on("view") do |action, params|
|
74
74
|
called = true
|
75
|
-
["
|
75
|
+
["js", "norequire"]
|
76
76
|
end
|
77
77
|
end
|
78
78
|
|
@@ -81,18 +81,18 @@ class TestHooks < Test::Unit::TestCase
|
|
81
81
|
assert_match /norequire\.js$/, deps[:javascripts].first
|
82
82
|
end
|
83
83
|
|
84
|
-
should "
|
84
|
+
should "skip required view because hook drops it" do
|
85
85
|
called = false
|
86
86
|
deps = require("hook.js") do
|
87
87
|
@jsrequire.on("view") do |action, params|
|
88
88
|
called = true
|
89
|
-
|
89
|
+
nil
|
90
90
|
end
|
91
91
|
end
|
92
92
|
|
93
93
|
assert called, "Callback not fired"
|
94
|
-
assert_equal
|
95
|
-
assert_match /
|
94
|
+
assert_equal 1, deps[:javascripts].size
|
95
|
+
assert_match /hook\.js$/, deps[:javascripts].first
|
96
96
|
end
|
97
97
|
|
98
98
|
end
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 1
|
8
|
-
-
|
9
|
-
version: 0.1.
|
8
|
+
- 1
|
9
|
+
version: 0.1.1
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- aekym
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-05-
|
17
|
+
date: 2010-05-26 00:00:00 +02:00
|
18
18
|
default_executable:
|
19
19
|
dependencies: []
|
20
20
|
|