js2 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/Changelog +9 -2
- data/bin/js2 +42 -23
- data/lib/js2/decorator/standard.rb +3 -23
- data/lib/js2/process/file_handler.rb +14 -0
- data/lib/js2/processor.rb +3 -1
- data/lib/js2.rb +1 -1
- metadata +2 -2
data/Changelog
CHANGED
@@ -1,5 +1,12 @@
|
|
1
|
-
== 0.0.
|
2
|
-
*
|
1
|
+
== 0.0.4 2009-12-02
|
2
|
+
* Adding JS2.createClass() and JS2.getClass()
|
3
|
+
* Deprecating classes.js file in favor of js2bootstrap.js
|
4
|
+
* Adding super function
|
3
5
|
|
4
6
|
== 0.0.3 2009-11-30
|
5
7
|
* Selenium test bug fixes
|
8
|
+
|
9
|
+
== 0.0.2 2009-11-25
|
10
|
+
* Fixed sass templating so that there is no default namespacing
|
11
|
+
|
12
|
+
|
data/bin/js2
CHANGED
@@ -7,42 +7,61 @@ require 'js2'
|
|
7
7
|
|
8
8
|
options = Hash.new
|
9
9
|
|
10
|
-
|
11
|
-
op = OptionParser.new do |opts|
|
12
|
-
opts.banner = usage
|
10
|
+
dir = nil
|
13
11
|
|
14
|
-
|
15
|
-
|
16
|
-
end
|
12
|
+
# assume rails
|
13
|
+
if ARGV.empty? && File.directory?('public') && File.directory?('app') && File.directory?('vendor') && File.directory?('config')
|
17
14
|
|
18
|
-
|
19
|
-
|
20
|
-
|
15
|
+
puts "Detected Rails setup: using auto config"
|
16
|
+
|
17
|
+
dir = File.directory?('app/js2') ? './app/js2' : './js2'
|
18
|
+
puts "Using js2 dir: #{dir}"
|
19
|
+
|
20
|
+
options[:write_dir] = './public/javascripts'
|
21
|
+
puts "Writing to: #{options[:write_dir]}"
|
22
|
+
|
23
|
+
options[:daemonize] = true
|
24
|
+
|
25
|
+
options[:js2_haml_dir] = dir
|
26
|
+
puts "HAML dir (optional): #{options[:js2_haml_dir]}"
|
27
|
+
|
28
|
+
else
|
29
|
+
|
30
|
+
usage = "Usage: js2 [options] <dir-with-js2>"
|
31
|
+
op = OptionParser.new do |opts|
|
32
|
+
opts.banner = usage
|
21
33
|
|
22
|
-
|
23
|
-
|
34
|
+
opts.on("--js2-haml-dir DIR", "Directory with js2.haml files") do |haml|
|
35
|
+
options[:js2_haml_dir] = haml
|
36
|
+
end
|
37
|
+
|
38
|
+
opts.on("--out-dir DIR", "Directory of js2 -> js output") do |out|
|
39
|
+
options[:write_dir] = out
|
40
|
+
end
|
41
|
+
|
42
|
+
opts.on("-d", "--daemonize") do |d|
|
43
|
+
options[:daemonize] = true
|
44
|
+
end
|
45
|
+
|
46
|
+
opts.on('-h', "--help", "Help Screen") do
|
47
|
+
puts opts
|
48
|
+
exit
|
49
|
+
end
|
24
50
|
end
|
25
51
|
|
26
|
-
|
27
|
-
|
28
|
-
|
52
|
+
begin
|
53
|
+
op.parse!(ARGV)
|
54
|
+
rescue OptionParser::ParseError => e
|
55
|
+
puts op
|
29
56
|
end
|
30
|
-
end
|
31
57
|
|
32
|
-
|
33
|
-
op.parse!(ARGV)
|
34
|
-
rescue OptionParser::ParseError => e
|
35
|
-
puts op
|
58
|
+
dir = ARGV.pop
|
36
59
|
end
|
37
60
|
|
38
|
-
|
39
|
-
dir = ARGV.pop
|
40
|
-
|
41
61
|
if !dir && File.directory?("./public/javascripts")
|
42
62
|
dir = "./public/javascripts"
|
43
63
|
end
|
44
64
|
|
45
|
-
|
46
65
|
unless dir
|
47
66
|
puts op
|
48
67
|
exit
|
@@ -14,29 +14,8 @@ class JS2::Decorator::Standard
|
|
14
14
|
return str
|
15
15
|
end
|
16
16
|
|
17
|
-
def
|
18
|
-
|
19
|
-
visited = Hash.new
|
20
|
-
funct = "function () { if (this.initialize) this.initialize.apply(this, arguments); }"
|
21
|
-
nodes.select { |n| n.is_a? JS2::AST::ClassNode }.sort { |a,b| a.name <=> b.name }.each do |n|
|
22
|
-
splitted = n.name.split(/\./)
|
23
|
-
running_name = []
|
24
|
-
|
25
|
-
splitted.each_with_index do |sub_name, i|
|
26
|
-
running_name << sub_name
|
27
|
-
name = running_name.join('.')
|
28
|
-
next if visited[name]
|
29
|
-
visited[name] = true
|
30
|
-
|
31
|
-
if i == 0
|
32
|
-
ret << "var #{name}=#{funct};"
|
33
|
-
else
|
34
|
-
ret << " #{name}=#{funct};"
|
35
|
-
end
|
36
|
-
|
37
|
-
end
|
38
|
-
end
|
39
|
-
return ret.join("\n")
|
17
|
+
def draw_bootstrap ()
|
18
|
+
return File.read(File.dirname(__FILE__) + '/../../javascript/bootstrap.js')
|
40
19
|
end
|
41
20
|
|
42
21
|
private
|
@@ -111,6 +90,7 @@ class JS2::Decorator::Standard
|
|
111
90
|
|
112
91
|
return <<-END
|
113
92
|
// #{node.filename}:#{node.line_number}
|
93
|
+
JS2.createClass("#{node.name}");
|
114
94
|
#{node.name}.prototype={#{meta}
|
115
95
|
#{member_js.join(",\n") }
|
116
96
|
};
|
@@ -8,10 +8,15 @@ class JS2::Process::FileHandler
|
|
8
8
|
@mtimes = Hash.new
|
9
9
|
end
|
10
10
|
|
11
|
+
# depricated
|
11
12
|
def class_file
|
12
13
|
return @write_dir + '/classes.js'
|
13
14
|
end
|
14
15
|
|
16
|
+
def bootstrap_file
|
17
|
+
return @write_dir + '/js2bootstrap.js'
|
18
|
+
end
|
19
|
+
|
15
20
|
def get_view_files
|
16
21
|
return [] unless @view_dir
|
17
22
|
return Dir.glob(@view_dir + '/**/*.haml')
|
@@ -37,10 +42,19 @@ class JS2::Process::FileHandler
|
|
37
42
|
def write_class_file (str)
|
38
43
|
FileUtils.mkpath(File.dirname(class_file))
|
39
44
|
File.open(class_file, 'w') do |f|
|
45
|
+
f << "alert('classes.js is deprecated, please include js2bootstrap.js instead.');"
|
40
46
|
f << str
|
41
47
|
end
|
42
48
|
end
|
43
49
|
|
50
|
+
def write_bootstrap_file (str)
|
51
|
+
FileUtils.mkpath(File.dirname(bootstrap_file))
|
52
|
+
File.open(bootstrap_file, 'w') do |f|
|
53
|
+
f << str
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
|
44
58
|
def need_update!
|
45
59
|
ret = false
|
46
60
|
did = Hash.new
|
data/lib/js2/processor.rb
CHANGED
@@ -131,8 +131,10 @@ class JS2::Processor
|
|
131
131
|
@fh.write_file(nc.filename, str)
|
132
132
|
end
|
133
133
|
|
134
|
-
str = decorator.
|
134
|
+
str = decorator.draw_bootstrap()
|
135
|
+
|
135
136
|
@fh.write_class_file(str)
|
137
|
+
@fh.write_bootstrap_file(str)
|
136
138
|
|
137
139
|
if @test_mode
|
138
140
|
decorator.write_references(@reference_dir)
|
data/lib/js2.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: js2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeff Su
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-12-02 00:00:00 -08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|