weapon 0.1.0 → 0.1.1
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 +4 -4
- data/lib/generators/weapon/activeadmin/activeadmin_generator.rb +36 -0
- data/lib/generators/weapon/email/email_generator.rb +40 -0
- data/lib/generators/weapon/grape/grape_generator.rb +49 -0
- data/lib/generators/weapon/i18n/i18n_generator.rb +5 -0
- data/lib/weapon.rb +1 -1
- metadata +22 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dd05b8383fdf6a56aee99e98e7c4e6aadfd800e4
|
4
|
+
data.tar.gz: caf2a88d30150d5b98fd8824fdb5af1b90ba5e90
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 40ed25df93a88f72b4f1f14ae96a59de044d39fd23563b7943c8aa05dcaf9accaf2117b58bfb18529d2db826ebf522674417e504038ec5f6a322771f04fed121
|
7
|
+
data.tar.gz: 026e9afc4441a43fbef02c8ca2c9f73de6c12866b5a034927420daf0ff1ca680f265e658f538d1cd203f2586040d938059380e25e5034b49ded79ca06eb86f3a
|
@@ -0,0 +1,36 @@
|
|
1
|
+
|
2
|
+
class Weapon::ActiveadminGenerator < Rails::Generators::NamedBase # :nodoc:
|
3
|
+
desc 'This generator creates a example email setting and add exception_notification for production'
|
4
|
+
|
5
|
+
def create_example_email
|
6
|
+
application(nil, env: "production") do
|
7
|
+
config.action_mailer.raise_delivery_errors = true
|
8
|
+
config.action_mailer.default_url_options = {:host => '120.25.61.54:8100'}
|
9
|
+
config.action_mailer.delivery_method = :smtp
|
10
|
+
config.action_mailer.smtp_settings = {
|
11
|
+
:address => "smtp.163.com",
|
12
|
+
:port => 25,
|
13
|
+
:user_name => "ledcloud@163.com",
|
14
|
+
:password => "ffgexobhlolfjhij",
|
15
|
+
:enable_starttls_auto => true,
|
16
|
+
:authentication => "plain",
|
17
|
+
:domain => "163.com"
|
18
|
+
}
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def add_exception_notify
|
23
|
+
gem_group :production do
|
24
|
+
gem "rspec-rails"
|
25
|
+
end
|
26
|
+
|
27
|
+
application(nil, env: "production") do
|
28
|
+
config.middleware.use ExceptionNotification::Rack,
|
29
|
+
:email => {
|
30
|
+
:email_prefix => "[weapon] ",
|
31
|
+
:sender_address => "weapon <ledcloud@163.com>",
|
32
|
+
:exception_recipients => %w{dilin.life@gmail.com}
|
33
|
+
}
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
|
2
|
+
class Weapon::EmailGenerator < Rails::Generators::Base # :nodoc:
|
3
|
+
desc 'This generator creates a example email setting and add exception_notification for production'
|
4
|
+
|
5
|
+
def create_example_email
|
6
|
+
application(nil, env: "production") do
|
7
|
+
%(
|
8
|
+
config.action_mailer.raise_delivery_errors = true
|
9
|
+
config.action_mailer.default_url_options = {:host => 'http://www.example.com'}
|
10
|
+
config.action_mailer.delivery_method = :smtp
|
11
|
+
config.action_mailer.smtp_settings = {
|
12
|
+
:address => "smtp.163.com",
|
13
|
+
:port => 25,
|
14
|
+
:user_name => "weapontest@163.com",
|
15
|
+
:password => "abcdef1234",
|
16
|
+
:enable_starttls_auto => true,
|
17
|
+
:authentication => "plain",
|
18
|
+
:domain => "163.com"
|
19
|
+
}
|
20
|
+
)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def add_exception_notify
|
25
|
+
gem_group :production do
|
26
|
+
gem "exception_notification"
|
27
|
+
end
|
28
|
+
|
29
|
+
application(nil, env: "production") do
|
30
|
+
%(
|
31
|
+
config.middleware.use ExceptionNotification::Rack,
|
32
|
+
:email => {
|
33
|
+
:email_prefix => "[weapon] ",
|
34
|
+
:sender_address => "weapon <ledcloud@163.com>",
|
35
|
+
:exception_recipients => %w{dilin.life@gmail.com}
|
36
|
+
}
|
37
|
+
)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'magicfile'
|
2
|
+
require 'fileutils'
|
3
|
+
|
4
|
+
|
5
|
+
class Weapon::GrapeGenerator < Rails::Generators::Base # :nodoc:
|
6
|
+
desc 'This generator creates grape entity for model'
|
7
|
+
|
8
|
+
def generate_grape_entity
|
9
|
+
|
10
|
+
prefix_dirs = Dir.glob('app/api/*/')
|
11
|
+
if prefix_dirs.count == 0
|
12
|
+
prefix = 'app/api/v1'
|
13
|
+
elsif prefix_dirs.count == 1
|
14
|
+
prefix = prefix_dirs[0]
|
15
|
+
else
|
16
|
+
prefix = ask('there are multi directory in app/api directory, please input path like app/api/v1')
|
17
|
+
end
|
18
|
+
|
19
|
+
if args[0].nil? || args[0] == "all"
|
20
|
+
names = Dir["app/models/*.rb"].map {|x| File.basename(x, '.rb')}
|
21
|
+
else
|
22
|
+
names = args
|
23
|
+
end
|
24
|
+
|
25
|
+
ap names
|
26
|
+
|
27
|
+
names.each do |name|
|
28
|
+
entity_dir = File.join(prefix, "entities")
|
29
|
+
entity_path = File.join(entity_dir, "#{name}.rb")
|
30
|
+
|
31
|
+
ap "dir is #{entity_dir}"
|
32
|
+
ap "path is #{entity_path}"
|
33
|
+
|
34
|
+
next unless name.camelize.constantize.respond_to? 'column_names'
|
35
|
+
column_names = name.camelize.constantize.column_names
|
36
|
+
infos = column_names.map {|column| "expose :#{column}"}
|
37
|
+
|
38
|
+
FileUtils.mkdir_p entity_dir
|
39
|
+
a = Magicfile.new
|
40
|
+
module_array = prefix.split('/')[1..-1].append('entities')
|
41
|
+
a.append_modules(module_array)
|
42
|
+
a.append_class(name.camelize, 'Grape::Entity')
|
43
|
+
a.append_string_lines(infos)
|
44
|
+
a.to_file entity_path
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
data/lib/weapon.rb
CHANGED
@@ -231,7 +231,7 @@ class Weapon < Thor
|
|
231
231
|
|
232
232
|
end
|
233
233
|
|
234
|
-
desc "create_gem", "create basic gem information"
|
234
|
+
desc "create_gem", "create basic gem information and push to github, push to rubygems"
|
235
235
|
def create_gem(name)
|
236
236
|
FileUtils.mkdir_p "lib"
|
237
237
|
FileUtils.mkdir_p "bin"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: weapon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- seaify
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-01-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '1.6'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: magicfile
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 0.0.3
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 0.0.3
|
69
83
|
description: provide mina deploy, github setup, slack exception notify, i18n scaffold,
|
70
84
|
rails-settings-ui, guard custom
|
71
85
|
email: dilin.life@gmail.com
|
@@ -75,6 +89,10 @@ extensions: []
|
|
75
89
|
extra_rdoc_files: []
|
76
90
|
files:
|
77
91
|
- bin/weapon
|
92
|
+
- lib/generators/weapon/activeadmin/activeadmin_generator.rb
|
93
|
+
- lib/generators/weapon/email/email_generator.rb
|
94
|
+
- lib/generators/weapon/grape/grape_generator.rb
|
95
|
+
- lib/generators/weapon/i18n/i18n_generator.rb
|
78
96
|
- lib/support/create_gem/basic.bin
|
79
97
|
- lib/support/create_gem/basic.gemspec
|
80
98
|
- lib/support/create_gem/basic.rb
|
@@ -113,9 +131,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
113
131
|
version: '0'
|
114
132
|
requirements: []
|
115
133
|
rubyforge_project:
|
116
|
-
rubygems_version: 2.4.
|
134
|
+
rubygems_version: 2.4.8
|
117
135
|
signing_key:
|
118
136
|
specification_version: 4
|
119
137
|
summary: weapon for rails application!
|
120
138
|
test_files: []
|
121
|
-
has_rdoc:
|