Exception: Conject::CompositionError

Inherits:
ArgumentError
  • Object
show all
Defined in:
lib/conject/composition_error.rb

Instance Method Summary collapse

Constructor Details

#initialize(opts = nil) ⇒ CompositionError

Returns a new instance of CompositionError.



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/conject/composition_error.rb', line 5

def initialize(opts=nil)
  opts ||= {}
  object_def = opts[:object_definition]
  required = nil
  required = object_def.component_names if object_def
  provided = opts[:provided] || []

  msg = "Unexpected CompositionError"

  if object_def.nil?
    msg = "Failed to construct... something."
    if provided and !provided.empty? 
      msg << " Provided objects were: #{provided.inspect}"
    end

  elsif object_def and required and provided
    owner = object_def.owner || "object"
    msg = "Wrong components when building new #{owner}."

    missing = required - provided
    msg << " Missing required object(s) #{missing.to_a.inspect}." unless missing.empty?

    unexpected = provided - required
    msg << " Unexpected object(s) provided #{unexpected.to_a.inspect}." unless unexpected.empty?

  end

  super msg
end