Sha256: 55b3d2c7623098d2cf89945e4a2ab0c99971f2e039fe8ed581b911d482c0680c

Contents?: true

Size: 1.49 KB

Versions: 17

Compression:

Stored size: 1.49 KB

Contents

require "forwardable"
require "jruby-jars"
require "filetree"
require "rsense/server/path_info"
require_relative "./runner"

module Rsense
  module Client
    class Daemon
      extend Forwardable
      attr_accessor :classpath, :external_args, :argslist, :rsense_home, :rsense_lib, :rsense_bin, :runner

      def_delegators :@runner, :start, :stop, :restart

      def initialize(args=[])
        @external_args = args
        @rsense_home = rsense_home
        @rsense_lib = rsense_lib
        @rsense_bin = rsense_bin
        @argslist = build_argslist()
        @runner = Rsense::Client::Runner.new(@argslist)
        set_gem_path_env(gem_path)
      end

      def build_argslist
        java_args + jruby_args(@external_args)
      end

      def classpath
        @classpath ||= [
            JRubyJars.core_jar_path,
            JRubyJars.stdlib_jar_path
          ].join(File::PATH_SEPARATOR)
      end

      def rsense_home
        Rsense::Server::PathInfo::RSENSE_SERVER_HOME
      end

      def rsense_lib
        @rsense_home.join("lib").to_s
      end

      def rsense_bin
        Rsense::Server::PathInfo.bin_path.to_s
      end

      def gem_path
        Gem.path.join(File::PATH_SEPARATOR)
      end

      def set_gem_path_env(gp)
        ENV["GEM_PATH"] = gp
      end

      def java_args
        ["env", "java", "-cp", classpath, "org.jruby.Main"]
      end

      def jruby_args(cli_args=[])
        cli_args ||= [""]
        ["-I#{@rsense_lib}", @rsense_bin] + cli_args
      end

    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
rsense-0.5.18 lib/rsense/client/daemon.rb
rsense-0.5.16 lib/rsense/client/daemon.rb
rsense-0.5.15 lib/rsense/client/daemon.rb
rsense-0.5.14 lib/rsense/client/daemon.rb
rsense-0.5.13 lib/rsense/client/daemon.rb
rsense-0.5.12 lib/rsense/client/daemon.rb
rsense-0.5.11 lib/rsense/client/daemon.rb
rsense-0.5.10 lib/rsense/client/daemon.rb
rsense-0.5.9 lib/rsense/client/daemon.rb
rsense-0.5.8 lib/rsense/client/daemon.rb
rsense-0.5.7 lib/rsense/client/daemon.rb
rsense-0.5.6 lib/rsense/client/daemon.rb
rsense-0.5.5 lib/rsense/client/daemon.rb
rsense-0.5.4 lib/rsense/client/daemon.rb
rsense-0.5.3 lib/rsense/client/daemon.rb
rsense-0.5.1 lib/rsense/client/daemon.rb
rsense-0.5.0 lib/rsense/client/daemon.rb