duoconsole 0.1.2 → 0.1.3
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/lib/duoconsole.rb +24 -12
- metadata +2 -2
data/lib/duoconsole.rb
CHANGED
@@ -13,7 +13,6 @@ class Duoconsole
|
|
13
13
|
create_socket_pair
|
14
14
|
fork_child
|
15
15
|
load_application
|
16
|
-
initialize_command_client
|
17
16
|
start_console
|
18
17
|
end
|
19
18
|
|
@@ -25,6 +24,7 @@ class Duoconsole
|
|
25
24
|
end
|
26
25
|
|
27
26
|
require 'commands'
|
27
|
+
monkeypatch_commands_gem
|
28
28
|
end
|
29
29
|
|
30
30
|
def create_socket_pair
|
@@ -36,7 +36,6 @@ class Duoconsole
|
|
36
36
|
Rails.env = ENV['RAILS_ENV'] = ENV['RACK_ENV'] = 'test'
|
37
37
|
|
38
38
|
load_application
|
39
|
-
monkeypatch_test_environment
|
40
39
|
|
41
40
|
trap(:INT) {
|
42
41
|
# Ignore. This process needs to stay alive until the parent process exits
|
@@ -70,29 +69,42 @@ class Duoconsole
|
|
70
69
|
Rails.application.require_environment!
|
71
70
|
end
|
72
71
|
|
73
|
-
def initialize_command_client
|
74
|
-
ConsoleDelegation.command_client = CommandClient.new(parent_socket)
|
75
|
-
end
|
76
|
-
|
77
72
|
def start_console
|
78
73
|
require 'rails/commands/console'
|
79
74
|
require 'rails/console/app'
|
75
|
+
ConsoleDelegation.duoconsole = self
|
80
76
|
Rails::ConsoleMethods.send :include, ConsoleDelegation
|
81
77
|
Rails::Console.start(Rails.application)
|
82
78
|
end
|
83
79
|
|
84
|
-
def
|
80
|
+
def command_client
|
81
|
+
@command_client ||= CommandClient.new(parent_socket)
|
82
|
+
end
|
83
|
+
|
84
|
+
def monkeypatch_commands_gem
|
85
85
|
Rails::Commands::TestEnvironment.module_eval do
|
86
86
|
# Overriding this method to add the following behavior:
|
87
87
|
# 1. fix issue with Postgres adapter and forking behavior
|
88
88
|
# 2. trap INT signal and exit
|
89
89
|
def fork
|
90
|
-
|
90
|
+
clear_active_record_connections
|
91
|
+
|
91
92
|
Rails::Commands::Environment.fork do
|
92
93
|
setup_for_test
|
93
|
-
|
94
|
+
|
95
|
+
trap(:INT) {
|
96
|
+
$stderr.flush
|
97
|
+
exit
|
98
|
+
}
|
94
99
|
|
95
100
|
yield
|
101
|
+
|
102
|
+
clear_active_record_connections
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
def clear_active_record_connections
|
107
|
+
if defined? ActiveRecord
|
96
108
|
ActiveRecord::Base.clear_active_connections!
|
97
109
|
end
|
98
110
|
end
|
@@ -165,12 +177,12 @@ class Duoconsole
|
|
165
177
|
|
166
178
|
|
167
179
|
module ConsoleDelegation
|
168
|
-
def self.
|
169
|
-
@@
|
180
|
+
def self.duoconsole= dc
|
181
|
+
@@duoconsole = dc
|
170
182
|
end
|
171
183
|
|
172
184
|
def testenv
|
173
|
-
@@command_client
|
185
|
+
@@duoconsole.command_client
|
174
186
|
end
|
175
187
|
|
176
188
|
def test *args
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: duoconsole
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-01-01 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|