Sha256: 73e5273c9c1fbde095f2e84fd121b5f4423119ef1e37cb9b7486f8257da4d410

Contents?: true

Size: 1.55 KB

Versions: 22

Compression:

Stored size: 1.55 KB

Contents

# encoding: utf-8

require_relative '../transformer'


module Epuber
  class Transformer
    class TextTransformer < Transformer

      # @return [String]
      #
      attr_accessor :text

      # @return [String]
      #
      attr_accessor :file_path


      # @param [String] file_path  path to transforming file
      # @param [String] text  text file content
      # @param [CompilationContext] compilation_context
      #
      # @return [String] new transformed text
      #
      def call(file_path, text, compilation_context)
        @file_path = file_path
        @text = text.dup

        @block.call(self, @text, compilation_context)

        new_text = @text

        @text = nil
        @file_path = nil

        new_text
      end

      # Shortcut for performing substitutions in text
      #
      # @param [Regexp, String] pattern
      # @param [String, nil] replacement
      # @param [Bool] multiple_times  run the replacement multiple times, while there is something to replace
      # @param [Proc] block  optional block for creating replacements, see String#gsub!
      #
      # @return [String, nil] see String#gsub!
      #
      def replace_all(pattern, replacement = nil, multiple_times: false, &block)
        result = if replacement.nil?
                   @text.gsub!(pattern, &block)
                 else
                   @text.gsub!(pattern, replacement, &block)
                 end

        result = replace_all(pattern, replacement, multiple_times: multiple_times, &block) if multiple_times && !result.nil?
        result
      end
    end
  end
end

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
epuber-0.6.0 lib/epuber/transformer/text_transformer.rb
epuber-0.5.7 lib/epuber/transformer/text_transformer.rb
epuber-0.5.6 lib/epuber/transformer/text_transformer.rb
epuber-0.5.5 lib/epuber/transformer/text_transformer.rb
epuber-0.5.4 lib/epuber/transformer/text_transformer.rb
epuber-0.5.3 lib/epuber/transformer/text_transformer.rb
epuber-0.5.2 lib/epuber/transformer/text_transformer.rb
epuber-0.5.1 lib/epuber/transformer/text_transformer.rb
epuber-0.5.0 lib/epuber/transformer/text_transformer.rb
epuber-0.5.0.beta.5 lib/epuber/transformer/text_transformer.rb
epuber-0.5.0.beta.4 lib/epuber/transformer/text_transformer.rb
epuber-0.5.0.beta.3 lib/epuber/transformer/text_transformer.rb
epuber-0.5.0.beta.2 lib/epuber/transformer/text_transformer.rb
epuber-0.5.0.beta lib/epuber/transformer/text_transformer.rb
epuber-0.4.0 lib/epuber/transformer/text_transformer.rb
epuber-0.3.12 lib/epuber/transformer/text_transformer.rb
epuber-0.3.11 lib/epuber/transformer/text_transformer.rb
epuber-0.3.10 lib/epuber/transformer/text_transformer.rb
epuber-0.3.9 lib/epuber/transformer/text_transformer.rb
epuber-0.3.7 lib/epuber/transformer/text_transformer.rb