Class: CloudwatchQuery::ResultSet

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/cloudwatch_query/result_set.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(results: [], statistics: {}, registry: nil) ⇒ ResultSet

Returns a new instance of ResultSet.



9
10
11
12
# File 'lib/cloudwatch_query/result_set.rb', line 9

def initialize(results: [], statistics: {}, registry: nil)
  @results = results.map { |r| Result.new(r, registry: registry) }
  @statistics = statistics
end

Instance Attribute Details

#results ⇒ Object (readonly)

Returns the value of attribute results.



7
8
9
# File 'lib/cloudwatch_query/result_set.rb', line 7

def results
  @results
end

#statistics ⇒ Object (readonly)

Returns the value of attribute statistics.



7
8
9
# File 'lib/cloudwatch_query/result_set.rb', line 7

def statistics
  @statistics
end

Instance Method Details

#by_type(type) ⇒ Object

Filter results by log type



41
42
43
# File 'lib/cloudwatch_query/result_set.rb', line 41

def by_type(type)
  @results.select { |r| r.log_type == type }
end

#count ⇒ Object Also known as: size, length



18
19
20
# File 'lib/cloudwatch_query/result_set.rb', line 18

def count
  @results.count
end

#each(&block) ⇒ Object



14
15
16
# File 'lib/cloudwatch_query/result_set.rb', line 14

def each(&block)
  @results.each(&block)
end

#empty? ⇒ Boolean

Returns:

  • (Boolean)


24
25
26
# File 'lib/cloudwatch_query/result_set.rb', line 24

def empty?
  @results.empty?
end

#first(n = nil) ⇒ Object



28
29
30
# File 'lib/cloudwatch_query/result_set.rb', line 28

def first(n = nil)
  n ? @results.first(n) : @results.first
end

#group_by_request ⇒ Object

Group results by request_id (for Rails logs)



56
57
58
59
60
# File 'lib/cloudwatch_query/result_set.rb', line 56

def group_by_request
  @results
    .select { |r| r.parsed&.respond_to?(:request_id) && r.parsed.request_id }
    .group_by { |r| r.parsed.request_id }
end

#last(n = nil) ⇒ Object



32
33
34
# File 'lib/cloudwatch_query/result_set.rb', line 32

def last(n = nil)
  n ? @results.last(n) : @results.last
end

#parsed ⇒ Object

Get only parsed results



46
47
48
# File 'lib/cloudwatch_query/result_set.rb', line 46

def parsed
  @results.select(&:parsed?)
end

#to_a ⇒ Object



36
37
38
# File 'lib/cloudwatch_query/result_set.rb', line 36

def to_a
  @results
end

#unparsed ⇒ Object

Get only unparsed results



51
52
53
# File 'lib/cloudwatch_query/result_set.rb', line 51

def unparsed
  @results.reject(&:parsed?)
end