Sha256: abbfa8111985a5d2cd4a3407ea30bc5ad6d0c0abf1add6c2ca45bc568d9cfc1f

Contents?: true

Size: 1.12 KB

Versions: 184

Compression:

Stored size: 1.12 KB

Contents

# encoding: utf-8
require "logstash/api/service"
require "logstash/api/commands/system/basicinfo_command"
require "logstash/api/commands/system/plugins_command"
require "logstash/api/commands/stats"
require "logstash/api/commands/node"
require "logstash/api/commands/default_metadata"


module LogStash
  module Api
    class CommandFactory
      attr_reader :factory, :service

      def initialize(service)
        @service = service
        @factory = {
          :system_basic_info => ::LogStash::Api::Commands::System::BasicInfo,
          :plugins_command => ::LogStash::Api::Commands::System::Plugins,
          :stats => ::LogStash::Api::Commands::Stats,
          :node => ::LogStash::Api::Commands::Node,
          :default_metadata => ::LogStash::Api::Commands::DefaultMetadata
        }
      end

      def build(*klass_path)
        # Get a nested path with args like (:parent, :child)
        klass = klass_path.reduce(factory) {|acc,v| acc[v]}

        if klass
          klass.new(service)
        else
          raise ArgumentError, "Class path '#{klass_path}' does not map to command!"
        end
      end
    end
  end
end

Version data entries

184 entries across 181 versions & 14 rubygems

Version Path
logstash-core-6.8.23-java lib/logstash/api/command_factory.rb
logstash-core-6.8.22-java lib/logstash/api/command_factory.rb
logstash-core-6.8.21-java lib/logstash/api/command_factory.rb
logstash-core-6.8.20-java lib/logstash/api/command_factory.rb
logstash-output-scalyr-0.2.1.beta vendor/bundle/jruby/2.5.0/gems/logstash-core-5.6.4-java/lib/logstash/api/command_factory.rb
logstash-core-6.8.19-java lib/logstash/api/command_factory.rb
logstash-output-scalyr-0.2.0 vendor/bundle/jruby/2.5.0/gems/logstash-core-5.6.4-java/lib/logstash/api/command_factory.rb
logstash-output-scalyr-0.2.0.beta vendor/bundle/jruby/2.5.0/gems/logstash-core-5.6.4-java/lib/logstash/api/command_factory.rb
logstash-output-scalyr-0.1.26.beta vendor/bundle/jruby/2.5.0/gems/logstash-core-5.6.4-java/lib/logstash/api/command_factory.rb
logstash-output-scalyr-0.1.25.beta vendor/bundle/jruby/2.5.0/gems/logstash-core-5.6.4-java/lib/logstash/api/command_factory.rb
logstash-output-scalyr-0.1.24.beta vendor/bundle/jruby/2.5.0/gems/logstash-core-5.6.4-java/lib/logstash/api/command_factory.rb
logstash-output-scalyr-0.1.23.beta vendor/bundle/jruby/2.5.0/gems/logstash-core-5.6.4-java/lib/logstash/api/command_factory.rb
logstash-output-scalyr-0.1.22.beta vendor/bundle/jruby/2.5.0/gems/logstash-core-5.6.4-java/lib/logstash/api/command_factory.rb
logstash-output-scalyr-0.1.21.beta vendor/bundle/jruby/2.5.0/gems/logstash-core-5.6.4-java/lib/logstash/api/command_factory.rb
logstash-output-scalyr-0.1.20.beta vendor/bundle/jruby/2.5.0/gems/logstash-core-5.6.4-java/lib/logstash/api/command_factory.rb
logstash-core-6.8.18-java lib/logstash/api/command_factory.rb
logstash-output-scalyr-0.1.19.beta vendor/bundle/jruby/2.5.0/gems/logstash-core-5.6.4-java/lib/logstash/api/command_factory.rb
logstash-core-6.8.17-java lib/logstash/api/command_factory.rb
logstash-output-scalyr-0.1.18.beta vendor/bundle/jruby/2.5.0/gems/logstash-core-5.6.4-java/lib/logstash/api/command_factory.rb
logstash-output-scalyr-0.1.17.beta vendor/bundle/jruby/2.5.0/gems/logstash-core-5.6.4-java/lib/logstash/api/command_factory.rb