Module: SkinnyControllers::Lookup::EnsureExistence

Included in:
SkinnyControllers::Lookup
Defined in:
lib/skinny_controllers/lookup/ensure_existence.rb

Class Method Summary collapse

Class Method Details

.ensure_namespace!(namespace) ⇒ Module

Returns namespace.

Returns:

  • (Module)

    namespace



7
8
9
10
# File 'lib/skinny_controllers/lookup/ensure_existence.rb', line 7

def ensure_namespace!(namespace)
  klass = namespace_lookup(namespace)
  klass || Namespace.create_namespace(namespace)
end

.ensure_operation_class!(qualified_name) ⇒ Object



12
13
14
15
# File 'lib/skinny_controllers/lookup/ensure_existence.rb', line 12

def ensure_operation_class!(qualified_name)
  klass = operation_lookup(qualified_name)
  klass || use_defailt_operation(qualified_name)
end

.ensure_policy_class!(qualified_name) ⇒ Object



17
18
19
20
# File 'lib/skinny_controllers/lookup/ensure_existence.rb', line 17

def ensure_policy_class!(qualified_name)
  klass = policy_lookup(qualified_name)
  klass || Lookup::Policy.define_policy_class(qualified_name)
end

.use_defailt_operation(qualified_name) ⇒ Class

This assumes the namespace already exists This is only to be used if there does not exist operation that goes by the name defined by qualified_name (hence the warn log at the top)

Examples:

‘Api::V2::PostOperations::Create’


Parameters:

  • qualified_name (String)

    the name of the class to create

Returns:

  • (Class)

    a duplicate of the default operation



31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/skinny_controllers/lookup/ensure_existence.rb', line 31

def use_defailt_operation(qualified_name)
  SkinnyControllers.logger.warn("#{qualified_name} not found. Creating default...")

  parts = qualified_name.split('::')
  class_name = parts.pop
  namespace = parts.join('::').safe_constantize

  namespace.const_set(
    class_name,
    SkinnyControllers::Operation::Default.dup
  )
end