class Nginxtra::ConfigConverter::Token

Constants

KEYWORDS
TERMINAL_CHARACTERS

Attributes

value[R]

Public Class Methods

new(value = nil) click to toggle source
# File lib/nginxtra/config_converter.rb, line 127
def initialize(value = nil)
  @instance = true if value
  @value = value || ""
  @ready = false
end

Public Instance Methods

<<(c) click to toggle source
# File lib/nginxtra/config_converter.rb, line 168
def <<(c)
  return space! if c =~ /\s/
  return terminal_character!(c) if TERMINAL_CHARACTERS.include? c
  @value << c
end
block_end?() click to toggle source
# File lib/nginxtra/config_converter.rb, line 157
def block_end?
  @value == "}"
end
block_start?() click to toggle source
# File lib/nginxtra/config_converter.rb, line 153
def block_start?
  @value == "{"
end
end?() click to toggle source
# File lib/nginxtra/config_converter.rb, line 149
def end?
  @value == ";"
end
if?() click to toggle source
# File lib/nginxtra/config_converter.rb, line 133
def if?
  @value == "if"
end
if_end!() click to toggle source
# File lib/nginxtra/config_converter.rb, line 141
def if_end!
  @value.gsub!(/\)$/, "")
end
if_start!() click to toggle source
# File lib/nginxtra/config_converter.rb, line 137
def if_start!
  @value.gsub!(/^\(/, "")
end
instance() click to toggle source
# File lib/nginxtra/config_converter.rb, line 161
def instance
  raise Nginxtra::Error::ConvertFailed, "Whoops!" unless ready?
  token = Nginxtra::ConfigConverter::Token.new @value
  reset!
  token
end
ready?() click to toggle source
# File lib/nginxtra/config_converter.rb, line 174
def ready?
  @instance || @ready || terminal_character?
end
terminal_character?() click to toggle source
# File lib/nginxtra/config_converter.rb, line 145
def terminal_character?
  TERMINAL_CHARACTERS.include? @value
end
to_line_start() click to toggle source
# File lib/nginxtra/config_converter.rb, line 178
def to_line_start
  if KEYWORDS.include? @value
    "_#{@value}"
  else
    @value
  end
end
to_s() click to toggle source
# File lib/nginxtra/config_converter.rb, line 186
def to_s
  if @value =~ /^\d+$/
    @value
  else
    %("#{@value.gsub("\\") { "\\\\" }}")
  end
end

Private Instance Methods

reset!() click to toggle source
# File lib/nginxtra/config_converter.rb, line 211
def reset!
  @value = if @next
             @next
           else
             ""
           end

  @next = nil
  @ready = false
end
space!() click to toggle source
# File lib/nginxtra/config_converter.rb, line 196
def space!
  return if @value.empty?
  @ready = true
end
terminal_character!(c) click to toggle source
# File lib/nginxtra/config_converter.rb, line 201
def terminal_character!(c)
  if @value.empty?
    @value = c
  else
    @next = c
  end

  @ready = true
end