Module: Kwartz::ConverterHelper

Included in:
Converter, Handler
Defined in:
lib/kwartz/converter.rb

Overview

helper module for Converter and Handler

Handler and Converter class include this module.

Instance Method Summary collapse

Instance Method Details

#_last_stmt_kind(stmt_list) ⇒ Object



267
268
269
270
271
272
# File 'lib/kwartz/converter.rb', line 267

def _last_stmt_kind(stmt_list)
  return nil if stmt_list.nil? || stmt_list.empty?
  stmt = stmt_list.last
  return nil unless stmt.is_a?(NativeStatement)
  return stmt.kind
end

#convert_error(message, linenum) ⇒ Object

return ConvertError



236
237
238
# File 'lib/kwartz/converter.rb', line 236

def convert_error(message, linenum)
  return ConvertError.new(message, @filename, linenum)
end

#error_if_empty_tag(handler_arg) ⇒ Object

raise errror if etag_info is null



242
243
244
245
246
247
248
249
250
# File 'lib/kwartz/converter.rb', line 242

def error_if_empty_tag(handler_arg)
  arg = handler_arg
  unless arg.etag_info
    d_name  = arg.directive_name
    d_str   = arg.directive_str
    msg = "'#{d_str}': #{d_name} directive is not available with empty tag."
    raise convert_error(msg, arg.stag_info.linenum)
  end
end

#error_when_last_stmt_is_not_if(stmt_list, handler_arg) ⇒ Object



253
254
255
256
257
258
259
260
261
# File 'lib/kwartz/converter.rb', line 253

def error_when_last_stmt_is_not_if(stmt_list, handler_arg)
  kind = _last_stmt_kind(stmt_list)
  unless kind == :if || kind == :elseif
    d_str = handler_arg.directive_str
    linenum = handler_arg.stag_info.linenum
    msg = "'#{d_str}': previous statement should be 'if' or 'elsif'."
    raise convert_error(msg, linenum)
  end
end

#include_properties(properties) ⇒ Object

set @despan and @dattr



229
230
231
232
# File 'lib/kwartz/converter.rb', line 229

def include_properties(properties)
  @dattr = properties[:dattr]   || Config::PROPERTY_DATTR    # default: 'kw:d'
  @delspan = properties.key?(:delspan) ? properties[:delspan] : Config::PROPERTY_DELSPAN  # delete dummy <span> tag or not
end