mongrel_console 0.2
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.
- data/COPYING +1 -0
- data/LICENSE +1 -0
- data/README +5 -0
- data/Rakefile +38 -0
- data/lib/mongrel_console/console.rb +83 -0
- data/lib/mongrel_console/init.rb +27 -0
- data/resources/defaults.yaml +2 -0
- data/tools/rakehelp.rb +105 -0
- metadata +71 -0
data/COPYING
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
No copying restrictions/license given.
|
data/LICENSE
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
No license given.
|
data/README
ADDED
data/Rakefile
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
require 'rake'
|
2
|
+
require 'rake/testtask'
|
3
|
+
require 'rake/clean'
|
4
|
+
require 'rake/gempackagetask'
|
5
|
+
require 'rake/rdoctask'
|
6
|
+
require 'tools/rakehelp'
|
7
|
+
require 'fileutils'
|
8
|
+
include FileUtils
|
9
|
+
|
10
|
+
setup_tests
|
11
|
+
setup_clean ["pkg", "lib/*.bundle", "*.gem", ".config"]
|
12
|
+
|
13
|
+
setup_rdoc ['README', 'LICENSE', 'COPYING', 'lib/**/*.rb', 'doc/**/*.rdoc']
|
14
|
+
|
15
|
+
desc "Does a full compile, test run"
|
16
|
+
task :default => [:test, :package]
|
17
|
+
|
18
|
+
version="0.2"
|
19
|
+
name="mongrel_console"
|
20
|
+
|
21
|
+
setup_gem(name, version) do |spec|
|
22
|
+
spec.summary = "Provides a combined Mongrel and Rails IRB console."
|
23
|
+
spec.description = spec.summary
|
24
|
+
spec.author="Zed A. Shaw"
|
25
|
+
spec.add_dependency('gem_plugin', '>= 0.2.1')
|
26
|
+
spec.add_dependency('mongrel', '>= 0.3.11')
|
27
|
+
spec.files += Dir.glob("resources/**/*")
|
28
|
+
end
|
29
|
+
|
30
|
+
|
31
|
+
task :install => [:test, :package] do
|
32
|
+
sh %{gem install pkg/#{name}-#{version}.gem}
|
33
|
+
end
|
34
|
+
|
35
|
+
task :uninstall => [:clean] do
|
36
|
+
sh %{gem uninstall #{name}}
|
37
|
+
end
|
38
|
+
|
@@ -0,0 +1,83 @@
|
|
1
|
+
require "irb"
|
2
|
+
begin
|
3
|
+
require "irb/completion"
|
4
|
+
rescue
|
5
|
+
STDERR.puts "Problem lading irb/completion: #$!"
|
6
|
+
end
|
7
|
+
require 'rubygems'
|
8
|
+
require 'yaml'
|
9
|
+
require 'mongrel/rails'
|
10
|
+
require 'config/environment'
|
11
|
+
require 'dispatcher'
|
12
|
+
require 'mongrel/debug'
|
13
|
+
require 'net/http'
|
14
|
+
|
15
|
+
class MongrelConsoleRunner
|
16
|
+
|
17
|
+
def initialize
|
18
|
+
@port = 3000
|
19
|
+
@env = "development"
|
20
|
+
end
|
21
|
+
|
22
|
+
def tail(file="log/#{@env}.log")
|
23
|
+
STDERR.puts "Tailing #{file}. CTRL-C to stop it."
|
24
|
+
|
25
|
+
cursor = File.size(file)
|
26
|
+
last_checked = Time.now
|
27
|
+
tail_thread = Thread.new do
|
28
|
+
File.open(file, 'r') do |f|
|
29
|
+
loop do
|
30
|
+
if f.mtime > last_checked
|
31
|
+
f.seek cursor
|
32
|
+
last_checked = f.mtime
|
33
|
+
contents = f.read
|
34
|
+
cursor += contents.length
|
35
|
+
print contents
|
36
|
+
end
|
37
|
+
sleep 1
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
trap("INT") { tail_thread.kill }
|
43
|
+
tail_thread.join
|
44
|
+
nil
|
45
|
+
end
|
46
|
+
|
47
|
+
def start(port=@port, env=@env)
|
48
|
+
`mongrel_rails start #{port} #{env} -d`
|
49
|
+
end
|
50
|
+
|
51
|
+
def stop
|
52
|
+
`mongrel_rails stop`
|
53
|
+
end
|
54
|
+
|
55
|
+
def restart(port=@port, env=@env)
|
56
|
+
stop
|
57
|
+
start(port, env)
|
58
|
+
end
|
59
|
+
|
60
|
+
def status
|
61
|
+
if File.exist? "log/mongrel.pid"
|
62
|
+
pid = open("log/mongrel.pid") {|f| f.read.to_i }
|
63
|
+
puts "Running on port #@port in env #@env with PID #{pid}"
|
64
|
+
else
|
65
|
+
puts "Mongrel not running."
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
def get(url="/")
|
70
|
+
Net::HTTP.get("localhost", url, @port)
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
|
75
|
+
$mongrel = MongrelConsoleRunner.new
|
76
|
+
puts "Starting console. mongrel.[start | stop | restart | status | tail | get]"
|
77
|
+
$mongrel.status
|
78
|
+
|
79
|
+
def self.mongrel
|
80
|
+
$mongrel
|
81
|
+
end
|
82
|
+
|
83
|
+
IRB.start(__FILE__)
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'gem_plugin'
|
3
|
+
require 'mongrel'
|
4
|
+
|
5
|
+
class Console < GemPlugin::Plugin "/commands"
|
6
|
+
include Mongrel::Command::Base
|
7
|
+
|
8
|
+
def configure
|
9
|
+
options [
|
10
|
+
['-c', '--chdir DIR', "Change to directory before running", :@dir, "."]
|
11
|
+
]
|
12
|
+
end
|
13
|
+
|
14
|
+
def validate
|
15
|
+
valid_dir? @dir, "Directory is not valid"
|
16
|
+
return @valid
|
17
|
+
end
|
18
|
+
|
19
|
+
def run
|
20
|
+
begin
|
21
|
+
Dir.chdir @dir
|
22
|
+
load File.join(File.dirname(__FILE__), "console.rb")
|
23
|
+
rescue Object
|
24
|
+
STDERR.puts "Cannot run the console script: #$!"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
data/tools/rakehelp.rb
ADDED
@@ -0,0 +1,105 @@
|
|
1
|
+
|
2
|
+
def make(makedir)
|
3
|
+
Dir.chdir(makedir) do
|
4
|
+
sh(PLATFORM =~ /win32/ ? 'nmake' : 'make')
|
5
|
+
end
|
6
|
+
end
|
7
|
+
|
8
|
+
|
9
|
+
def extconf(dir)
|
10
|
+
Dir.chdir(dir) do ruby "extconf.rb" end
|
11
|
+
end
|
12
|
+
|
13
|
+
|
14
|
+
def setup_tests
|
15
|
+
Rake::TestTask.new do |t|
|
16
|
+
t.libs << "test"
|
17
|
+
t.test_files = FileList['test/test*.rb']
|
18
|
+
t.verbose = true
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
|
23
|
+
def setup_clean otherfiles
|
24
|
+
files = ['build/*', '**/*.o', '**/*.so', '**/*.a', 'lib/*-*', '**/*.log'] + otherfiles
|
25
|
+
CLEAN.include(files)
|
26
|
+
end
|
27
|
+
|
28
|
+
|
29
|
+
def setup_rdoc files
|
30
|
+
Rake::RDocTask.new do |rdoc|
|
31
|
+
rdoc.rdoc_dir = 'doc/rdoc'
|
32
|
+
rdoc.options << '--line-numbers'
|
33
|
+
rdoc.rdoc_files.add(files)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
|
38
|
+
def setup_extension(dir, extension)
|
39
|
+
ext = "ext/#{dir}"
|
40
|
+
ext_so = "#{ext}/#{extension}.#{Config::CONFIG['DLEXT']}"
|
41
|
+
ext_files = FileList[
|
42
|
+
"#{ext}/*.c",
|
43
|
+
"#{ext}/*.h",
|
44
|
+
"#{ext}/extconf.rb",
|
45
|
+
"#{ext}/Makefile",
|
46
|
+
"lib"
|
47
|
+
]
|
48
|
+
|
49
|
+
task "lib" do
|
50
|
+
directory "lib"
|
51
|
+
end
|
52
|
+
|
53
|
+
desc "Builds just the #{extension} extension"
|
54
|
+
task extension.to_sym => ["#{ext}/Makefile", ext_so ]
|
55
|
+
|
56
|
+
file "#{ext}/Makefile" => ["#{ext}/extconf.rb"] do
|
57
|
+
extconf "#{ext}"
|
58
|
+
end
|
59
|
+
|
60
|
+
file ext_so => ext_files do
|
61
|
+
make "#{ext}"
|
62
|
+
cp ext_so, "lib"
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
|
67
|
+
def base_gem_spec(pkg_name, pkg_version)
|
68
|
+
pkg_version = pkg_version
|
69
|
+
pkg_name = pkg_name
|
70
|
+
pkg_file_name = "#{pkg_name}-#{pkg_version}"
|
71
|
+
Gem::Specification.new do |s|
|
72
|
+
s.name = pkg_name
|
73
|
+
s.version = pkg_version
|
74
|
+
s.platform = Gem::Platform::RUBY
|
75
|
+
s.has_rdoc = true
|
76
|
+
s.extra_rdoc_files = [ "README" ]
|
77
|
+
|
78
|
+
s.files = %w(COPYING LICENSE README Rakefile) +
|
79
|
+
Dir.glob("{bin,doc/rdoc,test,lib}/**/*") +
|
80
|
+
Dir.glob("ext/**/*.{h,c,rb}") +
|
81
|
+
Dir.glob("examples/**/*.rb") +
|
82
|
+
Dir.glob("tools/*.rb")
|
83
|
+
|
84
|
+
s.require_path = "lib"
|
85
|
+
s.extensions = FileList["ext/**/extconf.rb"].to_a
|
86
|
+
s.bindir = "bin"
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
def setup_gem(pkg_name, pkg_version)
|
91
|
+
spec = base_gem_spec(pkg_name, pkg_version)
|
92
|
+
yield spec if block_given?
|
93
|
+
|
94
|
+
Rake::GemPackageTask.new(spec) do |p|
|
95
|
+
p.gem_spec = spec
|
96
|
+
p.need_tar = true
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
def setup_win32_gem(pkg_name, pkg_version)
|
101
|
+
spec = base_gem_spec(pkg_name, pkg_version)
|
102
|
+
yield spec if block_given?
|
103
|
+
|
104
|
+
Gem::Builder.new(spec).build
|
105
|
+
end
|
metadata
ADDED
@@ -0,0 +1,71 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
rubygems_version: 0.9.0
|
3
|
+
specification_version: 1
|
4
|
+
name: mongrel_console
|
5
|
+
version: !ruby/object:Gem::Version
|
6
|
+
version: "0.2"
|
7
|
+
date: 2007-01-19 00:00:00 -08:00
|
8
|
+
summary: Provides a combined Mongrel and Rails IRB console.
|
9
|
+
require_paths:
|
10
|
+
- lib
|
11
|
+
email:
|
12
|
+
homepage:
|
13
|
+
rubyforge_project:
|
14
|
+
description: Provides a combined Mongrel and Rails IRB console.
|
15
|
+
autorequire:
|
16
|
+
default_executable:
|
17
|
+
bindir: bin
|
18
|
+
has_rdoc: true
|
19
|
+
required_ruby_version: !ruby/object:Gem::Version::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">"
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 0.0.0
|
24
|
+
version:
|
25
|
+
platform: ruby
|
26
|
+
signing_key:
|
27
|
+
cert_chain:
|
28
|
+
post_install_message:
|
29
|
+
authors:
|
30
|
+
- Zed A. Shaw
|
31
|
+
files:
|
32
|
+
- COPYING
|
33
|
+
- LICENSE
|
34
|
+
- README
|
35
|
+
- Rakefile
|
36
|
+
- lib/mongrel_console
|
37
|
+
- lib/mongrel_console/console.rb
|
38
|
+
- lib/mongrel_console/init.rb
|
39
|
+
- tools/rakehelp.rb
|
40
|
+
- resources/defaults.yaml
|
41
|
+
test_files: []
|
42
|
+
|
43
|
+
rdoc_options: []
|
44
|
+
|
45
|
+
extra_rdoc_files:
|
46
|
+
- README
|
47
|
+
executables: []
|
48
|
+
|
49
|
+
extensions: []
|
50
|
+
|
51
|
+
requirements: []
|
52
|
+
|
53
|
+
dependencies:
|
54
|
+
- !ruby/object:Gem::Dependency
|
55
|
+
name: gem_plugin
|
56
|
+
version_requirement:
|
57
|
+
version_requirements: !ruby/object:Gem::Version::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.2.1
|
62
|
+
version:
|
63
|
+
- !ruby/object:Gem::Dependency
|
64
|
+
name: mongrel
|
65
|
+
version_requirement:
|
66
|
+
version_requirements: !ruby/object:Gem::Version::Requirement
|
67
|
+
requirements:
|
68
|
+
- - ">="
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: 0.3.11
|
71
|
+
version:
|