Sha256: f174da8574917f5b59931fd2b5a0e0a957fc3479046d9677b8fb1a70d9f462f2

Contents?: true

Size: 1.14 KB

Versions: 27

Compression:

Stored size: 1.14 KB

Contents

# frozen_string_literal: true

require 'erb'

module Evostream
  module CLI
    # Configuration file for CLI
    class Config
      include Singleton

      def initialize
        @options = @uri = nil
        load_file_configuration
        Evostream::Service.environment = :production
        apply_uri
      end

      def change_host(host)
        @uri.host = host
        apply_uri
      end

      def change_port(port)
        @uri.port = port
        apply_uri
      end

      def load_custom_file(file)
        load_yml(file)
        save_uri
        apply_uri
      end

      private

      def apply_uri
        Evostream::Service.uri_in = @uri
      end

      def load_yml(file)
        @options = YAML.safe_load(ERB.new(File.read(file)).result)
      end

      def load_file_configuration
        load_yml(File.join(ENV['HOME'], '.evostream-configuration.yml'))
        save_uri
      end

      def save_uri
        @uri = URI.parse("http://#{options_host}:#{options_port}")
      end

      def options_host
        @options['evostream']['host']
      end

      def options_port
        @options['evostream']['port']
      end
    end
  end
end

Version data entries

27 entries across 27 versions & 1 rubygems

Version Path
evostream-event-2.0.3 lib/evostream/cli/config.rb
evostream-event-2.0.3.pre.1265906291 lib/evostream/cli/config.rb
evostream-event-2.0.3.pre.1265756691 lib/evostream/cli/config.rb
evostream-event-2.0.3.pre.1265752332 lib/evostream/cli/config.rb
evostream-event-2.0.2 lib/evostream/cli/config.rb
evostream-event-2.0.2.pre.994185738 lib/evostream/cli/config.rb
evostream-event-2.0.0.pre.994170151 lib/evostream/cli/config.rb
evostream-event-2.0.0.pre.994165179 lib/evostream/cli/config.rb
evostream-event-2.0.0.pre.994159616 lib/evostream/cli/config.rb
evostream-event-2.0.0.pre.856454391 lib/evostream/cli/config.rb
evostream-event-2.0.0.pre.856447460 lib/evostream/cli/config.rb
evostream-event-2.0.0.pre.856441003 lib/evostream/cli/config.rb
evostream-event-2.0.0.pre.816370746 lib/evostream/cli/config.rb
evostream-event-2.0.0.pre.809444619 lib/evostream/cli/config.rb
evostream-event-1.0.3 lib/evostream/cli/config.rb
evostream-event-1.0.3.pre.95 lib/evostream/cli/config.rb
evostream-event-1.0.3.pre.93 lib/evostream/cli/config.rb
evostream-event-1.0.3.pre.91 lib/evostream/cli/config.rb
evostream-event-1.0.3.pre.83 lib/evostream/cli/config.rb
evostream-event-1.0.2 lib/evostream/cli/config.rb