Class: ConvenientService::Core::Entities::Config::Entities::Concerns

Inherits:
Object
  • Object
show all
Defined in:
lib/convenient_service/core/entities/config/entities/concerns.rb,
lib/convenient_service/core/entities/config/entities/concerns/entities/stack.rb,
lib/convenient_service/core/entities/config/entities/concerns/entities/middleware.rb,
lib/convenient_service/core/entities/config/entities/concerns/entities/default_concern.rb,
lib/convenient_service/core/entities/config/entities/concerns/entities/middleware/commands/cast_middleware.rb

Overview

Since:

  • 1.0.0

Defined Under Namespace

Modules: Entities

Instance Method Summary collapse

Constructor Details

#initialize(klass:) ⇒ void

Parameters:

  • klass (Class)

Since:

  • 1.0.0



20
21
22
# File 'lib/convenient_service/core/entities/config/entities/concerns.rb', line 20

def initialize(klass:)
  @klass = klass
end

Instance Method Details

#==(other) ⇒ Boolean?

Parameters:

Returns:

  • (Boolean, nil)

Since:

  • 1.0.0



110
111
112
113
114
115
116
117
# File 'lib/convenient_service/core/entities/config/entities/concerns.rb', line 110

def ==(other)
  return unless other.instance_of?(self.class)

  return false if klass != other.klass
  return false if stack != other.stack

  true
end

#class_method_defined?(method_name) ⇒ Boolean

Parameters:

  • method_name (Symbol, String)

Returns:

  • (Boolean)

Since:

  • 1.0.0



50
51
52
# File 'lib/convenient_service/core/entities/config/entities/concerns.rb', line 50

def class_method_defined?(method_name)
  class_method_defined_in_class_methods_modules?(method_name)
end

#configure(&configuration_block) ⇒ ConvenientService::Core::Entities::Config::Entities::Concerns

Parameters:

  • configuration_block (Proc)

Returns:

Since:

  • 1.0.0



78
79
80
81
82
# File 'lib/convenient_service/core/entities/config/entities/concerns.rb', line 78

def configure(&configuration_block)
  Utils::Proc.exec_config(configuration_block, stack)

  self
end

#include!Boolean

Includes concerns into klass when called for the first time. Does nothing for the subsequent calls.

Returns:

  • (Boolean)

    true if called for the first time, false otherwise (similarly as Kernel#require).

See Also:

Since:

  • 1.0.0



96
97
98
99
100
101
102
103
104
# File 'lib/convenient_service/core/entities/config/entities/concerns.rb', line 96

def include!
  return false if included?

  klass.include(Entities::DefaultConcern)

  stack.call(klass: klass)

  true
end

#included?Boolean

Checks whether concerns are included into klass (include! was called at least once).

Returns:

  • (Boolean)

Since:

  • 1.0.0



70
71
72
# File 'lib/convenient_service/core/entities/config/entities/concerns.rb', line 70

def included?
  klass.include?(Entities::DefaultConcern)
end

#instance_method_defined?(method_name) ⇒ Boolean

Parameters:

  • method_name (Symbol, String)

Returns:

  • (Boolean)

Since:

  • 1.0.0



28
29
30
31
32
33
# File 'lib/convenient_service/core/entities/config/entities/concerns.rb', line 28

def instance_method_defined?(method_name)
  return true if instance_method_defined_in_instance_methods_modules?(method_name)
  return true if instance_method_defined_directly?(method_name)

  false
end

#private_class_method_defined?(method_name) ⇒ Boolean

Parameters:

  • method_name (Symbol, String)

Returns:

  • (Boolean)

Since:

  • 1.0.0



58
59
60
# File 'lib/convenient_service/core/entities/config/entities/concerns.rb', line 58

def private_class_method_defined?(method_name)
  private_class_method_defined_in_class_methods_modules?(method_name)
end

#private_instance_method_defined?(method_name) ⇒ Boolean

Parameters:

  • method_name (Symbol, String)

Returns:

  • (Boolean)

Since:

  • 1.0.0



39
40
41
42
43
44
# File 'lib/convenient_service/core/entities/config/entities/concerns.rb', line 39

def private_instance_method_defined?(method_name)
  return true if private_instance_method_defined_in_instance_methods_modules?(method_name)
  return true if private_instance_method_defined_directly?(method_name)

  false
end

#to_aArray<Module>

Returns concerns as plain modules.

Returns:

  • (Array<Module>)

    concerns as plain modules.

Since:

  • 1.0.0



122
123
124
# File 'lib/convenient_service/core/entities/config/entities/concerns.rb', line 122

def to_a
  plain_concerns
end