Class: DependencyBundle

Inherits:
Object
  • Object
show all
Defined in:
lib/dependency_bundle.rb,
lib/dependency_bundle/version.rb

Constant Summary collapse

DependencyNotProvided =
Class.new(StandardError)
OverrideAttempted =
Class.new(StandardError)
VERSION =
"1.0.0"

Instance Method Summary collapse

Constructor Details

#initialize(**dependencies) ⇒ DependencyBundle

Returns a new instance of DependencyBundle.



7
8
9
10
11
12
13
14
15
16
# File 'lib/dependency_bundle.rb', line 7

def initialize(**dependencies)
  set(
    {
      env:    ENV,
      stdin:  STDIN,
      stdout: STDOUT,
      stderr: STDERR,
    }.merge(**dependencies)
  )
end

Instance Method Details

#set(**dependencies) ⇒ Object



18
19
20
21
22
# File 'lib/dependency_bundle.rb', line 18

def set(**dependencies)
  dependencies.each do |name, dependency|
    set_single_dependency(name, dependency)
  end
end

#verify_dependencies!(*names) ⇒ Object

Raises:

  • (ArgumentError)


24
25
26
27
28
29
30
31
32
# File 'lib/dependency_bundle.rb', line 24

def verify_dependencies!(*names)
  raise(ArgumentError, "##{__method__} expects names of dependencies to be passed") if names.empty?

  not_found_names = names.reject(&method(:respond_to?))

  raise(DependencyNotProvided, "#{not_found_names} not set") if not_found_names.any?

  true
end