Sha256: 79c32864c93de3a3ce65c9ea74a859aa72e4d1cd4ba474a6f47d62384d5c1948

Contents?: true

Size: 866 Bytes

Versions: 42

Compression:

Stored size: 866 Bytes

Contents

module Awestruct
  module Extensions
    class Gsub

      def initialize(pattern, replacement, options = {})
        @pattern = pattern
        @replacement = replacement.is_a?(Proc) ? replacement : lambda { |site, page| replacement }
        @gsub_required = lambdaize(options[:gsub_required])
      end

      def transform(site, page, rendered)
        if (@gsub_required.call(site, page))
          replacement = @replacement.call(site, page).to_s
          rendered = rendered.gsub(@pattern, replacement)
        end
        rendered
      end

      private

      def lambdaize(param)
        if param.nil?
          lambdaize([".html"])
        else
          if param.is_a?(Array)
            lambda { |site, page| param.any?{ |ext| page.output_path.end_with?(ext) } }
          else
            param
          end
        end
      end
    end
  end
end

Version data entries

42 entries across 42 versions & 1 rubygems

Version Path
awestruct-0.6.7 lib/awestruct/extensions/gsub.rb
awestruct-0.6.6 lib/awestruct/extensions/gsub.rb
awestruct-0.6.5 lib/awestruct/extensions/gsub.rb
awestruct-0.6.4 lib/awestruct/extensions/gsub.rb
awestruct-0.6.3 lib/awestruct/extensions/gsub.rb
awestruct-0.6.2 lib/awestruct/extensions/gsub.rb
awestruct-0.6.1 lib/awestruct/extensions/gsub.rb
awestruct-0.6.0 lib/awestruct/extensions/gsub.rb
awestruct-0.6.0.RC1 lib/awestruct/extensions/gsub.rb
awestruct-0.6.0.alpha4 lib/awestruct/extensions/gsub.rb
awestruct-0.6.0.alpha3 lib/awestruct/extensions/gsub.rb
awestruct-0.6.0.alpha1 lib/awestruct/extensions/gsub.rb
awestruct-0.5.7 lib/awestruct/extensions/gsub.rb
awestruct-0.5.7.RC2 lib/awestruct/extensions/gsub.rb
awestruct-0.5.7.RC1 lib/awestruct/extensions/gsub.rb
awestruct-0.5.6 lib/awestruct/extensions/gsub.rb
awestruct-0.5.6.beta9 lib/awestruct/extensions/gsub.rb
awestruct-0.5.6.beta8 lib/awestruct/extensions/gsub.rb
awestruct-0.5.6.beta7 lib/awestruct/extensions/gsub.rb
awestruct-0.5.6.beta6 lib/awestruct/extensions/gsub.rb