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 276 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 287 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 292 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 301 def transformed_stream? @transformed_stream end