Sha256: 377061e8dd07e347a3918aa3935ef89a45212b33312e9098b387f33a3d744d97

Contents?: true

Size: 1.25 KB

Versions: 18

Compression:

Stored size: 1.25 KB

Contents

# frozen_string_literal: true

require 'pp'

module Lino
  module Utilities
    def map_and_join(collection, &block)
      collection.map { |item| block.call(item) }.join(' ')
    end

    def join_with(global_separator)
      lambda do |item|
        item[:components].join(item[:separator] || global_separator)
      end
    end

    def quote_with(global_character)
      lambda do |item|
        item.merge(
          components: resolve_components(item, global_character)
        )
      end
    end

    def nil?(value)
      value.nil?
    end

    def empty?(value)
      value.respond_to?(:empty?) && value.empty?
    end

    def nil_or_empty?(value)
      nil?(value) || empty?(value)
    end

    private

    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

    def or_nil(enumerable, key)
      enumerable.include?(key) ? enumerable[key] : nil
    end

    def or_nth(enumerable, key, index)
      enumerable.include?(key) ? enumerable[key] : enumerable[index]
    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
lino-3.1.0.pre.16 lib/lino/utilities.rb
lino-3.1.0.pre.15 lib/lino/utilities.rb
lino-3.1.0.pre.14 lib/lino/utilities.rb
lino-3.1.0.pre.13 lib/lino/utilities.rb
lino-3.1.0.pre.12 lib/lino/utilities.rb
lino-3.1.0.pre.11 lib/lino/utilities.rb
lino-3.1.0.pre.10 lib/lino/utilities.rb
lino-3.1.0.pre.9 lib/lino/utilities.rb
lino-3.1.0.pre.8 lib/lino/utilities.rb
lino-3.1.0.pre.7 lib/lino/utilities.rb
lino-3.1.0.pre.6 lib/lino/utilities.rb
lino-3.1.0.pre.5 lib/lino/utilities.rb
lino-3.1.0.pre.4 lib/lino/utilities.rb
lino-3.1.0.pre.3 lib/lino/utilities.rb
lino-3.1.0.pre.2 lib/lino/utilities.rb
lino-3.1.0.pre.1 lib/lino/utilities.rb
lino-3.0.0 lib/lino/utilities.rb
lino-3.0.0.pre.1 lib/lino/utilities.rb