zeus-rails23 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+ source "http://gems.github.com"
3
+
4
+ gem 'zeus'
@@ -0,0 +1,13 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ remote: http://gems.github.com/
4
+ specs:
5
+ method_source (0.8)
6
+ zeus (0.12.0)
7
+ method_source (>= 0.6.7)
8
+
9
+ PLATFORMS
10
+ ruby
11
+
12
+ DEPENDENCIES
13
+ zeus
@@ -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,5 @@
1
+ module Zeus
2
+ module Rails23
3
+ VERSION = '0.1.0'
4
+ end
5
+ end
@@ -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: []