Module: Sourcerer::Jekyll::Liquid::Filters

Defined in:
lib/sourcerer/jekyll/liquid/filters.rb

Overview

Liquid-facing filters for Sourcerer's Jekyll-compatible runtime.

Public methods in this module are the filter wrappers consumed by Liquid. Core transformation logic lives in Ops so behavior is reusable and easier to test/refactor without changing the Liquid surface.

Constant Summary collapse

CLI_ARGS_TEMPLATES =

Canonical template definitions loaded from specs/data/liquid-filters.yml

load_cli_args_parameters.freeze

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.load_cli_args_parametersObject

Load canonical CLI args templates from YAML once at module load time



19
20
21
22
23
24
25
26
27
28
29
# File 'lib/sourcerer/jekyll/liquid/filters.rb', line 19

def self.load_cli_args_parameters
  require 'yaml'
  # Path from filters.rb: lib/sourcerer/jekyll/liquid/filters.rb
  # To specs/data/liquid-filters.yml: go up 4 levels to gem root, then to specs/data
  yaml_path = File.join(__dir__, '../../../../specs/data/liquid-filters.yml')
  yaml_path = File.expand_path(yaml_path)
  data = YAML.load_file(yaml_path, permitted_classes: [Date, Time])
  filters = data.is_a?(Array) ? data : data['filters'] || []
  to_cli_args_filter = filters.find { |f| f['key'] == 'to_cli_args' }
  to_cli_args_filter&.dig('parameters') || {}
end

Instance Method Details

#base64(input) ⇒ Object



390
391
392
# File 'lib/sourcerer/jekyll/liquid/filters.rb', line 390

def base64 input
  Ops.base64(input)
end

#base64_decode(input) ⇒ Object



394
395
396
# File 'lib/sourcerer/jekyll/liquid/filters.rb', line 394

def base64_decode input
  Ops.base64_decode(input)
end

#commentwrap(input, width = 80, prefix = nil) ⇒ Object



410
411
412
# File 'lib/sourcerer/jekyll/liquid/filters.rb', line 410

def commentwrap input, width=80, prefix=nil
  Ops.commentwrap(input, width, prefix)
end

#demarkupify(input) ⇒ Object



382
383
384
# File 'lib/sourcerer/jekyll/liquid/filters.rb', line 382

def demarkupify input
  Ops.demarkupify(input)
end

#holds_liquid(input) ⇒ Object



430
431
432
# File 'lib/sourcerer/jekyll/liquid/filters.rb', line 430

def holds_liquid input
  Ops.holds_liquid(input)
end

#html_escape(input) ⇒ Object



398
399
400
# File 'lib/sourcerer/jekyll/liquid/filters.rb', line 398

def html_escape input
  Ops.html_escape(input)
end

#html_unescape(input) ⇒ Object



402
403
404
# File 'lib/sourcerer/jekyll/liquid/filters.rb', line 402

def html_unescape input
  Ops.html_unescape(input)
end

#indent(input, spaces = 2, line1: false) ⇒ Object



370
371
372
# File 'lib/sourcerer/jekyll/liquid/filters.rb', line 370

def indent input, spaces=2, line1: false
  Ops.indent(input, spaces, line1: line1)
end

#inspect(input, format = 'html') ⇒ Object



446
447
448
# File 'lib/sourcerer/jekyll/liquid/filters.rb', line 446

def inspect input, format='html'
  Ops.inspect(input, format)
end

#inspect_yaml(input) ⇒ Object



386
387
388
# File 'lib/sourcerer/jekyll/liquid/filters.rb', line 386

def inspect_yaml input
  Ops.inspect_yaml(input)
end

#match(input, pattern) ⇒ Object



426
427
428
# File 'lib/sourcerer/jekyll/liquid/filters.rb', line 426

def match input, pattern
  Ops.match(input, pattern)
end

#md_to_adoc(input, wrap = 'ventilate') ⇒ Object



366
367
368
# File 'lib/sourcerer/jekyll/liquid/filters.rb', line 366

def md_to_adoc input, wrap='ventilate'
  Ops.md_to_adoc(input, wrap)
end

#plusify(input) ⇒ Object



362
363
364
# File 'lib/sourcerer/jekyll/liquid/filters.rb', line 362

def plusify input
  Ops.plusify(input)
end

#remove_last(input, string) ⇒ Object



450
451
452
# File 'lib/sourcerer/jekyll/liquid/filters.rb', line 450

def remove_last input, string
  Ops.remove_last(input, string)
end

#render(input, vars = nil) ⇒ Object



350
351
352
# File 'lib/sourcerer/jekyll/liquid/filters.rb', line 350

def render input, vars=nil
  Ops.render(input, vars)
end

#replace_last(input, string, replacement = '') ⇒ Object



454
455
456
# File 'lib/sourcerer/jekyll/liquid/filters.rb', line 454

def replace_last input, string, replacement=''
  Ops.replace_last(input, string, replacement)
end

#replace_regex(input, pattern, replacement = '') ⇒ Object



422
423
424
# File 'lib/sourcerer/jekyll/liquid/filters.rb', line 422

def replace_regex input, pattern, replacement=''
  Ops.replace_regex(input, pattern, replacement)
end

#ruby_class(input) ⇒ Object



374
375
376
# File 'lib/sourcerer/jekyll/liquid/filters.rb', line 374

def ruby_class input
  Ops.ruby_class(input)
end

#sluggerize(input, format = 'kebab') ⇒ Object



354
355
356
# File 'lib/sourcerer/jekyll/liquid/filters.rb', line 354

def sluggerize input, format='kebab'
  Ops.sluggerize(input, format)
end

#slugify(input) ⇒ Object



358
359
360
# File 'lib/sourcerer/jekyll/liquid/filters.rb', line 358

def slugify(input, *)
  Ops.slugify(input, *)
end

#squish(input) ⇒ Object



458
459
460
# File 'lib/sourcerer/jekyll/liquid/filters.rb', line 458

def squish input
  Ops.squish(input)
end

#store_list_concat(input, key_name) ⇒ Object



438
439
440
# File 'lib/sourcerer/jekyll/liquid/filters.rb', line 438

def store_list_concat input, key_name
  Ops.store_list_concat(input, key_name)
end

#store_list_dupes(input, key_name) ⇒ Object



442
443
444
# File 'lib/sourcerer/jekyll/liquid/filters.rb', line 442

def store_list_dupes input, key_name
  Ops.store_list_dupes(input, key_name)
end

#sum(input, property = nil) ⇒ Object



462
463
464
# File 'lib/sourcerer/jekyll/liquid/filters.rb', line 462

def sum input, property=nil
  Ops.sum(input, property)
end

#title_caps(input, hyphen = false) ⇒ Object



378
379
380
# File 'lib/sourcerer/jekyll/liquid/filters.rb', line 378

def title_caps input, hyphen=false
  Ops.title_caps(input, hyphen)
end

#to_cli_args(input, template = nil, delimiter = ' ') ⇒ Object



434
435
436
# File 'lib/sourcerer/jekyll/liquid/filters.rb', line 434

def to_cli_args input, template=nil, delimiter=' '
  Ops.to_cli_args(input, template, delimiter)
end

#to_json(input) ⇒ Object



418
419
420
# File 'lib/sourcerer/jekyll/liquid/filters.rb', line 418

def to_json input
  Ops.to_json(input)
end

#to_yaml(input) ⇒ Object



414
415
416
# File 'lib/sourcerer/jekyll/liquid/filters.rb', line 414

def to_yaml(input, *)
  Ops.to_yaml(input, *)
end

#wrap(input, width = 80) ⇒ Object



406
407
408
# File 'lib/sourcerer/jekyll/liquid/filters.rb', line 406

def wrap input, width=80
  Ops.wrap(input, width)
end