Class: ActiveDryDeps::Dependency

Inherits:
Object
  • Object
show all
Defined in:
lib/active_dry_deps/dependency.rb

Constant Summary collapse

VALID_CONST_NAME =
/^[[:upper:]][[[:alnum:]]:_]*$/
VALID_METHOD_NAME =
/^[[[:alnum:]]_]+$/
LOWER =
/[[:lower:]]/
METHODS_AS_KLASS =
%w[perform_later call].freeze
METHOD_TEMPLATES =
{
  { container: true, method_call: true }   => <<~RUBY,
  { container: true, method_call: false }  => <<~RUBY,
  { container: false, method_call: true }  => <<~RUBY,
  { container: false, method_call: false } => <<~RUBY,
}.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(resolver, receiver_method_alias: nil) ⇒ Dependency

Returns a new instance of Dependency.



8
9
10
# File 'lib/active_dry_deps/dependency.rb', line 8

def initialize(resolver, receiver_method_alias: nil)
  parse_resolver(resolver, receiver_method_alias: receiver_method_alias)
end

Instance Attribute Details

#const_nameObject (readonly)

Returns the value of attribute const_name.



6
7
8
# File 'lib/active_dry_deps/dependency.rb', line 6

def const_name
  @const_name
end

#container_keyObject (readonly)

Returns the value of attribute container_key.



6
7
8
# File 'lib/active_dry_deps/dependency.rb', line 6

def container_key
  @container_key
end

#method_nameObject (readonly)

Returns the value of attribute method_name.



6
7
8
# File 'lib/active_dry_deps/dependency.rb', line 6

def method_name
  @method_name
end

#receiver_method_nameObject (readonly)

Returns the value of attribute receiver_method_name.



6
7
8
# File 'lib/active_dry_deps/dependency.rb', line 6

def receiver_method_name
  @receiver_method_name
end

Instance Method Details

#receiver_method_stringObject



13
14
15
16
17
18
19
20
21
# File 'lib/active_dry_deps/dependency.rb', line 13

def receiver_method_string
  Kernel.sprintf(
    METHOD_TEMPLATES.fetch(container: true, method_call: !@method_name.nil?),
    receiver_method_name: @receiver_method_name,
    container_key:        @container_key || @const_name, # @const_name fallback for stub constant in test
    const_name:           @const_name || dependency_not_registered_error_string,
    method_name:          @method_name,
  )
end