class Tnql::Parser
This class simplifies TNQL queries by wrapping them in a little syntactic sugar.
Attributes
parser[R]
Public Class Methods
new(query)
click to toggle source
# File lib/tnql/parser.rb, line 9 def initialize(query) raise ArgumentError unless query.is_a?(String) @parser = TnqlParser.new @result = @parser.parse(query.downcase) return if valid? # FIXME: should log "Parser failed parsing \"#{query}\": #{@parser.failure_reason} " \ # "(line: #{@parser.failure_line}, column: #{@parser.failure_column})" end
Public Instance Methods
diagnosis_range()
click to toggle source
# File lib/tnql/parser.rb, line 36 def diagnosis_range tumour_diagnosisdate = meta_data['tumour.diagnosisdate'] return nil unless tumour_diagnosisdate starts, ends = tumour_diagnosisdate[Tnql::LIMITS] Daterange.new(Date.parse(starts), Date.parse(ends)) end
failure_column()
click to toggle source
# File lib/tnql/parser.rb, line 32 def failure_column valid? ? nil : @parser.failure_column end
failure_line()
click to toggle source
# File lib/tnql/parser.rb, line 28 def failure_line valid? ? nil : @parser.failure_line end
failure_reason()
click to toggle source
# File lib/tnql/parser.rb, line 24 def failure_reason valid? ? nil : @parser.failure_reason end
messages()
click to toggle source
# File lib/tnql/parser.rb, line 44 def messages # check if any query conditions been ignored or modified msg = ''.html_safe meta_data.each do |_canonical_name, filter| msg += filter[Tnql::MESSAGE] if filter.key?(Tnql::MESSAGE) end msg end
meta_data()
click to toggle source
# File lib/tnql/parser.rb, line 52 def meta_data valid? ? @result.meta_data : {} end
valid?()
click to toggle source
# File lib/tnql/parser.rb, line 20 def valid? !@result.nil? end