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 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: []