ro_commands 0.0.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 +7 -0
- data/MIT-LICENSE +20 -0
- data/README.rdoc +3 -0
- data/Rakefile +54 -0
- data/bin/ro +32 -0
- data/bin/ro_client +6 -0
- data/bin/ro_server +8 -0
- data/config/rorc.rb +2 -0
- data/lib/bash_builder.rb +92 -0
- data/lib/bash_builder_helper.rb +34 -0
- data/lib/bash_debug.rb +55 -0
- data/lib/bash_templates/git.sh +10 -0
- data/lib/bash_templates/gitflow.sh +0 -0
- data/lib/bash_templates/misc.sh +66 -0
- data/lib/bash_templates/rails.sh +0 -0
- data/lib/bash_templates/rubymine_idea.sh +5 -0
- data/lib/bash_templates/shortcuts.sh +1 -0
- data/lib/builder_templates/completions.erb +18 -0
- data/lib/builder_templates/git_flow.erb +3 -0
- data/lib/builder_templates/rails.erb +3 -0
- data/lib/builder_templates/set_envs.erb +9 -0
- data/lib/drb/client.rb +22 -0
- data/lib/drb/server.rb +33 -0
- data/lib/git_flow_builder_helper.rb +34 -0
- data/lib/methods.rb +19 -0
- data/lib/rails_builder_helper.rb +41 -0
- data/lib/ro_commands.rb +34 -0
- data/lib/ro_commands/base.rb +95 -0
- data/lib/ro_commands/core_ext/hash.rb +5 -0
- data/lib/ro_commands/core_ext/string.rb +14 -0
- data/lib/ro_commands/core_ext/symbol.rb +0 -0
- data/lib/ro_commands/core_ext/thor.rb +71 -0
- data/lib/ro_commands/dsl/file.rb +25 -0
- data/lib/ro_commands/file_actions.rb +128 -0
- data/lib/ro_commands/generate.rb +32 -0
- data/lib/ro_commands/generators/base_generator.rb +68 -0
- data/lib/ro_commands/generators/ex.rb +56 -0
- data/lib/ro_commands/generators/lib.rb +25 -0
- data/lib/ro_commands/generators/spec_file.rb +74 -0
- data/lib/ro_commands/generators/templates/ex.erb +30 -0
- data/lib/ro_commands/generators/templates/spec.erb +2 -0
- data/lib/ro_commands/git.rb +89 -0
- data/lib/ro_commands/git_flow.rb +111 -0
- data/lib/ro_commands/helpers/all.rb +8 -0
- data/lib/ro_commands/helpers/all_files.rb +21 -0
- data/lib/ro_commands/helpers/bash.rb +33 -0
- data/lib/ro_commands/helpers/out.rb +29 -0
- data/lib/ro_commands/hook.rb +102 -0
- data/lib/ro_commands/info.rb +55 -0
- data/lib/ro_commands/misc.rb +77 -0
- data/lib/ro_commands/navigate.rb +56 -0
- data/lib/ro_commands/processes.rb +12 -0
- data/lib/ro_commands/rails.rb +210 -0
- data/lib/ro_commands/refactor.rb +78 -0
- data/lib/ro_commands/ro_helper.rb +76 -0
- data/lib/ro_commands/ro_procs.rb +106 -0
- data/lib/ro_commands/rubymine.rb +17 -0
- data/lib/ro_commands/shortcuts.rb +67 -0
- data/lib/ro_commands/try.rb +11 -0
- data/lib/ro_commands/version.rb +3 -0
- data/lib/ro_commands/zeus.rb +18 -0
- data/lib/ro_commands/zeus_templates/custom_plan.rb +18 -0
- data/lib/ro_commands/zeus_templates/zeus.json +24 -0
- data/lib/ro_helper.rb +25 -0
- data/lib/shortcuts.rb +43 -0
- data/lib/spec_element.rb +24 -0
- data/lib/spec_element/describe.rb.erb +9 -0
- data/lib/tasks/roro_commands_tasks.rake +4 -0
- data/test/dummy/README.rdoc +28 -0
- data/test/dummy/Rakefile +6 -0
- data/test/dummy/app/assets/javascripts/application.js +13 -0
- data/test/dummy/app/assets/stylesheets/application.css +13 -0
- data/test/dummy/app/controllers/application_controller.rb +5 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/views/layouts/application.html.erb +14 -0
- data/test/dummy/bin/bundle +3 -0
- data/test/dummy/bin/rails +4 -0
- data/test/dummy/bin/rake +4 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/config/application.rb +23 -0
- data/test/dummy/config/boot.rb +5 -0
- data/test/dummy/config/database.yml +25 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +29 -0
- data/test/dummy/config/environments/production.rb +80 -0
- data/test/dummy/config/environments/test.rb +36 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/test/dummy/config/initializers/inflections.rb +16 -0
- data/test/dummy/config/initializers/mime_types.rb +5 -0
- data/test/dummy/config/initializers/secret_token.rb +12 -0
- data/test/dummy/config/initializers/session_store.rb +3 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +23 -0
- data/test/dummy/config/routes.rb +56 -0
- data/test/dummy/public/404.html +58 -0
- data/test/dummy/public/422.html +58 -0
- data/test/dummy/public/500.html +57 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/roro_commands_test.rb +7 -0
- data/test/test_helper.rb +15 -0
- metadata +235 -0
@@ -0,0 +1,21 @@
|
|
1
|
+
require "ro_commands/core_ext/string"
|
2
|
+
|
3
|
+
module RoCommands
|
4
|
+
class << self
|
5
|
+
def file_map
|
6
|
+
@meth_map.flatten! if @meth_map.respond_to?(:flatten!)
|
7
|
+
@meth_map.uniq! if @meth_map.respond_to?(:uniq!)
|
8
|
+
@meth_map ||= {}
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
files = Dir[File.join($lib, "ro_commands/**")].select do |f|
|
13
|
+
test(?f, f)
|
14
|
+
end.delete_if do |f|
|
15
|
+
f = File.basename(f)
|
16
|
+
f.match(%r{all|version|ro_helper|hook|out})
|
17
|
+
end
|
18
|
+
files.each_with_index do |file, i|
|
19
|
+
file_map[file.to_sym] = 8000 + i
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require_relative "out"
|
2
|
+
module Bash
|
3
|
+
def _bash(cmd)
|
4
|
+
cmd = handle_path(cmd)
|
5
|
+
result = `#{cmd}`
|
6
|
+
Out.out result
|
7
|
+
end
|
8
|
+
|
9
|
+
def handle_path(cmd)
|
10
|
+
r = cmd[/\/(\w|\/)*/]
|
11
|
+
if r
|
12
|
+
cmd.gsub! r, "\'#{r}\'"
|
13
|
+
else
|
14
|
+
cmd
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def bash(*cmds)
|
19
|
+
unless cmds.empty?
|
20
|
+
_bash(cmds.flatten.join(" && "))
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def bash_per(*cmds)
|
25
|
+
cmds.each do |c|
|
26
|
+
bash c
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def bash_lines(cmd)
|
31
|
+
bash(cmd).split("\n")
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
class Out
|
2
|
+
class << self
|
3
|
+
def out(msg)
|
4
|
+
m = msg
|
5
|
+
puts m
|
6
|
+
msgs << m
|
7
|
+
end
|
8
|
+
|
9
|
+
def reset
|
10
|
+
@msgs = []
|
11
|
+
end
|
12
|
+
|
13
|
+
def msgs
|
14
|
+
@msgs.flatten! if @msgs.respond_to?(:flatten!)
|
15
|
+
@msgs = [] if @msgs and @msgs.length > 999
|
16
|
+
@msgs ||= []
|
17
|
+
end
|
18
|
+
|
19
|
+
#class Msg
|
20
|
+
# def initialize(msg)
|
21
|
+
# @msg = msg
|
22
|
+
# end
|
23
|
+
#
|
24
|
+
# def to_s
|
25
|
+
# @msg
|
26
|
+
# end
|
27
|
+
#end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,102 @@
|
|
1
|
+
require "method_source"
|
2
|
+
module RoCommands
|
3
|
+
module Hook
|
4
|
+
class << self
|
5
|
+
def method_added(meth)
|
6
|
+
meths << meth
|
7
|
+
super
|
8
|
+
end
|
9
|
+
|
10
|
+
def meths
|
11
|
+
@meths ||= []
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def included?(base)
|
16
|
+
base.extend(ClassMethods)
|
17
|
+
end
|
18
|
+
|
19
|
+
module ClassMethods
|
20
|
+
def target
|
21
|
+
File.expand_path("../ro_commands", __FILE__)
|
22
|
+
end
|
23
|
+
|
24
|
+
def get_meth_blk(method)
|
25
|
+
r = self.method(method).source.split("\n")
|
26
|
+
meth_blk = Proc.new do
|
27
|
+
meth_ctn = (r - [r[0], r[-1]]).join("\n")
|
28
|
+
eval meth_ctn
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def ctn
|
33
|
+
@ctn ||= ""
|
34
|
+
end
|
35
|
+
|
36
|
+
def after_each
|
37
|
+
content << ctn
|
38
|
+
end
|
39
|
+
|
40
|
+
def content
|
41
|
+
@content ||= []
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
#class BashBuilder
|
49
|
+
# extend BashBuilderHelper::ClassMethods
|
50
|
+
#
|
51
|
+
# class << self
|
52
|
+
# def is_helper?(meth)
|
53
|
+
# BashBuilderHelper.meths.include?(meth)
|
54
|
+
# end
|
55
|
+
#
|
56
|
+
# def defined_meths
|
57
|
+
# @defined_meths ||= []
|
58
|
+
# end
|
59
|
+
#
|
60
|
+
# def singleton_method_added(method)
|
61
|
+
# unless method.to_s.match "singleton_method_added" or defined_meths.include?(method)
|
62
|
+
# defined_meths << method
|
63
|
+
# defined_meths.uniq!
|
64
|
+
# if self.respond_to?(:get_meth_blk)
|
65
|
+
# meth_blk = get_meth_blk(method)
|
66
|
+
# unless is_helper?(method)
|
67
|
+
# define_singleton_method method do |*args|
|
68
|
+
# meth_blk.call
|
69
|
+
# after_each
|
70
|
+
# end
|
71
|
+
# end
|
72
|
+
# end
|
73
|
+
# end
|
74
|
+
# end
|
75
|
+
#
|
76
|
+
# def set(shortcut, full, desc)
|
77
|
+
# ctn = <<-CONTENT
|
78
|
+
# CONTENT
|
79
|
+
# end
|
80
|
+
#
|
81
|
+
# def build
|
82
|
+
# dir = File.expand_path("../bash_templates", __FILE__)
|
83
|
+
# Dir[File.join(dir, '**')].each do |file|
|
84
|
+
# template(file)
|
85
|
+
# end
|
86
|
+
# write_into_bash_file
|
87
|
+
# end
|
88
|
+
#
|
89
|
+
# def template(name)
|
90
|
+
# path = File.expand_path("../bash_templates/#{name}", __FILE__)
|
91
|
+
# ctn = ERB.new(File.read(path)).result(binding)
|
92
|
+
# end
|
93
|
+
#
|
94
|
+
# def build_paths
|
95
|
+
# template("paths")
|
96
|
+
# end
|
97
|
+
#
|
98
|
+
# def write_into_bash_file
|
99
|
+
# File.write(target(), content)
|
100
|
+
# end
|
101
|
+
# end
|
102
|
+
#end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
require_relative "dsl/file"
|
2
|
+
module RoCommands
|
3
|
+
class Info < Base
|
4
|
+
include DSL::File
|
5
|
+
|
6
|
+
class RoFile
|
7
|
+
def initialize(path, size)
|
8
|
+
@path = path
|
9
|
+
@size = size
|
10
|
+
end
|
11
|
+
|
12
|
+
def path
|
13
|
+
@path ||= nil
|
14
|
+
end
|
15
|
+
|
16
|
+
def size
|
17
|
+
@size ||= nil
|
18
|
+
end
|
19
|
+
|
20
|
+
def to_s
|
21
|
+
"size:#{size}, path:#{path}"
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
desc 'file_size', ''
|
26
|
+
|
27
|
+
def file_size(path, recursive=false)
|
28
|
+
if recursive
|
29
|
+
find(path).each do |f|
|
30
|
+
files << RoFile.new(f, size(f))
|
31
|
+
end
|
32
|
+
puts files.sort_by(&:size)
|
33
|
+
else
|
34
|
+
Dir[File.join(path, "**")].each do |f|
|
35
|
+
if dir?(f)
|
36
|
+
s = find(f).inject(0) { |total_size, file_size| total_size += size(f) }
|
37
|
+
rf = RoFile.new(f, s)
|
38
|
+
else
|
39
|
+
rf = RoFile.new(f, size(f))
|
40
|
+
end
|
41
|
+
files << rf
|
42
|
+
end
|
43
|
+
|
44
|
+
puts files.sort_by(&:size)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
|
49
|
+
private
|
50
|
+
|
51
|
+
def files
|
52
|
+
@files ||= []
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,77 @@
|
|
1
|
+
require "find"
|
2
|
+
require "fileutils"
|
3
|
+
module RoCommands
|
4
|
+
class Misc < Base
|
5
|
+
|
6
|
+
desc 'rt', 'root find'
|
7
|
+
|
8
|
+
def root_find(keyword)
|
9
|
+
bash "find / -iname '*#{keyword}*'"
|
10
|
+
end
|
11
|
+
|
12
|
+
desc 'rc', 'railscasts find'
|
13
|
+
|
14
|
+
def railscasts_find(keyword)
|
15
|
+
|
16
|
+
bash "find /media/zxr/New-Volume/TDDOWNLOAD/railscasts/ -iname '*#{keyword}*'"
|
17
|
+
end
|
18
|
+
|
19
|
+
desc 'move_zip_to', 'move zip to another dir'
|
20
|
+
|
21
|
+
def move_zip_to(target_dir, keyword=".*", src='.')
|
22
|
+
filter = %r{#{keyword}}
|
23
|
+
Find.find(src) do |file|
|
24
|
+
if is_zip?(file) or is_rar?(file) and file.match filter
|
25
|
+
FileUtils.mv file, target_dir
|
26
|
+
end
|
27
|
+
|
28
|
+
unzip_r(target_dir)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
desc 'unzip_r', 'unzip all file twice'
|
33
|
+
|
34
|
+
def unzip_r(dir=".")
|
35
|
+
Dir.chdir dir
|
36
|
+
Find.find(Dir.pwd) do |file|
|
37
|
+
if test(?f, file)
|
38
|
+
try_zip(file)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
private
|
44
|
+
|
45
|
+
def old_dir
|
46
|
+
@old_dir ||= ''
|
47
|
+
end
|
48
|
+
|
49
|
+
def try_zip(file)
|
50
|
+
if is_zip?(file)
|
51
|
+
create_uncompressed_dir(file) do
|
52
|
+
bash "unzip -n #{file} -d #{dir}"
|
53
|
+
end
|
54
|
+
|
55
|
+
elsif is_rar?(file)
|
56
|
+
create_uncompressed_dir(file) do |dir|
|
57
|
+
bash "unrar x -o- #{file} #{dir}"
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
def is_rar?(file)
|
63
|
+
bash("unrar l #{file}")
|
64
|
+
end
|
65
|
+
|
66
|
+
def is_zip?(file)
|
67
|
+
bash("unzip -l #{file}")
|
68
|
+
end
|
69
|
+
|
70
|
+
def create_uncompressed_dir(zip_file)
|
71
|
+
dir = "#{File.basename zip_file}_inner"
|
72
|
+
FileUtils.mkpath dir
|
73
|
+
yield dir
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
@@ -0,0 +1,56 @@
|
|
1
|
+
require "ro_commands/helpers/out"
|
2
|
+
module RoCommands
|
3
|
+
class Navigate < Base
|
4
|
+
|
5
|
+
desc "get_dir", ""
|
6
|
+
|
7
|
+
def get_dir(name)
|
8
|
+
Find.find(File.join(ENV['HOME'], 'Dropbox')) do |f|
|
9
|
+
if test(?d, f)
|
10
|
+
if File.basename(f).match /^#{name}/
|
11
|
+
puts f
|
12
|
+
return
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
|
19
|
+
desc 'get_project', 'get project path according name'
|
20
|
+
|
21
|
+
def get_project(name, lan='ruby')
|
22
|
+
|
23
|
+
if lan == 'ruby'
|
24
|
+
projects = Dir[File.join ENV['PROJECTS'], '**']
|
25
|
+
elsif lan == 'java'
|
26
|
+
projects = Dir[File.join ENV['JAVA'], '**']
|
27
|
+
end
|
28
|
+
|
29
|
+
projects.each do |path|
|
30
|
+
dir = File.basename path
|
31
|
+
if dir == name
|
32
|
+
Out.reset
|
33
|
+
Out.out(path)
|
34
|
+
return
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
r = /^#{name.split('').join(".*")}.*/i
|
39
|
+
projects.each do |path|
|
40
|
+
dir = File.basename path
|
41
|
+
if dir[r]
|
42
|
+
Out.reset
|
43
|
+
Out.out(path)
|
44
|
+
return
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
private
|
50
|
+
|
51
|
+
def handle_drb_out
|
52
|
+
#Out.out "result:#{result} file:#{File.basename __FILE__} line:#{__LINE__}"
|
53
|
+
Out.msgs.grep(%r{/\w+}).first
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module RoCommands
|
2
|
+
class Processes < Base
|
3
|
+
desc 'kill KEYWORD', 'kill process with keyword'
|
4
|
+
def kill(keyword)
|
5
|
+
`ps aux | grep #{keyword}`.split("\n").each do |process|
|
6
|
+
puts process
|
7
|
+
pid = process.scan(/\d+/).first
|
8
|
+
bash "kill #{pid}"
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,210 @@
|
|
1
|
+
require_relative "base"
|
2
|
+
require_relative "git"
|
3
|
+
require_relative "ro_helper"
|
4
|
+
|
5
|
+
module RoCommands
|
6
|
+
class Rails < Base
|
7
|
+
|
8
|
+
class << self
|
9
|
+
def method_added(method)
|
10
|
+
super
|
11
|
+
unless method.match(%r{})
|
12
|
+
meths << method
|
13
|
+
end
|
14
|
+
meths.uniq!
|
15
|
+
end
|
16
|
+
|
17
|
+
def meths
|
18
|
+
@meths ||= []
|
19
|
+
end
|
20
|
+
|
21
|
+
def generators_map
|
22
|
+
@generators_map ||= {
|
23
|
+
scaffold: 's',
|
24
|
+
migration: 'm',
|
25
|
+
model: 'mo',
|
26
|
+
controller: 'c',
|
27
|
+
assets: 'a',
|
28
|
+
task: 't'
|
29
|
+
}
|
30
|
+
end
|
31
|
+
|
32
|
+
def set_shortcut_method(item)
|
33
|
+
class_eval do
|
34
|
+
#shortcut_item = generators_map[item.to_sym]
|
35
|
+
#desc usage(shortcut_item), describe('generate', item, shortcut_item)
|
36
|
+
#
|
37
|
+
#define_method shortcut_item.to_sym do |*args|
|
38
|
+
# send item.to_sym, *args
|
39
|
+
#end
|
40
|
+
|
41
|
+
#shortcut_item_d = "#{shortcut_item}_d"
|
42
|
+
#item_d = "#{item}_d"
|
43
|
+
#
|
44
|
+
#desc usage(shortcut_item_d), describe('destroy', item, shortcut_item_d)
|
45
|
+
#define_method shortcut_item_d.to_sym do |*args|
|
46
|
+
# send item_d.to_sym, *args
|
47
|
+
#end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
|
52
|
+
def items
|
53
|
+
@items ||= %w(migration scaffold model)
|
54
|
+
end
|
55
|
+
|
56
|
+
def items2
|
57
|
+
@items2 ||= %w(controller task assets)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
|
62
|
+
items.each do |i|
|
63
|
+
self.class_eval do
|
64
|
+
|
65
|
+
desc usage(i), describe('generate', i, generators_map[i.to_sym])
|
66
|
+
define_method i do |*args|
|
67
|
+
item_g(i, args)
|
68
|
+
end
|
69
|
+
|
70
|
+
#desc usage("#{i}_d"), describe('destroy', i, generators_map[i.to_sym])
|
71
|
+
#define_method "#{i}_d" do |name|
|
72
|
+
# item_d(i, name)
|
73
|
+
#end
|
74
|
+
set_shortcut_method i
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
|
79
|
+
#items2.each do |i|
|
80
|
+
#
|
81
|
+
# self.class_eval do
|
82
|
+
# desc usage(i), describe("generate", i, generators_map[i.to_sym])
|
83
|
+
# define_method i do |*args|
|
84
|
+
# item_g(i, args)
|
85
|
+
# end
|
86
|
+
#
|
87
|
+
# i_d = "#{i}_d"
|
88
|
+
# desc usage(i_d), describe("destroy", i, generators_map[i.to_sym])
|
89
|
+
# define_method i_d do |name|
|
90
|
+
# item_d(i, name)
|
91
|
+
# end
|
92
|
+
#
|
93
|
+
# set_shortcut_method i
|
94
|
+
# end
|
95
|
+
#end
|
96
|
+
desc usage("scaffolds"), ""
|
97
|
+
|
98
|
+
def scaffolds
|
99
|
+
get_controllers
|
100
|
+
end
|
101
|
+
|
102
|
+
desc usage("get_migrations"), ''
|
103
|
+
|
104
|
+
def get_migrations
|
105
|
+
Find.find('db/migrate').select do |f|
|
106
|
+
f.match(%r{rb$})
|
107
|
+
end.map do |f|
|
108
|
+
File.basename(f).gsub(%r(^\d+_), "")
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
desc usage("get_models"), ''
|
113
|
+
|
114
|
+
def get_models
|
115
|
+
get_rails_files('models')
|
116
|
+
end
|
117
|
+
|
118
|
+
desc usage("get_assets"), ''
|
119
|
+
|
120
|
+
def get_assets
|
121
|
+
get_files('assets') do |f|
|
122
|
+
f.match(%r{(js|coffee|scss|css)$})
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
desc usage("get_controllers"), ''
|
127
|
+
|
128
|
+
def get_controllers
|
129
|
+
get_rails_files('controllers')
|
130
|
+
end
|
131
|
+
|
132
|
+
|
133
|
+
private
|
134
|
+
|
135
|
+
def scaffold_g_for_spec(*args)
|
136
|
+
item_g "scaffold_for_spec", args
|
137
|
+
end
|
138
|
+
|
139
|
+
def scaffold_d_for_spec(name)
|
140
|
+
item_d "scaffold_for_spec", name
|
141
|
+
end
|
142
|
+
|
143
|
+
def item_d(item, name)
|
144
|
+
bash "zeus d #{item} #{name}"
|
145
|
+
end
|
146
|
+
|
147
|
+
def item_g(item, args)
|
148
|
+
cmd = args_parse(args.flatten, sql_type_dict)
|
149
|
+
bash "zeus g #{item} #{cmd}"
|
150
|
+
cmd
|
151
|
+
end
|
152
|
+
|
153
|
+
def args_parse(args, dict)
|
154
|
+
name = args.shift
|
155
|
+
options = get_options args.flatten
|
156
|
+
options = convert options, dict
|
157
|
+
|
158
|
+
cmd = name
|
159
|
+
options.each do |attr, type|
|
160
|
+
cmd = "#{cmd} #{attr}:#{type}"
|
161
|
+
end
|
162
|
+
cmd
|
163
|
+
end
|
164
|
+
|
165
|
+
def convert(options, dict)
|
166
|
+
parse_options(options, dict)
|
167
|
+
end
|
168
|
+
|
169
|
+
def sql_type_dict
|
170
|
+
{
|
171
|
+
i: "integer",
|
172
|
+
f: "float",
|
173
|
+
d: "double",
|
174
|
+
s: "string",
|
175
|
+
t: "text",
|
176
|
+
time: "time"
|
177
|
+
}
|
178
|
+
end
|
179
|
+
|
180
|
+
def app
|
181
|
+
@app.uniq! if @app.respond_to?(:uniq!)
|
182
|
+
@app ||= File.join(Dir.pwd, 'app')
|
183
|
+
end
|
184
|
+
|
185
|
+
def get_rails_files(dir)
|
186
|
+
get_files(dir) do |f|
|
187
|
+
f.match(%r{rb$})
|
188
|
+
end
|
189
|
+
end
|
190
|
+
|
191
|
+
def get_files(dir, &blk)
|
192
|
+
d = File.join(app, dir)
|
193
|
+
if test(?d, d)
|
194
|
+
files = Find.find(d).select &blk
|
195
|
+
files = files.map do |f|
|
196
|
+
File.basename(f).gsub(%r{\.(\w|\.)+$}, "")
|
197
|
+
end
|
198
|
+
puts files
|
199
|
+
files
|
200
|
+
end
|
201
|
+
end
|
202
|
+
|
203
|
+
def db
|
204
|
+
@db.uniq! if @db.respond_to?(:uniq!)
|
205
|
+
@db ||= File.join(Dir.pwd, 'db')
|
206
|
+
end
|
207
|
+
|
208
|
+
end
|
209
|
+
end
|
210
|
+
|