ro_commands 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
|