Class: Bpfql::DSL

Inherits:
Object
  • Object
show all
Defined in:
lib/bpfql/dsl.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(qb) ⇒ DSL

Returns a new instance of DSL.



5
6
7
8
# File 'lib/bpfql/dsl.rb', line 5

def initialize(qb)
  @builder = qb
  @_where_continue = false
end

Instance Attribute Details

#builderObject (readonly)

Returns the value of attribute builder.



9
10
11
# File 'lib/bpfql/dsl.rb', line 9

def builder
  @builder
end

Instance Method Details

#_and(*filter, **options) ⇒ Object



25
26
27
28
29
30
31
# File 'lib/bpfql/dsl.rb', line 25

def _and(*filter, **options)
  if @_where_continue
    builder.where << eval_where(*filter, **options)
  else
    raise ArgumentError, "Cannot invoke _and() before where()"
  end
end

#from(probe) ⇒ Object



15
16
17
# File 'lib/bpfql/dsl.rb', line 15

def from(probe)
  builder.from = Query::ProbeOption.new(probe)
end

#group_by(var) ⇒ Object



33
34
35
# File 'lib/bpfql/dsl.rb', line 33

def group_by(var)
  builder.group_by = var
end

#interval(timing) ⇒ Object



37
38
39
# File 'lib/bpfql/dsl.rb', line 37

def interval(timing)
  builder.interval = timing
end

#select(*members) ⇒ Object



11
12
13
# File 'lib/bpfql/dsl.rb', line 11

def select(*members)
  builder.select = Query::SelectOption.new(members)
end

#stop_after(timing) ⇒ Object



41
42
43
# File 'lib/bpfql/dsl.rb', line 41

def stop_after(timing)
  builder.stop = Query::StopOption.new(:after, timing)
end

#where(*filter, **options) ⇒ Object



19
20
21
22
23
# File 'lib/bpfql/dsl.rb', line 19

def where(*filter, **options)
  builder.where = []
  builder.where << eval_where(*filter, **options)
  @_where_continue = true
end