module Lino::Utilities

Public Instance Methods

empty?(value) click to toggle source
# File lib/lino/utilities.rb, line 29
def empty?(value)
  value.respond_to?(:empty?) && value.empty?
end
join_with(global_separator) click to toggle source
# File lib/lino/utilities.rb, line 11
def join_with(global_separator)
  lambda do |item|
    item[:components].join(item[:separator] || global_separator)
  end
end
map_and_join(collection, &block) click to toggle source
# File lib/lino/utilities.rb, line 7
def map_and_join(collection, &block)
  collection.map { |item| block.call(item) }.join(' ')
end
nil?(value) click to toggle source
# File lib/lino/utilities.rb, line 25
def nil?(value)
  value.nil?
end
nil_or_empty?(value) click to toggle source
# File lib/lino/utilities.rb, line 33
def nil_or_empty?(value)
  nil?(value) || empty?(value)
end
quote_with(global_character) click to toggle source
# File lib/lino/utilities.rb, line 17
def quote_with(global_character)
  lambda do |item|
    item.merge(
      components: resolve_components(item, global_character)
    )
  end
end

Private Instance Methods

or_nil(enumerable, key) click to toggle source
# File lib/lino/utilities.rb, line 53
def or_nil(enumerable, key)
  enumerable.include?(key) ? enumerable[key] : nil
end
or_nth(enumerable, key, index) click to toggle source
# File lib/lino/utilities.rb, line 57
def or_nth(enumerable, key, index)
  enumerable.include?(key) ? enumerable[key] : enumerable[index]
end
resolve_components(item, global_character) click to toggle source
# File lib/lino/utilities.rb, line 39
def resolve_components(item, global_character)
  components = item[:components]
  switch = components[0]

  if components.count > 1
    character = item[:quoting] || global_character
    value = components[1]

    [switch, "#{character}#{value}#{character}"]
  else
    components
  end
end