zfben_libjs 0.0.4 → 0.0.5
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/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
|