Sha256: e73134358b166adb4ea230fa745dbd87b43b02002f2b8f9f137b916582f53864

Contents?: true

Size: 1.11 KB

Versions: 1

Compression:

Stored size: 1.11 KB

Contents

module Adyen
  module SkinBuilder
    module Helper
      module Render

        # the output buffer
        def buffer
          @_out_buf || @_buf
        end

        # capture rednered output to a string
        def capture
          pos = buffer.size
          yield
          buffer.slice!(pos..buffer.size)
        end

        # renders a file from the inc folder of the skin
        def render_file(file)
          file = File.join(@skin.path, "inc/#{file}.txt")
          File.read(file) if File.exists?(file)
        end

         # render an erb partial inline
        def render_partial(file, locals = {})
          file = partialize(file)
          file = if views = locals.delete(:views)
            File.join(views, file)
          else
            @skin.get_file(file)
          end
          erb File.basename(file).gsub(".erb", "").to_sym, :layout => false, :views => File.dirname(file), :locals => locals
        end

        private
        def partialize(path)
          path.to_s.split('/').tap do |path|
            path[-1] = "_#{path.last}.html.erb"
          end.join("/")
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
adyen-skinbuilder-0.4.1 lib/adyen-skinbuilder/helper/render.rb