Class: Foobara::TypeDeclarations::Handlers::ExtendAssociativeArrayTypeDeclaration

Inherits:
ExtendRegisteredTypeDeclaration show all
Defined in:
foobara-0.6.1/projects/typesystem/projects/type_declarations/src/handlers/extend_associative_array_type_declaration.rb,
foobara-0.6.1/projects/typesystem/projects/type_declarations/src/handlers/extend_associative_array_type_declaration/to_type_transformer.rb,
foobara-0.6.1/projects/typesystem/projects/type_declarations/src/handlers/extend_associative_array_type_declaration/key_type_declaration_desugarizer.rb,
foobara-0.6.1/projects/typesystem/projects/type_declarations/src/handlers/extend_associative_array_type_declaration/value_type_declaration_desugarizer.rb

Defined Under Namespace

Classes: KeyTypeDeclarationDesugarizer, ToTypeTransformer, ValueTypeDeclarationDesugarizer

Instance Attribute Summary

Attributes inherited from TypeDeclarationHandler

#desugarizers, #type_declaration_validators

Attributes inherited from Value::Processor::Multi

#prioritize, #processors

Instance Method Summary collapse

Methods inherited from TypeDeclarationHandler

#desugarize, #desugarizer, foobara_manifest, #initialize, #inspect, #processors, starting_desugarizers, #starting_desugarizers, starting_desugarizers_with_inherited, #starting_desugarizers_with_inherited, starting_desugarizers_without_inherited, #starting_desugarizers_without_inherited, starting_type_declaration_validators, #starting_type_declaration_validators, #to_type_transformer, #type_declaration_validator

Methods included from WithRegistries

#handler_for_class, #lookup_absolute_type!, #lookup_type, #lookup_type!, #type_declaration_handler_for, #type_for_declaration, #type_registered?

Methods included from Concern

foobara_class_methods_module_for, foobara_concern?, included

Methods inherited from Value::Processor::Pipeline

foobara_manifest, #process_outcome, #process_value

Methods inherited from Value::Processor::Multi

#error_classes, #initialize, #possible_errors, #processor_names, #register, requires_declaration_data?

Constructor Details

This class inherits a constructor from Foobara::TypeDeclarations::TypeDeclarationHandler

Instance Method Details

#applicable?(sugary_type_declaration) ⇒ Boolean

Returns:

  • (Boolean)


7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'projects/typesystem/projects/type_declarations/src/handlers/extend_associative_array_type_declaration.rb', line 7

def applicable?(sugary_type_declaration)
  strictish_type_declaration = if sugary_type_declaration.strict?
                                 sugary_type_declaration
                               else
                                 desugarize(sugary_type_declaration.clone)
                               end

  if strictish_type_declaration.hash? && strictish_type_declaration[:type] == :associative_array
    unless strictish_type_declaration.equal?(sugary_type_declaration)
      sugary_type_declaration.assign(strictish_type_declaration)
    end

    true
  end
end

#priorityObject

TODO: do we really need this? Isn't this the default?



24
25
26
# File 'projects/typesystem/projects/type_declarations/src/handlers/extend_associative_array_type_declaration.rb', line 24

def priority
  Priority::LOW
end