Class: JSI::Schema::Cxt::InplaceApplication

Inherits:
Block show all
Defined in:
lib/jsi/schema/cxt/inplace_application.rb

Constant Summary collapse

WithInstance =
InplaceApplication.subclass(*%i(
  instance
  collect_evaluated
))

Instance Attribute Summary collapse

Attributes inherited from Block

#block

Attributes inherited from JSI::Schema::Cxt

#schema

Instance Method Summary collapse

Methods inherited from Block

#cxt_yield

Methods inherited from JSI::Schema::Cxt

#internal_integer?, #keyword?, #keyword_value_ary?, #keyword_value_bool?, #keyword_value_hash?, #keyword_value_numeric?, #keyword_value_str?, #schema_content, #subschema

Instance Attribute Details

#collect_evaluatedBoolean

Does application need to collect successful child evaluation?



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/jsi/schema/cxt/inplace_application.rb', line 12

class InplaceApplication < Block
  # @param subschema_ptr [Ptr, #to_ary]
  def inplace_subschema_applicate(subschema_ptr, **kw)
    inplace_schema_applicate(schema.subschema(subschema_ptr), **kw)
  end

  # @param applicator_schema [Schema]
  def inplace_schema_applicate(applicator_schema, **kw)
    block.call(applicator_schema, **kw)
  end

  def instance
    raise(Bug, "in-place application is being invoked without an instance; the current element needs action :inplace_application_requires_instance")
  end

  def collect_evaluated
    false
  end
end

Instance Method Details

#inplace_schema_applicate(applicator_schema, **kw) ⇒ Object



19
20
21
# File 'lib/jsi/schema/cxt/inplace_application.rb', line 19

def inplace_schema_applicate(applicator_schema, **kw)
  block.call(applicator_schema, **kw)
end

#inplace_subschema_applicate(subschema_ptr, **kw) ⇒ Object



14
15
16
# File 'lib/jsi/schema/cxt/inplace_application.rb', line 14

def inplace_subschema_applicate(subschema_ptr, **kw)
  inplace_schema_applicate(schema.subschema(subschema_ptr), **kw)
end

#instanceObject

Raises:



23
24
25
# File 'lib/jsi/schema/cxt/inplace_application.rb', line 23

def instance
  raise(Bug, "in-place application is being invoked without an instance; the current element needs action :inplace_application_requires_instance")
end