Module: Matchd::Response::Factory
- Included in:
- Matchd
- Defined in:
- lib/matchd/response.rb
Instance Method Summary collapse
-
#Response(respond, fallback_resource_class) ⇒ Array<Matchd::Response>
Creates new instances of a Matchd::Response subclass.
Instance Method Details
#Response(respond, fallback_resource_class) ⇒ Array<Matchd::Response>
Creates new instances of a Matchd::Response subclass. Which class is being used is defines via the respond or fallback_resource_class parameters.
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/matchd/response.rb', line 55 def Response(respond, fallback_resource_class) # rubocop:disable Naming/MethodName respond = [respond] unless respond.is_a?(Array) # don't convert Hash to Array respond.flat_map do |r| resource_class = if r.is_a?(Hash) r.fetch("resource_class", fallback_resource_class) else fallback_resource_class end raise ArgumentError, "Missing resource_class for Response" unless resource_class Array(resource_class).map { |klass| Matchd::Response.const_get(klass.upcase).new(r) } end end |