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,78 @@
|
|
1
|
+
module RoCommands
|
2
|
+
class Refactor < Base
|
3
|
+
desc 'rename', ''
|
4
|
+
|
5
|
+
def rename(from, to)
|
6
|
+
_rename(from, to)
|
7
|
+
_rename(from.camelize, to.camelize)
|
8
|
+
end
|
9
|
+
|
10
|
+
private
|
11
|
+
|
12
|
+
def _rename(from, to)
|
13
|
+
return if from == to
|
14
|
+
if from.is_a?(String) and to.is_a?(String)
|
15
|
+
fs =find('.')
|
16
|
+
fs.each do |f|
|
17
|
+
if test(?f, f)
|
18
|
+
sub_file(f, from, to)
|
19
|
+
else
|
20
|
+
sub_dir(f, from, to)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
def sub_dir(f, from, to)
|
29
|
+
parent, basename = parent_basename(f)
|
30
|
+
sub_basename(parent, basename, from, to)
|
31
|
+
end
|
32
|
+
|
33
|
+
def sub_file(f, from, to)
|
34
|
+
parent, basename, ctn = parent_basename_ctn(f)
|
35
|
+
if basename.match from
|
36
|
+
basename = sub_basename(parent, basename, from, to)
|
37
|
+
end
|
38
|
+
|
39
|
+
begin
|
40
|
+
r = ctn[/\b#{from}\b/]
|
41
|
+
rescue => e
|
42
|
+
puts "Unknown content in #{f}"
|
43
|
+
puts e
|
44
|
+
end
|
45
|
+
|
46
|
+
if r
|
47
|
+
puts "substitute in #{basename}, from #{from} to #{to}"
|
48
|
+
new_ctn = ctn.gsub whole_match(from), ''
|
49
|
+
File.write File.join(parent, basename), new_ctn
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
def sub_basename(parent, basename, from, to)
|
54
|
+
new_name = basename.gsub(from, to)
|
55
|
+
puts "rename from #{basename} to #{new_name}"
|
56
|
+
FileUtils.mv(File.join(parent, basename), File.join(parent, new_name))
|
57
|
+
basename = new_name
|
58
|
+
end
|
59
|
+
|
60
|
+
def whole_match(from)
|
61
|
+
/\b#{from}\b/
|
62
|
+
end
|
63
|
+
|
64
|
+
private
|
65
|
+
|
66
|
+
def parent_basename_ctn(file)
|
67
|
+
parent, basename = parent_basename(file)
|
68
|
+
ctn = File.read file
|
69
|
+
return parent, basename, ctn
|
70
|
+
end
|
71
|
+
|
72
|
+
def parent_basename(file)
|
73
|
+
parent = File.dirname file
|
74
|
+
basename = File.basename file
|
75
|
+
return parent, basename
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
@@ -0,0 +1,76 @@
|
|
1
|
+
# gotchas: please use extend ::RoCommands::RoHelper, make sure module first extend 'method_added' method
|
2
|
+
# example:
|
3
|
+
#
|
4
|
+
#module TryHelper
|
5
|
+
# extend ::RoCommands::RoHelper
|
6
|
+
# class << self
|
7
|
+
# def _template_in_self
|
8
|
+
#
|
9
|
+
# end
|
10
|
+
# end
|
11
|
+
#
|
12
|
+
# def _template_in_normal
|
13
|
+
#
|
14
|
+
# end
|
15
|
+
#end
|
16
|
+
|
17
|
+
module RoCommands
|
18
|
+
module RoHelper
|
19
|
+
|
20
|
+
class << self
|
21
|
+
def included(base)
|
22
|
+
base.extend(ClassMethods)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
module ClassMethods
|
27
|
+
|
28
|
+
def meth_feature
|
29
|
+
%r{^_}
|
30
|
+
end
|
31
|
+
|
32
|
+
def meths
|
33
|
+
@meths.uniq! if @meths.respond_to?(:uniq!)
|
34
|
+
@meths ||= []
|
35
|
+
end
|
36
|
+
|
37
|
+
def method_added(meth)
|
38
|
+
super
|
39
|
+
#puts "method:#{meth}"
|
40
|
+
def_meth(meth)
|
41
|
+
end
|
42
|
+
|
43
|
+
|
44
|
+
def singleton_method_added(meth)
|
45
|
+
super
|
46
|
+
#puts "singleton_method:#{meth}"
|
47
|
+
def_meth(meth, 'singleton')
|
48
|
+
end
|
49
|
+
|
50
|
+
def def_meth(meth, meth_type=nil)
|
51
|
+
meth = meth.to_s
|
52
|
+
if defined?(meth_feature) and meth.match(meth_feature)
|
53
|
+
if meth.match(%r{_})
|
54
|
+
new_method = meth.to_s.sub(%r{_}, "")
|
55
|
+
|
56
|
+
if meth_type == 'singleton'
|
57
|
+
define_singleton_method new_method.to_sym do |*args|
|
58
|
+
before_each if defined? before_each
|
59
|
+
send(meth.to_sym, *args)
|
60
|
+
after_each if defined? after_each
|
61
|
+
end
|
62
|
+
else
|
63
|
+
define_method new_method.to_sym do |*args|
|
64
|
+
before_each if defined? before_each
|
65
|
+
send(meth.to_sym, *args)
|
66
|
+
after_each if defined? after_each
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
@@ -0,0 +1,106 @@
|
|
1
|
+
module RoCommands
|
2
|
+
class RoProcs < Base
|
3
|
+
attr_accessor :rps
|
4
|
+
|
5
|
+
desc 'grep_and_return_pids', ''
|
6
|
+
|
7
|
+
desc 'pids keywords', 'get pids with keywords'
|
8
|
+
|
9
|
+
def pids(*keywords)
|
10
|
+
rps_with keywords
|
11
|
+
pids = procs.map do |rp|
|
12
|
+
rp.instance_variable_get(:@pid)
|
13
|
+
end
|
14
|
+
create_table
|
15
|
+
puts pids
|
16
|
+
pids
|
17
|
+
end
|
18
|
+
|
19
|
+
desc 'grep', ''
|
20
|
+
|
21
|
+
def grep(*keywords)
|
22
|
+
rps_with(keywords)
|
23
|
+
create_table
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
class RoProc
|
29
|
+
|
30
|
+
def to_s
|
31
|
+
row = []
|
32
|
+
[:@user, :@pid, :@pmem, :@pcpu, :@command].each do |iv|
|
33
|
+
row << ("%-10s" % self.instance_variable_get(iv))
|
34
|
+
end
|
35
|
+
row.join
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
|
41
|
+
def create_table
|
42
|
+
r = %w(user pid pmem pcpu command).map do |heading|
|
43
|
+
"%-10s"%heading
|
44
|
+
end.join
|
45
|
+
puts r
|
46
|
+
puts procs.sort_by { |p| p.instance_variable_get "@#{sort}".to_sym }
|
47
|
+
puts r
|
48
|
+
end
|
49
|
+
|
50
|
+
def procs
|
51
|
+
@procs ||= []
|
52
|
+
end
|
53
|
+
|
54
|
+
def sort
|
55
|
+
@sort ||= "pcpu"
|
56
|
+
end
|
57
|
+
|
58
|
+
def rps_with(keywords)
|
59
|
+
parse
|
60
|
+
if keywords
|
61
|
+
keywords.each do |keyword|
|
62
|
+
search(keyword)
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
|
68
|
+
def search(keyword)
|
69
|
+
r = Regexp.new keyword
|
70
|
+
procs.each do |rp|
|
71
|
+
command= rp.instance_variable_get(:@command)
|
72
|
+
|
73
|
+
unless command[r]
|
74
|
+
procs - [rp]
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
def parse
|
80
|
+
attrs = %w(user pid pmem pcpu command)
|
81
|
+
ps ||= `ps -eo #{attrs.join(",")}`
|
82
|
+
_ps = ps.split("\n")
|
83
|
+
attr_names = _ps.shift.split(/\s+/)
|
84
|
+
_ps.each do |p|
|
85
|
+
rp = RoProc.new
|
86
|
+
p[/\/\w+/]
|
87
|
+
attr_values = p.scan(/[^\s]+/)
|
88
|
+
attr_names[0..3].each_with_index do |attr_name, index|
|
89
|
+
command = attr_values[index]
|
90
|
+
attr_name = attr_name.gsub(/%/, 'p').downcase
|
91
|
+
rp.instance_variable_set "@#{attr_name}".to_sym, attr_values[index]
|
92
|
+
end
|
93
|
+
|
94
|
+
command_value = get_command_value attr_values
|
95
|
+
rp.instance_variable_set :@command, command_value
|
96
|
+
|
97
|
+
procs << rp
|
98
|
+
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
def get_command_value(attr_values)
|
103
|
+
r = attr_values[4..-1].join(" ")
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module RoCommands
|
2
|
+
class Rubymine < Base
|
3
|
+
desc 'open', 'open one project'
|
4
|
+
def open(project_name = '.')
|
5
|
+
puts "opening #{project_name}"
|
6
|
+
bash "rubymine #{project_name}"
|
7
|
+
end
|
8
|
+
|
9
|
+
desc 'open_multi_projects', 'open multi projects'
|
10
|
+
def open_multi_projects(*project_names)
|
11
|
+
project_names.each do |name|
|
12
|
+
open(name)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
@@ -0,0 +1,67 @@
|
|
1
|
+
module RoCommands
|
2
|
+
class Shortcuts < Base
|
3
|
+
|
4
|
+
desc usage("work"), ''
|
5
|
+
|
6
|
+
def work
|
7
|
+
action("zeus start")
|
8
|
+
bx "rake sunspot:solr:run"
|
9
|
+
bx "spork"
|
10
|
+
bx "guard"
|
11
|
+
end
|
12
|
+
|
13
|
+
private
|
14
|
+
|
15
|
+
def bx(cmd)
|
16
|
+
action "bundle exec #{cmd}"
|
17
|
+
end
|
18
|
+
|
19
|
+
def action(cmd, postpone=0.012)
|
20
|
+
a_action(cmd)
|
21
|
+
change_tab_name(cmd)
|
22
|
+
new_tab
|
23
|
+
sleep postpone
|
24
|
+
end
|
25
|
+
|
26
|
+
def a_action(name)
|
27
|
+
type name
|
28
|
+
enter
|
29
|
+
end
|
30
|
+
|
31
|
+
def change_tab_name(name)
|
32
|
+
key 'f2'
|
33
|
+
type name
|
34
|
+
enter
|
35
|
+
end
|
36
|
+
|
37
|
+
def enter
|
38
|
+
key 'KP_Enter'
|
39
|
+
end
|
40
|
+
|
41
|
+
def new_tab
|
42
|
+
bash 'xdotool key ctrl+t'
|
43
|
+
end
|
44
|
+
|
45
|
+
def key(name)
|
46
|
+
if name.match(%r{(f|F)\d{1,2}})
|
47
|
+
name.capitalize!
|
48
|
+
end
|
49
|
+
bash "xdotool key #{name}"
|
50
|
+
end
|
51
|
+
|
52
|
+
def translate(name)
|
53
|
+
|
54
|
+
end
|
55
|
+
|
56
|
+
def dict
|
57
|
+
{
|
58
|
+
enter: "KP_Enter"
|
59
|
+
}
|
60
|
+
end
|
61
|
+
|
62
|
+
def type(str)
|
63
|
+
bash "xdotool type '#{str}'"
|
64
|
+
end
|
65
|
+
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require "find"
|
2
|
+
require "fileutils"
|
3
|
+
module RoCommands
|
4
|
+
class Zeus < Base
|
5
|
+
desc usage("init"), ""
|
6
|
+
|
7
|
+
def init
|
8
|
+
Find.find(File.expand_path("../zeus_templates", __FILE__)) do |f|
|
9
|
+
if test(?f, f)
|
10
|
+
to = File.basename f
|
11
|
+
puts "FileUtils.cp #{f}, #{to}"
|
12
|
+
FileUtils.cp f, to
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'zeus/rails'
|
2
|
+
require "ro_commands/rails"
|
3
|
+
|
4
|
+
class CustomPlan < Zeus::Rails
|
5
|
+
|
6
|
+
def rails
|
7
|
+
RoCommands::Rails.start
|
8
|
+
end
|
9
|
+
# def my_custom_command
|
10
|
+
# # see https://github.com/burke/zeus/blob/master/docs/ruby/modifying.md
|
11
|
+
# end
|
12
|
+
|
13
|
+
def git_flow
|
14
|
+
RoCommands::GitFlow.start
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
Zeus.plan = CustomPlan.new
|
@@ -0,0 +1,24 @@
|
|
1
|
+
{
|
2
|
+
"command": "ruby -rubygems -r./custom_plan -eZeus.go",
|
3
|
+
|
4
|
+
"plan": {
|
5
|
+
"boot": {
|
6
|
+
"default_bundle": {
|
7
|
+
"development_environment": {
|
8
|
+
"rails":["rails"],
|
9
|
+
"git_flow":["git_flow"],
|
10
|
+
"prerake": {"rake": []},
|
11
|
+
"console": ["c"],
|
12
|
+
"server": ["s"],
|
13
|
+
"generate": ["g"],
|
14
|
+
"destroy": ["d"],
|
15
|
+
"dbconsole": []
|
16
|
+
},
|
17
|
+
"test_environment": {
|
18
|
+
"cucumber_environment": {"cucumber": []},
|
19
|
+
"test_helper": {"test": ["rspec", "testrb"]}
|
20
|
+
}
|
21
|
+
}
|
22
|
+
}
|
23
|
+
}
|
24
|
+
}
|
data/lib/ro_helper.rb
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
module RoHelper
|
2
|
+
class Cmd
|
3
|
+
attr_accessor :shortcut, :cmd, :suggestion
|
4
|
+
|
5
|
+
def initialize(shortcut, cmd, suggestion=nil)
|
6
|
+
@shortcut = shortcut
|
7
|
+
@cmd = cmd
|
8
|
+
@suggestion = suggestion
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def cmd(*args)
|
13
|
+
cmds << Cmd.new(*args)
|
14
|
+
end
|
15
|
+
|
16
|
+
def cmds
|
17
|
+
@cmds.flatten! if @cmds.respond_to?(:flatten!)
|
18
|
+
@cmds.uniq! if @cmds.respond_to?(:uniq!)
|
19
|
+
@cmds ||= []
|
20
|
+
end
|
21
|
+
|
22
|
+
def cmd_objs
|
23
|
+
|
24
|
+
end
|
25
|
+
end
|