RailsEditor 0.0.21

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.
@@ -0,0 +1,40 @@
1
+ " Vim syntax file
2
+ " Language: eruby
3
+ " Maintainer: Michael Brailsford <brailsmt@yahoo.com>
4
+ " Installation:
5
+ " To automatilcally load this file when a .rhtml file is opened, add the
6
+ " following lines to ~/.vim/filetype.vim:
7
+ "
8
+ " augroup filetypedetect
9
+ " au! BufRead,BufNewFile *.rhtml setfiletype eruby
10
+ " augroup END
11
+ "
12
+ " You will have to restart vim for this to take effect. In any case it
13
+ " is a good idea to read ":he new-filetype" so that you know what is going
14
+ " on, and why the above lines work.
15
+
16
+ if version < 600
17
+ syntax clear
18
+ elseif exists("b:current_syntax")
19
+ finish
20
+ endif
21
+
22
+ "Source the html syntax file
23
+ ru! syntax/html.vim
24
+ "Set the filetype to html to load the html ftplugins
25
+ set ft=html
26
+ unlet b:current_syntax
27
+
28
+ "Put the ruby syntax file in @rubyTop
29
+ syn include @rubyTop syntax/ruby.vim
30
+
31
+ syn region erubyBlock matchgroup=erubyRubyDelim start=#<%=\?# end=#%># keepend containedin=ALL contains=@rubyTop,erubyEnd
32
+ syn region erubyComment start=+<%#+ end=#%># keepend
33
+ syn match erubyEnd #\<end\>#
34
+
35
+ " hi erubyBlock ctermbg=Gray
36
+ hi link erubyDelim delimiter
37
+ hi link erubyComment comment
38
+ hi link erubyEnd rubyControl
39
+
40
+ " vim: set ts=4 sw=4:
data/rails/.vimrc ADDED
@@ -0,0 +1,8 @@
1
+ try
2
+ source $REAL_HOME/.vimrc
3
+ catch /E484/
4
+ endtry
5
+ syntax on
6
+ set tabstop=2
7
+ set shiftwidth=2
8
+ set expandtab
@@ -0,0 +1,36 @@
1
+ Copyright 2005, by TJ Vanderpoel
2
+ Licensed under the Gnu Public License, which should be
3
+ included in licence/GPL.txt.
4
+
5
+ If you did not receive this licence file you can contact the author
6
+ for a copy at bougy dot man at gmail dot com, or see the latest
7
+ version at http://www.gnu.org/copyleft/gpl.html.
8
+
9
+ This is a little command wrapper for screen + vim to give
10
+ you a nice IDE session for rails development. Console junkies
11
+ should like it, but through the use of Escreen it can be
12
+ GUI friendly as well.
13
+
14
+ ./script/editor -? for usage (from a RAILS_ROOT).
15
+
16
+ BASIC USAGE
17
+
18
+ This is most likely only useful for console junkies, but may help for
19
+ any vim user in a pinch that has to make console edits (ssh or what-not).
20
+
21
+ On startup you'll have a variety of windows set up for rails development.
22
+ Many will have VIM sessions in File Browser mode, others will be shells dedicated
23
+ to a certain task. In Screen 1 you'll have a ./script/console session that
24
+ will restart itself on exit. The ide gets more powerful for experienced 'screen'
25
+ users with split screen modes and other goodies.
26
+
27
+ Screen bindkey is default here (ctrl-a), so (ctrl-a 1) will get to screen 1 (irb)
28
+ ctrl-a ? will list all your bindings. man screen for more information.
29
+
30
+ SPLIT SCREEN
31
+
32
+ A new caption line will appear when you split screens in 'screen' (ctrl-a S). At
33
+ this time there is no way to remove the hardstatus global statusline automatically,
34
+ so i've bound F8 and F9 to turning on and off (respectively) the hardstatus line
35
+ to avoid duplicate statusbars.
36
+
@@ -0,0 +1,28 @@
1
+ bindkey -k k8 hardstatus alwayslastline
2
+ bindkey -k k9 hardstatus alwaysignore
3
+ sessionname <%= OPTIONS[:screen_name] %>
4
+ <% if OPTIONS[:multiuser] %>
5
+ multiuser on
6
+ <% OPTIONS[:usernames].each do |username| %>
7
+ acladd <%= username %>
8
+ <% end %>
9
+ <% end %>
10
+ hardstatus alwayslastline "%{= <%= OPTIONS[:background_color] + OPTIONS[:foreground_color] %>} %-Lw%50>%{= <%= OPTIONS[:background_color] + OPTIONS[:highlight_color] %>}%n%f* %{= <%= OPTIONS[:background_color] + OPTIONS[:foreground_color] %>}%t%+Lw%<"
11
+
12
+ caption splitonly "%{= <%= OPTIONS[:caption_background_color] + OPTIONS[:caption_foreground_color] %>} %-Lw%50>%{= <%= OPTIONS[:caption_background_color] + OPTIONS[:caption_highlight_color] %>}%n%f* %{= <%= OPTIONS[:caption_background_color] + OPTIONS[:caption_foreground_color] %>}%t%+Lw%<"
13
+
14
+ shell <%= OPTIONS[:shell] %>
15
+ chdir <%= $home %>
16
+ screen -t logs bash -c 'umask 002;while true;do cd <%= $home %>/log; <%= OPTIONS[:shell] %>;sleep 1;done'
17
+ screen -t irb bash -c 'umask 002;while true;do script/console <%= OPTIONS[:environment] %>;sleep 1;done'
18
+ screen -t ide bash -c 'umask 002;while true;do vim -c "cd <%= $home %>" -c "e .";sleep 1;done'
19
+ <% if not OPTIONS[:reports_base].nil? %>
20
+ screen -t reports bash -c 'umask 002;while true;do vim -c "cd <%= OPTIONS[:reports_base] %>" -c "e .";sleep 1;done'
21
+ <% end %>
22
+ screen -t controllers bash -c 'umask 002;while true;do vim -c "cd <%= OPTIONS[:controllers_base] %>" -c "e .";sleep 1;done'
23
+ screen -t views bash -c 'umask 002;while true;do vim -c "cd <%= OPTIONS[:views_base] %>" -c "e .";sleep 1;done'
24
+ screen -t helpers bash -c 'umask 002;while true;do vim -c "cd <%= OPTIONS[:helpers_base] %>" -c "e .";sleep 1;done'
25
+ screen -t models bash -c 'umask 002;while true;do vim -c "cd <%= OPTIONS[:models_base] %>" -c "e .";sleep 1;done'
26
+ screen -t svnwork bash -c 'umask 002;while true; do <%= OPTIONS[:shell] %>;sleep 1;done'
27
+ screen -t script bash -c 'umask 002;while true;do <%= OPTIONS[:shell] %>;sleep 2;done'
28
+ screen -t tests bash -c 'umask 002;while true;do cd <%= OPTIONS[:test_base] %>;<%= OPTIONS[:shell] %>;sleep 1;done'
@@ -0,0 +1,137 @@
1
+ #!/usr/bin/env ruby
2
+ require "erb"
3
+ require "optparse"
4
+ $old_home = ENV['HOME']
5
+ $home = ENV['PWD']
6
+ ENV['HOME'] = $home
7
+ ENV['REAL_HOME'] = $old_home
8
+ OPTIONS = {
9
+ :directory => $home,
10
+ :environment => "development",
11
+ :public => $home + "/public/",
12
+ :controllers_base => $home + "/app/controllers/",
13
+ :views_base => $home + "/app/views/",
14
+ :models_base => $home + "/app/models/",
15
+ :reports_base => $home + "/vendor/rrvc/reports/",
16
+ :helpers_base => $home + "/app/helpers/",
17
+ :apis_base => $home + "/app/api/",
18
+ :test_base => $home + "/test/"
19
+ }
20
+ _orig = OPTIONS.dup
21
+ def screen_color(color)
22
+ return color[0,1].capitalize unless color == 'black'
23
+ 'K'
24
+ end
25
+
26
+ # Parse options
27
+ ARGV.options do |opts|
28
+ script_name = File.basename($0)
29
+ opts.banner = "Usage: ruby #{script_name} [options] <template>"
30
+
31
+ opts.separator ""
32
+ OPTIONS.each do |key,opt|
33
+ s = key.to_s
34
+ f = "-" + s[0,1]
35
+ o = "--" + s[/[a-z]+/] + "=" + ( s == "environment" ? "environment" : "directory" )
36
+ d = "Rails " + s.gsub("_"," ").split.map { |a| a.capitalize }.join(" ")
37
+ opts.on(f,o,String,d,"Default: #{opt}") { |OPTIONS[key]| }
38
+ end
39
+
40
+ opts.separator ""
41
+
42
+ opts.on("-S shell", "--shell=SHELL",String,
43
+ "Shell to use for command line","Default: bash") { |OPTIONS[:shell]| }
44
+ opts.on("-M", "--multiuser","Allow other users to access this screen?","Default: no") { |OPTIONS[:multiuser]| }
45
+ opts.on("-U USERNAMES", "--usernames=USERNAMES",String,
46
+ "Add comma-separated list of trusted users to be able to access this screen","Default: none") { |users| OPTIONS[:usernames] = users.split(',') }
47
+ opts.on("-C component", "--component_base=component",String,
48
+ "Use dirs for this component","Default: ''") { |OPTIONS[:component_base]| }
49
+ opts.separator ""
50
+ opts.on("-Fforeground_color", "--fgcolor=COLOR",String,
51
+ "Foreground Color of Status Line Text","Default: red") { |color| OPTIONS[:foreground_color] = screen_color(color) }
52
+ opts.on("-Hhighlight_color", "--hilight=COLOR",String,
53
+ "Foreground Color of Active Window Text","Default: green") { |color| OPTIONS[:highlight_color] = screen_color(color) }
54
+ opts.on("-Bbackground_color", "--bgcolor=COLOR",String,
55
+ "Background Color of Status Line","Default: transparent (default)") { |color| OPTIONS[:background_color] = screen_color(color) }
56
+ opts.on("-Xcaption_bgcolor", "--caption_bgcolor=COLOR",String,
57
+ "Background Color of Caption Line (when screen is split)","Default: transparent (default)") { |color| OPTIONS[:caption_background_color] = screen_color(color) }
58
+ opts.on("-Ycaption_foreground_color", "--caption_fgcolor=COLOR",String,
59
+ "Foreground Color of Caption Line Text","Default: cyan") { |color| OPTIONS[:caption_foreground_color] = screen_color(color) }
60
+ opts.on("-Zcaption_highlight_color", "--caption_hilight=COLOR",String,
61
+ "Foreground Color of Caption line Active Window Text","Default: red") { |color| OPTIONS[:caption_highlight_color] = screen_color(color) }
62
+ opts.separator "Available colors are black, red, green, yellow, blue, magenta, cyan, white, and default (transparent)"
63
+ opts.on("-Nname", "--name=NAME",String,
64
+ "Name to use for screen session","Default: Rails") { |OPTIONS[:screen_name]| }
65
+ opts.on("-?", "--help",
66
+ "Show this help message.") { puts opts; exit }
67
+ opts.parse!
68
+ end
69
+ OPTIONS[:multiuser] ||= false
70
+ OPTIONS[:usernames] ||= []
71
+ OPTIONS[:screen_name] ||= "Rails"
72
+ OPTIONS[:foreground_color] ||= 'R'
73
+ OPTIONS[:background_color] ||= 'd'
74
+ OPTIONS[:highlight_color] ||= 'G'
75
+ OPTIONS[:caption_foreground_color] ||= 'C'
76
+ OPTIONS[:caption_background_color] ||= 'd'
77
+ OPTIONS[:caption_highlight_color] ||= 'R'
78
+ OPTIONS[:shell] ||= 'bash'
79
+
80
+ begin
81
+
82
+ # Standard erb template
83
+ erb_template = $home + "/config/.screenrc.code.erb"
84
+
85
+ # What screen template to use
86
+ template = ARGV[0] || "basic"
87
+
88
+ # Don't need report screen if we aren't working on reports
89
+ OPTIONS[:reports_base] = nil if not template == "reports"
90
+
91
+ # Add the component path to views/controllers/helpers
92
+ if c = OPTIONS[:component_base]
93
+ [:controllers_base,:views_base,:helpers_base].each do |k|
94
+ OPTIONS[k] << c if OPTIONS[k] == _orig[k]
95
+ end
96
+ end
97
+
98
+ # Set template spefific options
99
+ case template
100
+ when "custom"
101
+ raise "Must specify full template path for custom" if not ARGV[1]
102
+ raise "Must specify full template path for custom" if not File.exists? ARGV[1]
103
+ erb_template = ARGV[1]
104
+ when "reports"
105
+ raise "Must Specify Component for reports" if not OPTIONS[:component_base]
106
+ OPTIONS[:helpers_base] = OPTIONS[:reports_base] + "helpers/" unless OPTIONS[:helpers_base] != (_orig[:helpers_base] + OPTIONS[:component_base])
107
+ OPTIONS[:views_base] << ("/" + OPTIONS[:component_base] + "_reports/") unless OPTIONS[:views_base] != (_orig[:views_base] + OPTIONS[:component_base])
108
+ end
109
+
110
+ # Check for valid directories
111
+ raise "Must Have a rails tree in #{$home}" if not FileTest.directory? $home
112
+ raise "Must Have a rails tree in #{OPTIONS[:public]}" if not FileTest.directory? OPTIONS[:public]
113
+ raise "Must Have a rails tree in #{OPTIONS[:views_base]}" if not FileTest.directory? OPTIONS[:views_base]
114
+ raise "Must Have a rails tree in #{OPTIONS[:models_base]}" if not FileTest.directory? OPTIONS[:models_base]
115
+ raise "Must Have a rails tree in #{OPTIONS[:helpers_base]}" if not FileTest.directory? OPTIONS[:helpers_base]
116
+ raise "Must Have a rails tree in #{OPTIONS[:controllers_base]}" if not FileTest.directory? OPTIONS[:controllers_base]
117
+
118
+ # Parse the template, save it as a .screenrc.code-USERNAME
119
+ erb = ERB.new(File.read(erb_template))
120
+ output = erb.result(binding)
121
+ screenfile = $home + "/.screenrc-" + (ENV['USER'] || "Bozo")
122
+ File.open(screenfile,"w+") { |file| file.puts output }
123
+
124
+ # Make symlinks
125
+ %x{ln -sf #{screenfile} #{$old_home}/.screenrc.code }
126
+ %x{ln -sf #{screenfile} #{$home}/.screenrc.code }
127
+ Dir.chdir($home)
128
+
129
+ # Start a screen with the newly linked .screenrc.code
130
+ exec("screen","-c#{File.basename(screenfile)}","-S","rails")
131
+
132
+ rescue => e
133
+ require "pp"
134
+ pp OPTIONS
135
+ puts e
136
+ end
137
+
@@ -0,0 +1 @@
1
+ require "rubyunit"
metadata ADDED
@@ -0,0 +1,66 @@
1
+ --- !ruby/object:Gem::Specification
2
+ rubygems_version: 0.8.11
3
+ specification_version: 1
4
+ name: RailsEditor
5
+ version: !ruby/object:Gem::Version
6
+ version: 0.0.21
7
+ date: 2005-11-17 00:00:00 -06:00
8
+ summary: A screen + vim IDE setup for editing a Rails tree
9
+ require_paths:
10
+ - lib
11
+ email: admins@rubyists.com
12
+ homepage: http://rubyists.com
13
+ rubyforge_project:
14
+ description:
15
+ autorequire: rails-editor
16
+ default_executable:
17
+ bindir: bin
18
+ has_rdoc: false
19
+ required_ruby_version: !ruby/object:Gem::Version::Requirement
20
+ requirements:
21
+ -
22
+ - ">"
23
+ - !ruby/object:Gem::Version
24
+ version: 0.0.0
25
+ version:
26
+ platform: ruby
27
+ signing_key:
28
+ cert_chain:
29
+ authors:
30
+ - Rubyists.com (bougyman,deathsyn,trey)
31
+ files:
32
+ - rails/script
33
+ - rails/config
34
+ - rails/README.rails-editor
35
+ - rails/script/editor
36
+ - bin/RailsEditor
37
+ - tests/ts_rails_editor.rb
38
+ - lib/rails-editor.rb
39
+ - rails/.vim/syntax
40
+ - rails/.vim/filetype.vim
41
+ - rails/.vim/syntax/eruby.vim
42
+ - rails/.vimrc
43
+ - rails/config/.screenrc.code.erb
44
+ - README.rails-editor
45
+ - INSTALL
46
+ test_files:
47
+ - tests/ts_rails_editor.rb
48
+ rdoc_options: []
49
+ extra_rdoc_files:
50
+ - README.rails-editor
51
+ - INSTALL
52
+ executables:
53
+ - RailsEditor
54
+ extensions: []
55
+ requirements: []
56
+ dependencies:
57
+ - !ruby/object:Gem::Dependency
58
+ name: rails
59
+ version_requirement:
60
+ version_requirements: !ruby/object:Gem::Version::Requirement
61
+ requirements:
62
+ -
63
+ - ">"
64
+ - !ruby/object:Gem::Version
65
+ version: 0.0.0
66
+ version: