@@ -12,13 +12,9 @@ class << self
1212 # @param identifier [String]
1313 # @return [String] serialized feed body.
1414 def call ( request :, target_kind :, identifier :)
15- feed_request = Request . call ( request :, target_kind :, identifier :)
16- resolved_source = SourceResolver . call ( feed_request )
17- result = Service . call ( resolved_source )
18- normalized_identifier = feed_request . feed_name || identifier
15+ feed_request , resolved_source , result = resolve_request ( request :, target_kind :, identifier :)
1916 body = write_response ( response : request . response , representation : feed_request . representation , result :)
20-
21- emit_result ( target_kind :, identifier : normalized_identifier , resolved_source :, result :)
17+ emit_response_result ( target_kind :, identifier :, feed_request :, resolved_source :, result :)
2218 body
2319 rescue StandardError => error
2420 emit_failure ( target_kind :, identifier :, error :)
@@ -27,6 +23,39 @@ def call(request:, target_kind:, identifier:)
2723
2824 private
2925
26+ # @param request [Rack::Request]
27+ # @param target_kind [Symbol]
28+ # @param identifier [String]
29+ # @return [Array<(Html2rss::Web::Feeds::Contracts::Request, Html2rss::Web::Feeds::Contracts::ResolvedSource, Html2rss::Web::Feeds::Contracts::RenderResult)>]
30+ def resolve_request ( request :, target_kind :, identifier :)
31+ feed_request = Request . call ( request :, target_kind :, identifier :)
32+ resolved_source = SourceResolver . call ( feed_request )
33+ result = Service . call ( resolved_source )
34+ [ feed_request , resolved_source , result ]
35+ end
36+
37+ # @param feed_request [Html2rss::Web::Feeds::Contracts::Request]
38+ # @param identifier [String]
39+ # @return [String]
40+ def normalized_identifier ( feed_request , identifier )
41+ feed_request . feed_name || identifier
42+ end
43+
44+ # @param target_kind [Symbol]
45+ # @param identifier [String]
46+ # @param feed_request [Html2rss::Web::Feeds::Contracts::Request]
47+ # @param resolved_source [Html2rss::Web::Feeds::Contracts::ResolvedSource]
48+ # @param result [Html2rss::Web::Feeds::Contracts::RenderResult]
49+ # @return [void]
50+ def emit_response_result ( target_kind :, identifier :, feed_request :, resolved_source :, result :)
51+ emit_result (
52+ target_kind :,
53+ identifier : normalized_identifier ( feed_request , identifier ) ,
54+ resolved_source :,
55+ result :
56+ )
57+ end
58+
3059 # @param response [Rack::Response]
3160 # @param representation [Symbol]
3261 # @param result [Html2rss::Web::Feeds::Contracts::RenderResult]
0 commit comments