zeus-rails23 0.1.0
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/Gemfile +4 -0
- data/Gemfile.lock +13 -0
- data/README.md +1 -0
- data/lib/zeus/rails23/plan.rb +132 -0
- data/lib/zeus/rails23/version.rb +5 -0
- data/zeus-rails23.gemspec +17 -0
- metadata +66 -0
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
data/README.md
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
Working: server, rake, console
|
@@ -0,0 +1,132 @@
|
|
1
|
+
ROOT_PATH = File.expand_path(Dir.pwd)
|
2
|
+
ENV_PATH = File.expand_path('config/environment', ROOT_PATH)
|
3
|
+
BOOT_PATH = File.expand_path('config/boot', ROOT_PATH)
|
4
|
+
|
5
|
+
require 'zeus'
|
6
|
+
|
7
|
+
module Zeus::Rails23
|
8
|
+
class Plan < Zeus::Plan
|
9
|
+
def boot
|
10
|
+
require BOOT_PATH
|
11
|
+
end
|
12
|
+
|
13
|
+
def after_fork
|
14
|
+
reconnect_activerecord
|
15
|
+
restart_girl_friday
|
16
|
+
reconnect_redis
|
17
|
+
end
|
18
|
+
|
19
|
+
def default_bundle;end
|
20
|
+
|
21
|
+
def prerake
|
22
|
+
require 'rake'
|
23
|
+
end
|
24
|
+
|
25
|
+
def rake
|
26
|
+
Rake.application.run
|
27
|
+
end
|
28
|
+
|
29
|
+
def development_environment
|
30
|
+
load_env('development')
|
31
|
+
load_bundler_env :development
|
32
|
+
|
33
|
+
@irb = begin
|
34
|
+
require 'irb'
|
35
|
+
::IRB.instance_eval do
|
36
|
+
@CONF[:LOAD_MODULES] ||= []
|
37
|
+
@CONF[:LOAD_MODULES] << 'irb/completion'
|
38
|
+
@CONF[:LOAD_MODULES] << '%( -r "#{RAILS_ROOT}/config/environment")'
|
39
|
+
@CONF[:LOAD_MODULES] << 'console_app'
|
40
|
+
@CONF[:LOAD_MODULES] << 'console_with_helpers'
|
41
|
+
end
|
42
|
+
|
43
|
+
IRB
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def server
|
48
|
+
require 'commands/server'
|
49
|
+
end
|
50
|
+
|
51
|
+
def console
|
52
|
+
@irb.start
|
53
|
+
end
|
54
|
+
|
55
|
+
protected
|
56
|
+
def load_env(env)
|
57
|
+
ENV['RAILS_ENV'] = env
|
58
|
+
require ENV_PATH
|
59
|
+
::Rails.instance_eval{ @_env = ::ActiveSupport::StringInquirer.new(env) }
|
60
|
+
load_bundler_env env
|
61
|
+
end
|
62
|
+
|
63
|
+
def load_bundler_env(env)
|
64
|
+
@bundler ||= Hash.new{|hash, env| hash[env] = !!::Bundler.require(env) }
|
65
|
+
@bundler[env.to_sym]
|
66
|
+
end
|
67
|
+
|
68
|
+
def _monkeypatch_rake
|
69
|
+
require 'rake/testtask'
|
70
|
+
Rake::TestTask.class_eval {
|
71
|
+
|
72
|
+
# Create the tasks defined by this task lib.
|
73
|
+
def define
|
74
|
+
desc "Run tests" + (@name==:test ? "" : " for #{@name}")
|
75
|
+
task @name do
|
76
|
+
# ruby "#{ruby_opts_string} #{run_code} #{file_list_string} #{option_list}"
|
77
|
+
rails_env = ENV['RAILS_ENV']
|
78
|
+
rubyopt = ENV['RUBYOPT']
|
79
|
+
ENV['RAILS_ENV'] = nil
|
80
|
+
ENV['RUBYOPT'] = nil # bundler sets this to require bundler :|
|
81
|
+
puts "zeus test #{file_list_string}"
|
82
|
+
system "zeus test #{file_list_string}"
|
83
|
+
ENV['RAILS_ENV'] = rails_env
|
84
|
+
ENV['RUBYOPT'] = rubyopt
|
85
|
+
end
|
86
|
+
self
|
87
|
+
end
|
88
|
+
|
89
|
+
alias_method :_original_define, :define
|
90
|
+
|
91
|
+
def self.inherited(klass)
|
92
|
+
return unless klass.name == "TestTaskWithoutDescription"
|
93
|
+
klass.class_eval {
|
94
|
+
def self.method_added(sym)
|
95
|
+
class_eval do
|
96
|
+
if !@rails_hack_reversed
|
97
|
+
@rails_hack_reversed = true
|
98
|
+
alias_method :define, :_original_define
|
99
|
+
def desc(*)
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
104
|
+
}
|
105
|
+
end
|
106
|
+
}
|
107
|
+
end
|
108
|
+
|
109
|
+
def restart_girl_friday
|
110
|
+
return unless defined?(GirlFriday::WorkQueue)
|
111
|
+
# The Actor is run in a thread, and threads don't persist post-fork.
|
112
|
+
# We just need to restart each one in the newly-forked process.
|
113
|
+
ObjectSpace.each_object(GirlFriday::WorkQueue) do |obj|
|
114
|
+
obj.send(:start)
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
def reconnect_activerecord
|
119
|
+
ActiveRecord::Base.clear_all_connections! rescue nil
|
120
|
+
ActiveRecord::Base.establish_connection rescue nil
|
121
|
+
end
|
122
|
+
|
123
|
+
def reconnect_redis
|
124
|
+
return unless defined?(Redis::Client)
|
125
|
+
ObjectSpace.each_object(Redis::Client) do |client|
|
126
|
+
client.connect
|
127
|
+
end
|
128
|
+
end
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
132
|
+
Zeus.plan = Zeus::Rails23::Plan.new
|
@@ -0,0 +1,17 @@
|
|
1
|
+
$:.unshift File.join(__FILE__, '..', 'lib')
|
2
|
+
require "zeus/rails23/version"
|
3
|
+
|
4
|
+
Gem::Specification.new do |s|
|
5
|
+
s.name = "zeus-rails23"
|
6
|
+
s.version = ::Zeus::Rails23::VERSION
|
7
|
+
s.authors = ["Tyler Smith"]
|
8
|
+
s.email = 'tylersmith.me@gmail.com'
|
9
|
+
s.homepage = 'http://tylersmith.me'
|
10
|
+
s.summary = %q{Rails 2.3 support for Zeus}
|
11
|
+
s.description = %q{Provides a Zeus plan for Rails 2.3 - partially working}
|
12
|
+
|
13
|
+
s.files = `git ls-files`.split("\n")
|
14
|
+
s.require_paths = ["lib"]
|
15
|
+
|
16
|
+
s.add_runtime_dependency 'zeus'
|
17
|
+
end
|
metadata
ADDED
@@ -0,0 +1,66 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: zeus-rails23
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Tyler Smith
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-09-28 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: zeus
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
30
|
+
description: Provides a Zeus plan for Rails 2.3 - partially working
|
31
|
+
email: tylersmith.me@gmail.com
|
32
|
+
executables: []
|
33
|
+
extensions: []
|
34
|
+
extra_rdoc_files: []
|
35
|
+
files:
|
36
|
+
- Gemfile
|
37
|
+
- Gemfile.lock
|
38
|
+
- README.md
|
39
|
+
- lib/zeus/rails23/plan.rb
|
40
|
+
- lib/zeus/rails23/version.rb
|
41
|
+
- zeus-rails23.gemspec
|
42
|
+
homepage: http://tylersmith.me
|
43
|
+
licenses: []
|
44
|
+
post_install_message:
|
45
|
+
rdoc_options: []
|
46
|
+
require_paths:
|
47
|
+
- lib
|
48
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
55
|
+
none: false
|
56
|
+
requirements:
|
57
|
+
- - ! '>='
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: '0'
|
60
|
+
requirements: []
|
61
|
+
rubyforge_project:
|
62
|
+
rubygems_version: 1.8.23
|
63
|
+
signing_key:
|
64
|
+
specification_version: 3
|
65
|
+
summary: Rails 2.3 support for Zeus
|
66
|
+
test_files: []
|