Class: Bpfql::DSL
- Inherits:
-
Object
- Object
- Bpfql::DSL
- Defined in:
- lib/bpfql/dsl.rb
Instance Attribute Summary collapse
-
#builder ⇒ Object
readonly
Returns the value of attribute builder.
Instance Method Summary collapse
- #_and(*filter, **options) ⇒ Object
- #from(probe) ⇒ Object
- #group_by(var) ⇒ Object
-
#initialize(qb) ⇒ DSL
constructor
A new instance of DSL.
- #interval(timing) ⇒ Object
- #select(*members) ⇒ Object
- #stop_after(timing) ⇒ Object
- #where(*filter, **options) ⇒ Object
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
#builder ⇒ Object (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, **) if @_where_continue builder.where << eval_where(*filter, **) 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, **) builder.where = [] builder.where << eval_where(*filter, **) @_where_continue = true end |