Sha256: 23e5130140e971593268bde03fbaf24ce44a772aad6a428393e3de3c431ced44

Contents?: true

Size: 1.54 KB

Versions: 6

Compression:

Stored size: 1.54 KB

Contents

# frozen_string_literal: true

require 'active_support'
require 'evostream/event/info'
require 'evostream/event/service'
require 'evostream/event/commands'
require 'evostream/event/event'
require 'evostream/action/action'
require 'evostream/event/response/response'
require 'net/http'
require 'evostream/event/response/mock'

# Primary command to gem
module Evostream
  def self.send_command(cmd)
    Evostream.logger "CMD : #{cmd}"
    Evostream::Responses.new(prepare_request(cmd)).message
  end

  def self.logger(message)
    Rails.logger.debug "[#{Evostream::GEM_NAME}] #{message}" \
      if Evostream::Service.environment.eql?('development') && defined?(Rails)
  end

  def self.prepare_request(cmd)
    env = Evostream::Service.environment.to_sym
    Evostream.logger "ENV  ------> #{env}"
    case env
    when :test
      Evostream.request_test(cmd)
    when :development, :production
      Evostream.request_real(URI.parse("#{Evostream::Service.uri_in}/#{cmd}"))
    end
  end

  class << self
    private_class_method

    def request_test(command)
      json = JSON.parse(File.read(find_fixture(command)))
      Net::HTTPSuccess.mock(json)
    end

    def request_real(uri)
      http = Net::HTTP.new(uri.host, uri.port)
      http.request(Net::HTTP::Get.new(uri.request_uri))
    end

    def path_fixture
      File.realpath(File.join(File.dirname(__FILE__), '..', '..', 'spec',
                              'support', 'fixtures'))
    end

    def find_fixture(command)
      File.join(path_fixture, "#{command.split('?')[0].underscore}.json")
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
evostream-event-1.0.1 lib/evostream/event.rb
evostream-event-1.0.1.pre.72 lib/evostream/event.rb
evostream-event-1.0.0 lib/evostream/event.rb
evostream-event-1.0.0.pre.69 lib/evostream/event.rb
evostream-event-1.0.0.pre.65 lib/evostream/event.rb
evostream-event-1.0.0.pre.59 lib/evostream/event.rb