ensime_bridge 0.0.2 → 0.0.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/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: