Sha256: 6b56cbaead771927c2aa9d8de22ca724f0ab748c6251d94b5b331219ac52fa3b

Contents?: true

Size: 699 Bytes

Versions: 5

Compression:

Stored size: 699 Bytes

Contents

# frozen_string_literal: true

require 'prawn/rtl/connector/logic'
require 'twitter_cldr'

module Prawn
  module Rtl
    module Connector
      def self.connect(string)
        Prawn::Rtl::Connector::Logic.transform(string)
      end

      def self.fix_rtl(string)
        return string unless include_rtl?(string)
        reorder(connect(string))
      end

      def self.reorder(string)
        TwitterCldr::Shared::Bidi
          .from_string(string, direction: :RTL)
          .reorder_visually!
          .to_s
      end

      def self.include_rtl?(string)
        TwitterCldr::Shared::Bidi
          .from_string(string)
          .types
          .include?(:R)
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
prawn-rtl-support-0.1.7 lib/prawn/rtl/connector.rb
prawn-rtl-support-0.1.6 lib/prawn/rtl/connector.rb
prawn-rtl-support-0.1.5 lib/prawn/rtl/connector.rb
prawn-rtl-support-0.1.1 lib/prawn/rtl/connector.rb
prawn-rtl-support-0.1.0 lib/prawn/rtl/connector.rb