appmake 0.1.29 → 0.1.30
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/appmake.rb +98 -52
- data/lib/appmake/version.rb +1 -1
- data/templates/public/index.html.tt +5 -0
- metadata +1 -9
- data/lib/appmake/installers/backbone.rb +0 -17
- data/lib/appmake/installers/bootstrap.rb +0 -24
- data/lib/appmake/installers/jquery.rb +0 -17
- data/lib/appmake/installers/underscore.rb +0 -17
- data/lib/appmake/listeners/coffee.rb +0 -38
- data/lib/appmake/listeners/css.rb +0 -36
- data/lib/appmake/listeners/js.rb +0 -34
- data/lib/appmake/listeners/tpl.rb +0 -28
data/lib/appmake.rb
CHANGED
@@ -1,36 +1,22 @@
|
|
1
1
|
require "thor"
|
2
|
+
require "listen"
|
2
3
|
require "appmake/version"
|
3
|
-
require "appmake/listeners/css"
|
4
|
-
require "appmake/listeners/coffee"
|
5
|
-
require "appmake/listeners/js"
|
6
|
-
require "appmake/listeners/tpl"
|
7
|
-
require "appmake/installers/backbone"
|
8
|
-
require "appmake/installers/bootstrap"
|
9
|
-
require "appmake/installers/jquery"
|
10
|
-
require "appmake/installers/underscore"
|
11
4
|
|
12
5
|
module Appmake
|
13
|
-
|
6
|
+
class Appmake < Thor
|
14
7
|
include Thor::Actions
|
15
8
|
|
16
9
|
def self.source_root
|
17
10
|
File.dirname(File.dirname(__FILE__))
|
18
11
|
end
|
19
12
|
|
20
|
-
desc "init", "initialize new
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
:bootstrap => false
|
27
|
-
}.each do |op, default|
|
28
|
-
method_option op, :type => :boolean, :default => default
|
29
|
-
end
|
30
|
-
|
13
|
+
desc "init", "initialize new app"
|
14
|
+
method_option :coffee, :type => :boolean, :default => false
|
15
|
+
method_option :jquery, :type => :boolean, :default => false
|
16
|
+
method_option :underscore, :type => :boolean, :default => false
|
17
|
+
method_option :backbone, :type => :boolean, :default => false
|
18
|
+
method_option :bootstrap, :type => :boolean, :default => false
|
31
19
|
def init
|
32
|
-
shell = Color.new
|
33
|
-
|
34
20
|
template "templates/package.json.tt", "package.json"
|
35
21
|
template "templates/README.md.tt", "README.md"
|
36
22
|
|
@@ -45,73 +31,133 @@ module Appmake
|
|
45
31
|
template "templates/tpl/welcome.html.tt", "tpl/welcome.html"
|
46
32
|
|
47
33
|
empty_directory "public"
|
34
|
+
template "templates/public/index.html.tt", "public/index.html"
|
35
|
+
|
48
36
|
empty_directory "public/css"
|
49
37
|
empty_directory "public/js"
|
50
38
|
empty_directory "public/img"
|
51
|
-
template "templates/public/index.html.tt", "public/index.html"
|
52
|
-
|
53
|
-
shell.say_status :cmd, "npm install", :blue
|
54
|
-
system "npm install &> /dev/null"
|
55
39
|
|
56
|
-
if options.coffee
|
40
|
+
if options.coffee?
|
57
41
|
empty_directory "coffee"
|
58
|
-
Listeners::Coffee.compile
|
59
42
|
end
|
60
43
|
|
61
|
-
if options.jquery
|
62
|
-
|
44
|
+
if options.jquery?
|
45
|
+
install "jquery"
|
63
46
|
end
|
64
47
|
|
65
|
-
if options.underscore
|
66
|
-
|
48
|
+
if options.underscore?
|
49
|
+
install "underscore"
|
67
50
|
end
|
68
51
|
|
69
|
-
if options.backbone
|
70
|
-
|
52
|
+
if options.backbone?
|
53
|
+
install "backbone"
|
71
54
|
end
|
72
55
|
|
73
|
-
if options.bootstrap
|
74
|
-
|
56
|
+
if options.bootstrap?
|
57
|
+
install "bootstrap"
|
75
58
|
end
|
76
59
|
|
77
|
-
|
78
|
-
|
79
|
-
|
60
|
+
run "npm install"
|
61
|
+
|
62
|
+
compile "css"
|
63
|
+
compile "tpl"
|
64
|
+
compile "coffee"
|
65
|
+
compile "js"
|
66
|
+
end
|
67
|
+
|
68
|
+
desc "compile", "compile files"
|
69
|
+
method_option :name, :type => :string
|
70
|
+
def compile(name)
|
71
|
+
if name == "css"
|
72
|
+
Dir.glob "css/*.scss" do |f|
|
73
|
+
name = f.split("/").last
|
74
|
+
if name[0] == name[0].upcase
|
75
|
+
new_name = name.gsub "scss", "css"
|
76
|
+
run "bundle exec sass css/#{name} public/css/#{new_name}"
|
77
|
+
end
|
78
|
+
end
|
79
|
+
elsif name == "js"
|
80
|
+
Dir.glob "js/*.js" do |f|
|
81
|
+
name = f.split("/").last
|
82
|
+
if name[0] == name[0].upcase
|
83
|
+
run "./node_modules/.bin/webmake js/#{name} public/js/#{name}"
|
84
|
+
end
|
85
|
+
end
|
86
|
+
elsif name == "tpl"
|
87
|
+
run "./node_modules/.bin/dot-module -d tpl/ -o js/templates.js"
|
88
|
+
elsif name == "coffee"
|
89
|
+
Dir.glob "coffee/*.coffee" do |f|
|
90
|
+
name = f.split("/").last
|
91
|
+
new_name = name.gsub "coffee", "js"
|
92
|
+
run "./node_modules/.bin/coffee -c coffee/#{name}"
|
93
|
+
run "mv coffee/#{new_name} js/#{new_name}"
|
94
|
+
if name[0] == name[0].upcase
|
95
|
+
run "./node_modules/.bin/webmake js/#{new_name} public/js/#{new_name}"
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
80
99
|
end
|
81
100
|
|
82
101
|
desc "watch", "watch for files to compile"
|
83
102
|
def watch
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
103
|
+
css = Listen.to "css", :filter => /\.scss$/
|
104
|
+
css.change do
|
105
|
+
compile "css"
|
106
|
+
end
|
107
|
+
css.start(false)
|
108
|
+
|
109
|
+
if Dir.exists? "coffee"
|
110
|
+
coffee = Listen.to "coffee", :filter => /\.coffee$/
|
111
|
+
coffee.change do
|
112
|
+
compile "coffee"
|
113
|
+
end
|
114
|
+
coffee.start(false)
|
115
|
+
end
|
116
|
+
|
117
|
+
tpl = Listen.to "tpl", :filter => /\.html$/
|
118
|
+
tpl.change do
|
119
|
+
compile "tpl"
|
120
|
+
end
|
121
|
+
tpl.start(false)
|
122
|
+
|
123
|
+
js = Listen.to "js", :filter => /\.js$/
|
124
|
+
js.change do
|
125
|
+
compile "js"
|
126
|
+
end
|
127
|
+
js.start(true)
|
88
128
|
end
|
89
129
|
|
90
|
-
desc "install", "install
|
130
|
+
desc "install", "install lib"
|
131
|
+
method_option :name, :type => :string
|
91
132
|
def install(name)
|
92
|
-
shell = Color.new
|
93
|
-
|
94
133
|
if name == "jquery"
|
95
134
|
empty_directory "public"
|
96
135
|
empty_directory "public/js"
|
97
|
-
|
136
|
+
run "curl http://code.jquery.com/jquery-1.9.0.min.js -o public/js/jquery.min.js"
|
98
137
|
elsif name == "underscore"
|
99
138
|
empty_directory "public"
|
100
139
|
empty_directory "public/js"
|
101
|
-
|
140
|
+
run "curl http://underscorejs.org/underscore-min.js -o public/underscore.min.js"
|
102
141
|
elsif name == "backbone"
|
103
142
|
empty_directory "public"
|
104
143
|
empty_directory "public/js"
|
105
|
-
|
144
|
+
run "curl -silent http://backbonejs.org/backbone-min.js -o public/backbone.min.js"
|
106
145
|
elsif name == "bootstrap"
|
107
146
|
empty_directory "public"
|
108
147
|
empty_directory "public/css"
|
109
148
|
empty_directory "public/img"
|
110
149
|
empty_directory "public/js"
|
111
|
-
|
150
|
+
run "curl -silent http://twitter.github.com/bootstrap/assets/bootstrap.zip -o public/bootstrap.zip"
|
151
|
+
run "unzip public/bootstrap.zip -d public"
|
152
|
+
run "mv public/bootstrap/js/bootstrap.min.js public/js/"
|
153
|
+
run "mv public/bootstrap/css/bootstrap.min.css public/css/"
|
154
|
+
run "mv public/bootstrap/css/bootstrap-responsive.min.css public/css/"
|
155
|
+
run "mv public/bootstrap/img/* public/img/"
|
156
|
+
run "rm -rf public/bootstrap"
|
157
|
+
run "rm public/bootstrap.zip"
|
112
158
|
else
|
113
|
-
abort "error:
|
159
|
+
abort "error: cannot install #{name}"
|
114
160
|
end
|
115
161
|
end
|
116
162
|
end
|
117
|
-
end
|
163
|
+
end
|
data/lib/appmake/version.rb
CHANGED
@@ -3,9 +3,14 @@
|
|
3
3
|
<head>
|
4
4
|
<title></title>
|
5
5
|
<meta http=equiv="Content-Type" content="text/html; charset=UTF-8">
|
6
|
+
<% if options.bootstrap %><link rel="stylesheet" type="text/css" href="css/bootstrap.min.css"><% end %>
|
6
7
|
<link rel="stylesheet" type="text/css" href="css/App.css">
|
7
8
|
</head>
|
8
9
|
<body>
|
10
|
+
<% if options.jquery %><script type="text/javascript" src="js/jquery.min.js"></script><% end %>
|
11
|
+
<% if options.underscore %><script type="text/javascript" src="js/underscore.min.js"></script><% end %>
|
12
|
+
<% if options.backbone %><script type="text/javascript" src="js/backbone.min.js"></script><% end %>
|
13
|
+
<% if options.bootstrap %><script type="text/javascript" src="js/bootstrap.min.js"></script><% end %>
|
9
14
|
<script type="text/javascript" src="js/App.js"></script>
|
10
15
|
</body>
|
11
16
|
</html>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: appmake
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.30
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -93,14 +93,6 @@ files:
|
|
93
93
|
- appmake.gemspec
|
94
94
|
- bin/appmake
|
95
95
|
- lib/appmake.rb
|
96
|
-
- lib/appmake/installers/backbone.rb
|
97
|
-
- lib/appmake/installers/bootstrap.rb
|
98
|
-
- lib/appmake/installers/jquery.rb
|
99
|
-
- lib/appmake/installers/underscore.rb
|
100
|
-
- lib/appmake/listeners/coffee.rb
|
101
|
-
- lib/appmake/listeners/css.rb
|
102
|
-
- lib/appmake/listeners/js.rb
|
103
|
-
- lib/appmake/listeners/tpl.rb
|
104
96
|
- lib/appmake/version.rb
|
105
97
|
- templates/README.md.tt
|
106
98
|
- templates/css/app.scss.tt
|
@@ -1,17 +0,0 @@
|
|
1
|
-
require "thor"
|
2
|
-
|
3
|
-
module Appmake
|
4
|
-
module Installers
|
5
|
-
class Backbone
|
6
|
-
include Thor::Shell
|
7
|
-
|
8
|
-
def self.install
|
9
|
-
shell = Color.new
|
10
|
-
|
11
|
-
shell.say_status :install, "Backbone", :green
|
12
|
-
shell.say_status :cmd, "curl http://backbonejs.org/backbonejs-min.js -o public/backbone.min.js", :blue
|
13
|
-
system("curl -silent http://backbonejs.org/backbone-min.js -o public/backbone.min.js")
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
@@ -1,24 +0,0 @@
|
|
1
|
-
require "thor"
|
2
|
-
|
3
|
-
module Appmake
|
4
|
-
module Installers
|
5
|
-
class Bootstrap
|
6
|
-
include Thor::Shell
|
7
|
-
|
8
|
-
def self.install
|
9
|
-
shell = Color.new
|
10
|
-
|
11
|
-
shell.say_status :install, "Bootstrap", :green
|
12
|
-
shell.say_status :cmd, "curl http://twitter.github.com/bootstrap/assets/bootstrap.zip -o public/bootstrap.zip", :blue
|
13
|
-
shell.say_status :cmd, "cd public", :blue
|
14
|
-
shell.say_status :cmd, "unzip bootstrap.zip &> /dev/null", :blue
|
15
|
-
shell.say_status :cmd, "mv bootstrap/js/bootstrap.min.js js/", :blue
|
16
|
-
shell.say_status :cmd, "mv bootstrap/css/bootstrap.min.css css/", :blue
|
17
|
-
shell.say_status :cmd, "mv bootstrap/css/bootstrap-responsive.min.css css/", :blue
|
18
|
-
shell.say_status :cmd, "mv bootstrap/img/* img/", :blue
|
19
|
-
shell.say_status :cmd, "rm -rf bootstrap && rm bootstrap.zip", :blue
|
20
|
-
system("curl -silent http://twitter.github.com/bootstrap/assets/bootstrap.zip -o public/bootstrap.zip && cd public && unzip bootstrap.zip &> /dev/null && mv bootstrap/js/bootstrap.min.js js/ && mv bootstrap/css/bootstrap.min.css css/ && mv bootstrap/css/bootstrap-responsive.min.css css/ && mv bootstrap/img/* img/ && rm -rf bootstrap && rm bootstrap.zip")
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
require "thor"
|
2
|
-
|
3
|
-
module Appmake
|
4
|
-
module Installers
|
5
|
-
class Jquery
|
6
|
-
include Thor::Shell
|
7
|
-
|
8
|
-
def self.install
|
9
|
-
shell = Color.new
|
10
|
-
|
11
|
-
shell.say_status :install, "jQuery", :green
|
12
|
-
shell.say_status :cmd, "curl http://code.jquery.com/jquery-1.9.0.min.js -o public/js/jquery.min.js", :blue
|
13
|
-
system("curl -silent http://code.jquery.com/jquery.min.js -o public/js/jquery.min.js")
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
require "thor"
|
2
|
-
|
3
|
-
module Appmake
|
4
|
-
module Installers
|
5
|
-
class Underscore
|
6
|
-
include Thor::Shell
|
7
|
-
|
8
|
-
def self.install
|
9
|
-
shell = Color.new
|
10
|
-
|
11
|
-
shell.say_status :install, "Underscore", :green
|
12
|
-
shell.say_status :cmd, "curl http://underscorejs.org/underscore-min.js -o public/underscore.min.js", :blue
|
13
|
-
system("curl -silent http://underscorejs.org/underscore-min.js -o public/underscore.min.js")
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
@@ -1,38 +0,0 @@
|
|
1
|
-
require "listen"
|
2
|
-
|
3
|
-
module Appmake
|
4
|
-
module Listeners
|
5
|
-
class Coffee
|
6
|
-
include Thor::Shell
|
7
|
-
|
8
|
-
def self.listen(block = true)
|
9
|
-
callback = Proc.new do |modified, added, removed|
|
10
|
-
self.compile()
|
11
|
-
end
|
12
|
-
|
13
|
-
listener = Listen.to "coffee", :filter => /\.coffee$/
|
14
|
-
listener.change(&callback)
|
15
|
-
listener.start(block)
|
16
|
-
end
|
17
|
-
|
18
|
-
def self.compile
|
19
|
-
shell = Color.new
|
20
|
-
|
21
|
-
shell.say_status :compile, "CoffeScript", :green
|
22
|
-
|
23
|
-
Dir.glob "coffee/*.coffee" do |f|
|
24
|
-
name = f.split("/").last
|
25
|
-
new_name = name.gsub "coffee", "js"
|
26
|
-
|
27
|
-
shell.say_status :cmd, "./node_modules/.bin/coffee -c coffee/#{name} && mv coffee/#{new_name} js/#{new_name}", :blue
|
28
|
-
system "./node_modules/.bin/coffee -c coffee/#{name} > /dev/null && mv coffee/#{new_name} js/#{new_name} > /dev/null"
|
29
|
-
|
30
|
-
if name[0] == name[0].upcase
|
31
|
-
shell.say_status :cmd, "./node_modules/.bin/webmake js/#{new_name} public/js/#{new_name}", :blue
|
32
|
-
system "./node_modules/.bin/webmake js/#{new_name} public/js/#{new_name} > /dev/null"
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
@@ -1,36 +0,0 @@
|
|
1
|
-
require "listen"
|
2
|
-
require "thor"
|
3
|
-
|
4
|
-
module Appmake
|
5
|
-
module Listeners
|
6
|
-
class Css
|
7
|
-
include Thor::Shell
|
8
|
-
|
9
|
-
def self.listen(block = true)
|
10
|
-
callback = Proc.new do |modified, added, removed|
|
11
|
-
self.compile()
|
12
|
-
end
|
13
|
-
|
14
|
-
listener = Listen.to "css", :filter => /\.scss$/
|
15
|
-
listener.change(&callback)
|
16
|
-
listener.start(block)
|
17
|
-
end
|
18
|
-
|
19
|
-
def self.compile
|
20
|
-
shell = Color.new
|
21
|
-
|
22
|
-
shell.say_status :compile, "CSS", :green
|
23
|
-
|
24
|
-
Dir.glob "css/*" do |f|
|
25
|
-
name = f.split("/").last
|
26
|
-
|
27
|
-
if name[0] == name[0].upcase
|
28
|
-
new_name = name.gsub "scss", "css"
|
29
|
-
shell.say_status :cmd, "bundle exec sass css/#{name} public/css/#{new_name}", :blue
|
30
|
-
system "bundle exec sass css/#{name} public/css/#{new_name} > /dev/null"
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
data/lib/appmake/listeners/js.rb
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
require "listen"
|
2
|
-
|
3
|
-
module Appmake
|
4
|
-
module Listeners
|
5
|
-
class Js
|
6
|
-
include Thor::Shell
|
7
|
-
|
8
|
-
def self.listen(block = true)
|
9
|
-
callback = Proc.new do |modified, added, removed|
|
10
|
-
self.compile()
|
11
|
-
end
|
12
|
-
|
13
|
-
listener = Listen.to "js", :filter => /\.js$/
|
14
|
-
listener.change(&callback)
|
15
|
-
listener.start(block)
|
16
|
-
end
|
17
|
-
|
18
|
-
def self.compile
|
19
|
-
shell = Color.new
|
20
|
-
|
21
|
-
shell.say_status :compile, "JavaScript", :green
|
22
|
-
|
23
|
-
Dir.glob "js/*.js" do |f|
|
24
|
-
name = f.split("/").last
|
25
|
-
|
26
|
-
if name[0] == name[0].upcase
|
27
|
-
shell.say_status :cmd, "./node_modules/.bin/webmake js/#{name} public/js/#{name}", :blue
|
28
|
-
system "./node_modules/.bin/webmake js/#{name} public/js/#{name} > /dev/null"
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
@@ -1,28 +0,0 @@
|
|
1
|
-
require "listen"
|
2
|
-
|
3
|
-
module Appmake
|
4
|
-
module Listeners
|
5
|
-
class Tpl
|
6
|
-
include Thor::Shell
|
7
|
-
|
8
|
-
def self.listen(block = true)
|
9
|
-
callback = Proc.new do |modified, added, removed|
|
10
|
-
self.compile()
|
11
|
-
end
|
12
|
-
|
13
|
-
listener = Listen.to "tpl", :filter => /\.html$/
|
14
|
-
listener.change(&callback)
|
15
|
-
listener.start(block)
|
16
|
-
end
|
17
|
-
|
18
|
-
def self.compile
|
19
|
-
shell = Color.new
|
20
|
-
|
21
|
-
shell.say_status :compile, "Templates", :green
|
22
|
-
|
23
|
-
shell.say_status :cmd, "./node_modules/.bin/dot-module -d tpl/ -o js/templates.js", :blue
|
24
|
-
system("./node_modules/.bin/dot-module -d tpl/ -o js/templates.js > /dev/null")
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|