Module: Vedeu::Repositories::Store

Includes:
Enumerable, Common
Included in:
Repository
Defined in:
lib/vedeu/repositories/store.rb

Overview

Provides generic repository related behaviour.

Instance Method Summary collapse

Instance Method Details

#absent?(variable) ⇒ Boolean Originally defined in module Common

Returns a boolean indicating whether a variable is nil or empty.

Parameters:

  • variable (String|Symbol|Array|Fixnum)

    The variable to check.

Returns:

  • (Boolean)

#demodulize(klass) ⇒ String Originally defined in module Common

Removes the module part from the expression in the string.

Examples:

demodulize('Vedeu::SomeModule::SomeClass') # => "SomeClass"

Parameters:

  • klass (Class|String)

Returns:

  • (String)

#each(&block) ⇒ Enumerator

Parameters:

  • block (Proc)

Returns:

  • (Enumerator)


14
15
16
# File 'lib/vedeu/repositories/store.rb', line 14

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

#empty?Boolean

Return a boolean indicating whether the storage is empty.

Returns:

  • (Boolean)


21
22
23
# File 'lib/vedeu/repositories/store.rb', line 21

def empty?
  storage.empty?
end

#exists?(name) ⇒ Boolean Also known as: registered?

Returns a boolean indicating whether the named model is registered.

Parameters:

  • name (String|Symbol)

Returns:

  • (Boolean)


30
31
32
33
34
# File 'lib/vedeu/repositories/store.rb', line 30

def exists?(name)
  return false if empty? || absent?(name)

  storage.include?(name)
end

#in_memoryHash

Returns:

  • (Hash)


78
79
80
# File 'lib/vedeu/repositories/store.rb', line 78

def in_memory
  {}
end

#present?(variable) ⇒ Boolean Originally defined in module Common

Returns a boolean indicating whether a variable has a useful value.

Parameters:

  • variable (String|Symbol|Array|Fixnum)

    The variable to check.

Returns:

  • (Boolean)

#registeredArray

Returns a collection of the names of all the registered entities.

Returns:

  • (Array)


41
42
43
44
45
46
47
# File 'lib/vedeu/repositories/store.rb', line 41

def registered
  return []           if empty?
  return storage.keys if storage.is_a?(Hash)
  return storage.to_a if storage.is_a?(Set)

  storage
end

#resetArray|Hash|Set Also known as: reset!, clear

Remove all currently stored data.

Returns:

  • (Array|Hash|Set)


52
53
54
55
56
57
# File 'lib/vedeu/repositories/store.rb', line 52

def reset
  Vedeu.log(type:    :reset,
            message: "(#{self.class.name}) #{registered.inspect}".freeze)

  @storage = in_memory
end

#sizeFixnum

Return the number of entries stored.

Returns:

  • (Fixnum)


64
65
66
# File 'lib/vedeu/repositories/store.rb', line 64

def size
  storage.size
end

#snake_case(name) ⇒ String Originally defined in module Common

Converts a class name to a lowercase snake case string.

Examples:

snake_case(MyClassName) # => "my_class_name"
snake_case(NameSpaced::ClassName)
# => "name_spaced/class_name"

Parameters:

  • name (String)

Returns:

  • (String)

#storageArray|Hash|Set Also known as: all

Return whole repository; provides raw access to the storage for this repository.

Returns:

  • (Array|Hash|Set)


72
73
74
# File 'lib/vedeu/repositories/store.rb', line 72

def storage
  @storage ||= in_memory
end