ensime_bridge 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/bin/ensime_bridge CHANGED
@@ -1,6 +1,12 @@
1
1
  #!/usr/bin/env ruby
2
2
  require 'ensime_bridge'
3
+ quiet = false
4
+ if ARGV[0] == "--quiet"
5
+ ARGV.shift
6
+ quiet = true
7
+ end
3
8
  bridge = EnsimeBridge.new(ARGV.size < 2 ? ".ensime" : ARGV[1])
9
+ bridge.quiet = quiet
4
10
  if ARGV.size > 1 and ARGV[0] == "stop"
5
11
  bridge.remote_stop
6
12
  else
data/lib/ensime.rb CHANGED
@@ -2,6 +2,7 @@
2
2
  require 'fileutils'
3
3
  require 'socket'
4
4
  class Ensime
5
+ attr_accessor :quiet
5
6
  def is_running?
6
7
  port_path = @conf_path + "_cache/http"
7
8
  return false if not File.exists? port_path
@@ -13,6 +14,7 @@ class Ensime
13
14
  true
14
15
  end
15
16
  def initialize conf_path
17
+ @quiet = false
16
18
  @conf_path = conf_path
17
19
  @conf = Hash[File.read(conf_path).gsub("\n", "").gsub(
18
20
  "(", " ").gsub(")", " ").gsub('"', "").split(" :").collect do |x|
@@ -59,7 +61,6 @@ EOF
59
61
  Dir.chdir dir do
60
62
  log = `sbt saveClasspath`
61
63
  end
62
- puts log
63
64
  end
64
65
  classpath = File.read classpath_file
65
66
  classpath + ":#{@conf['java-home']}/lib/tools.jar"
@@ -69,8 +70,11 @@ EOF
69
70
  puts "ensime is already running"
70
71
  else
71
72
  FileUtils.mkdir_p @conf['cache-dir']
72
- @pid = Process.spawn "#{@conf['java-home']}/bin/java #{@conf['java-flags']} \
73
- -cp #{get_classpath} -Densime.config=#{@conf_path} org.ensime.server.Server"
73
+ out = quiet ? "/dev/null" : STDOUT
74
+ @pid = Process.spawn(
75
+ "#{@conf['java-home']}/bin/java #{@conf['java-flags']} \
76
+ -cp #{get_classpath} -Densime.config=#{@conf_path} org.ensime.server.Server",
77
+ :out => out)
74
78
  end
75
79
  self
76
80
  end
data/lib/ensime_bridge.rb CHANGED
@@ -5,7 +5,7 @@ require 'thread'
5
5
  require 'base64'
6
6
  require_relative 'ensime'
7
7
  class EnsimeBridge
8
- attr_accessor :socket
8
+ attr_accessor :socket, :quiet
9
9
  attr_reader :cache
10
10
  def get_socket file
11
11
  TCPSocket.open("localhost", File.read(file).chomp)
@@ -21,7 +21,8 @@ class EnsimeBridge
21
21
  true
22
22
  end
23
23
  def initialize path
24
- @ensime = Ensime.new(path).run
24
+ @ensime = Ensime.new(path)
25
+ @quiet = false
25
26
  @cache = "#{path}_cache/"
26
27
  @queue = Queue.new
27
28
  @bridge_file = "#{@cache}bridge"
@@ -36,26 +37,29 @@ class EnsimeBridge
36
37
  @ensime.stop
37
38
  exit
38
39
  end
40
+ def log what
41
+ Kernel.puts what.to_s if not quiet
42
+ end
39
43
  def connect_to_ensime
40
44
  url = "ws://127.0.0.1:#{File.read("#{@cache}http").chomp}/jerky"
41
45
  @socket = WebSocket::EventMachine::Client.connect(:uri => url)
42
46
  @socket.onopen do
43
- puts "Connected!"
47
+ log "Connected!"
44
48
  end
45
49
  @socket.onerror do |err|
46
- p err
50
+ log err
47
51
  end
48
52
  @socket.onmessage do |msg, type|
49
- puts "Received message: #{msg}, type #{type}"
53
+ log "Received message: #{msg}, type #{type}"
50
54
  @queue << msg
51
55
  end
52
56
  @socket.onclose do |code, reason|
53
- puts "Disconnected with status code: #{code} #{reason}"
57
+ log "Disconnected with status code: #{code} #{reason}"
54
58
  end
55
59
  end
56
60
  def json packet
57
61
  s = packet.to_json
58
- Kernel.puts " to server => #{s}"
62
+ log " to server => #{s}"
59
63
  @socket.send s
60
64
  end
61
65
  def req message
@@ -76,12 +80,14 @@ class EnsimeBridge
76
80
  end
77
81
  end
78
82
  def run
83
+ @ensime.quiet = quiet
84
+ @ensime.run
79
85
  if is_running?
80
- puts "bridge is already running"
86
+ log "bridge is already running"
81
87
  return
82
88
  end
83
89
  wait_for_ensime
84
- puts "ensime is ready"
90
+ log "ensime is ready"
85
91
  Thread.new do
86
92
  EventMachine.run do
87
93
  connect_to_ensime
@@ -101,15 +107,15 @@ class EnsimeBridge
101
107
  @client.puts "nil"
102
108
  break
103
109
  end
104
- puts result.gsub("\n", "")
110
+ log result.gsub("\n", "")
105
111
  else
106
112
  break
107
113
  end
108
114
  end
109
115
  @client.close
110
116
  rescue => e
111
- p e
112
- puts e.backtrace
117
+ log e
118
+ log e.backtrace
113
119
  end
114
120
  end
115
121
  end
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.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: