Module: XRT::Statement::Factory

Defined in:
lib/xrt/statement.rb

Class Method Summary collapse

Class Method Details

.new_from_content(content) ⇒ Object



96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
# File 'lib/xrt/statement.rb', line 96

def self.new_from_content content
  syntax = XRT::Syntax.new

  block_level = syntax.block_level content

  if block_level == 1
    XRT::Statement::Block.new content
  elsif block_level == -1
    XRT::Statement::End.new content
  elsif syntax.block? content
    XRT::Statement::Directive.new content
  elsif syntax.tag_start? content
    XRT::Statement::Tag.new content
  elsif syntax.tag_end? content
    XRT::Statement::TagEnd.new content
  elsif syntax.whitespace? content
    XRT::Statement::Whitespace.new content
  else
    XRT::Statement::Text.new content
  end
end