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 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: