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

Defined Under Namespace

Modules: Entities

Instance Method Summary collapse

Constructor Details

#initialize(klass:) ⇒ void

Parameters:

  • klass (Class)


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)


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

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)


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:



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:



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

def include!
  return false if included?

  stack.dup.insert_before(0, Entities::DefaultConcern).call(klass: klass)

  true
end

#included?Boolean

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

Returns:

  • (Boolean)


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)


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)


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)


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.



120
121
122
# File 'lib/convenient_service/core/entities/config/entities/concerns.rb', line 120

def to_a
  plain_concerns
end