ensime_bridge 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/ensime_bridge.rb +36 -27
  2. metadata +1 -1
@@ -32,8 +32,8 @@ class EnsimeBridge
32
32
  end
33
33
  @ensime = Ensime.new(path)
34
34
  @queue = Queue.new
35
- @logger = Logger.new((File.exists?(@cache)?@cache:"/tmp/") +
36
- "bridge.log", 2, 100000)
35
+ Dir.mkdir @cache if not File.exists?(@cache)
36
+ @logger = Logger.new(@cache+"bridge.log", 2, 100000)
37
37
  end
38
38
  def remote_stop
39
39
  if is_running?
@@ -86,41 +86,37 @@ class EnsimeBridge
86
86
  @logger.info result.gsub("\n", "")
87
87
  return true
88
88
  end
89
- def run
90
- return if @no_ensime_config
91
- @ensime.quiet = quiet
92
- @ensime.run
93
- if is_running?
94
- @logger.info "bridge is already running"
95
- return
96
- end
97
- wait_for_ensime
98
- @logger.info "ensime is ready"
89
+ def run_ensime_connection
99
90
  Thread.new do
100
91
  EventMachine.run do
101
92
  connect_to_ensime
102
93
  end
103
94
  end
95
+ end
96
+ def send_command command
97
+ while true
98
+ result = nil
99
+ @logger.info "command: #{command}"
100
+ if command.start_with? "{"
101
+ @logger.info "direct send #{command}"
102
+ @socket.send command
103
+ else
104
+ result = instance_eval command
105
+ end
106
+ if command == "unqueue"
107
+ break if not send_result result
108
+ else
109
+ break
110
+ end
111
+ end
112
+ end
113
+ def run_forwarder
104
114
  server = TCPServer.new "localhost", 0
105
115
  File.write(@bridge_file, server.addr[1])
106
116
  while @client = server.accept
107
117
  begin
108
118
  command = @client.readline.chomp
109
- while true
110
- result = nil
111
- @logger.info "command: #{command}"
112
- if command.start_with? "{"
113
- @logger.info "direct send #{command}"
114
- @socket.send command
115
- else
116
- result = instance_eval command
117
- end
118
- if command == "unqueue"
119
- break if not send_result result
120
- else
121
- break
122
- end
123
- end
119
+ send_command command
124
120
  @client.close
125
121
  rescue => e
126
122
  @logger.error e
@@ -128,5 +124,18 @@ class EnsimeBridge
128
124
  end
129
125
  end
130
126
  end
127
+ def run
128
+ return if @no_ensime_config
129
+ @ensime.quiet = quiet
130
+ @ensime.run
131
+ if is_running?
132
+ @logger.info "bridge is already running"
133
+ return
134
+ end
135
+ wait_for_ensime
136
+ @logger.info "ensime is ready"
137
+ run_ensime_connection
138
+ run_forwarder
139
+ end
131
140
  end
132
141
  EnsimeBridge.new(ARGV.size == 0 ? ".ensime" : ARGV[0]).run if __FILE__ == $0
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ensime_bridge
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: