Class: RSpectacles::Adapter::RedisLogger

Inherits:
Object
  • Object
show all
Defined in:
lib/rspectacles/adapter/redis_logger.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize ⇒ RedisLogger

Returns a new instance of RedisLogger.



11
12
13
# File 'lib/rspectacles/adapter/redis_logger.rb', line 11

def initialize
  @redis = ::Redis.new host: uri.host, port: uri.port, password: uri.password
end

Instance Attribute Details

#redis ⇒ Object (readonly)

Returns the value of attribute redis.



9
10
11
# File 'lib/rspectacles/adapter/redis_logger.rb', line 9

def redis
  @redis
end

Instance Method Details

#config ⇒ Object



15
16
17
# File 'lib/rspectacles/adapter/redis_logger.rb', line 15

def config
  RSpectacles.config
end

#delete_last_log ⇒ Object



23
24
25
# File 'lib/rspectacles/adapter/redis_logger.rb', line 23

def delete_last_log
  redis.del config.last_run_primary_key
end

#format_example(example) ⇒ Object



38
39
40
41
42
43
44
45
46
47
# File 'lib/rspectacles/adapter/redis_logger.rb', line 38

def format_example(example)
  {
    :description => example.description,
    :full_description => example.full_description,
    :status => example.execution_result.status,
    :duration => example.execution_result.run_time,
    :file_path => example.[:file_path],
    :line_number  => example.[:line_number]
  }.to_json
end

#log(message) ⇒ Object



27
28
29
30
# File 'lib/rspectacles/adapter/redis_logger.rb', line 27

def log(message)
  redis.publish config.pubsub_channel_name, message
  redis.lpush config.last_run_primary_key, message
end

#log_formatted(example) ⇒ Object



32
33
34
35
36
# File 'lib/rspectacles/adapter/redis_logger.rb', line 32

def log_formatted(example)
  message = format_example(example)
  redis.publish config.pubsub_channel_name, message
  redis.lpush config.last_run_primary_key, message
end

#uri ⇒ Object



19
20
21
# File 'lib/rspectacles/adapter/redis_logger.rb', line 19

def uri
  @uri ||= URI.parse config.redis_uri
end