Sha256: 6608422e9403aca3e405b4c9836474b78dd2da1697c693b1de0a4543f0588ead

Contents?: true

Size: 1.05 KB

Versions: 1

Compression:

Stored size: 1.05 KB

Contents

module AsciidoctorBibliography
  module Helpers
    def self.slice(hash, *array_of_keys)
      Hash[[array_of_keys, hash.values_at(*array_of_keys)].transpose]
    end

    def self.join_nonempty(array, separator)
      array.compact.map(&:to_s).reject(&:empty?).join(separator)
    end

    def self.html_to_asciidoc(string)
      string
        .gsub(/<\/?i>/, '_')
        .gsub(/<\/?b>/, '*')
        .gsub(/<\/?span.*?>/, '')
        .gsub(/\{|\}/, '')
    end

    # NOTE: mostly stolen from ActiveSupport.
    def self.to_sentence(array, options = {})
      default_connectors = {
        :words_connector     => ', ',
        :two_words_connector => ' and ',
        :last_word_connector => ', and '
      }
      options = default_connectors.merge!(options)

      case array.length
      when 0
        ''
      when 1
        array[0].to_s.dup
      when 2
        "#{array[0]}#{options[:two_words_connector]}#{array[1]}"
      else
        "#{array[0...-1].join(options[:words_connector])}#{options[:last_word_connector]}#{array[-1]}"
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
asciidoctor-bibliography-0.0.1.dev lib/asciidoctor-bibliography/helpers.rb