ensime_bridge 0.0.7 → 0.0.8

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.
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: