Class: BELParser::Language::ExpressionValidator::ObservedTermResult

Inherits:
Object
  • Object
show all
Includes:
Result
Defined in:
lib/bel_parser/language/expression_validator.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Result

#invalid_signature_mappings, #to_s, #valid?, #valid_signature_mappings

Constructor Details

#initialize(expression_node, subject_result, syntax, semantics) ⇒ ObservedTermResult

Returns a new instance of ObservedTermResult.



219
220
221
222
223
224
225
226
227
228
# File 'lib/bel_parser/language/expression_validator.rb', line 219

def initialize(expression_node, subject_result, syntax, semantics)
  @expression_node   = expression_node
  @subject_result    = subject_result
  @syntax_results    = syntax
  @semantics_results =
    semantics.reject! do |res|
      res.is_a?(Semantics::SignatureMappingWarning) ||
      res.is_a?(Semantics::SignatureMappingSuccess)
    end
end

Instance Attribute Details

#semantics_resultsObject (readonly)

Returns the value of attribute semantics_results.



216
217
218
# File 'lib/bel_parser/language/expression_validator.rb', line 216

def semantics_results
  @semantics_results
end

#syntax_resultsObject (readonly)

Returns the value of attribute syntax_results.



216
217
218
# File 'lib/bel_parser/language/expression_validator.rb', line 216

def syntax_results
  @syntax_results
end

Instance Method Details

#detailObject



242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
# File 'lib/bel_parser/language/expression_validator.rb', line 242

def detail
  report = "Subject term - Valid signatures\n"
  @subject_result.valid_signature_mappings.each do |mapping|
    report += "  #{mapping.signature}\n"
    mapping.results.each do |reason|
      report += "    #{reason}\n"
    end
  end
  report += "\n"

  report += "Subject term - Invalid signatures\n"
  @subject_result.invalid_signature_mappings.each do |mapping|
    report += "  #{mapping.signature}\n"
    mapping.results.each do |reason|
      report += "    #{reason}\n"
    end
  end
  report
end

#subject_valid?Boolean

Returns:

  • (Boolean)


238
239
240
# File 'lib/bel_parser/language/expression_validator.rb', line 238

def subject_valid?
  valid?
end

#valid_semantics?Boolean

Returns:

  • (Boolean)


234
235
236
# File 'lib/bel_parser/language/expression_validator.rb', line 234

def valid_semantics?
  @subject_result.valid_semantics? && @semantics_results.empty?
end

#valid_syntax?Boolean

Returns:

  • (Boolean)


230
231
232
# File 'lib/bel_parser/language/expression_validator.rb', line 230

def valid_syntax?
  @subject_result.valid_syntax? && @syntax_results.empty?
end