Class: MQ::Query
- Inherits:
-
Object
- Object
- MQ::Query
- Defined in:
- lib/mq/query.rb
Overview
Programmatic query builder for constructing mq queries in Ruby.
Class Method Summary collapse
- .align ⇒ Object
- .alt ⇒ Object
- .blockquote ⇒ Object
- .checked ⇒ Object
-
.code ⇒ Object
Block element selectors.
-
.code_inline ⇒ Object
Inline element selectors.
- .column ⇒ Object
- .definition ⇒ Object
- .delete ⇒ Object
- .depth ⇒ Object
- .done ⇒ Object
- .emphasis ⇒ Object
- .fence ⇒ Object
- .footnote ⇒ Object
- .footnote_ref ⇒ Object
-
.heading ⇒ Object
Generic heading (any level).
- .hr ⇒ Object
- .html ⇒ Object
- .image ⇒ Object
- .image_ref ⇒ Object
- .lang ⇒ Object
- .level ⇒ Object
- .line_break ⇒ Object
- .link ⇒ Object
- .link_ref ⇒ Object
-
.list ⇒ Object
— List selector —.
-
.list_at(n) ⇒ Object
List item at a specific index: .[n].
- .math ⇒ Object
- .math_inline ⇒ Object
- .mdx_flow_expression ⇒ Object
- .mdx_js_esm ⇒ Object
-
.mdx_jsx_flow_element ⇒ Object
— MDX selectors —.
- .mdx_jsx_text_element ⇒ Object
- .mdx_text_expression ⇒ Object
- .meta ⇒ Object
- .node_values ⇒ Object
- .ordered ⇒ Object
- .paragraph ⇒ Object
-
.property(key) ⇒ Object
Dict property selector: .“key”.
-
.recursive ⇒ Object
Recursive / deep selector (..).
- .row ⇒ Object
-
.select(filter = nil) { ... } ⇒ Query
Class-level select (no leading selector).
- .strong ⇒ Object
- .table ⇒ Object
- .table_align ⇒ Object
-
.table_cell(r, c) ⇒ Object
A specific cell: .[row].
-
.table_col(n) ⇒ Object
All cells in a specific column: .[][n].
-
.table_row(n) ⇒ Object
All cells in a specific row: .[n][].
-
.task ⇒ Object
Task list selectors.
- .text ⇒ Object
- .to_markdown ⇒ Object
- .to_text ⇒ Object
- .todo ⇒ Object
- .toml ⇒ Object
- .url ⇒ Object
-
.value ⇒ Object
— Attribute selectors (as standalone starting points) —.
- .yaml ⇒ Object
Instance Method Summary collapse
- #abs ⇒ Object
- #add ⇒ Object
- #align ⇒ Object
- #alt ⇒ Object
- #ascii_downcase ⇒ Object
- #ascii_upcase ⇒ Object
- #attr(name) ⇒ Object
- #base64 ⇒ Object
- #base64d ⇒ Object
- #base64url ⇒ Object
- #base64urld ⇒ Object
- #basename ⇒ Object
- #capture(pattern) ⇒ Object
- #ceil ⇒ Object
- #checked ⇒ Object
- #children ⇒ Object
- #coalesce(default) ⇒ Object
- #column ⇒ Object
- #compact ⇒ Object
- #debug ⇒ Object
- #del(value) ⇒ Object
- #depth ⇒ Object
- #dirname ⇒ Object
- #downcase ⇒ Object
- #empty ⇒ Object
- #entries ⇒ Object
- #exp ⇒ Object
- #explode ⇒ Object
- #extname ⇒ Object
- #fence ⇒ Object
- #first ⇒ Object
- #flatten ⇒ Object
- #floor ⇒ Object
- #from_hex ⇒ Object
- #get(key) ⇒ Object
- #get_title ⇒ Object
- #get_url ⇒ Object
- #gsub(pattern, replacement) ⇒ Object
- #ident ⇒ Object
- #implode ⇒ Object
- #index(value) ⇒ Object
-
#initialize(expr = "") ⇒ Query
constructor
A new instance of Query.
- #insert(idx, val) ⇒ Object
- #intern ⇒ Object
- #is_nan ⇒ Object
- #item_index ⇒ Object
- #join(separator) ⇒ Object
- #keys ⇒ Object
- #label ⇒ Object
- #lang ⇒ Object
- #last ⇒ Object
- #len ⇒ Object
- #length ⇒ Object
- #level ⇒ Object
- #limit(n) ⇒ Object
- #ln ⇒ Object
- #log10 ⇒ Object
- #ltrim ⇒ Object
-
#map(filter = nil) { ... } ⇒ Query
Append a map() transformation.
- #max(other) ⇒ Object
- #md5 ⇒ Object
- #mdx_name ⇒ Object
- #meta ⇒ Object
- #min(other) ⇒ Object
- #negate_val ⇒ Object
- #nth(n) ⇒ Object
- #ordered ⇒ Object
- #path_join(other) ⇒ Object
- #pow(n) ⇒ Object
-
#property(key) ⇒ Object
Access a dict property by key (generates .“key” selector).
- #range(n) ⇒ Object
- #repeat(n) ⇒ Object
- #replace(from, to) ⇒ Object
- #reverse ⇒ Object
- #rindex(value) ⇒ Object
- #round ⇒ Object
- #row ⇒ Object
- #rtrim ⇒ Object
-
#select(filter = nil) { ... } ⇒ Query
Append a select() filter.
- #set(key, val) ⇒ Object
- #set_attr(name, val) ⇒ Object
- #set_check(val) ⇒ Object
- #set_code_block_lang(lang) ⇒ Object
- #set_list_ordered(val) ⇒ Object
- #set_ref(ref) ⇒ Object
- #sha256 ⇒ Object
- #sha512 ⇒ Object
- #slice(start, stop) ⇒ Object
- #sort ⇒ Object
- #split(separator) ⇒ Object
- #sqrt ⇒ Object
- #stem ⇒ Object
- #test(pattern) ⇒ Object
- #title ⇒ Object
- #to_array ⇒ Object
- #to_bytes ⇒ Object
-
#to_code(lang = nil) ⇒ Object
Convert current value to a code block with the given language.
- #to_code_inline ⇒ Object
- #to_em ⇒ Object
-
#to_h(depth) ⇒ Object
Convert current value to a heading of the given depth (1-6).
- #to_hex ⇒ Object
- #to_hex_str ⇒ Object
- #to_hr ⇒ Object
- #to_html ⇒ Object
-
#to_image(url, img_alt = nil, img_title = "") ⇒ Object
Create an image node.
-
#to_link(url, text = nil, link_title = "") ⇒ Object
Create a link node.
- #to_markdown ⇒ Object
- #to_markdown_string ⇒ Object
- #to_math ⇒ Object
- #to_math_inline ⇒ Object
-
#to_md_list(list_level) ⇒ Object
Convert current value to a list item at the given nesting level.
-
#to_md_name(node_name) ⇒ Object
Convert current value to a markdown element with the given node name.
-
#to_md_table_cell(content, r, c) ⇒ Object
Build a table cell with content, row index, and column index.
-
#to_md_table_row(*cells) ⇒ Object
Build a table row from the given cell values.
- #to_md_text ⇒ Object
- #to_mdx ⇒ Object
- #to_number ⇒ Object
-
#to_query ⇒ String
(also: #to_s)
Returns the mq query string.
- #to_string ⇒ Object
- #to_strong ⇒ Object
- #to_text ⇒ Object
- #trim ⇒ Object
- #trunc ⇒ Object
-
#type ⇒ Object
— Type / logic —.
- #uniq ⇒ Object
- #upcase ⇒ Object
- #update(content) ⇒ Object
- #url ⇒ Object
- #url_encode ⇒ Object
- #utf8bytelen ⇒ Object
-
#value ⇒ Object
Attribute selectors (access attributes of selected nodes) These generate attribute selector syntax (.url, .lang, etc.).
- #values ⇒ Object
-
#|(other) ⇒ Query
Pipe two queries together using the | operator.
Constructor Details
#initialize(expr = "") ⇒ Query
Returns a new instance of Query.
31 32 33 |
# File 'lib/mq/query.rb', line 31 def initialize(expr = "") @expr = expr.to_s end |
Class Method Details
.align ⇒ Object
435 |
# File 'lib/mq/query.rb', line 435 def align = new(".align") |
.alt ⇒ Object
428 |
# File 'lib/mq/query.rb', line 428 def alt = new(".alt") |
.blockquote ⇒ Object
356 |
# File 'lib/mq/query.rb', line 356 def blockquote = new(".blockquote") |
.checked ⇒ Object
432 |
# File 'lib/mq/query.rb', line 432 def checked = new(".checked") |
.code ⇒ Object
Block element selectors
354 |
# File 'lib/mq/query.rb', line 354 def code = new(".code") |
.code_inline ⇒ Object
Inline element selectors
374 |
# File 'lib/mq/query.rb', line 374 def code_inline = new(".code_inline") |
.column ⇒ Object
433 |
# File 'lib/mq/query.rb', line 433 def column = new(".column") |
.definition ⇒ Object
368 |
# File 'lib/mq/query.rb', line 368 def definition = new(".definition") |
.delete ⇒ Object
363 |
# File 'lib/mq/query.rb', line 363 def delete = new(".delete") |
.depth ⇒ Object
429 |
# File 'lib/mq/query.rb', line 429 def depth = new(".depth") |
.done ⇒ Object
384 |
# File 'lib/mq/query.rb', line 384 def done = new(".done") |
.emphasis ⇒ Object
362 |
# File 'lib/mq/query.rb', line 362 def emphasis = new(".emphasis") |
.fence ⇒ Object
426 |
# File 'lib/mq/query.rb', line 426 def fence = new(".fence") |
.footnote ⇒ Object
369 |
# File 'lib/mq/query.rb', line 369 def footnote = new(".footnote") |
.footnote_ref ⇒ Object
378 |
# File 'lib/mq/query.rb', line 378 def footnote_ref = new(".footnote_ref") |
.heading ⇒ Object
Generic heading (any level)
351 |
# File 'lib/mq/query.rb', line 351 def heading = new(".heading") |
.hr ⇒ Object
357 |
# File 'lib/mq/query.rb', line 357 def hr = new(".hr") |
.html ⇒ Object
367 |
# File 'lib/mq/query.rb', line 367 def html = new(".html") |
.image ⇒ Object
358 |
# File 'lib/mq/query.rb', line 358 def image = new(".image") |
.image_ref ⇒ Object
377 |
# File 'lib/mq/query.rb', line 377 def image_ref = new(".image_ref") |
.lang ⇒ Object
424 |
# File 'lib/mq/query.rb', line 424 def lang = new(".lang") |
.level ⇒ Object
430 |
# File 'lib/mq/query.rb', line 430 def level = new(".level") |
.line_break ⇒ Object
379 |
# File 'lib/mq/query.rb', line 379 def line_break = new(".break") |
.link ⇒ Object
359 |
# File 'lib/mq/query.rb', line 359 def link = new(".link") |
.link_ref ⇒ Object
376 |
# File 'lib/mq/query.rb', line 376 def link_ref = new(".link_ref") |
.list ⇒ Object
— List selector —
387 |
# File 'lib/mq/query.rb', line 387 def list = new(".[]") |
.list_at(n) ⇒ Object
List item at a specific index: .[n]
390 391 392 |
# File 'lib/mq/query.rb', line 390 def list_at(n) new(".[#{n}]") end |
.math ⇒ Object
364 |
# File 'lib/mq/query.rb', line 364 def math = new(".math") |
.math_inline ⇒ Object
375 |
# File 'lib/mq/query.rb', line 375 def math_inline = new(".math_inline") |
.mdx_flow_expression ⇒ Object
415 |
# File 'lib/mq/query.rb', line 415 def mdx_flow_expression = new(".mdx_flow_expression") |
.mdx_js_esm ⇒ Object
416 |
# File 'lib/mq/query.rb', line 416 def mdx_js_esm = new(".mdx_js_esm") |
.mdx_jsx_flow_element ⇒ Object
— MDX selectors —
412 |
# File 'lib/mq/query.rb', line 412 def mdx_jsx_flow_element = new(".mdx_jsx_flow_element") |
.mdx_jsx_text_element ⇒ Object
414 |
# File 'lib/mq/query.rb', line 414 def mdx_jsx_text_element = new(".mdx_jsx_text_element") |
.mdx_text_expression ⇒ Object
413 |
# File 'lib/mq/query.rb', line 413 def mdx_text_expression = new(".mdx_text_expression") |
.meta ⇒ Object
425 |
# File 'lib/mq/query.rb', line 425 def = new(".meta") |
.node_values ⇒ Object
423 |
# File 'lib/mq/query.rb', line 423 def node_values = new(".values") |
.ordered ⇒ Object
431 |
# File 'lib/mq/query.rb', line 431 def ordered = new(".ordered") |
.paragraph ⇒ Object
355 |
# File 'lib/mq/query.rb', line 355 def paragraph = new(".p") |
.property(key) ⇒ Object
Dict property selector: .“key”
438 439 440 |
# File 'lib/mq/query.rb', line 438 def property(key) new(".\"#{key}\"") end |
.recursive ⇒ Object
Recursive / deep selector (..)
419 |
# File 'lib/mq/query.rb', line 419 def recursive = new("..") |
.row ⇒ Object
434 |
# File 'lib/mq/query.rb', line 434 def row = new(".row") |
.select(filter = nil) { ... } ⇒ Query
Class-level select (no leading selector)
447 448 449 450 |
# File 'lib/mq/query.rb', line 447 def select(filter = nil, &block) filter_str = new.send(:resolve_filter, filter, &block) new("select(#{filter_str})") end |
.strong ⇒ Object
361 |
# File 'lib/mq/query.rb', line 361 def strong = new(".strong") |
.table ⇒ Object
365 |
# File 'lib/mq/query.rb', line 365 def table = new(".table") |
.table_align ⇒ Object
366 |
# File 'lib/mq/query.rb', line 366 def table_align = new(".table_align") |
.table_cell(r, c) ⇒ Object
A specific cell: .[row]
407 408 409 |
# File 'lib/mq/query.rb', line 407 def table_cell(r, c) new(".[#{r}][#{c}]") end |
.table_col(n) ⇒ Object
All cells in a specific column: .[][n]
402 403 404 |
# File 'lib/mq/query.rb', line 402 def table_col(n) new(".[][#{n}]") end |
.table_row(n) ⇒ Object
All cells in a specific row: .[n][]
397 398 399 |
# File 'lib/mq/query.rb', line 397 def table_row(n) new(".[#{n}][]") end |
.task ⇒ Object
Task list selectors
382 |
# File 'lib/mq/query.rb', line 382 def task = new(".task") |
.text ⇒ Object
360 |
# File 'lib/mq/query.rb', line 360 def text = new(".text") |
.to_markdown ⇒ Object
453 |
# File 'lib/mq/query.rb', line 453 def to_markdown = new("to_markdown()") |
.to_text ⇒ Object
452 |
# File 'lib/mq/query.rb', line 452 def to_text = new("to_text()") |
.todo ⇒ Object
383 |
# File 'lib/mq/query.rb', line 383 def todo = new(".todo") |
.toml ⇒ Object
370 |
# File 'lib/mq/query.rb', line 370 def toml = new(".toml") |
.url ⇒ Object
427 |
# File 'lib/mq/query.rb', line 427 def url = new(".url") |
.value ⇒ Object
— Attribute selectors (as standalone starting points) —
422 |
# File 'lib/mq/query.rb', line 422 def value = new(".value") |
.yaml ⇒ Object
371 |
# File 'lib/mq/query.rb', line 371 def yaml = new(".yaml") |
Instance Method Details
#abs ⇒ Object
162 |
# File 'lib/mq/query.rb', line 162 def abs = pipe_with("abs()") |
#add ⇒ Object
76 |
# File 'lib/mq/query.rb', line 76 def add = pipe_with("add") |
#align ⇒ Object
247 |
# File 'lib/mq/query.rb', line 247 def align = pipe_with(".align") |
#alt ⇒ Object
236 |
# File 'lib/mq/query.rb', line 236 def alt = pipe_with(".alt") |
#ascii_downcase ⇒ Object
139 |
# File 'lib/mq/query.rb', line 139 def ascii_downcase = pipe_with("ascii_downcase()") |
#ascii_upcase ⇒ Object
140 |
# File 'lib/mq/query.rb', line 140 def ascii_upcase = pipe_with("ascii_upcase()") |
#attr(name) ⇒ Object
254 255 256 |
# File 'lib/mq/query.rb', line 254 def attr(name) pipe_with("attr(#{name.inspect})") end |
#base64 ⇒ Object
195 |
# File 'lib/mq/query.rb', line 195 def base64 = pipe_with("base64()") |
#base64d ⇒ Object
196 |
# File 'lib/mq/query.rb', line 196 def base64d = pipe_with("base64d()") |
#base64url ⇒ Object
197 |
# File 'lib/mq/query.rb', line 197 def base64url = pipe_with("base64url()") |
#base64urld ⇒ Object
198 |
# File 'lib/mq/query.rb', line 198 def base64urld = pipe_with("base64urld()") |
#basename ⇒ Object
206 |
# File 'lib/mq/query.rb', line 206 def basename = pipe_with("basename()") |
#capture(pattern) ⇒ Object
158 159 160 |
# File 'lib/mq/query.rb', line 158 def capture(pattern) pipe_with("capture(#{pattern.inspect})") end |
#ceil ⇒ Object
163 |
# File 'lib/mq/query.rb', line 163 def ceil = pipe_with("ceil()") |
#checked ⇒ Object
244 |
# File 'lib/mq/query.rb', line 244 def checked = pipe_with(".checked") |
#children ⇒ Object
88 |
# File 'lib/mq/query.rb', line 88 def children = pipe_with(".children") |
#coalesce(default) ⇒ Object
191 192 193 |
# File 'lib/mq/query.rb', line 191 def coalesce(default) pipe_with("coalesce(#{default.inspect})") end |
#column ⇒ Object
245 |
# File 'lib/mq/query.rb', line 245 def column = pipe_with(".column") |
#compact ⇒ Object
82 |
# File 'lib/mq/query.rb', line 82 def compact = pipe_with("compact") |
#debug ⇒ Object
189 |
# File 'lib/mq/query.rb', line 189 def debug = pipe_with("debug") |
#del(value) ⇒ Object
122 123 124 |
# File 'lib/mq/query.rb', line 122 def del(value) pipe_with("del(#{value.inspect})") end |
#depth ⇒ Object
240 |
# File 'lib/mq/query.rb', line 240 def depth = pipe_with(".depth") |
#dirname ⇒ Object
207 |
# File 'lib/mq/query.rb', line 207 def dirname = pipe_with("dirname()") |
#downcase ⇒ Object
137 |
# File 'lib/mq/query.rb', line 137 def downcase = pipe_with("downcase()") |
#empty ⇒ Object
79 |
# File 'lib/mq/query.rb', line 79 def empty = pipe_with("empty") |
#entries ⇒ Object
87 |
# File 'lib/mq/query.rb', line 87 def entries = pipe_with("entries") |
#exp ⇒ Object
170 |
# File 'lib/mq/query.rb', line 170 def exp = pipe_with("exp()") |
#explode ⇒ Object
141 |
# File 'lib/mq/query.rb', line 141 def explode = pipe_with("explode()") |
#extname ⇒ Object
208 |
# File 'lib/mq/query.rb', line 208 def extname = pipe_with("extname()") |
#fence ⇒ Object
234 |
# File 'lib/mq/query.rb', line 234 def fence = pipe_with(".fence") |
#first ⇒ Object
77 |
# File 'lib/mq/query.rb', line 77 def first = pipe_with("first") |
#flatten ⇒ Object
84 |
# File 'lib/mq/query.rb', line 84 def flatten = pipe_with("flatten") |
#floor ⇒ Object
164 |
# File 'lib/mq/query.rb', line 164 def floor = pipe_with("floor()") |
#from_hex ⇒ Object
202 |
# File 'lib/mq/query.rb', line 202 def from_hex = pipe_with("from_hex()") |
#get(key) ⇒ Object
215 216 217 |
# File 'lib/mq/query.rb', line 215 def get(key) pipe_with("get(#{key.inspect})") end |
#get_title ⇒ Object
262 |
# File 'lib/mq/query.rb', line 262 def get_title = pipe_with("get_title") |
#get_url ⇒ Object
263 |
# File 'lib/mq/query.rb', line 263 def get_url = pipe_with("get_url") |
#gsub(pattern, replacement) ⇒ Object
146 147 148 |
# File 'lib/mq/query.rb', line 146 def gsub(pattern, replacement) pipe_with("gsub(#{pattern.inspect}, #{replacement.inspect})") end |
#ident ⇒ Object
238 |
# File 'lib/mq/query.rb', line 238 def ident = pipe_with(".ident") |
#implode ⇒ Object
142 |
# File 'lib/mq/query.rb', line 142 def implode = pipe_with("implode()") |
#index(value) ⇒ Object
114 115 116 |
# File 'lib/mq/query.rb', line 114 def index(value) pipe_with("index(#{value.inspect})") end |
#insert(idx, val) ⇒ Object
126 127 128 |
# File 'lib/mq/query.rb', line 126 def insert(idx, val) pipe_with("insert(#{idx}, #{val.inspect})") end |
#intern ⇒ Object
144 |
# File 'lib/mq/query.rb', line 144 def intern = pipe_with("intern()") |
#is_nan ⇒ Object
172 |
# File 'lib/mq/query.rb', line 172 def is_nan = pipe_with("is_nan()") |
#item_index ⇒ Object
242 |
# File 'lib/mq/query.rb', line 242 def item_index = pipe_with(".index") |
#join(separator) ⇒ Object
94 95 96 |
# File 'lib/mq/query.rb', line 94 def join(separator) pipe_with("join(#{separator.inspect})") end |
#keys ⇒ Object
85 |
# File 'lib/mq/query.rb', line 85 def keys = pipe_with("keys") |
#label ⇒ Object
239 |
# File 'lib/mq/query.rb', line 239 def label = pipe_with(".label") |
#lang ⇒ Object
232 |
# File 'lib/mq/query.rb', line 232 def lang = pipe_with(".lang") |
#last ⇒ Object
78 |
# File 'lib/mq/query.rb', line 78 def last = pipe_with("last") |
#len ⇒ Object
74 |
# File 'lib/mq/query.rb', line 74 def len = pipe_with("len()") |
#length ⇒ Object
73 |
# File 'lib/mq/query.rb', line 73 def length = pipe_with("length") |
#level ⇒ Object
241 |
# File 'lib/mq/query.rb', line 241 def level = pipe_with(".level") |
#limit(n) ⇒ Object
102 103 104 |
# File 'lib/mq/query.rb', line 102 def limit(n) pipe_with("limit(#{n})") end |
#ln ⇒ Object
168 |
# File 'lib/mq/query.rb', line 168 def ln = pipe_with("ln()") |
#log10 ⇒ Object
169 |
# File 'lib/mq/query.rb', line 169 def log10 = pipe_with("log10()") |
#ltrim ⇒ Object
135 |
# File 'lib/mq/query.rb', line 135 def ltrim = pipe_with("ltrim()") |
#map(filter = nil) { ... } ⇒ Query
Append a map() transformation.
58 59 60 61 |
# File 'lib/mq/query.rb', line 58 def map(filter = nil, &block) filter_str = resolve_filter(filter, &block) pipe_with("map(#{filter_str})") end |
#max(other) ⇒ Object
182 183 184 |
# File 'lib/mq/query.rb', line 182 def max(other) pipe_with("max(#{other})") end |
#md5 ⇒ Object
199 |
# File 'lib/mq/query.rb', line 199 def md5 = pipe_with("md5()") |
#mdx_name ⇒ Object
248 |
# File 'lib/mq/query.rb', line 248 def mdx_name = pipe_with(".name") |
#meta ⇒ Object
233 |
# File 'lib/mq/query.rb', line 233 def = pipe_with(".meta") |
#min(other) ⇒ Object
178 179 180 |
# File 'lib/mq/query.rb', line 178 def min(other) pipe_with("min(#{other})") end |
#negate_val ⇒ Object
171 |
# File 'lib/mq/query.rb', line 171 def negate_val = pipe_with("negate()") |
#nth(n) ⇒ Object
98 99 100 |
# File 'lib/mq/query.rb', line 98 def nth(n) pipe_with("nth(#{n})") end |
#ordered ⇒ Object
243 |
# File 'lib/mq/query.rb', line 243 def ordered = pipe_with(".ordered") |
#path_join(other) ⇒ Object
211 212 213 |
# File 'lib/mq/query.rb', line 211 def path_join(other) pipe_with("path_join(#{other.inspect})") end |
#pow(n) ⇒ Object
174 175 176 |
# File 'lib/mq/query.rb', line 174 def pow(n) pipe_with("pow(#{n})") end |
#property(key) ⇒ Object
Access a dict property by key (generates .“key” selector)
224 225 226 |
# File 'lib/mq/query.rb', line 224 def property(key) pipe_with(".\"#{key}\"") end |
#range(n) ⇒ Object
106 107 108 |
# File 'lib/mq/query.rb', line 106 def range(n) pipe_with("range(#{n})") end |
#repeat(n) ⇒ Object
130 131 132 |
# File 'lib/mq/query.rb', line 130 def repeat(n) pipe_with("repeat(#{n})") end |
#replace(from, to) ⇒ Object
150 151 152 |
# File 'lib/mq/query.rb', line 150 def replace(from, to) pipe_with("replace(#{from.inspect}, #{to.inspect})") end |
#reverse ⇒ Object
80 |
# File 'lib/mq/query.rb', line 80 def reverse = pipe_with("reverse") |
#rindex(value) ⇒ Object
118 119 120 |
# File 'lib/mq/query.rb', line 118 def rindex(value) pipe_with("rindex(#{value.inspect})") end |
#round ⇒ Object
165 |
# File 'lib/mq/query.rb', line 165 def round = pipe_with("round()") |
#row ⇒ Object
246 |
# File 'lib/mq/query.rb', line 246 def row = pipe_with(".row") |
#rtrim ⇒ Object
136 |
# File 'lib/mq/query.rb', line 136 def rtrim = pipe_with("rtrim()") |
#select(filter = nil) { ... } ⇒ Query
Append a select() filter.
48 49 50 51 |
# File 'lib/mq/query.rb', line 48 def select(filter = nil, &block) filter_str = resolve_filter(filter, &block) pipe_with("select(#{filter_str})") end |
#set(key, val) ⇒ Object
219 220 221 |
# File 'lib/mq/query.rb', line 219 def set(key, val) pipe_with("set(#{key.inspect}, #{val.inspect})") end |
#set_attr(name, val) ⇒ Object
258 259 260 |
# File 'lib/mq/query.rb', line 258 def set_attr(name, val) pipe_with("set_attr(#{name.inspect}, #{val.inspect})") end |
#set_check(val) ⇒ Object
265 266 267 |
# File 'lib/mq/query.rb', line 265 def set_check(val) pipe_with("set_check(#{val})") end |
#set_code_block_lang(lang) ⇒ Object
273 274 275 |
# File 'lib/mq/query.rb', line 273 def set_code_block_lang(lang) pipe_with("set_code_block_lang(#{lang.inspect})") end |
#set_list_ordered(val) ⇒ Object
277 278 279 |
# File 'lib/mq/query.rb', line 277 def set_list_ordered(val) pipe_with("set_list_ordered(#{val})") end |
#set_ref(ref) ⇒ Object
269 270 271 |
# File 'lib/mq/query.rb', line 269 def set_ref(ref) pipe_with("set_ref(#{ref.inspect})") end |
#sha256 ⇒ Object
200 |
# File 'lib/mq/query.rb', line 200 def sha256 = pipe_with("sha256()") |
#sha512 ⇒ Object
201 |
# File 'lib/mq/query.rb', line 201 def sha512 = pipe_with("sha512()") |
#slice(start, stop) ⇒ Object
110 111 112 |
# File 'lib/mq/query.rb', line 110 def slice(start, stop) pipe_with("slice(#{start}, #{stop})") end |
#sort ⇒ Object
81 |
# File 'lib/mq/query.rb', line 81 def sort = pipe_with("sort") |
#split(separator) ⇒ Object
90 91 92 |
# File 'lib/mq/query.rb', line 90 def split(separator) pipe_with("split(#{separator.inspect})") end |
#sqrt ⇒ Object
167 |
# File 'lib/mq/query.rb', line 167 def sqrt = pipe_with("sqrt()") |
#stem ⇒ Object
209 |
# File 'lib/mq/query.rb', line 209 def stem = pipe_with("stem()") |
#test(pattern) ⇒ Object
154 155 156 |
# File 'lib/mq/query.rb', line 154 def test(pattern) pipe_with("test(#{pattern.inspect})") end |
#title ⇒ Object
237 |
# File 'lib/mq/query.rb', line 237 def title = pipe_with(".title") |
#to_array ⇒ Object
69 |
# File 'lib/mq/query.rb', line 69 def to_array = pipe_with("to_array()") |
#to_bytes ⇒ Object
70 |
# File 'lib/mq/query.rb', line 70 def to_bytes = pipe_with("to_bytes()") |
#to_code(lang = nil) ⇒ Object
Convert current value to a code block with the given language.
282 283 284 |
# File 'lib/mq/query.rb', line 282 def to_code(lang = nil) lang ? pipe_with("to_code(#{lang.inspect})") : pipe_with("to_code(null)") end |
#to_code_inline ⇒ Object
286 |
# File 'lib/mq/query.rb', line 286 def to_code_inline = pipe_with("to_code_inline()") |
#to_em ⇒ Object
318 |
# File 'lib/mq/query.rb', line 318 def to_em = pipe_with("to_em()") |
#to_h(depth) ⇒ Object
Convert current value to a heading of the given depth (1-6).
289 290 291 |
# File 'lib/mq/query.rb', line 289 def to_h(depth) pipe_with("to_h(#{depth})") end |
#to_hex ⇒ Object
203 |
# File 'lib/mq/query.rb', line 203 def to_hex = pipe_with("to_hex()") |
#to_hex_str ⇒ Object
204 |
# File 'lib/mq/query.rb', line 204 def to_hex_str = pipe_with("to_hex()") |
#to_hr ⇒ Object
293 |
# File 'lib/mq/query.rb', line 293 def to_hr = pipe_with("to_hr()") |
#to_html ⇒ Object
66 |
# File 'lib/mq/query.rb', line 66 def to_html = pipe_with("to_html()") |
#to_image(url, img_alt = nil, img_title = "") ⇒ Object
Create an image node. With all three args no auto-prepend occurs. With two args the current value becomes the alt text.
307 308 309 310 311 312 313 |
# File 'lib/mq/query.rb', line 307 def to_image(url, img_alt = nil, img_title = "") if img_alt pipe_with("to_image(#{url.inspect}, #{img_alt.inspect}, #{img_title.inspect})") else pipe_with("to_image(#{url.inspect}, #{img_title.inspect})") end end |
#to_link(url, text = nil, link_title = "") ⇒ Object
Create a link node. With all three args no auto-prepend occurs. With two args the current value becomes the link text.
297 298 299 300 301 302 303 |
# File 'lib/mq/query.rb', line 297 def to_link(url, text = nil, link_title = "") if text pipe_with("to_link(#{url.inspect}, #{text.inspect}, #{link_title.inspect})") else pipe_with("to_link(#{url.inspect}, #{link_title.inspect})") end end |
#to_markdown ⇒ Object
64 |
# File 'lib/mq/query.rb', line 64 def to_markdown = pipe_with("to_markdown()") |
#to_markdown_string ⇒ Object
71 |
# File 'lib/mq/query.rb', line 71 def to_markdown_string = pipe_with("to_markdown_string()") |
#to_math ⇒ Object
315 |
# File 'lib/mq/query.rb', line 315 def to_math = pipe_with("to_math()") |
#to_math_inline ⇒ Object
316 |
# File 'lib/mq/query.rb', line 316 def to_math_inline = pipe_with("to_math_inline()") |
#to_md_list(list_level) ⇒ Object
Convert current value to a list item at the given nesting level.
322 323 324 |
# File 'lib/mq/query.rb', line 322 def to_md_list(list_level) pipe_with("to_md_list(#{list_level})") end |
#to_md_name(node_name) ⇒ Object
Convert current value to a markdown element with the given node name.
327 328 329 |
# File 'lib/mq/query.rb', line 327 def to_md_name(node_name) pipe_with("to_md_name(#{node_name.inspect})") end |
#to_md_table_cell(content, r, c) ⇒ Object
Build a table cell with content, row index, and column index.
337 338 339 |
# File 'lib/mq/query.rb', line 337 def to_md_table_cell(content, r, c) pipe_with("to_md_table_cell(#{content.inspect}, #{r}, #{c})") end |
#to_md_table_row(*cells) ⇒ Object
Build a table row from the given cell values.
332 333 334 |
# File 'lib/mq/query.rb', line 332 def to_md_table_row(*cells) pipe_with("to_md_table_row(#{cells.map(&:inspect).join(', ')})") end |
#to_md_text ⇒ Object
319 |
# File 'lib/mq/query.rb', line 319 def to_md_text = pipe_with("to_md_text()") |
#to_mdx ⇒ Object
65 |
# File 'lib/mq/query.rb', line 65 def to_mdx = pipe_with("to_mdx()") |
#to_number ⇒ Object
68 |
# File 'lib/mq/query.rb', line 68 def to_number = pipe_with("to_number()") |
#to_query ⇒ String Also known as: to_s
Returns the mq query string.
343 |
# File 'lib/mq/query.rb', line 343 def to_query = @expr |
#to_string ⇒ Object
67 |
# File 'lib/mq/query.rb', line 67 def to_string = pipe_with("to_string()") |
#to_strong ⇒ Object
317 |
# File 'lib/mq/query.rb', line 317 def to_strong = pipe_with("to_strong()") |
#to_text ⇒ Object
63 |
# File 'lib/mq/query.rb', line 63 def to_text = pipe_with("to_text()") |
#trim ⇒ Object
134 |
# File 'lib/mq/query.rb', line 134 def trim = pipe_with("trim()") |
#trunc ⇒ Object
166 |
# File 'lib/mq/query.rb', line 166 def trunc = pipe_with("trunc()") |
#type ⇒ Object
— Type / logic —
188 |
# File 'lib/mq/query.rb', line 188 def type = pipe_with("type") |
#uniq ⇒ Object
83 |
# File 'lib/mq/query.rb', line 83 def uniq = pipe_with("uniq") |
#upcase ⇒ Object
138 |
# File 'lib/mq/query.rb', line 138 def upcase = pipe_with("upcase()") |
#update(content) ⇒ Object
250 251 252 |
# File 'lib/mq/query.rb', line 250 def update(content) pipe_with("update(#{content.inspect})") end |
#url ⇒ Object
235 |
# File 'lib/mq/query.rb', line 235 def url = pipe_with(".url") |
#url_encode ⇒ Object
143 |
# File 'lib/mq/query.rb', line 143 def url_encode = pipe_with("url_encode()") |
#utf8bytelen ⇒ Object
75 |
# File 'lib/mq/query.rb', line 75 def utf8bytelen = pipe_with("utf8bytelen()") |
#value ⇒ Object
Attribute selectors (access attributes of selected nodes) These generate attribute selector syntax (.url, .lang, etc.)
231 |
# File 'lib/mq/query.rb', line 231 def value = pipe_with(".value") |
#values ⇒ Object
86 |
# File 'lib/mq/query.rb', line 86 def values = pipe_with("values") |
#|(other) ⇒ Query
Pipe two queries together using the | operator.
39 40 41 |
# File 'lib/mq/query.rb', line 39 def |(other) self.class.new("#{@expr} | #{other.to_query}") end |