Class: Scorpio::ResourceBase::Container
- Inherits:
-
Object
- Object
- Scorpio::ResourceBase::Container
- Includes:
- Containment
- Defined in:
- lib/scorpio/resource_base.rb,
lib/scorpio/resource_base.rb
Instance Attribute Summary collapse
-
#contained_object ⇒ Object
(also: #jsi_node_content)
readonly
Returns the value of attribute contained_object.
-
#options ⇒ Object
readonly
Returns the value of attribute options.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(contained_object, openapi_document_class, options = {}) ⇒ Container
constructor
A new instance of Container.
- #jsi_object_group_text ⇒ Array<String>
Methods included from Containment
#[], #[]=, #as_json, #inspect, #jsi_fingerprint, #pretty_print
Constructor Details
#initialize(contained_object, openapi_document_class, options = {}) ⇒ Container
Returns a new instance of Container.
536 537 538 539 540 541 |
# File 'lib/scorpio/resource_base.rb', line 536 def initialize(contained_object, openapi_document_class, = {}) @contained_object = contained_object @openapi_document_class = openapi_document_class @options = @subscript_memos = {} end |
Instance Attribute Details
#contained_object ⇒ Object (readonly) Also known as: jsi_node_content
Returns the value of attribute contained_object.
543 544 545 |
# File 'lib/scorpio/resource_base.rb', line 543 def contained_object @contained_object end |
#options ⇒ Object (readonly)
Returns the value of attribute options.
545 546 547 |
# File 'lib/scorpio/resource_base.rb', line 545 def @options end |
Class Method Details
.new_container(object, openapi_document_class, options = {}) ⇒ Object
509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 |
# File 'lib/scorpio/resource_base.rb', line 509 def new_container(object, openapi_document_class, = {}) container_modules = Set[] # TODO this is JSI internals that scorpio shouldn't really be using if object.respond_to?(:to_hash) container_modules << JSI::Base::HashNode end if object.respond_to?(:to_ary) container_modules << JSI::Base::ArrayNode end container_modules += object.jsi_schemas.map do |schema| JSI::SchemaClasses.accessor_module_for_schema(schema, conflicting_modules: container_modules + [Container], ) end container_class = @container_classes[container_modules.freeze] container_class.new(object, openapi_document_class, ) end |
Instance Method Details
#jsi_object_group_text ⇒ Array<String>
553 554 555 556 557 558 559 560 |
# File 'lib/scorpio/resource_base.rb', line 553 def jsi_object_group_text schema_names = contained_object.jsi_schemas.map { |schema| schema.jsi_schema_module.name_from_ancestor || schema.schema_uri }.compact if schema_names.empty? [Container.to_s] else ["#{Container} (#{schema_names.join(', ')})"] end end |