susanoo 0.7.4 → 0.8.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e5b4783d4a9a26aecdee7e104d4eb88784ac8c4a
4
- data.tar.gz: 94c2770a694ff736bcaff1d4a76d16f98ccf18c9
3
+ metadata.gz: c60da5900b89568fe851951a06b0f6cc876e055d
4
+ data.tar.gz: b095140999ff6f4ede405579b6d9417c06eae6b2
5
5
  SHA512:
6
- metadata.gz: 476a04721d656adeaf18b42022327731427c444bd0bcc2deb50d30cd016acf70b79dda24e84e27f96da1cc270f354bf879a1c8d4ded115f568b6e43f975e02e0
7
- data.tar.gz: 00bb42ff05dd1997626c8eaa38ba60c95f80846d5751cdcceaa60f3938d1f9d2e4f6a7a3104aeab2922378723e2ff014a049b5e05c3daec3d42dd4ad7e01ea15
6
+ metadata.gz: 49f9e95ee26f5611e4484e0dae27c53ebee56a0979aee7fb5b8587d3f7f7ad7c3afd2716d7ba40086ee0e124d6ea2a70bfd95690a637aef10786e029d18f141b
7
+ data.tar.gz: 75a117a6d0a344f90484ff92774527d520039b84524e5f8d068ee6310cce20323870877a8369b43807a497ccbdcaef914ef3b5a2a8d310122d470edb01208d53
@@ -34,4 +34,6 @@ Gem::Specification.new do |spec|
34
34
  spec.add_dependency 'sprockets-helpers'
35
35
  spec.add_dependency 'sass', '3.2.15'
36
36
  spec.add_dependency 'tilt'
37
+ spec.add_dependency 'activesupport'
38
+
37
39
  end
@@ -1,6 +1,12 @@
1
+ require 'rubygems'
2
+ require 'bundler/setup'
3
+
4
+ Bundler.require
5
+
1
6
  require 'pathname'
2
7
  require 'susanoo/cli/global'
3
8
  require 'susanoo/cli/project'
9
+ require 'active_support/core_ext/string/inflections'
4
10
 
5
11
 
6
12
  module Susanoo
@@ -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
- if generator_name.nil?
25
- print_generator_list
26
- return
27
- end
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
- begin
30
- generator = Susanoo::Generators.const_get(camelize(generator_name.downcase))
31
- rescue NameError
32
- print '[Error]:'.colorize(:red)
33
- say "Generator `#{generator}` not found."
34
- exit 1
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 camelize(str)
108
- str.split("_").each {|s| s.capitalize! }.join("")
109
- end
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
- def underscore(str)
112
- str.gsub(/::/, '/').
113
- gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
114
- gsub(/([a-z\d])([A-Z])/,'\1_\2').
115
- tr("-", "_").
116
- downcase
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 "Available generators:"
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
- unless generator.is_global_generator?
126
- generator_name = underscore(generator.to_s.split("::").last)
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 "Create an AngularJS module."
6
+ desc 'Create an AngularJS module.'
7
7
 
8
- argument :name, :type => :string, :desc => "Name of AngularJS"
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.is_global_generator?
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 install_templates
15
- puts "Adasdasd> #{name}"
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
@@ -7,7 +7,7 @@ module Susanoo
7
7
 
8
8
  argument :name, :type => :string, :desc => "Name of scaffold"
9
9
 
10
- def self.is_global_generator?
10
+ def self.global_generator?
11
11
  false
12
12
  end
13
13
 
@@ -0,0 +1,2 @@
1
+ <h1>Index view for <%= module_name %></h1>
2
+ <h4>You can edit this template at 'src/views/<%= "#{directory_name}#{module_name}" %>/index.html</h4>
@@ -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
+ }]);
@@ -1,3 +1,3 @@
1
1
  module Susanoo
2
- VERSION = '0.7.4'
2
+ VERSION = '0.8.0'
3
3
  end
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.7.4
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-06 00:00:00.000000000 Z
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: