Class: Memoir::Request

Inherits:
Object
  • Object
show all
Defined in:
lib/memoir/request.rb

Constant Summary collapse

VALID_OPTIONS =
{
  no_annotations: 'noAnnotations',
  global_annotations: 'globalAnnotations',
  ms_resolution: 'msResolution',
  show_tsuids: 'showTSUIDs',
  show_summary: 'showSummary',
  show_query: 'showQuery',
  delete: 'delete'
}.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(start_time, end_time = nil, **options) ⇒ Request

Returns a new instance of Request.



14
15
16
17
18
19
20
21
# File 'lib/memoir/request.rb', line 14

def initialize(start_time, end_time = nil, **options)
  fail Memoir::Errors::ArgumentError, 'start_time cannot be nil' unless start_time

  @start_time = start_time
  @end_time = end_time
  @queries = []
  @options = options
end

Instance Attribute Details

#end_timeObject

Returns the value of attribute end_time.



2
3
4
# File 'lib/memoir/request.rb', line 2

def end_time
  @end_time
end

#optionsObject

Returns the value of attribute options.



2
3
4
# File 'lib/memoir/request.rb', line 2

def options
  @options
end

#queriesObject

Returns the value of attribute queries.



2
3
4
# File 'lib/memoir/request.rb', line 2

def queries
  @queries
end

#start_timeObject

Returns the value of attribute start_time.



2
3
4
# File 'lib/memoir/request.rb', line 2

def start_time
  @start_time
end

Instance Method Details

#<<(query) ⇒ Object



23
24
25
# File 'lib/memoir/request.rb', line 23

def <<(query)
  add_query(query)
end

#add_query(query) ⇒ Object



27
28
29
# File 'lib/memoir/request.rb', line 27

def add_query(query)
  queries << query
end

#clear_queriesObject



35
36
37
# File 'lib/memoir/request.rb', line 35

def clear_queries
  queries.clear
end

#remove_query(query) ⇒ Object



31
32
33
# File 'lib/memoir/request.rb', line 31

def remove_query(query)
  queries.delete query
end

#to_hObject



43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/memoir/request.rb', line 43

def to_h
  validate!

  hash = {
    'start' => start_time.instance_of?(Memoir::TimePeriod) ? "#{start_time}-ago" : start_time.to_i,
    'queries' => queries.map(&:to_h)
  }

  hash['end'] = end_time.to_i if end_time
  options.each_pair { |key, value| hash[VALID_OPTIONS[key]] = value }

  hash
end

#to_jsonObject



39
40
41
# File 'lib/memoir/request.rb', line 39

def to_json
  JSON.pretty_generate(to_h)
end