Module: Castkit::DSL::DataObject::Introspection::IntrospectionHelpers

Defined in:
lib/castkit/dsl/data_object/introspection.rb

Overview

Class-level helpers that read from Cattri’s attribute registry but do not override Castkit’s attribute builder.

Instance Method Summary collapse

Instance Method Details

#attribute_defined?(name) ⇒ Boolean

Returns:

  • (Boolean)


21
22
23
# File 'lib/castkit/dsl/data_object/introspection.rb', line 21

def attribute_defined?(name)
  !!cattri_attribute(name)
end

#attribute_definitions(with_ancestors: false) ⇒ Object



25
26
27
# File 'lib/castkit/dsl/data_object/introspection.rb', line 25

def attribute_definitions(with_ancestors: false)
  cattri_attribute_registry.defined_attributes(with_ancestors: with_ancestors)
end

#attribute_methodsObject



29
30
31
32
33
# File 'lib/castkit/dsl/data_object/introspection.rb', line 29

def attribute_methods
  cattri_attribute_registry.defined_attributes(with_ancestors: true).transform_values do |attribute|
    Set.new(attribute.allowed_methods)
  end
end

#attribute_source(name) ⇒ Object



35
36
37
# File 'lib/castkit/dsl/data_object/introspection.rb', line 35

def attribute_source(name)
  cattri_attribute(name)&.defined_in
end