Class: Anyway::Loaders::Registry

Inherits:
Object
  • Object
show all
Defined in:
lib/anyway/loaders.rb,
sig/anyway_config.rbs

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeRegistry

Returns a new instance of Registry.



15
16
17
# File 'lib/anyway/loaders.rb', line 15

def initialize
  @registry = []
end

Instance Attribute Details

#registryObject (readonly)

Returns the value of attribute registry.



13
14
15
# File 'lib/anyway/loaders.rb', line 13

def registry
  @registry
end

Instance Method Details

#append(id, loader) ⇒ void #append(id) ⇒ void

Overloads:

  • #append(id, loader) ⇒ void

    This method returns an undefined value.

    Parameters:

  • #append(id) ⇒ void

    This method returns an undefined value.

    Parameters:

    • id (Symbol)

Yields:

Yield Parameters:

  • arg0 (Object)

Yield Returns:

  • (Hash[untyped, untyped])


24
25
26
27
# File 'lib/anyway/loaders.rb', line 24

def append(id, handler = nil, &block)
  handler ||= block
  insert_at(registry.size, id, handler)
end

#delete(id) ⇒ void

This method returns an undefined value.

Parameters:

  • id (Symbol)


52
53
54
55
56
57
# File 'lib/anyway/loaders.rb', line 52

def delete(id)
  find(id).then do |id_to_handler|
    raise ArgumentError, "Loader with ID #{id} hasn't been registered" if id_to_handler.nil?
    registry.delete id_to_handler
  end
end

#each(&block) ⇒ Object



59
60
61
# File 'lib/anyway/loaders.rb', line 59

def each(&block)
  registry.each(&block)
end

#freezeObject



65
# File 'lib/anyway/loaders.rb', line 65

def freeze() = registry.freeze

#insert_after(another_id, id, loader) ⇒ void #insert_after(another_id, id) ⇒ void

Overloads:

  • #insert_after(another_id, id, loader) ⇒ void

    This method returns an undefined value.

    Parameters:

    • another_id (Symbol)
    • id (Symbol)
    • loader (_Loader)
  • #insert_after(another_id, id) ⇒ void

    This method returns an undefined value.

    Parameters:

    • another_id (Symbol)
    • id (Symbol)

Yields:

Yield Parameters:

  • arg0 (Object)

Yield Returns:

  • (Hash[untyped, untyped])

Raises:

  • (ArgumentError)


37
38
39
40
41
42
43
# File 'lib/anyway/loaders.rb', line 37

def insert_after(another_id, id, handler = nil, &block)
  ind = registry.find_index { |(hid, _)| hid == another_id }
  raise ArgumentError, "Loader with ID #{another_id} hasn't been registered" if ind.nil?

  handler ||= block
  insert_at(ind + 1, id, handler)
end

#insert_before(another_id, id, loader) ⇒ void #insert_before(another_id, id) ⇒ void

Overloads:

  • #insert_before(another_id, id, loader) ⇒ void

    This method returns an undefined value.

    Parameters:

    • another_id (Symbol)
    • id (Symbol)
    • loader (_Loader)
  • #insert_before(another_id, id) ⇒ void

    This method returns an undefined value.

    Parameters:

    • another_id (Symbol)
    • id (Symbol)

Yields:

Yield Parameters:

  • arg0 (Object)

Yield Returns:

  • (Hash[untyped, untyped])

Raises:

  • (ArgumentError)


29
30
31
32
33
34
35
# File 'lib/anyway/loaders.rb', line 29

def insert_before(another_id, id, handler = nil, &block)
  ind = registry.find_index { |(hid, _)| hid == another_id }
  raise ArgumentError, "Loader with ID #{another_id} hasn't been registered" if ind.nil?

  handler ||= block
  insert_at(ind, id, handler)
end

#keysArray[Symbol]

Returns:

  • (Array[Symbol])


63
# File 'lib/anyway/loaders.rb', line 63

def keys() = registry.map(&:first)

#override(id, loader) ⇒ void #override(id) ⇒ void

Overloads:

  • #override(id, loader) ⇒ void

    This method returns an undefined value.

    Parameters:

  • #override(id) ⇒ void

    This method returns an undefined value.

    Parameters:

    • id (Symbol)

Yields:

Yield Parameters:

  • arg0 (Object)

Yield Returns:

  • (Hash[untyped, untyped])


45
46
47
48
49
50
# File 'lib/anyway/loaders.rb', line 45

def override(id, handler)
  find(id).then do |id_to_handler|
    raise ArgumentError, "Loader with ID #{id} hasn't been registered" if id_to_handler.nil?
    id_to_handler[1] = handler
  end
end

#prepend(id, loader) ⇒ void #prepend(id) ⇒ void

Overloads:

  • #prepend(id, loader) ⇒ void

    This method returns an undefined value.

    Parameters:

  • #prepend(id) ⇒ void

    This method returns an undefined value.

    Parameters:

    • id (Symbol)

Yields:

Yield Parameters:

  • arg0 (Object)

Yield Returns:

  • (Hash[untyped, untyped])


19
20
21
22
# File 'lib/anyway/loaders.rb', line 19

def prepend(id, handler = nil, &block)
  handler ||= block
  insert_at(0, id, handler)
end