Class: BELParser::Language::ExpressionValidator::SimpleStatementResult

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_signature_mappings

Constructor Details

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

Returns a new instance of SimpleStatementResult.



239
240
241
242
243
244
245
246
247
248
# File 'lib/bel_parser/language/expression_validator.rb', line 239

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.



236
237
238
# File 'lib/bel_parser/language/expression_validator.rb', line 236

def semantics_results
  @semantics_results
end

#syntax_resultsObject (readonly)

Returns the value of attribute syntax_results.



236
237
238
# File 'lib/bel_parser/language/expression_validator.rb', line 236

def syntax_results
  @syntax_results
end

Instance Method Details

#detailObject



302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
# File 'lib/bel_parser/language/expression_validator.rb', line 302

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 term - Valid signatures\n"
  @object_result.valid_signature_mappings.each do |mapping|
    report += "  #{mapping.signature}\n"
    mapping.results.each do |reason|
      report += "    #{reason}\n"
    end
  end
  report += "\n"

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

#invalid_object_signaturesObject



295
296
297
298
299
300
# File 'lib/bel_parser/language/expression_validator.rb', line 295

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

#invalid_subject_signaturesObject



281
282
283
284
285
286
# File 'lib/bel_parser/language/expression_validator.rb', line 281

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

#object_valid?Boolean

Returns:

  • (Boolean)


270
271
272
# File 'lib/bel_parser/language/expression_validator.rb', line 270

def object_valid?
  @object_result.valid?
end

#subject_valid?Boolean

Returns:

  • (Boolean)


266
267
268
# File 'lib/bel_parser/language/expression_validator.rb', line 266

def subject_valid?
  @subject_result.valid?
end

#valid?Boolean

Returns:

  • (Boolean)


250
251
252
# File 'lib/bel_parser/language/expression_validator.rb', line 250

def valid?
  valid_syntax? && valid_semantics?
end

#valid_object_signaturesObject



288
289
290
291
292
293
# File 'lib/bel_parser/language/expression_validator.rb', line 288

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

#valid_semantics?Boolean

Returns:

  • (Boolean)


260
261
262
263
264
# File 'lib/bel_parser/language/expression_validator.rb', line 260

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

#valid_subject_signaturesObject



274
275
276
277
278
279
# File 'lib/bel_parser/language/expression_validator.rb', line 274

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

#valid_syntax?Boolean

Returns:

  • (Boolean)


254
255
256
257
258
# File 'lib/bel_parser/language/expression_validator.rb', line 254

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