jsrequire 0.1.0 → 0.1.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.
- 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
|
|