susanoo 0.7.4 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Susanoo.gemspec +2 -0
- data/lib/susanoo/cli.rb +6 -0
- data/lib/susanoo/cli/project.rb +34 -25
- data/lib/susanoo/generators/ng_module.rb +39 -5
- data/lib/susanoo/generators/scaffold.rb +1 -1
- data/lib/susanoo/templates/generators/ng_module/index.html.erb +2 -0
- data/lib/susanoo/templates/generators/ng_module/module.js.erb +20 -0
- data/lib/susanoo/version.rb +1 -1
- metadata +18 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c60da5900b89568fe851951a06b0f6cc876e055d
|
4
|
+
data.tar.gz: b095140999ff6f4ede405579b6d9417c06eae6b2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 49f9e95ee26f5611e4484e0dae27c53ebee56a0979aee7fb5b8587d3f7f7ad7c3afd2716d7ba40086ee0e124d6ea2a70bfd95690a637aef10786e029d18f141b
|
7
|
+
data.tar.gz: 75a117a6d0a344f90484ff92774527d520039b84524e5f8d068ee6310cce20323870877a8369b43807a497ccbdcaef914ef3b5a2a8d310122d470edb01208d53
|
data/Susanoo.gemspec
CHANGED
data/lib/susanoo/cli.rb
CHANGED
data/lib/susanoo/cli/project.rb
CHANGED
@@ -13,6 +13,7 @@ module Susanoo
|
|
13
13
|
map 's' => :server
|
14
14
|
map 'g' => :generate
|
15
15
|
map 'r' => :run_in
|
16
|
+
map 'd' => :destroy
|
16
17
|
|
17
18
|
def self.root=(path)
|
18
19
|
@@root = path
|
@@ -21,19 +22,18 @@ module Susanoo
|
|
21
22
|
|
22
23
|
desc 'generate GENERATOR [options]', 'Run the given generator'
|
23
24
|
def generate(generator_name = nil, *options)
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
25
|
+
generator = get_the_generator_class generator_name
|
26
|
+
# Run the generator with given options
|
27
|
+
generator.start(options, behavior: :invoke,
|
28
|
+
destination_root: Susanoo::Project.path)
|
29
|
+
end
|
28
30
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
end
|
36
|
-
generator.start options
|
31
|
+
desc 'destroy GENERATOR [options]', 'Destroy the given generator'
|
32
|
+
def destroy(generator_name = nil, *options)
|
33
|
+
generator = get_the_generator_class generator_name
|
34
|
+
|
35
|
+
generator.start(options, behavior: :revoke,
|
36
|
+
destination_root: Susanoo::Project.path)
|
37
37
|
end
|
38
38
|
|
39
39
|
method_option :debug, default: true
|
@@ -104,26 +104,35 @@ module Susanoo
|
|
104
104
|
private
|
105
105
|
# Private ---------------------------
|
106
106
|
|
107
|
-
def
|
108
|
-
|
109
|
-
|
107
|
+
def get_the_generator_class(generator_name)
|
108
|
+
# Print the generators list and exit
|
109
|
+
if generator_name.nil?
|
110
|
+
print_generator_list
|
111
|
+
return
|
112
|
+
end
|
113
|
+
|
114
|
+
# Try to load and get the generator Class
|
115
|
+
begin
|
116
|
+
klass = generator_name.downcase.camelize
|
117
|
+
generator = Susanoo::Generators.const_get(klass)
|
110
118
|
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
119
|
+
rescue NameError
|
120
|
+
print '[Error]:'.colorize(:red)
|
121
|
+
say "Generator `#{generator}` not found."
|
122
|
+
exit 1
|
123
|
+
end
|
124
|
+
generator
|
117
125
|
end
|
118
126
|
|
119
127
|
def print_generator_list
|
120
|
-
say
|
121
|
-
say
|
128
|
+
say 'Available generators:'
|
129
|
+
say '---------------------------------------------------'
|
122
130
|
Susanoo::Generators.constants.each do |g|
|
123
131
|
generator = Susanoo::Generators.const_get(g)
|
124
132
|
|
125
|
-
|
126
|
-
|
133
|
+
if generator.respond_to?(:global_generator?) && \
|
134
|
+
!generator.global_generator?
|
135
|
+
generator_name = generator.to_s.split('::').last.underscore
|
127
136
|
say "#{generator_name}\t\t #{generator.desc}\n"
|
128
137
|
end
|
129
138
|
|
@@ -3,16 +3,50 @@ module Susanoo
|
|
3
3
|
class NgModule < Thor::Group
|
4
4
|
include Thor::Actions
|
5
5
|
|
6
|
-
desc
|
6
|
+
desc 'Create an AngularJS module.'
|
7
7
|
|
8
|
-
argument :name, :
|
8
|
+
argument :name, type: :string, desc: 'Name of AngularJS'
|
9
|
+
class_option :deps, type: :string, default: '', desc: 'Dependencies of Angularjs module, comma separated'
|
9
10
|
|
10
|
-
def self.
|
11
|
+
def self.source_root
|
12
|
+
File.join(File.dirname(__FILE__),
|
13
|
+
'../templates/generators/ng_module')
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.global_generator?
|
11
17
|
false
|
12
18
|
end
|
13
19
|
|
14
|
-
def
|
15
|
-
|
20
|
+
def setup_directories
|
21
|
+
empty_directory "src/views/#{directory_name}#{module_name}"
|
22
|
+
|
23
|
+
mpath = 'src/assets/javascripts/modules/'
|
24
|
+
empty_directory "#{mpath}#{directory_name}" unless directory_name.nil?
|
25
|
+
end
|
26
|
+
|
27
|
+
def install_js_module
|
28
|
+
template 'module.js.erb', "src/assets/javascripts/modules/#{directory_name}#{module_name}.js"
|
29
|
+
end
|
30
|
+
|
31
|
+
def install_view
|
32
|
+
template('index.html.erb',
|
33
|
+
"src/views/#{directory_name}#{module_name}/index.html")
|
34
|
+
end
|
35
|
+
|
36
|
+
private
|
37
|
+
|
38
|
+
def directory_name
|
39
|
+
dir_name = name.split('/')[0..-2].join('/')
|
40
|
+
return dir_name + '/' unless dir_name.empty?
|
41
|
+
nil
|
42
|
+
end
|
43
|
+
|
44
|
+
def module_name
|
45
|
+
name.split('/')[-1].underscore
|
46
|
+
end
|
47
|
+
|
48
|
+
def dependencies
|
49
|
+
options[:deps].split(',')
|
16
50
|
end
|
17
51
|
end
|
18
52
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
// <%= module_name.humanize%> Module
|
2
|
+
var <%= module_name %> = angular.module("<%= module_name.camelize %>", ["gettext"<% dependencies.each do |dep| %>, "<%= dep.camelize %>"<% end %>]);
|
3
|
+
|
4
|
+
// configuration section ---------------------------
|
5
|
+
<%= module_name %>.config(["$routeProvider", function($routeProvider){
|
6
|
+
|
7
|
+
// Configuring application index route.
|
8
|
+
// Add any route you need here.
|
9
|
+
$routeProvider.
|
10
|
+
when("/<%= directory_name %><%= module_name %>/", {
|
11
|
+
templateUrl: template("<%= directory_name %><%= module_name %>/index"),
|
12
|
+
controller: "<%= module_name.camelize %>Controller"
|
13
|
+
});
|
14
|
+
|
15
|
+
}]);
|
16
|
+
|
17
|
+
<%= module_name %>.controller("<%= module_name.camelize %>Controller", ["$scope", "gettext", function($scope, gettext){
|
18
|
+
// <%= module_name.camelize.humanize %> controller of application. This controller is responsible for `/<%= module_name %>` url
|
19
|
+
|
20
|
+
}]);
|
data/lib/susanoo/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: susanoo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sameer Rahmani
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-09-
|
11
|
+
date: 2014-09-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -220,6 +220,20 @@ dependencies:
|
|
220
220
|
- - ">="
|
221
221
|
- !ruby/object:Gem::Version
|
222
222
|
version: '0'
|
223
|
+
- !ruby/object:Gem::Dependency
|
224
|
+
name: activesupport
|
225
|
+
requirement: !ruby/object:Gem::Requirement
|
226
|
+
requirements:
|
227
|
+
- - ">="
|
228
|
+
- !ruby/object:Gem::Version
|
229
|
+
version: '0'
|
230
|
+
type: :runtime
|
231
|
+
prerelease: false
|
232
|
+
version_requirements: !ruby/object:Gem::Requirement
|
233
|
+
requirements:
|
234
|
+
- - ">="
|
235
|
+
- !ruby/object:Gem::Version
|
236
|
+
version: '0'
|
223
237
|
description: " Develop mobile application using apache cordova and ruby utilities. "
|
224
238
|
email:
|
225
239
|
- lxsameer@gnu.org
|
@@ -275,6 +289,8 @@ files:
|
|
275
289
|
- lib/susanoo/templates/application/src/assets/stylesheets/main.scss
|
276
290
|
- lib/susanoo/templates/application/src/index.html.erb
|
277
291
|
- lib/susanoo/templates/application/src/views/main.html
|
292
|
+
- lib/susanoo/templates/generators/ng_module/index.html.erb
|
293
|
+
- lib/susanoo/templates/generators/ng_module/module.js.erb
|
278
294
|
- lib/susanoo/version.rb
|
279
295
|
homepage: http://github.com/lxsameer/Susanoo
|
280
296
|
licenses:
|