class Regextest::Front::Selectable::Selectable

Attributes

candidates[R]
length[R]
offset[R]

Public Class Methods

new(value) click to toggle source

Constructor

# File lib/regextest/front/selectable.rb, line 17
def initialize(value)
  TstLog("Selectlable: #{value}")
  @reg_options = @@parse_options[:reg_options]
  case value
  when Array
    @candidates = value
    @offset = value[0].offset
    @length = value[-1].offset + value[-1].length - value[0].offset
  else
    @candidates = [value]
    @offset = value.offset
    @length = value.length
  end
end

Public Instance Methods

add(value) click to toggle source

add selectable sequence

# File lib/regextest/front/selectable.rb, line 33
def add(value)
  TstLog("Selectlable add: #{value}"); 
  @candidates.push value
  @length = value.offset - @offset + value.length
  self
end
json() click to toggle source

transform to json format

# File lib/regextest/front/selectable.rb, line 51
def json
  @@id += 1
  "{" +
    "\"type\": \"LEX_SELECT\", \"id\": \"S#{@@id}\", " +
    "\"offset\": #{@offset}, \"length\": #{@length}, " +
    "\"value\": [" + @candidates.map{|elem| elem.json}.join(",") +
  "]}"
end
set_options(options) click to toggle source

set options

# File lib/regextest/front/selectable.rb, line 41
def set_options(options)
  TstLog("Selectlable set_options: #{options[:reg_options].inspect}"); 
  reg_options = (options)?options[:reg_options]:nil
  @candidates.each do | candidate |
    candidate.set_options(options)
  end
  self
end