Class: Basepack::FilterQL::Builder

Inherits:
Object
  • Object
show all
Defined in:
lib/basepack/filter_ql.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(query, options, slice = nil) ⇒ Builder

Returns a new instance of Builder.



155
156
157
158
159
# File 'lib/basepack/filter_ql.rb', line 155

def initialize(query, options, slice = nil)
  @query = query
  @options = options
  @slice = slice
end

Instance Attribute Details

#optionsObject (readonly)

Returns the value of attribute options.



153
154
155
# File 'lib/basepack/filter_ql.rb', line 153

def options
  @options
end

#queryObject (readonly)

Returns the value of attribute query.



153
154
155
# File 'lib/basepack/filter_ql.rb', line 153

def query
  @query
end

#sliceObject (readonly)

Returns the value of attribute slice.



153
154
155
# File 'lib/basepack/filter_ql.rb', line 153

def slice
  @slice
end

Instance Method Details

#functionsObject



161
162
163
# File 'lib/basepack/filter_ql.rb', line 161

def functions
  @options[:functions] || {}
end

#new_for_slice(slice) ⇒ Object



179
180
181
# File 'lib/basepack/filter_ql.rb', line 179

def new_for_slice(slice)
  Builder.new(query, options, slice)
end

#raise_error(message) ⇒ Object



170
171
172
173
174
175
176
177
# File 'lib/basepack/filter_ql.rb', line 170

def raise_error(message)
  if slice
    line, column = slice.line_and_column
    raise_error_for_pos(message, slice.offset + slice.size, line, column)
  else
    raise ParseError, message
  end
end

#raise_error_for_pos(message, pos, line = '?', column = '?') ⇒ Object

Raises:



165
166
167
168
# File 'lib/basepack/filter_ql.rb', line 165

def raise_error_for_pos(message, pos, line = '?', column = '?')
  query_error = pos >= query.length ? "#{query}(<=CHYBA)" : query.dup.insert(pos, "(<=CHYBA)")
  raise ParseError, "#{message} na řádku #{line} sloupec #{column}: \"#{query_error}\""
end