class Cattri::Context

def define_method!(target, attribute, name, &block)

Returns:
  • (void) -

Other tags:
    Yield: - method implementation

Parameters:
  • name (Symbol) --
  • attribute (Cattri::Attribute) --
  • target (Module) --
def define_method!(target, attribute, name, &block)
  target.class_eval { define_method(name, &block) } # steep:ignore
  __cattri_defined_methods[attribute.name] << name
  apply_visibility!(target, name, attribute)
rescue StandardError => e
  raise Cattri::AttributeError, "Failed to define accessor methods for `:#{name}` on #{target}. Error: #{e.message}"
end