Class: BELParser::Language::ExpressionValidator::NestedStatementResult

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, #valid_signature_mappings

Constructor Details

#initialize(subject_result, object_result, syntax, semantics) ⇒ NestedStatementResult

Returns a new instance of NestedStatementResult.



345
346
347
348
349
350
351
352
353
354
# File 'lib/bel_parser/language/expression_validator.rb', line 345

def initialize(subject_result, object_result, syntax, semantics)
  @subject_result    = subject_result
  @object_result     = object_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.



342
343
344
# File 'lib/bel_parser/language/expression_validator.rb', line 342

def semantics_results
  @semantics_results
end

#syntax_resultsObject (readonly)

Returns the value of attribute syntax_results.



342
343
344
# File 'lib/bel_parser/language/expression_validator.rb', line 342

def syntax_results
  @syntax_results
end

Instance Method Details

#detailObject



418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
# File 'lib/bel_parser/language/expression_validator.rb', line 418

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 += "\n"

  report += @object_result.detail
  report
end

#invalid_object_signaturesObject



401
402
403
404
405
406
# File 'lib/bel_parser/language/expression_validator.rb', line 401

def invalid_object_signatures
  @object_result.semantics_results
    .select do |res|
      res.is_a?(Semantics::SignatureMappingWarning)
    end
end

#invalid_subject_signaturesObject



387
388
389
390
391
392
# File 'lib/bel_parser/language/expression_validator.rb', line 387

def invalid_subject_signatures
  @subject_result.semantics_results
    .select do |res|
      res.is_a?(Semantics::SignatureMappingWarning)
    end
end

#object_valid?Boolean

Returns:

  • (Boolean)


376
377
378
# File 'lib/bel_parser/language/expression_validator.rb', line 376

def object_valid?
  @object_result.valid?
end

#subject_valid?Boolean

Returns:

  • (Boolean)


372
373
374
# File 'lib/bel_parser/language/expression_validator.rb', line 372

def subject_valid?
  @subject_result.valid?
end

#to_sObject



408
409
410
411
412
413
414
415
416
# File 'lib/bel_parser/language/expression_validator.rb', line 408

def to_s
  report = @object_result.to_s
  <<-HEADER.gsub(/^ {12}/, '')
    Syntax:    #{valid_syntax?    ? 'Valid' : 'Invalid'}
    Semantics: #{valid_semantics? ? 'Valid' : 'Invalid'}

    #{syntax_errors_s}#{semantics_errors_s}#{detail}
  HEADER
end

#valid?Boolean

Returns:

  • (Boolean)


356
357
358
# File 'lib/bel_parser/language/expression_validator.rb', line 356

def valid?
  valid_syntax? && valid_semantics?
end

#valid_object_signaturesObject



394
395
396
397
398
399
# File 'lib/bel_parser/language/expression_validator.rb', line 394

def valid_object_signatures
  @object_result.semantics_results
    .select do |res|
      res.is_a?(Semantics::SignatureMappingSuccess)
    end.uniq
end

#valid_semantics?Boolean

Returns:

  • (Boolean)


366
367
368
369
370
# File 'lib/bel_parser/language/expression_validator.rb', line 366

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

#valid_subject_signaturesObject



380
381
382
383
384
385
# File 'lib/bel_parser/language/expression_validator.rb', line 380

def valid_subject_signatures
  @subject_result.semantics_results
    .select do |res|
      res.is_a?(Semantics::SignatureMappingSuccess)
    end.uniq
end

#valid_syntax?Boolean

Returns:

  • (Boolean)


360
361
362
363
364
# File 'lib/bel_parser/language/expression_validator.rb', line 360

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