zfben_libjs 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/zfben_libjs/lib.coffee +46 -26
- data/lib/zfben_libjs/version.rb +1 -1
- data/lib/zfben_libjs.rb +1 -1
- metadata +12 -12
data/lib/zfben_libjs/lib.coffee
CHANGED
@@ -4,6 +4,14 @@ libs = {}
|
|
4
4
|
# save loaded source to `loaded`
|
5
5
|
loaded = {}
|
6
6
|
|
7
|
+
for link in document.getElementsByTagName('link')
|
8
|
+
if link.href && link.href isnt ''
|
9
|
+
loaded[link.href] = true
|
10
|
+
|
11
|
+
for script in document.getElementsByTagName('script')
|
12
|
+
if script.src && script.src isnt ''
|
13
|
+
loaded[script.src] = true
|
14
|
+
|
7
15
|
# pending
|
8
16
|
pending_urls = {}
|
9
17
|
pending_funcs = {}
|
@@ -34,25 +42,21 @@ lib = ->
|
|
34
42
|
css = []
|
35
43
|
js = []
|
36
44
|
funcs = []
|
37
|
-
urls = []
|
38
45
|
|
39
46
|
source_types = (args)->
|
40
47
|
for arg in args
|
41
48
|
switch typeof arg
|
42
49
|
when 'string'
|
43
|
-
if
|
44
|
-
|
45
|
-
|
50
|
+
if arg.indexOf(' ') >= 0
|
51
|
+
source_types(arg.split(' '))
|
52
|
+
else
|
53
|
+
if typeof libs[arg] isnt 'undefined'
|
54
|
+
source_types(libs[arg])
|
46
55
|
else
|
47
|
-
if typeof libs[arg] isnt 'undefined' then source_types(libs[arg])
|
48
56
|
if /\.css[^\.]*$/.test(arg)
|
49
57
|
css.push(arg)
|
50
|
-
urls.push(arg)
|
51
|
-
pending_urls[arg] = true
|
52
58
|
if /\.js[^\.]*$/.test(arg)
|
53
59
|
js.push(arg)
|
54
|
-
urls.push(arg)
|
55
|
-
pending_urls[arg] = true
|
56
60
|
when 'function'
|
57
61
|
funcs.push(arg)
|
58
62
|
else
|
@@ -61,25 +65,41 @@ lib = ->
|
|
61
65
|
|
62
66
|
source_types(arguments)
|
63
67
|
|
68
|
+
urls = css.concat(js)
|
69
|
+
|
64
70
|
# progress css
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
71
|
+
pending_css = []
|
72
|
+
|
73
|
+
for url in css
|
74
|
+
if typeof loaded[url] is 'undefined' && typeof pending_urls[url] is 'undefined'
|
75
|
+
pending_urls[url] = true
|
76
|
+
pending_css.push url
|
77
|
+
|
78
|
+
if pending_css.length > 0
|
79
|
+
LazyLoad.css(pending_css, ->
|
80
|
+
for url in pending_css
|
69
81
|
delete pending_urls[url]
|
82
|
+
loaded[url] = true
|
70
83
|
run_funcs()
|
71
84
|
)
|
72
85
|
|
73
86
|
# progress js
|
87
|
+
pending_js = []
|
88
|
+
|
89
|
+
for url in js
|
90
|
+
if typeof loaded[url] is 'undefined' && typeof pending_urls[url] is 'undefined'
|
91
|
+
pending_urls[url] = true
|
92
|
+
pending_js.push url
|
93
|
+
|
74
94
|
if js.length > 0
|
75
|
-
LazyLoad.js(
|
76
|
-
for url in
|
77
|
-
loaded[url] = true
|
95
|
+
LazyLoad.js(pending_js, ->
|
96
|
+
for url in pending_js
|
78
97
|
delete pending_urls[url]
|
98
|
+
loaded[url] = true
|
79
99
|
run_funcs()
|
80
100
|
)
|
81
101
|
|
82
|
-
#
|
102
|
+
# put funcs to pending_funcs
|
83
103
|
if funcs.length > 0
|
84
104
|
pending_funcs[urls.join(' ')] = funcs
|
85
105
|
run_funcs()
|
@@ -107,16 +127,16 @@ lib.loaded = ->
|
|
107
127
|
|
108
128
|
# change libs api
|
109
129
|
lib.libs = (new_libs)->
|
110
|
-
for
|
130
|
+
for lib_name, urls of new_libs
|
131
|
+
delete(libs[lib_name])
|
132
|
+
delete(lib[lib_name])
|
111
133
|
if urls isnt null
|
112
|
-
libs[
|
113
|
-
((
|
114
|
-
lib[
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
delete(libs[name])
|
119
|
-
delete(lib[name])
|
134
|
+
libs[lib_name] = urls
|
135
|
+
((lib_name) ->
|
136
|
+
lib[lib_name] = ->
|
137
|
+
args = [lib_name].concat(Array.prototype.slice.call(arguments))
|
138
|
+
lib.apply(this, args)
|
139
|
+
)(lib_name)
|
120
140
|
return libs
|
121
141
|
|
122
142
|
window.lib = lib
|
data/lib/zfben_libjs/version.rb
CHANGED
data/lib/zfben_libjs.rb
CHANGED
@@ -95,7 +95,7 @@ class Libjs
|
|
95
95
|
if @libs.has_key?(url) && name != url
|
96
96
|
lib.push(url)
|
97
97
|
else
|
98
|
-
path = File.join(@config['src/source'], name, File.basename(url))
|
98
|
+
p path = File.join(@config['src/source'], name, File.basename(url))
|
99
99
|
dir = File.dirname(path)
|
100
100
|
system('mkdir ' + dir) unless File.exists?(dir)
|
101
101
|
download url, path
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zfben_libjs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-08-
|
12
|
+
date: 2011-08-10 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rainbow
|
16
|
-
requirement: &
|
16
|
+
requirement: &14333880 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *14333880
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: json
|
27
|
-
requirement: &
|
27
|
+
requirement: &14333400 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *14333400
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: compass
|
38
|
-
requirement: &
|
38
|
+
requirement: &14332980 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *14332980
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: coffee-script
|
49
|
-
requirement: &
|
49
|
+
requirement: &14332540 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *14332540
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: uglifier
|
60
|
-
requirement: &
|
60
|
+
requirement: &14332120 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,7 +65,7 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :runtime
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *14332120
|
69
69
|
description: ''
|
70
70
|
email:
|
71
71
|
- ben@zfben.com
|