class Markaby::Fragment

Every tag method in Markaby returns a Fragment. If any method gets called on the Fragment, the tag is removed from the Markaby stream and given back as a string. Usually the fragment is never used, though, and the stream stays intact.

For a more practical explanation, check out the README.

Public Class Methods

new(*args) click to toggle source
# File lib/markaby/builder.rb, line 295
def initialize(*args)
  @stream, @start, @length = args
  @transformed_stream = false
end

Private Instance Methods

method_missing(*args, &block) click to toggle source
# File lib/markaby/builder.rb, line 306
def method_missing(*args, &block)
  transform_stream unless transformed_stream?
  @str.__send__(*args, &block)
end
transform_stream() click to toggle source
# File lib/markaby/builder.rb, line 311
def transform_stream
  @transformed_stream = true

  # We can't do @stream.slice!(@start, @length),
  # as it would invalidate the @starts and @lengths of other Fragment instances.
  @str = @stream[@start, @length].to_s
  @stream[@start, @length] = [nil] * @length
end
transformed_stream?() click to toggle source
# File lib/markaby/builder.rb, line 320
def transformed_stream?
  @transformed_stream
end