triannon-client 0.4.2 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. checksums.yaml +4 -4
  2. data/.env_example +16 -2
  3. data/.rspec +1 -0
  4. data/README.md +49 -18
  5. data/Rakefile +15 -2
  6. data/lib/triannon-client.rb +12 -6
  7. data/lib/triannon-client/configuration.rb +26 -14
  8. data/lib/triannon-client/triannon_client.rb +139 -44
  9. data/spec/fixtures/vcr_cassettes/{TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/gets_an_open_annotation_by_ID_with_content_type_application/x-turtle_.yml → CRUD/create_annotation.yml} +192 -132
  10. data/spec/fixtures/vcr_cassettes/TriannonClientAUTH/with_authentication/behaves_like_authenticate/-_authenticate_returns_true.yml +343 -0
  11. data/spec/fixtures/vcr_cassettes/TriannonClientCREATE/_post_annotation/with_authentication/behaves_like_create_annotations/POST_401_response_retries_and_logs_RestClient_Exception_message.yml +170 -0
  12. data/spec/fixtures/vcr_cassettes/TriannonClientCREATE/_post_annotation/with_authentication/behaves_like_create_annotations/POST_403_response_does_not_retry_and_logs_RestClient_Exception_message.yml +170 -0
  13. data/spec/fixtures/vcr_cassettes/TriannonClientCREATE/_post_annotation/with_authentication/behaves_like_create_annotations/POST_500_response_does_not_retry_and_logs_RestClient_Exception_message.yml +170 -0
  14. data/spec/fixtures/vcr_cassettes/{TriannonClient/_get_annotations/returns_an_annotation_list_with_an_annotation_created_by_a_prior_POST.yml → TriannonClientCREATE/_post_annotation/with_authentication/behaves_like_create_annotations/does_not_raise_an_error_when_submitting_a_valid_open_annotation.yml} +203 -319
  15. data/spec/fixtures/vcr_cassettes/TriannonClientCREATE/_post_annotation/with_authentication/behaves_like_create_annotations/logs_RuntimeError_message.yml +170 -0
  16. data/spec/fixtures/vcr_cassettes/TriannonClientCREATE/_post_annotation/with_authentication/behaves_like_create_annotations/returns_a_RestClient_Response_object.yml +170 -0
  17. data/spec/fixtures/vcr_cassettes/{TriannonClient/_post_annotation → TriannonClientCREATE/_post_annotation/without_authentication/behaves_like_create_annotations}/does_not_raise_an_error_when_submitting_a_valid_open_annotation.yml +29 -27
  18. data/spec/fixtures/vcr_cassettes/TriannonClientCREATE/clear_annotations.yml +590 -0
  19. data/spec/fixtures/vcr_cassettes/TriannonClientDELETE/_delete_annotation/with_authentication/behaves_like_delete_annotations/returns_TRUE_when_deleting_an_annotation_that_does_NOT_exist.yml +349 -0
  20. data/spec/fixtures/vcr_cassettes/TriannonClientDELETE/_delete_annotation/with_authentication/behaves_like_delete_annotations/returns_TRUE_when_deleting_an_annotation_that_exists.yml +332 -0
  21. data/spec/fixtures/vcr_cassettes/TriannonClientDELETE/_delete_annotation/with_authentication/behaves_like_delete_annotations/validates_the_annotation_ID.yml +288 -0
  22. data/spec/fixtures/vcr_cassettes/{TriannonClient/_delete_annotation/returns_TRUE_when_deleting_an_open_annotation_that_does_NOT_exist.yml → TriannonClientDELETE/_delete_annotation/without_authentication/behaves_like_delete_annotations/returns_TRUE_when_deleting_an_annotation_that_does_NOT_exist.yml} +13 -9
  23. data/spec/fixtures/vcr_cassettes/TriannonClientDELETE/_delete_annotation/without_authentication/behaves_like_delete_annotations/returns_TRUE_when_deleting_an_annotation_that_exists.yml +127 -0
  24. data/spec/fixtures/vcr_cassettes/{TriannonClient/_delete_annotation → TriannonClientDELETE/_delete_annotation/without_authentication/behaves_like_delete_annotations}/validates_the_annotation_ID.yml +7 -5
  25. data/spec/fixtures/vcr_cassettes/TriannonClientDELETE/clear_annotations.yml +594 -0
  26. data/spec/fixtures/vcr_cassettes/{TriannonClient → TriannonClientREAD/GET}/_get_annotations/returns_an_RDF_Graph.yml +30 -23
  27. data/spec/fixtures/vcr_cassettes/{TriannonClient → TriannonClientREAD/GET}/_get_annotations/returns_an_RDF_Graph_that_contains_an_AnnotationList.yml +30 -23
  28. data/spec/fixtures/vcr_cassettes/TriannonClientREAD/GET/_get_annotations/returns_an_annotation_list_with_an_annotation_created_by_a_prior_POST.yml +302 -0
  29. data/spec/fixtures/vcr_cassettes/{TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/requests_an_open_annotation_by_ID_with_content_type_application/n-quads_.yml → TriannonClientREAD/GET/_get_iiif_annotation/returns_an_RDF_Graph_of_an_open_annotation.yml} +25 -78
  30. data/spec/fixtures/vcr_cassettes/{TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/requests_an_open_annotation_by_ID_with_content_type_application/n-triples_.yml → TriannonClientREAD/GET/_get_oa_annotation/returns_an_RDF_Graph_of_an_open_annotation.yml} +25 -78
  31. data/spec/fixtures/vcr_cassettes/TriannonClientREAD/GET/_response2graph/accepts_a_RestClient_Response_instance.yml +2399 -0
  32. data/spec/fixtures/vcr_cassettes/TriannonClientREAD/GET/annotation_by_ID/using_custom_content_type/cannot_get_an_open_annotation_by_ID_with_content_type_application/csvm_json_.yml +1231 -0
  33. data/spec/fixtures/vcr_cassettes/TriannonClientREAD/GET/annotation_by_ID/using_custom_content_type/cannot_get_an_open_annotation_by_ID_with_content_type_application/n-quads_.yml +1231 -0
  34. data/spec/fixtures/vcr_cassettes/TriannonClientREAD/GET/annotation_by_ID/using_custom_content_type/cannot_get_an_open_annotation_by_ID_with_content_type_application/n-triples_.yml +1231 -0
  35. data/spec/fixtures/vcr_cassettes/TriannonClientREAD/GET/annotation_by_ID/using_custom_content_type/cannot_get_an_open_annotation_by_ID_with_content_type_application/rdf_json_.yml +1231 -0
  36. data/spec/fixtures/vcr_cassettes/TriannonClientREAD/GET/annotation_by_ID/using_custom_content_type/cannot_get_an_open_annotation_by_ID_with_content_type_application/rdf_n3_.yml +1231 -0
  37. data/spec/fixtures/vcr_cassettes/TriannonClientREAD/GET/annotation_by_ID/using_custom_content_type/cannot_get_an_open_annotation_by_ID_with_content_type_application/trig_.yml +1231 -0
  38. data/spec/fixtures/vcr_cassettes/TriannonClientREAD/GET/annotation_by_ID/using_custom_content_type/cannot_get_an_open_annotation_by_ID_with_content_type_application/trix_.yml +1231 -0
  39. data/spec/fixtures/vcr_cassettes/TriannonClientREAD/GET/annotation_by_ID/using_custom_content_type/cannot_get_an_open_annotation_by_ID_with_content_type_application/turtle_.yml +1231 -0
  40. data/spec/fixtures/vcr_cassettes/TriannonClientREAD/GET/annotation_by_ID/using_custom_content_type/cannot_get_an_open_annotation_by_ID_with_content_type_application/x-ld_json_.yml +1231 -0
  41. data/spec/fixtures/vcr_cassettes/TriannonClientREAD/GET/annotation_by_ID/using_custom_content_type/cannot_get_an_open_annotation_by_ID_with_content_type_application/x-trig_.yml +1231 -0
  42. data/spec/fixtures/vcr_cassettes/TriannonClientREAD/GET/annotation_by_ID/using_custom_content_type/cannot_get_an_open_annotation_by_ID_with_content_type_text/csv_.yml +1231 -0
  43. data/spec/fixtures/vcr_cassettes/TriannonClientREAD/GET/annotation_by_ID/using_custom_content_type/cannot_get_an_open_annotation_by_ID_with_content_type_text/n3_.yml +1231 -0
  44. data/spec/fixtures/vcr_cassettes/TriannonClientREAD/GET/annotation_by_ID/using_custom_content_type/cannot_get_an_open_annotation_by_ID_with_content_type_text/plain_.yml +1231 -0
  45. data/spec/fixtures/vcr_cassettes/TriannonClientREAD/GET/annotation_by_ID/using_custom_content_type/cannot_get_an_open_annotation_by_ID_with_content_type_text/rdf_n3_.yml +1231 -0
  46. data/spec/fixtures/vcr_cassettes/TriannonClientREAD/GET/annotation_by_ID/using_custom_content_type/cannot_get_an_open_annotation_by_ID_with_content_type_text/rdf_turtle_.yml +1231 -0
  47. data/spec/fixtures/vcr_cassettes/TriannonClientREAD/GET/annotation_by_ID/using_custom_content_type/cannot_get_an_open_annotation_by_ID_with_content_type_text/tab-separated-values_.yml +1231 -0
  48. data/spec/fixtures/vcr_cassettes/TriannonClientREAD/GET/annotation_by_ID/using_custom_content_type/cannot_get_an_open_annotation_by_ID_with_content_type_text/x-nquads_.yml +1231 -0
  49. data/spec/fixtures/vcr_cassettes/{TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/requests_an_open_annotation_by_ID_with_content_type_application → TriannonClientREAD/GET/annotation_by_ID/using_custom_content_type/gets_an_open_annotation_by_ID_with_content_type_application}/ld_json_.yml +25 -78
  50. data/spec/fixtures/vcr_cassettes/TriannonClientREAD/GET/annotation_by_ID/using_custom_content_type/gets_an_open_annotation_by_ID_with_content_type_application/rdf_xml_.yml +68 -0
  51. data/spec/fixtures/vcr_cassettes/TriannonClientREAD/GET/annotation_by_ID/using_custom_content_type/gets_an_open_annotation_by_ID_with_content_type_application/x-turtle_.yml +69 -0
  52. data/spec/fixtures/vcr_cassettes/TriannonClientREAD/GET/annotation_by_ID/using_custom_content_type/gets_an_open_annotation_by_ID_with_content_type_text/turtle_.yml +69 -0
  53. data/spec/fixtures/vcr_cassettes/{TriannonClient/GET_annotation_by_ID_/_get_annotation/without_content_type → TriannonClientREAD/GET/annotation_by_ID/using_default_content_type}/checks_the_annotation_ID.yml +25 -78
  54. data/spec/fixtures/vcr_cassettes/TriannonClientREAD/GET/annotation_by_ID/using_default_content_type/returns_an_EMPTY_RDF_graph_with_a_valid_ID_for_NO_annotation_on_the_server.yml +186 -0
  55. data/spec/fixtures/vcr_cassettes/{TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/requests_an_open_annotation_by_ID_with_content_type_application/rdf_json_.yml → TriannonClientREAD/GET/annotation_by_ID/using_default_content_type/returns_an_RDF_graph_with_a_valid_ID_for_an_annotation_on_the_server.yml} +25 -78
  56. data/spec/fixtures/vcr_cassettes/TriannonClientREAD/clear_annotations.yml +648 -0
  57. data/spec/fixtures/vcr_cassettes/{TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/gets_an_open_annotation_by_ID_with_content_type_application/rdf_xml_.yml → TriannonClientREAD/create_annotation.yml} +192 -131
  58. data/spec/lib/triannon-client/configuration_spec.rb +83 -27
  59. data/spec/lib/triannon-client/triannon_client_auth_spec.rb +61 -0
  60. data/spec/lib/triannon-client/triannon_client_class_spec.rb +104 -0
  61. data/spec/lib/triannon-client/triannon_client_create_spec.rb +119 -0
  62. data/spec/lib/triannon-client/triannon_client_delete_spec.rb +117 -0
  63. data/spec/lib/triannon-client/triannon_client_read_spec.rb +342 -0
  64. data/spec/spec_helper.rb +140 -4
  65. data/triannon-client.gemspec +1 -1
  66. metadata +112 -153
  67. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/cannot_get_an_open_annotation_by_ID_with_content_type_application/n-quads_.yml +0 -3995
  68. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/cannot_get_an_open_annotation_by_ID_with_content_type_application/n-triples_.yml +0 -3995
  69. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/cannot_get_an_open_annotation_by_ID_with_content_type_application/rdf_json_.yml +0 -3995
  70. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/cannot_get_an_open_annotation_by_ID_with_content_type_application/rdf_n3_.yml +0 -3995
  71. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/cannot_get_an_open_annotation_by_ID_with_content_type_application/trig_.yml +0 -3995
  72. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/cannot_get_an_open_annotation_by_ID_with_content_type_application/trix_.yml +0 -3995
  73. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/cannot_get_an_open_annotation_by_ID_with_content_type_application/turtle_.yml +0 -3995
  74. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/cannot_get_an_open_annotation_by_ID_with_content_type_application/x-ld_json_.yml +0 -3995
  75. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/cannot_get_an_open_annotation_by_ID_with_content_type_application/x-trig_.yml +0 -3995
  76. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/cannot_get_an_open_annotation_by_ID_with_content_type_text/n3_.yml +0 -3995
  77. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/cannot_get_an_open_annotation_by_ID_with_content_type_text/rdf_n3_.yml +0 -3995
  78. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/cannot_get_an_open_annotation_by_ID_with_content_type_text/rdf_turtle_.yml +0 -3995
  79. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/cannot_get_an_open_annotation_by_ID_with_content_type_text/x-nquads_.yml +0 -3995
  80. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/gets_an_open_annotation_by_ID_with_content_type_application/ld_json_.yml +0 -4946
  81. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/gets_an_open_annotation_by_ID_with_content_type_text/turtle_.yml +0 -2566
  82. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/requests_an_open_annotation_by_ID_with_content_type_application/rdf_n3_.yml +0 -2502
  83. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/requests_an_open_annotation_by_ID_with_content_type_application/rdf_xml_.yml +0 -2502
  84. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/requests_an_open_annotation_by_ID_with_content_type_application/trig_.yml +0 -2502
  85. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/requests_an_open_annotation_by_ID_with_content_type_application/trix_.yml +0 -2502
  86. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/requests_an_open_annotation_by_ID_with_content_type_application/turtle_.yml +0 -2502
  87. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/requests_an_open_annotation_by_ID_with_content_type_application/x-ld_json_.yml +0 -2502
  88. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/requests_an_open_annotation_by_ID_with_content_type_application/x-trig_.yml +0 -2502
  89. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/requests_an_open_annotation_by_ID_with_content_type_application/x-turtle_.yml +0 -2502
  90. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/requests_an_open_annotation_by_ID_with_content_type_text/n3_.yml +0 -2502
  91. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/requests_an_open_annotation_by_ID_with_content_type_text/rdf_n3_.yml +0 -2502
  92. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/requests_an_open_annotation_by_ID_with_content_type_text/rdf_turtle_.yml +0 -2502
  93. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/requests_an_open_annotation_by_ID_with_content_type_text/turtle_.yml +0 -2502
  94. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/with_content_type/requests_an_open_annotation_by_ID_with_content_type_text/x-nquads_.yml +0 -2502
  95. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/without_content_type/logs_exceptions.yml +0 -2502
  96. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/without_content_type/raises_an_argument_error_with_a_nil_ID.yml +0 -2502
  97. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/without_content_type/raises_an_argument_error_with_an_empty_string_ID.yml +0 -2502
  98. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/without_content_type/raises_an_argument_error_with_an_integer_ID.yml +0 -2502
  99. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/without_content_type/requests_an_open_annotation_by_ID_accepting_a_default_JSON-LD_content.yml +0 -2502
  100. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/without_content_type/returns_an_EMPTY_RDF_graph_for_a_500_server_response.yml +0 -2502
  101. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/without_content_type/returns_an_EMPTY_RDF_graph_with_a_valid_ID_for_NO_annotation_on_the_server.yml +0 -2561
  102. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_annotation/without_content_type/returns_an_RDF_graph_with_a_valid_ID_for_an_annotation_on_the_server.yml +0 -4946
  103. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_iiif_annotation/requests_an_open_annotation_by_ID_using_a_IIIF_profile.yml +0 -2502
  104. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_iiif_annotation/returns_an_RDF_Graph_of_an_open_annotation.yml +0 -2746
  105. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_oa_annotation/requests_an_open_annotation_by_ID_using_an_OA_profile.yml +0 -2502
  106. data/spec/fixtures/vcr_cassettes/TriannonClient/GET_annotation_by_ID_/_get_oa_annotation/returns_an_RDF_Graph_of_an_open_annotation.yml +0 -4946
  107. data/spec/fixtures/vcr_cassettes/TriannonClient/_delete_annotation/does_not_log_exceptions_for_missing_annotations_404_responses_.yml +0 -64
  108. data/spec/fixtures/vcr_cassettes/TriannonClient/_delete_annotation/does_not_log_exceptions_for_missing_annotations_410_responses_.yml +0 -64
  109. data/spec/fixtures/vcr_cassettes/TriannonClient/_delete_annotation/logs_exceptions.yml +0 -64
  110. data/spec/fixtures/vcr_cassettes/TriannonClient/_delete_annotation/returns_FALSE_for_a_500_response_to_a_DELETE_request.yml +0 -64
  111. data/spec/fixtures/vcr_cassettes/TriannonClient/_delete_annotation/returns_TRUE_for_a_200_response_to_a_DELETE_request.yml +0 -64
  112. data/spec/fixtures/vcr_cassettes/TriannonClient/_delete_annotation/returns_TRUE_for_a_202_response_to_a_DELETE_request.yml +0 -64
  113. data/spec/fixtures/vcr_cassettes/TriannonClient/_delete_annotation/returns_TRUE_for_a_204_response_to_a_DELETE_request.yml +0 -64
  114. data/spec/fixtures/vcr_cassettes/TriannonClient/_delete_annotation/returns_TRUE_for_a_404_response_to_a_DELETE_request.yml +0 -64
  115. data/spec/fixtures/vcr_cassettes/TriannonClient/_delete_annotation/returns_TRUE_for_a_410_response_to_a_DELETE_request.yml +0 -64
  116. data/spec/fixtures/vcr_cassettes/TriannonClient/_delete_annotation/returns_TRUE_when_deleting_an_open_annotation_that_exists.yml +0 -2549
  117. data/spec/fixtures/vcr_cassettes/TriannonClient/_post_annotation/logs_exceptions.yml +0 -5355
  118. data/spec/fixtures/vcr_cassettes/TriannonClient/_post_annotation/logs_exceptions_for_RestClient_Exception.yml +0 -5355
  119. data/spec/fixtures/vcr_cassettes/TriannonClient/_post_annotation/returns_a_RestClient_Response_object.yml +0 -2502
  120. data/spec/fixtures/vcr_cassettes/TriannonClient/response_processing_utilities/_annotation_id/returns_a_String_ID_from_the_RDF_URI_of_an_annotation.yml +0 -2502
  121. data/spec/fixtures/vcr_cassettes/TriannonClient/response_processing_utilities/_annotation_id/returns_a_String_ID_that_is_not_empty.yml +0 -2502
  122. data/spec/fixtures/vcr_cassettes/TriannonClient/response_processing_utilities/_annotation_uris/returns_an_RDF_URI_that_is_a_valid_URI.yml +0 -2551
  123. data/spec/fixtures/vcr_cassettes/TriannonClient/response_processing_utilities/_annotation_uris/returns_an_array_of_RDF_URI_from_an_RDF_Graph_of_an_annotation.yml +0 -2502
  124. data/spec/fixtures/vcr_cassettes/TriannonClient/response_processing_utilities/_response2graph/accepts_a_RestClient_Response_instance.yml +0 -4898
  125. data/spec/fixtures/vcr_cassettes/TriannonClient/response_processing_utilities/_response2graph/raises_ArgumentError_when_given_an_empty_String.yml +0 -2502
  126. data/spec/fixtures/vcr_cassettes/TriannonClient/response_processing_utilities/_response2graph/raises_ArgumentError_when_given_nil.yml +0 -2502
  127. data/spec/fixtures/vcr_cassettes/TriannonClient/response_processing_utilities/_response2graph/returns_an_RDF_Graph.yml +0 -2502
  128. data/spec/lib/triannon-client/triannon_client_spec.rb +0 -546
@@ -0,0 +1,1231 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://localhost:3000/annotations/bar/%2F11%2F4f%2F9b%2F26%2F114f9b26-4b59-4e9b-a3a8-41b03318bc5f
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept:
11
+ - application/trix
12
+ Accept-Encoding:
13
+ - gzip, deflate
14
+ Content-Type:
15
+ - application/ld+json
16
+ User-Agent:
17
+ - Ruby
18
+ response:
19
+ status:
20
+ code: 406
21
+ message: 'Not Acceptable '
22
+ headers:
23
+ Content-Type:
24
+ - text/html; charset=utf-8
25
+ Content-Length:
26
+ - '99511'
27
+ X-Request-Id:
28
+ - b0bcf43c-0189-452f-af73-ef656417f2ad
29
+ X-Runtime:
30
+ - '0.221070'
31
+ Server:
32
+ - WEBrick/1.3.1 (Ruby/2.2.2/2015-04-13)
33
+ Date:
34
+ - Mon, 03 Aug 2015 22:12:36 GMT
35
+ Connection:
36
+ - Keep-Alive
37
+ body:
38
+ encoding: UTF-8
39
+ string: "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\"
40
+ />\n <title>Action Controller: Exception caught</title>\n <style>\n body
41
+ {\n background-color: #FAFAFA;\n color: #333;\n margin: 0px;\n
42
+ \ }\n\n body, p, ol, ul, td {\n font-family: helvetica, verdana,
43
+ arial, sans-serif;\n font-size: 13px;\n line-height: 18px;\n }\n\n
44
+ \ pre {\n font-size: 11px;\n white-space: pre-wrap;\n }\n\n
45
+ \ pre.box {\n border: 1px solid #EEE;\n padding: 10px;\n margin:
46
+ 0px;\n width: 958px;\n }\n\n header {\n color: #F0F0F0;\n
47
+ \ background: #C52F24;\n padding: 0.5em 1.5em;\n }\n\n h1 {\n
48
+ \ margin: 0.2em 0;\n line-height: 1.1em;\n font-size: 2em;\n
49
+ \ }\n\n h2 {\n color: #C52F24;\n line-height: 25px;\n }\n\n
50
+ \ .details {\n border: 1px solid #D0D0D0;\n border-radius: 4px;\n
51
+ \ margin: 1em 0px;\n display: block;\n width: 978px;\n }\n\n
52
+ \ .summary {\n padding: 8px 15px;\n border-bottom: 1px solid #D0D0D0;\n
53
+ \ display: block;\n }\n\n .details pre {\n margin: 5px;\n border:
54
+ none;\n }\n\n #container {\n box-sizing: border-box;\n width:
55
+ 100%;\n padding: 0 1.5em;\n }\n\n .source * {\n margin: 0px;\n
56
+ \ padding: 0px;\n }\n\n .source {\n border: 1px solid #D9D9D9;\n
57
+ \ background: #ECECEC;\n width: 978px;\n }\n\n .source pre
58
+ {\n padding: 10px 0px;\n border: none;\n }\n\n .source .data
59
+ {\n font-size: 80%;\n overflow: auto;\n background-color: #FFF;\n
60
+ \ }\n\n .info {\n padding: 0.5em;\n }\n\n .source .data .line_numbers
61
+ {\n background-color: #ECECEC;\n color: #AAA;\n padding: 1em
62
+ .5em;\n border-right: 1px solid #DDD;\n text-align: right;\n }\n\n
63
+ \ .line {\n padding-left: 10px;\n }\n\n .line:hover {\n background-color:
64
+ #F6F6F6;\n }\n\n .line.active {\n background-color: #FFCCCC;\n
65
+ \ }\n\n .hidden {\n display: none;\n }\n\n a { color: #980905;
66
+ }\n a:visited { color: #666; }\n a.trace-frames { color: #666; }\n a:hover
67
+ { color: #C52F24; }\n a.trace-frames.selected { color: #C52F24 }\n\n \n
68
+ \ </style>\n\n <script>\n var toggle = function(id) {\n var s = document.getElementById(id).style;\n
69
+ \ s.display = s.display == 'none' ? 'block' : 'none';\n return false;\n
70
+ \ }\n var show = function(id) {\n document.getElementById(id).style.display
71
+ = 'block';\n }\n var hide = function(id) {\n document.getElementById(id).style.display
72
+ = 'none';\n }\n var toggleTrace = function() {\n return toggle('blame_trace');\n
73
+ \ }\n var toggleSessionDump = function() {\n return toggle('session_dump');\n
74
+ \ }\n var toggleEnvDump = function() {\n return toggle('env_dump');\n
75
+ \ }\n </script>\n</head>\n<body>\n\n<header>\n <h1>\n ActionController::UnknownFormat\n
76
+ \ in Triannon::AnnotationsController#show\n </h1>\n</header>\n\n<div
77
+ id=\"container\">\n <h2>ActionController::UnknownFormat</h2>\n\n <div
78
+ class=\"source \" id=\"frame-source-0\">\n <div class=\"info\">\n Extracted
79
+ source (around line <strong>#217</strong>):\n </div>\n <div class=\"data\">\n
80
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
81
+ \ <td>\n <pre class=\"line_numbers\">\n<span>215</span>\n<span>216</span>\n<span>217</span>\n<span>218</span>\n<span>219</span>\n<span>220</span>\n
82
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
83
+ class=\"line\"> response ? response.call : render({})\n</div><div class=\"line\">
84
+ \ else\n</div><div class=\"line active\"> raise ActionController::UnknownFormat\n</div><div
85
+ class=\"line\"> end\n</div><div class=\"line\"> end\n</div><div class=\"line\">\n</div>\n</pre>\n</td>\n
86
+ \ </tr>\n </table>\n </div>\n </div>\n <div class=\"source
87
+ hidden\" id=\"frame-source-1\">\n <div class=\"info\">\n Extracted
88
+ source (around line <strong>#26</strong>):\n </div>\n <div class=\"data\">\n
89
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
90
+ \ <td>\n <pre class=\"line_numbers\">\n<span>24</span>\n<span>25</span>\n<span>26</span>\n<span>27</span>\n<span>28</span>\n<span>29</span>\n
91
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
92
+ class=\"line\"> def show\n</div><div class=\"line\"> # TODO: json.set!
93
+ &quot;@context&quot;, OA::Graph::OA_DATED_CONTEXT_URL - would this work?\n</div><div
94
+ class=\"line active\"> respond_to do |format|\n</div><div class=\"line\">
95
+ \ format.jsonld {\n</div><div class=\"line\"> context_url =
96
+ context_url_from_accept ? context_url_from_accept : context_url_from_link\n</div><div
97
+ class=\"line\"> if context_url &amp;&amp; context_url == OA::Graph::IIIF_CONTEXT_URL\n</div>\n</pre>\n</td>\n
98
+ \ </tr>\n </table>\n </div>\n </div>\n <div class=\"source
99
+ hidden\" id=\"frame-source-2\">\n <div class=\"info\">\n Extracted
100
+ source (around line <strong>#4</strong>):\n </div>\n <div class=\"data\">\n
101
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
102
+ \ <td>\n <pre class=\"line_numbers\">\n<span>2</span>\n<span>3</span>\n<span>4</span>\n<span>5</span>\n<span>6</span>\n<span>7</span>\n
103
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
104
+ class=\"line\"> module ImplicitRender\n</div><div class=\"line\"> def
105
+ send_action(method, *args)\n</div><div class=\"line active\"> ret = super\n</div><div
106
+ class=\"line\"> default_render unless performed?\n</div><div class=\"line\">
107
+ \ ret\n</div><div class=\"line\"> end\n</div>\n</pre>\n</td>\n </tr>\n
108
+ \ </table>\n </div>\n </div>\n <div class=\"source hidden\"
109
+ id=\"frame-source-3\">\n <div class=\"info\">\n Extracted source
110
+ (around line <strong>#198</strong>):\n </div>\n <div class=\"data\">\n
111
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
112
+ \ <td>\n <pre class=\"line_numbers\">\n<span>196</span>\n<span>197</span>\n<span>198</span>\n<span>199</span>\n<span>200</span>\n<span>201</span>\n
113
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
114
+ class=\"line\"> # which is *not* necessarily the same as the action name.\n</div><div
115
+ class=\"line\"> def process_action(method_name, *args)\n</div><div class=\"line
116
+ active\"> send_action(method_name, *args)\n</div><div class=\"line\">
117
+ \ end\n</div><div class=\"line\">\n</div><div class=\"line\"> # Actually
118
+ call the method associated with the action. Override\n</div>\n</pre>\n</td>\n
119
+ \ </tr>\n </table>\n </div>\n </div>\n <div class=\"source
120
+ hidden\" id=\"frame-source-4\">\n <div class=\"info\">\n Extracted
121
+ source (around line <strong>#10</strong>):\n </div>\n <div class=\"data\">\n
122
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
123
+ \ <td>\n <pre class=\"line_numbers\">\n<span>8</span>\n<span>9</span>\n<span>10</span>\n<span>11</span>\n<span>12</span>\n<span>13</span>\n
124
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
125
+ class=\"line\"> def process_action(*) #:nodoc:\n</div><div class=\"line\">
126
+ \ self.formats = request.formats.map(&amp;:ref).compact\n</div><div class=\"line
127
+ active\"> super\n</div><div class=\"line\"> end\n</div><div class=\"line\">\n</div><div
128
+ class=\"line\"> # Check for double render errors and set the content_type
129
+ after rendering.\n</div>\n</pre>\n</td>\n </tr>\n </table>\n
130
+ \ </div>\n </div>\n <div class=\"source hidden\" id=\"frame-source-5\">\n
131
+ \ <div class=\"info\">\n Extracted source (around line <strong>#20</strong>):\n
132
+ \ </div>\n <div class=\"data\">\n <table cellpadding=\"0\"
133
+ cellspacing=\"0\" class=\"lines\">\n <tr>\n <td>\n <pre
134
+ class=\"line_numbers\">\n<span>18</span>\n<span>19</span>\n<span>20</span>\n<span>21</span>\n<span>22</span>\n<span>23</span>\n
135
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
136
+ class=\"line\"> def process_action(*args)\n</div><div class=\"line\"> run_callbacks(:process_action)
137
+ do\n</div><div class=\"line active\"> super\n</div><div class=\"line\">
138
+ \ end\n</div><div class=\"line\"> end\n</div><div class=\"line\">\n</div>\n</pre>\n</td>\n
139
+ \ </tr>\n </table>\n </div>\n </div>\n <div class=\"source
140
+ hidden\" id=\"frame-source-6\">\n <div class=\"info\">\n Extracted
141
+ source (around line <strong>#115</strong>):\n </div>\n <div class=\"data\">\n
142
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
143
+ \ <td>\n <pre class=\"line_numbers\">\n<span>113</span>\n<span>114</span>\n<span>115</span>\n<span>116</span>\n<span>117</span>\n<span>118</span>\n
144
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
145
+ class=\"line\"> def call(env)\n</div><div class=\"line\"> block
146
+ = env.run_block\n</div><div class=\"line active\"> env.value = !env.halted
147
+ &amp;&amp; (!block || block.call)\n</div><div class=\"line\"> env\n</div><div
148
+ class=\"line\"> end\n</div><div class=\"line\"> end\n</div>\n</pre>\n</td>\n
149
+ \ </tr>\n </table>\n </div>\n </div>\n <div class=\"source
150
+ hidden\" id=\"frame-source-7\">\n <div class=\"info\">\n Extracted
151
+ source (around line <strong>#115</strong>):\n </div>\n <div class=\"data\">\n
152
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
153
+ \ <td>\n <pre class=\"line_numbers\">\n<span>113</span>\n<span>114</span>\n<span>115</span>\n<span>116</span>\n<span>117</span>\n<span>118</span>\n
154
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
155
+ class=\"line\"> def call(env)\n</div><div class=\"line\"> block
156
+ = env.run_block\n</div><div class=\"line active\"> env.value = !env.halted
157
+ &amp;&amp; (!block || block.call)\n</div><div class=\"line\"> env\n</div><div
158
+ class=\"line\"> end\n</div><div class=\"line\"> end\n</div>\n</pre>\n</td>\n
159
+ \ </tr>\n </table>\n </div>\n </div>\n <div class=\"source
160
+ hidden\" id=\"frame-source-8\">\n <div class=\"info\">\n Extracted
161
+ source (around line <strong>#553</strong>):\n </div>\n <div class=\"data\">\n
162
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
163
+ \ <td>\n <pre class=\"line_numbers\">\n<span>551</span>\n<span>552</span>\n<span>553</span>\n<span>554</span>\n<span>555</span>\n<span>556</span>\n
164
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
165
+ class=\"line\"> def compile\n</div><div class=\"line\"> @callbacks
166
+ || @mutex.synchronize do\n</div><div class=\"line active\"> final_sequence
167
+ = CallbackSequence.new { |env| Filters::ENDING.call(env) }\n</div><div class=\"line\">
168
+ \ @callbacks ||= @chain.reverse.inject(final_sequence) do |callback_sequence,
169
+ callback|\n</div><div class=\"line\"> callback.apply callback_sequence\n</div><div
170
+ class=\"line\"> end\n</div>\n</pre>\n</td>\n </tr>\n </table>\n
171
+ \ </div>\n </div>\n <div class=\"source hidden\" id=\"frame-source-9\">\n
172
+ \ <div class=\"info\">\n Extracted source (around line <strong>#503</strong>):\n
173
+ \ </div>\n <div class=\"data\">\n <table cellpadding=\"0\"
174
+ cellspacing=\"0\" class=\"lines\">\n <tr>\n <td>\n <pre
175
+ class=\"line_numbers\">\n<span>501</span>\n<span>502</span>\n<span>503</span>\n<span>504</span>\n<span>505</span>\n<span>506</span>\n
176
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
177
+ class=\"line\"> def call(*args)\n</div><div class=\"line\"> @before.each
178
+ { |b| b.call(*args) }\n</div><div class=\"line active\"> value = @call.call(*args)\n</div><div
179
+ class=\"line\"> @after.each { |a| a.call(*args) }\n</div><div class=\"line\">
180
+ \ value\n</div><div class=\"line\"> end\n</div>\n</pre>\n</td>\n
181
+ \ </tr>\n </table>\n </div>\n </div>\n <div class=\"source
182
+ hidden\" id=\"frame-source-10\">\n <div class=\"info\">\n Extracted
183
+ source (around line <strong>#503</strong>):\n </div>\n <div class=\"data\">\n
184
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
185
+ \ <td>\n <pre class=\"line_numbers\">\n<span>501</span>\n<span>502</span>\n<span>503</span>\n<span>504</span>\n<span>505</span>\n<span>506</span>\n
186
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
187
+ class=\"line\"> def call(*args)\n</div><div class=\"line\"> @before.each
188
+ { |b| b.call(*args) }\n</div><div class=\"line active\"> value = @call.call(*args)\n</div><div
189
+ class=\"line\"> @after.each { |a| a.call(*args) }\n</div><div class=\"line\">
190
+ \ value\n</div><div class=\"line\"> end\n</div>\n</pre>\n</td>\n
191
+ \ </tr>\n </table>\n </div>\n </div>\n <div class=\"source
192
+ hidden\" id=\"frame-source-11\">\n <div class=\"info\">\n Extracted
193
+ source (around line <strong>#88</strong>):\n </div>\n <div class=\"data\">\n
194
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
195
+ \ <td>\n <pre class=\"line_numbers\">\n<span>86</span>\n<span>87</span>\n<span>88</span>\n<span>89</span>\n<span>90</span>\n<span>91</span>\n
196
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
197
+ class=\"line\"> runner = callbacks.compile\n</div><div class=\"line\">
198
+ \ e = Filters::Environment.new(self, false, nil, block)\n</div><div
199
+ class=\"line active\"> runner.call(e).value\n</div><div class=\"line\">
200
+ \ end\n</div><div class=\"line\"> end\n</div><div class=\"line\">\n</div>\n</pre>\n</td>\n
201
+ \ </tr>\n </table>\n </div>\n </div>\n <div class=\"source
202
+ hidden\" id=\"frame-source-12\">\n <div class=\"info\">\n Extracted
203
+ source (around line <strong>#19</strong>):\n </div>\n <div class=\"data\">\n
204
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
205
+ \ <td>\n <pre class=\"line_numbers\">\n<span>17</span>\n<span>18</span>\n<span>19</span>\n<span>20</span>\n<span>21</span>\n<span>22</span>\n
206
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
207
+ class=\"line\"> # process_action callbacks around the normal behavior.\n</div><div
208
+ class=\"line\"> def process_action(*args)\n</div><div class=\"line active\">
209
+ \ run_callbacks(:process_action) do\n</div><div class=\"line\"> super\n</div><div
210
+ class=\"line\"> end\n</div><div class=\"line\"> end\n</div>\n</pre>\n</td>\n
211
+ \ </tr>\n </table>\n </div>\n </div>\n <div class=\"source
212
+ hidden\" id=\"frame-source-13\">\n <div class=\"info\">\n Extracted
213
+ source (around line <strong>#29</strong>):\n </div>\n <div class=\"data\">\n
214
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
215
+ \ <td>\n <pre class=\"line_numbers\">\n<span>27</span>\n<span>28</span>\n<span>29</span>\n<span>30</span>\n<span>31</span>\n<span>32</span>\n
216
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
217
+ class=\"line\"> private\n</div><div class=\"line\"> def process_action(*args)\n</div><div
218
+ class=\"line active\"> super\n</div><div class=\"line\"> rescue
219
+ Exception =&gt; exception\n</div><div class=\"line\"> request.env[&#39;action_dispatch.show_detailed_exceptions&#39;]
220
+ ||= show_detailed_exceptions?\n</div><div class=\"line\"> rescue_with_handler(exception)
221
+ || raise(exception)\n</div>\n</pre>\n</td>\n </tr>\n </table>\n
222
+ \ </div>\n </div>\n <div class=\"source hidden\" id=\"frame-source-14\">\n
223
+ \ <div class=\"info\">\n Extracted source (around line <strong>#32</strong>):\n
224
+ \ </div>\n <div class=\"data\">\n <table cellpadding=\"0\"
225
+ cellspacing=\"0\" class=\"lines\">\n <tr>\n <td>\n <pre
226
+ class=\"line_numbers\">\n<span>30</span>\n<span>31</span>\n<span>32</span>\n<span>33</span>\n<span>34</span>\n<span>35</span>\n
227
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
228
+ class=\"line\"> ActiveSupport::Notifications.instrument(&quot;process_action.action_controller&quot;,
229
+ raw_payload) do |payload|\n</div><div class=\"line\"> begin\n</div><div
230
+ class=\"line active\"> result = super\n</div><div class=\"line\">
231
+ \ payload[:status] = response.status\n</div><div class=\"line\"> result\n</div><div
232
+ class=\"line\"> ensure\n</div>\n</pre>\n</td>\n </tr>\n </table>\n
233
+ \ </div>\n </div>\n <div class=\"source hidden\" id=\"frame-source-15\">\n
234
+ \ <div class=\"info\">\n Extracted source (around line <strong>#164</strong>):\n
235
+ \ </div>\n <div class=\"data\">\n <table cellpadding=\"0\"
236
+ cellspacing=\"0\" class=\"lines\">\n <tr>\n <td>\n <pre
237
+ class=\"line_numbers\">\n<span>162</span>\n<span>163</span>\n<span>164</span>\n<span>165</span>\n<span>166</span>\n<span>167</span>\n
238
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
239
+ class=\"line\"> def instrument(name, payload = {})\n</div><div class=\"line\">
240
+ \ if notifier.listening?(name)\n</div><div class=\"line active\"> instrumenter.instrument(name,
241
+ payload) { yield payload if block_given? }\n</div><div class=\"line\"> else\n</div><div
242
+ class=\"line\"> yield payload if block_given?\n</div><div class=\"line\">
243
+ \ end\n</div>\n</pre>\n</td>\n </tr>\n </table>\n </div>\n
244
+ \ </div>\n <div class=\"source hidden\" id=\"frame-source-16\">\n <div
245
+ class=\"info\">\n Extracted source (around line <strong>#20</strong>):\n
246
+ \ </div>\n <div class=\"data\">\n <table cellpadding=\"0\"
247
+ cellspacing=\"0\" class=\"lines\">\n <tr>\n <td>\n <pre
248
+ class=\"line_numbers\">\n<span>18</span>\n<span>19</span>\n<span>20</span>\n<span>21</span>\n<span>22</span>\n<span>23</span>\n
249
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
250
+ class=\"line\"> start name, payload\n</div><div class=\"line\"> begin\n</div><div
251
+ class=\"line active\"> yield payload\n</div><div class=\"line\">
252
+ \ rescue Exception =&gt; e\n</div><div class=\"line\"> payload[:exception]
253
+ = [e.class.name, e.message]\n</div><div class=\"line\"> raise e\n</div>\n</pre>\n</td>\n
254
+ \ </tr>\n </table>\n </div>\n </div>\n <div class=\"source
255
+ hidden\" id=\"frame-source-17\">\n <div class=\"info\">\n Extracted
256
+ source (around line <strong>#164</strong>):\n </div>\n <div class=\"data\">\n
257
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
258
+ \ <td>\n <pre class=\"line_numbers\">\n<span>162</span>\n<span>163</span>\n<span>164</span>\n<span>165</span>\n<span>166</span>\n<span>167</span>\n
259
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
260
+ class=\"line\"> def instrument(name, payload = {})\n</div><div class=\"line\">
261
+ \ if notifier.listening?(name)\n</div><div class=\"line active\"> instrumenter.instrument(name,
262
+ payload) { yield payload if block_given? }\n</div><div class=\"line\"> else\n</div><div
263
+ class=\"line\"> yield payload if block_given?\n</div><div class=\"line\">
264
+ \ end\n</div>\n</pre>\n</td>\n </tr>\n </table>\n </div>\n
265
+ \ </div>\n <div class=\"source hidden\" id=\"frame-source-18\">\n <div
266
+ class=\"info\">\n Extracted source (around line <strong>#30</strong>):\n
267
+ \ </div>\n <div class=\"data\">\n <table cellpadding=\"0\"
268
+ cellspacing=\"0\" class=\"lines\">\n <tr>\n <td>\n <pre
269
+ class=\"line_numbers\">\n<span>28</span>\n<span>29</span>\n<span>30</span>\n<span>31</span>\n<span>32</span>\n<span>33</span>\n
270
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
271
+ class=\"line\"> ActiveSupport::Notifications.instrument(&quot;start_processing.action_controller&quot;,
272
+ raw_payload.dup)\n</div><div class=\"line\">\n</div><div class=\"line active\">
273
+ \ ActiveSupport::Notifications.instrument(&quot;process_action.action_controller&quot;,
274
+ raw_payload) do |payload|\n</div><div class=\"line\"> begin\n</div><div
275
+ class=\"line\"> result = super\n</div><div class=\"line\"> payload[:status]
276
+ = response.status\n</div>\n</pre>\n</td>\n </tr>\n </table>\n
277
+ \ </div>\n </div>\n <div class=\"source hidden\" id=\"frame-source-19\">\n
278
+ \ <div class=\"info\">\n Extracted source (around line <strong>#250</strong>):\n
279
+ \ </div>\n <div class=\"data\">\n <table cellpadding=\"0\"
280
+ cellspacing=\"0\" class=\"lines\">\n <tr>\n <td>\n <pre
281
+ class=\"line_numbers\">\n<span>248</span>\n<span>249</span>\n<span>250</span>\n<span>251</span>\n<span>252</span>\n<span>253</span>\n
282
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
283
+ class=\"line\"> request.filtered_parameters.merge! wrapped_filtered_hash\n</div><div
284
+ class=\"line\"> end\n</div><div class=\"line active\"> super\n</div><div
285
+ class=\"line\"> end\n</div><div class=\"line\">\n</div><div class=\"line\">
286
+ \ private\n</div>\n</pre>\n</td>\n </tr>\n </table>\n </div>\n
287
+ \ </div>\n <div class=\"source hidden\" id=\"frame-source-20\">\n <div
288
+ class=\"info\">\n Extracted source (around line <strong>#18</strong>):\n
289
+ \ </div>\n <div class=\"data\">\n <table cellpadding=\"0\"
290
+ cellspacing=\"0\" class=\"lines\">\n <tr>\n <td>\n <pre
291
+ class=\"line_numbers\">\n<span>16</span>\n<span>17</span>\n<span>18</span>\n<span>19</span>\n<span>20</span>\n<span>21</span>\n
292
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
293
+ class=\"line\"> # and it won&#39;t be cleaned up by the method below.\n</div><div
294
+ class=\"line\"> ActiveRecord::LogSubscriber.reset_runtime\n</div><div
295
+ class=\"line active\"> super\n</div><div class=\"line\"> end\n</div><div
296
+ class=\"line\">\n</div><div class=\"line\"> def cleanup_view_runtime\n</div>\n</pre>\n</td>\n
297
+ \ </tr>\n </table>\n </div>\n </div>\n <div class=\"source
298
+ hidden\" id=\"frame-source-21\">\n <div class=\"info\">\n Extracted
299
+ source (around line <strong>#137</strong>):\n </div>\n <div class=\"data\">\n
300
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
301
+ \ <td>\n <pre class=\"line_numbers\">\n<span>135</span>\n<span>136</span>\n<span>137</span>\n<span>138</span>\n<span>139</span>\n<span>140</span>\n
302
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
303
+ class=\"line\"> @_response_body = nil\n</div><div class=\"line\">\n</div><div
304
+ class=\"line active\"> process_action(action_name, *args)\n</div><div
305
+ class=\"line\"> end\n</div><div class=\"line\">\n</div><div class=\"line\">
306
+ \ # Delegates to the class&#39; #controller_path\n</div>\n</pre>\n</td>\n
307
+ \ </tr>\n </table>\n </div>\n </div>\n <div class=\"source
308
+ hidden\" id=\"frame-source-22\">\n <div class=\"info\">\n Extracted
309
+ source (around line <strong>#30</strong>):\n </div>\n <div class=\"data\">\n
310
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
311
+ \ <td>\n <pre class=\"line_numbers\">\n<span>28</span>\n<span>29</span>\n<span>30</span>\n<span>31</span>\n<span>32</span>\n<span>33</span>\n
312
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
313
+ class=\"line\"> def process(*) #:nodoc:\n</div><div class=\"line\"> old_config,
314
+ I18n.config = I18n.config, I18nProxy.new(I18n.config, lookup_context)\n</div><div
315
+ class=\"line active\"> super\n</div><div class=\"line\"> ensure\n</div><div
316
+ class=\"line\"> I18n.config = old_config\n</div><div class=\"line\">
317
+ \ end\n</div>\n</pre>\n</td>\n </tr>\n </table>\n </div>\n
318
+ \ </div>\n <div class=\"source hidden\" id=\"frame-source-23\">\n <div
319
+ class=\"info\">\n Extracted source (around line <strong>#196</strong>):\n
320
+ \ </div>\n <div class=\"data\">\n <table cellpadding=\"0\"
321
+ cellspacing=\"0\" class=\"lines\">\n <tr>\n <td>\n <pre
322
+ class=\"line_numbers\">\n<span>194</span>\n<span>195</span>\n<span>196</span>\n<span>197</span>\n<span>198</span>\n<span>199</span>\n
323
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
324
+ class=\"line\"> @_env = request.env\n</div><div class=\"line\"> @_env[&#39;action_controller.instance&#39;]
325
+ = self\n</div><div class=\"line active\"> process(name)\n</div><div class=\"line\">
326
+ \ to_a\n</div><div class=\"line\"> end\n</div><div class=\"line\">\n</div>\n</pre>\n</td>\n
327
+ \ </tr>\n </table>\n </div>\n </div>\n <div class=\"source
328
+ hidden\" id=\"frame-source-24\">\n <div class=\"info\">\n Extracted
329
+ source (around line <strong>#13</strong>):\n </div>\n <div class=\"data\">\n
330
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
331
+ \ <td>\n <pre class=\"line_numbers\">\n<span>11</span>\n<span>12</span>\n<span>13</span>\n<span>14</span>\n<span>15</span>\n<span>16</span>\n
332
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
333
+ class=\"line\"> def dispatch(action, request)\n</div><div class=\"line\">
334
+ \ set_response!(request)\n</div><div class=\"line active\"> super(action,
335
+ request)\n</div><div class=\"line\"> end\n</div><div class=\"line\">\n</div><div
336
+ class=\"line\"> def response_body=(body)\n</div>\n</pre>\n</td>\n </tr>\n
337
+ \ </table>\n </div>\n </div>\n <div class=\"source hidden\"
338
+ id=\"frame-source-25\">\n <div class=\"info\">\n Extracted source
339
+ (around line <strong>#237</strong>):\n </div>\n <div class=\"data\">\n
340
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
341
+ \ <td>\n <pre class=\"line_numbers\">\n<span>235</span>\n<span>236</span>\n<span>237</span>\n<span>238</span>\n<span>239</span>\n<span>240</span>\n
342
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
343
+ class=\"line\"> end\n</div><div class=\"line\"> else\n</div><div
344
+ class=\"line active\"> lambda { |env| new.dispatch(name, klass.new(env))
345
+ }\n</div><div class=\"line\"> end\n</div><div class=\"line\"> end\n</div><div
346
+ class=\"line\"> end\n</div>\n</pre>\n</td>\n </tr>\n </table>\n
347
+ \ </div>\n </div>\n <div class=\"source hidden\" id=\"frame-source-26\">\n
348
+ \ <div class=\"info\">\n Extracted source (around line <strong>#76</strong>):\n
349
+ \ </div>\n <div class=\"data\">\n <table cellpadding=\"0\"
350
+ cellspacing=\"0\" class=\"lines\">\n <tr>\n <td>\n <pre
351
+ class=\"line_numbers\">\n<span>74</span>\n<span>75</span>\n<span>76</span>\n<span>77</span>\n<span>78</span>\n<span>79</span>\n
352
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
353
+ class=\"line\">\n</div><div class=\"line\"> def dispatch(controller,
354
+ action, env)\n</div><div class=\"line active\"> controller.action(action).call(env)\n</div><div
355
+ class=\"line\"> end\n</div><div class=\"line\">\n</div><div class=\"line\">
356
+ \ def normalize_controller!(params)\n</div>\n</pre>\n</td>\n </tr>\n
357
+ \ </table>\n </div>\n </div>\n <div class=\"source hidden\"
358
+ id=\"frame-source-27\">\n <div class=\"info\">\n Extracted source
359
+ (around line <strong>#76</strong>):\n </div>\n <div class=\"data\">\n
360
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
361
+ \ <td>\n <pre class=\"line_numbers\">\n<span>74</span>\n<span>75</span>\n<span>76</span>\n<span>77</span>\n<span>78</span>\n<span>79</span>\n
362
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
363
+ class=\"line\">\n</div><div class=\"line\"> def dispatch(controller,
364
+ action, env)\n</div><div class=\"line active\"> controller.action(action).call(env)\n</div><div
365
+ class=\"line\"> end\n</div><div class=\"line\">\n</div><div class=\"line\">
366
+ \ def normalize_controller!(params)\n</div>\n</pre>\n</td>\n </tr>\n
367
+ \ </table>\n </div>\n </div>\n <div class=\"source hidden\"
368
+ id=\"frame-source-28\">\n <div class=\"info\">\n Extracted source
369
+ (around line <strong>#45</strong>):\n </div>\n <div class=\"data\">\n
370
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
371
+ \ <td>\n <pre class=\"line_numbers\">\n<span>43</span>\n<span>44</span>\n<span>45</span>\n<span>46</span>\n<span>47</span>\n<span>48</span>\n
372
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
373
+ class=\"line\"> end\n</div><div class=\"line\">\n</div><div class=\"line
374
+ active\"> dispatch(controller, params[:action], req.env)\n</div><div
375
+ class=\"line\"> end\n</div><div class=\"line\">\n</div><div class=\"line\">
376
+ \ def prepare_params!(params)\n</div>\n</pre>\n</td>\n </tr>\n
377
+ \ </table>\n </div>\n </div>\n <div class=\"source hidden\"
378
+ id=\"frame-source-29\">\n <div class=\"info\">\n Extracted source
379
+ (around line <strong>#49</strong>):\n </div>\n <div class=\"data\">\n
380
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
381
+ \ <td>\n <pre class=\"line_numbers\">\n<span>47</span>\n<span>48</span>\n<span>49</span>\n<span>50</span>\n<span>51</span>\n<span>52</span>\n
382
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
383
+ class=\"line\">\n</div><div class=\"line\"> if dispatcher?\n</div><div
384
+ class=\"line active\"> @app.serve req\n</div><div class=\"line\">
385
+ \ else\n</div><div class=\"line\"> @app.call req.env\n</div><div
386
+ class=\"line\"> end\n</div>\n</pre>\n</td>\n </tr>\n </table>\n
387
+ \ </div>\n </div>\n <div class=\"source hidden\" id=\"frame-source-30\">\n
388
+ \ <div class=\"info\">\n Extracted source (around line <strong>#43</strong>):\n
389
+ \ </div>\n <div class=\"data\">\n <table cellpadding=\"0\"
390
+ cellspacing=\"0\" class=\"lines\">\n <tr>\n <td>\n <pre
391
+ class=\"line_numbers\">\n<span>41</span>\n<span>42</span>\n<span>43</span>\n<span>44</span>\n<span>45</span>\n<span>46</span>\n
392
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
393
+ class=\"line\"> req.path_parameters = set_params.merge parameters\n</div><div
394
+ class=\"line\">\n</div><div class=\"line active\"> status, headers,
395
+ body = route.app.serve(req)\n</div><div class=\"line\">\n</div><div class=\"line\">
396
+ \ if &#39;pass&#39; == headers[&#39;X-Cascade&#39;]\n</div><div class=\"line\">
397
+ \ req.script_name = script_name\n</div>\n</pre>\n</td>\n </tr>\n
398
+ \ </table>\n </div>\n </div>\n <div class=\"source hidden\"
399
+ id=\"frame-source-31\">\n <div class=\"info\">\n Extracted source
400
+ (around line <strong>#30</strong>):\n </div>\n <div class=\"data\">\n
401
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
402
+ \ <td>\n <pre class=\"line_numbers\">\n<span>28</span>\n<span>29</span>\n<span>30</span>\n<span>31</span>\n<span>32</span>\n<span>33</span>\n
403
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
404
+ class=\"line\">\n</div><div class=\"line\"> def serve(req)\n</div><div
405
+ class=\"line active\"> find_routes(req).each do |match, parameters,
406
+ route|\n</div><div class=\"line\"> set_params = req.path_parameters\n</div><div
407
+ class=\"line\"> path_info = req.path_info\n</div><div class=\"line\">
408
+ \ script_name = req.script_name\n</div>\n</pre>\n</td>\n </tr>\n
409
+ \ </table>\n </div>\n </div>\n <div class=\"source hidden\"
410
+ id=\"frame-source-32\">\n <div class=\"info\">\n Extracted source
411
+ (around line <strong>#30</strong>):\n </div>\n <div class=\"data\">\n
412
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
413
+ \ <td>\n <pre class=\"line_numbers\">\n<span>28</span>\n<span>29</span>\n<span>30</span>\n<span>31</span>\n<span>32</span>\n<span>33</span>\n
414
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
415
+ class=\"line\">\n</div><div class=\"line\"> def serve(req)\n</div><div
416
+ class=\"line active\"> find_routes(req).each do |match, parameters,
417
+ route|\n</div><div class=\"line\"> set_params = req.path_parameters\n</div><div
418
+ class=\"line\"> path_info = req.path_info\n</div><div class=\"line\">
419
+ \ script_name = req.script_name\n</div>\n</pre>\n</td>\n </tr>\n
420
+ \ </table>\n </div>\n </div>\n <div class=\"source hidden\"
421
+ id=\"frame-source-33\">\n <div class=\"info\">\n Extracted source
422
+ (around line <strong>#821</strong>):\n </div>\n <div class=\"data\">\n
423
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
424
+ \ <td>\n <pre class=\"line_numbers\">\n<span>819</span>\n<span>820</span>\n<span>821</span>\n<span>822</span>\n<span>823</span>\n<span>824</span>\n
425
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
426
+ class=\"line\"> req = request_class.new(env)\n</div><div class=\"line\">
427
+ \ req.path_info = Journey::Router::Utils.normalize_path(req.path_info)\n</div><div
428
+ class=\"line active\"> @router.serve(req)\n</div><div class=\"line\">
429
+ \ end\n</div><div class=\"line\">\n</div><div class=\"line\"> def
430
+ recognize_path(path, environment = {})\n</div>\n</pre>\n</td>\n </tr>\n
431
+ \ </table>\n </div>\n </div>\n <div class=\"source hidden\"
432
+ id=\"frame-source-34\">\n <div class=\"info\">\n Extracted source
433
+ (around line <strong>#518</strong>):\n </div>\n <div class=\"data\">\n
434
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
435
+ \ <td>\n <pre class=\"line_numbers\">\n<span>516</span>\n<span>517</span>\n<span>518</span>\n<span>519</span>\n<span>520</span>\n<span>521</span>\n
436
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
437
+ class=\"line\"> env[&quot;ROUTES_#{routes.object_id}_SCRIPT_NAME&quot;]
438
+ = env[&#39;SCRIPT_NAME&#39;].dup\n</div><div class=\"line\"> end\n</div><div
439
+ class=\"line active\"> app.call(env)\n</div><div class=\"line\"> end\n</div><div
440
+ class=\"line\">\n</div><div class=\"line\"> # Defines additional Rack env
441
+ configuration that is added on each call.\n</div>\n</pre>\n</td>\n </tr>\n
442
+ \ </table>\n </div>\n </div>\n <div class=\"source hidden\"
443
+ id=\"frame-source-35\">\n <div class=\"info\">\n Extracted source
444
+ (around line <strong>#194</strong>):\n </div>\n <div class=\"data\">\n
445
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
446
+ \ <td>\n <pre class=\"line_numbers\">\n<span>192</span>\n<span>193</span>\n<span>194</span>\n<span>195</span>\n<span>196</span>\n<span>197</span>\n
447
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
448
+ class=\"line\"> def method_missing(name, *args, &amp;block)\n</div><div
449
+ class=\"line\"> if instance.respond_to?(name)\n</div><div class=\"line
450
+ active\"> instance.public_send(name, *args, &amp;block)\n</div><div
451
+ class=\"line\"> else\n</div><div class=\"line\"> super\n</div><div
452
+ class=\"line\"> end\n</div>\n</pre>\n</td>\n </tr>\n </table>\n
453
+ \ </div>\n </div>\n <div class=\"source hidden\" id=\"frame-source-36\">\n
454
+ \ <div class=\"info\">\n Extracted source (around line <strong>#194</strong>):\n
455
+ \ </div>\n <div class=\"data\">\n <table cellpadding=\"0\"
456
+ cellspacing=\"0\" class=\"lines\">\n <tr>\n <td>\n <pre
457
+ class=\"line_numbers\">\n<span>192</span>\n<span>193</span>\n<span>194</span>\n<span>195</span>\n<span>196</span>\n<span>197</span>\n
458
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
459
+ class=\"line\"> def method_missing(name, *args, &amp;block)\n</div><div
460
+ class=\"line\"> if instance.respond_to?(name)\n</div><div class=\"line
461
+ active\"> instance.public_send(name, *args, &amp;block)\n</div><div
462
+ class=\"line\"> else\n</div><div class=\"line\"> super\n</div><div
463
+ class=\"line\"> end\n</div>\n</pre>\n</td>\n </tr>\n </table>\n
464
+ \ </div>\n </div>\n <div class=\"source hidden\" id=\"frame-source-37\">\n
465
+ \ <div class=\"info\">\n Extracted source (around line <strong>#51</strong>):\n
466
+ \ </div>\n <div class=\"data\">\n <table cellpadding=\"0\"
467
+ cellspacing=\"0\" class=\"lines\">\n <tr>\n <td>\n <pre
468
+ class=\"line_numbers\">\n<span>49</span>\n<span>50</span>\n<span>51</span>\n<span>52</span>\n<span>53</span>\n<span>54</span>\n
469
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
470
+ class=\"line\"> @app.serve req\n</div><div class=\"line\"> else\n</div><div
471
+ class=\"line active\"> @app.call req.env\n</div><div class=\"line\">
472
+ \ end\n</div><div class=\"line\"> end\n</div><div class=\"line\">\n</div>\n</pre>\n</td>\n
473
+ \ </tr>\n </table>\n </div>\n </div>\n <div class=\"source
474
+ hidden\" id=\"frame-source-38\">\n <div class=\"info\">\n Extracted
475
+ source (around line <strong>#43</strong>):\n </div>\n <div class=\"data\">\n
476
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
477
+ \ <td>\n <pre class=\"line_numbers\">\n<span>41</span>\n<span>42</span>\n<span>43</span>\n<span>44</span>\n<span>45</span>\n<span>46</span>\n
478
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
479
+ class=\"line\"> req.path_parameters = set_params.merge parameters\n</div><div
480
+ class=\"line\">\n</div><div class=\"line active\"> status, headers,
481
+ body = route.app.serve(req)\n</div><div class=\"line\">\n</div><div class=\"line\">
482
+ \ if &#39;pass&#39; == headers[&#39;X-Cascade&#39;]\n</div><div class=\"line\">
483
+ \ req.script_name = script_name\n</div>\n</pre>\n</td>\n </tr>\n
484
+ \ </table>\n </div>\n </div>\n <div class=\"source hidden\"
485
+ id=\"frame-source-39\">\n <div class=\"info\">\n Extracted source
486
+ (around line <strong>#30</strong>):\n </div>\n <div class=\"data\">\n
487
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
488
+ \ <td>\n <pre class=\"line_numbers\">\n<span>28</span>\n<span>29</span>\n<span>30</span>\n<span>31</span>\n<span>32</span>\n<span>33</span>\n
489
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
490
+ class=\"line\">\n</div><div class=\"line\"> def serve(req)\n</div><div
491
+ class=\"line active\"> find_routes(req).each do |match, parameters,
492
+ route|\n</div><div class=\"line\"> set_params = req.path_parameters\n</div><div
493
+ class=\"line\"> path_info = req.path_info\n</div><div class=\"line\">
494
+ \ script_name = req.script_name\n</div>\n</pre>\n</td>\n </tr>\n
495
+ \ </table>\n </div>\n </div>\n <div class=\"source hidden\"
496
+ id=\"frame-source-40\">\n <div class=\"info\">\n Extracted source
497
+ (around line <strong>#30</strong>):\n </div>\n <div class=\"data\">\n
498
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
499
+ \ <td>\n <pre class=\"line_numbers\">\n<span>28</span>\n<span>29</span>\n<span>30</span>\n<span>31</span>\n<span>32</span>\n<span>33</span>\n
500
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
501
+ class=\"line\">\n</div><div class=\"line\"> def serve(req)\n</div><div
502
+ class=\"line active\"> find_routes(req).each do |match, parameters,
503
+ route|\n</div><div class=\"line\"> set_params = req.path_parameters\n</div><div
504
+ class=\"line\"> path_info = req.path_info\n</div><div class=\"line\">
505
+ \ script_name = req.script_name\n</div>\n</pre>\n</td>\n </tr>\n
506
+ \ </table>\n </div>\n </div>\n <div class=\"source hidden\"
507
+ id=\"frame-source-41\">\n <div class=\"info\">\n Extracted source
508
+ (around line <strong>#821</strong>):\n </div>\n <div class=\"data\">\n
509
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
510
+ \ <td>\n <pre class=\"line_numbers\">\n<span>819</span>\n<span>820</span>\n<span>821</span>\n<span>822</span>\n<span>823</span>\n<span>824</span>\n
511
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
512
+ class=\"line\"> req = request_class.new(env)\n</div><div class=\"line\">
513
+ \ req.path_info = Journey::Router::Utils.normalize_path(req.path_info)\n</div><div
514
+ class=\"line active\"> @router.serve(req)\n</div><div class=\"line\">
515
+ \ end\n</div><div class=\"line\">\n</div><div class=\"line\"> def
516
+ recognize_path(path, environment = {})\n</div>\n</pre>\n</td>\n </tr>\n
517
+ \ </table>\n </div>\n </div>\n <div class=\"source hidden\"
518
+ id=\"frame-source-42\">\n <div class=\"info\">\n Extracted source
519
+ (around line <strong>#24</strong>):\n </div>\n <div class=\"data\">\n
520
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
521
+ \ <td>\n <pre class=\"line_numbers\">\n<span>22</span>\n<span>23</span>\n<span>24</span>\n<span>25</span>\n<span>26</span>\n<span>27</span>\n
522
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
523
+ class=\"line\">\n</div><div class=\"line\"> def call(env)\n</div><div class=\"line
524
+ active\"> status, headers, body = @app.call(env)\n</div><div class=\"line\">\n</div><div
525
+ class=\"line\"> if etag_status?(status) &amp;&amp; etag_body?(body) &amp;&amp;
526
+ !skip_caching?(headers)\n</div><div class=\"line\"> original_body =
527
+ body\n</div>\n</pre>\n</td>\n </tr>\n </table>\n </div>\n
528
+ \ </div>\n <div class=\"source hidden\" id=\"frame-source-43\">\n <div
529
+ class=\"info\">\n Extracted source (around line <strong>#25</strong>):\n
530
+ \ </div>\n <div class=\"data\">\n <table cellpadding=\"0\"
531
+ cellspacing=\"0\" class=\"lines\">\n <tr>\n <td>\n <pre
532
+ class=\"line_numbers\">\n<span>23</span>\n<span>24</span>\n<span>25</span>\n<span>26</span>\n<span>27</span>\n<span>28</span>\n
533
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
534
+ class=\"line\"> case env[REQUEST_METHOD]\n</div><div class=\"line\">
535
+ \ when &quot;GET&quot;, &quot;HEAD&quot;\n</div><div class=\"line active\">
536
+ \ status, headers, body = @app.call(env)\n</div><div class=\"line\">
537
+ \ headers = Utils::HeaderHash.new(headers)\n</div><div class=\"line\">
538
+ \ if status == 200 &amp;&amp; fresh?(env, headers)\n</div><div class=\"line\">
539
+ \ status = 304\n</div>\n</pre>\n</td>\n </tr>\n </table>\n
540
+ \ </div>\n </div>\n <div class=\"source hidden\" id=\"frame-source-44\">\n
541
+ \ <div class=\"info\">\n Extracted source (around line <strong>#13</strong>):\n
542
+ \ </div>\n <div class=\"data\">\n <table cellpadding=\"0\"
543
+ cellspacing=\"0\" class=\"lines\">\n <tr>\n <td>\n <pre
544
+ class=\"line_numbers\">\n<span>11</span>\n<span>12</span>\n<span>13</span>\n<span>14</span>\n<span>15</span>\n<span>16</span>\n
545
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
546
+ class=\"line\">\n</div><div class=\"line\"> def call(env)\n</div><div class=\"line
547
+ active\"> status, headers, body = @app.call(env)\n</div><div class=\"line\">\n</div><div
548
+ class=\"line\"> if env[REQUEST_METHOD] == HEAD\n</div><div class=\"line\">
549
+ \ [\n</div>\n</pre>\n</td>\n </tr>\n </table>\n </div>\n
550
+ \ </div>\n <div class=\"source hidden\" id=\"frame-source-45\">\n <div
551
+ class=\"info\">\n Extracted source (around line <strong>#27</strong>):\n
552
+ \ </div>\n <div class=\"data\">\n <table cellpadding=\"0\"
553
+ cellspacing=\"0\" class=\"lines\">\n <tr>\n <td>\n <pre
554
+ class=\"line_numbers\">\n<span>25</span>\n<span>26</span>\n<span>27</span>\n<span>28</span>\n<span>29</span>\n<span>30</span>\n
555
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
556
+ class=\"line\"> end\n</div><div class=\"line\">\n</div><div class=\"line
557
+ active\"> @app.call(env)\n</div><div class=\"line\"> end\n</div><div
558
+ class=\"line\">\n</div><div class=\"line\"> private\n</div>\n</pre>\n</td>\n
559
+ \ </tr>\n </table>\n </div>\n </div>\n <div class=\"source
560
+ hidden\" id=\"frame-source-46\">\n <div class=\"info\">\n Extracted
561
+ source (around line <strong>#260</strong>):\n </div>\n <div class=\"data\">\n
562
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
563
+ \ <td>\n <pre class=\"line_numbers\">\n<span>258</span>\n<span>259</span>\n<span>260</span>\n<span>261</span>\n<span>262</span>\n<span>263</span>\n
564
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
565
+ class=\"line\">\n</div><div class=\"line\"> def call(env)\n</div><div class=\"line
566
+ active\"> @app.call(env)\n</div><div class=\"line\"> ensure\n</div><div
567
+ class=\"line\"> session = Request::Session.find(env) || {}\n</div><div
568
+ class=\"line\"> flash_hash = env[KEY]\n</div>\n</pre>\n</td>\n </tr>\n
569
+ \ </table>\n </div>\n </div>\n <div class=\"source hidden\"
570
+ id=\"frame-source-47\">\n <div class=\"info\">\n Extracted source
571
+ (around line <strong>#225</strong>):\n </div>\n <div class=\"data\">\n
572
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
573
+ \ <td>\n <pre class=\"line_numbers\">\n<span>223</span>\n<span>224</span>\n<span>225</span>\n<span>226</span>\n<span>227</span>\n<span>228</span>\n
574
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
575
+ class=\"line\"> def context(env, app=@app)\n</div><div class=\"line\">
576
+ \ prepare_session(env)\n</div><div class=\"line active\"> status,
577
+ headers, body = app.call(env)\n</div><div class=\"line\"> commit_session(env,
578
+ status, headers, body)\n</div><div class=\"line\"> end\n</div><div
579
+ class=\"line\">\n</div>\n</pre>\n</td>\n </tr>\n </table>\n
580
+ \ </div>\n </div>\n <div class=\"source hidden\" id=\"frame-source-48\">\n
581
+ \ <div class=\"info\">\n Extracted source (around line <strong>#220</strong>):\n
582
+ \ </div>\n <div class=\"data\">\n <table cellpadding=\"0\"
583
+ cellspacing=\"0\" class=\"lines\">\n <tr>\n <td>\n <pre
584
+ class=\"line_numbers\">\n<span>218</span>\n<span>219</span>\n<span>220</span>\n<span>221</span>\n<span>222</span>\n<span>223</span>\n
585
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
586
+ class=\"line\">\n</div><div class=\"line\"> def call(env)\n</div><div
587
+ class=\"line active\"> context(env)\n</div><div class=\"line\"> end\n</div><div
588
+ class=\"line\">\n</div><div class=\"line\"> def context(env, app=@app)\n</div>\n</pre>\n</td>\n
589
+ \ </tr>\n </table>\n </div>\n </div>\n <div class=\"source
590
+ hidden\" id=\"frame-source-49\">\n <div class=\"info\">\n Extracted
591
+ source (around line <strong>#560</strong>):\n </div>\n <div class=\"data\">\n
592
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
593
+ \ <td>\n <pre class=\"line_numbers\">\n<span>558</span>\n<span>559</span>\n<span>560</span>\n<span>561</span>\n<span>562</span>\n<span>563</span>\n
594
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
595
+ class=\"line\">\n</div><div class=\"line\"> def call(env)\n</div><div class=\"line
596
+ active\"> status, headers, body = @app.call(env)\n</div><div class=\"line\">\n</div><div
597
+ class=\"line\"> if cookie_jar = env[&#39;action_dispatch.cookies&#39;]\n</div><div
598
+ class=\"line\"> unless cookie_jar.committed?\n</div>\n</pre>\n</td>\n
599
+ \ </tr>\n </table>\n </div>\n </div>\n <div class=\"source
600
+ hidden\" id=\"frame-source-50\">\n <div class=\"info\">\n Extracted
601
+ source (around line <strong>#36</strong>):\n </div>\n <div class=\"data\">\n
602
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
603
+ \ <td>\n <pre class=\"line_numbers\">\n<span>34</span>\n<span>35</span>\n<span>36</span>\n<span>37</span>\n<span>38</span>\n<span>39</span>\n
604
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
605
+ class=\"line\"> connection.enable_query_cache!\n</div><div class=\"line\">\n</div><div
606
+ class=\"line active\"> response = @app.call(env)\n</div><div class=\"line\">
607
+ \ response[2] = Rack::BodyProxy.new(response[2]) do\n</div><div class=\"line\">
608
+ \ restore_query_cache_settings(connection_id, enabled)\n</div><div class=\"line\">
609
+ \ end\n</div>\n</pre>\n</td>\n </tr>\n </table>\n </div>\n
610
+ \ </div>\n <div class=\"source hidden\" id=\"frame-source-51\">\n <div
611
+ class=\"info\">\n Extracted source (around line <strong>#653</strong>):\n
612
+ \ </div>\n <div class=\"data\">\n <table cellpadding=\"0\"
613
+ cellspacing=\"0\" class=\"lines\">\n <tr>\n <td>\n <pre
614
+ class=\"line_numbers\">\n<span>651</span>\n<span>652</span>\n<span>653</span>\n<span>654</span>\n<span>655</span>\n<span>656</span>\n
615
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
616
+ class=\"line\"> testing = env[&#39;rack.test&#39;]\n</div><div class=\"line\">\n</div><div
617
+ class=\"line active\"> response = @app.call(env)\n</div><div class=\"line\">
618
+ \ response[2] = ::Rack::BodyProxy.new(response[2]) do\n</div><div class=\"line\">
619
+ \ ActiveRecord::Base.clear_active_connections! unless testing\n</div><div
620
+ class=\"line\"> end\n</div>\n</pre>\n</td>\n </tr>\n </table>\n
621
+ \ </div>\n </div>\n <div class=\"source hidden\" id=\"frame-source-52\">\n
622
+ \ <div class=\"info\">\n Extracted source (around line <strong>#377</strong>):\n
623
+ \ </div>\n <div class=\"data\">\n <table cellpadding=\"0\"
624
+ cellspacing=\"0\" class=\"lines\">\n <tr>\n <td>\n <pre
625
+ class=\"line_numbers\">\n<span>375</span>\n<span>376</span>\n<span>377</span>\n<span>378</span>\n<span>379</span>\n<span>380</span>\n
626
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
627
+ class=\"line\"> end\n</div><div class=\"line\"> end\n</div><div
628
+ class=\"line active\"> @app.call(env)\n</div><div class=\"line\"> end\n</div><div
629
+ class=\"line\">\n</div><div class=\"line\"> private\n</div>\n</pre>\n</td>\n
630
+ \ </tr>\n </table>\n </div>\n </div>\n <div class=\"source
631
+ hidden\" id=\"frame-source-53\">\n <div class=\"info\">\n Extracted
632
+ source (around line <strong>#29</strong>):\n </div>\n <div class=\"data\">\n
633
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
634
+ \ <td>\n <pre class=\"line_numbers\">\n<span>27</span>\n<span>28</span>\n<span>29</span>\n<span>30</span>\n<span>31</span>\n<span>32</span>\n
635
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
636
+ class=\"line\"> result = run_callbacks :call do\n</div><div class=\"line\">
637
+ \ begin\n</div><div class=\"line active\"> @app.call(env)\n</div><div
638
+ class=\"line\"> rescue =&gt; error\n</div><div class=\"line\"> end\n</div><div
639
+ class=\"line\"> end\n</div>\n</pre>\n</td>\n </tr>\n </table>\n
640
+ \ </div>\n </div>\n <div class=\"source hidden\" id=\"frame-source-54\">\n
641
+ \ <div class=\"info\">\n Extracted source (around line <strong>#84</strong>):\n
642
+ \ </div>\n <div class=\"data\">\n <table cellpadding=\"0\"
643
+ cellspacing=\"0\" class=\"lines\">\n <tr>\n <td>\n <pre
644
+ class=\"line_numbers\">\n<span>82</span>\n<span>83</span>\n<span>84</span>\n<span>85</span>\n<span>86</span>\n<span>87</span>\n
645
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
646
+ class=\"line\">\n</div><div class=\"line\"> if callbacks.empty?\n</div><div
647
+ class=\"line active\"> yield if block_given?\n</div><div class=\"line\">
648
+ \ else\n</div><div class=\"line\"> runner = callbacks.compile\n</div><div
649
+ class=\"line\"> e = Filters::Environment.new(self, false, nil, block)\n</div>\n</pre>\n</td>\n
650
+ \ </tr>\n </table>\n </div>\n </div>\n <div class=\"source
651
+ hidden\" id=\"frame-source-55\">\n <div class=\"info\">\n Extracted
652
+ source (around line <strong>#27</strong>):\n </div>\n <div class=\"data\">\n
653
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
654
+ \ <td>\n <pre class=\"line_numbers\">\n<span>25</span>\n<span>26</span>\n<span>27</span>\n<span>28</span>\n<span>29</span>\n<span>30</span>\n
655
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
656
+ class=\"line\"> def call(env)\n</div><div class=\"line\"> error =
657
+ nil\n</div><div class=\"line active\"> result = run_callbacks :call do\n</div><div
658
+ class=\"line\"> begin\n</div><div class=\"line\"> @app.call(env)\n</div><div
659
+ class=\"line\"> rescue =&gt; error\n</div>\n</pre>\n</td>\n </tr>\n
660
+ \ </table>\n </div>\n </div>\n <div class=\"source hidden\"
661
+ id=\"frame-source-56\">\n <div class=\"info\">\n Extracted source
662
+ (around line <strong>#73</strong>):\n </div>\n <div class=\"data\">\n
663
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
664
+ \ <td>\n <pre class=\"line_numbers\">\n<span>71</span>\n<span>72</span>\n<span>73</span>\n<span>74</span>\n<span>75</span>\n<span>76</span>\n
665
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
666
+ class=\"line\"> prepare!\n</div><div class=\"line\">\n</div><div class=\"line
667
+ active\"> response = @app.call(env)\n</div><div class=\"line\"> response[2]
668
+ = ::Rack::BodyProxy.new(response[2]) { cleanup! }\n</div><div class=\"line\">\n</div><div
669
+ class=\"line\"> response\n</div>\n</pre>\n</td>\n </tr>\n </table>\n
670
+ \ </div>\n </div>\n <div class=\"source hidden\" id=\"frame-source-57\">\n
671
+ \ <div class=\"info\">\n Extracted source (around line <strong>#78</strong>):\n
672
+ \ </div>\n <div class=\"data\">\n <table cellpadding=\"0\"
673
+ cellspacing=\"0\" class=\"lines\">\n <tr>\n <td>\n <pre
674
+ class=\"line_numbers\">\n<span>76</span>\n<span>77</span>\n<span>78</span>\n<span>79</span>\n<span>80</span>\n<span>81</span>\n
675
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
676
+ class=\"line\"> def call(env)\n</div><div class=\"line\"> env[&quot;action_dispatch.remote_ip&quot;]
677
+ = GetIp.new(env, self)\n</div><div class=\"line active\"> @app.call(env)\n</div><div
678
+ class=\"line\"> end\n</div><div class=\"line\">\n</div><div class=\"line\">
679
+ \ # The GetIp class exists as a way to defer processing of the request data\n</div>\n</pre>\n</td>\n
680
+ \ </tr>\n </table>\n </div>\n </div>\n <div class=\"source
681
+ hidden\" id=\"frame-source-58\">\n <div class=\"info\">\n Extracted
682
+ source (around line <strong>#17</strong>):\n </div>\n <div class=\"data\">\n
683
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
684
+ \ <td>\n <pre class=\"line_numbers\">\n<span>15</span>\n<span>16</span>\n<span>17</span>\n<span>18</span>\n<span>19</span>\n<span>20</span>\n
685
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
686
+ class=\"line\">\n</div><div class=\"line\"> def call(env)\n</div><div class=\"line
687
+ active\"> _, headers, body = response = @app.call(env)\n</div><div class=\"line\">\n</div><div
688
+ class=\"line\"> if headers[&#39;X-Cascade&#39;] == &#39;pass&#39;\n</div><div
689
+ class=\"line\"> body.close if body.respond_to?(:close)\n</div>\n</pre>\n</td>\n
690
+ \ </tr>\n </table>\n </div>\n </div>\n <div class=\"source
691
+ hidden\" id=\"frame-source-59\">\n <div class=\"info\">\n Extracted
692
+ source (around line <strong>#39</strong>):\n </div>\n <div class=\"data\">\n
693
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
694
+ \ <td>\n <pre class=\"line_numbers\">\n<span>37</span>\n<span>38</span>\n<span>39</span>\n<span>40</span>\n<span>41</span>\n<span>42</span>\n
695
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
696
+ class=\"line\"> end\n</div><div class=\"line\">\n</div><div class=\"line
697
+ active\"> status, headers, body = @app.call(env)\n</div><div class=\"line\">\n</div><div
698
+ class=\"line\"> if exception = env[&#39;web_console.exception&#39;]\n</div><div
699
+ class=\"line\"> session = Session.from_exception(exception)\n</div>\n</pre>\n</td>\n
700
+ \ </tr>\n </table>\n </div>\n </div>\n <div class=\"source
701
+ hidden\" id=\"frame-source-60\">\n <div class=\"info\">\n Extracted
702
+ source (around line <strong>#30</strong>):\n </div>\n <div class=\"data\">\n
703
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
704
+ \ <td>\n <pre class=\"line_numbers\">\n<span>28</span>\n<span>29</span>\n<span>30</span>\n<span>31</span>\n<span>32</span>\n<span>33</span>\n
705
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
706
+ class=\"line\">\n</div><div class=\"line\"> def call(env)\n</div><div class=\"line
707
+ active\"> @app.call(env)\n</div><div class=\"line\"> rescue Exception
708
+ =&gt; exception\n</div><div class=\"line\"> if env[&#39;action_dispatch.show_exceptions&#39;]
709
+ == false\n</div><div class=\"line\"> raise exception\n</div>\n</pre>\n</td>\n
710
+ \ </tr>\n </table>\n </div>\n </div>\n <div class=\"source
711
+ hidden\" id=\"frame-source-61\">\n <div class=\"info\">\n Extracted
712
+ source (around line <strong>#38</strong>):\n </div>\n <div class=\"data\">\n
713
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
714
+ \ <td>\n <pre class=\"line_numbers\">\n<span>36</span>\n<span>37</span>\n<span>38</span>\n<span>39</span>\n<span>40</span>\n<span>41</span>\n
715
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
716
+ class=\"line\"> instrumenter.start &#39;request.action_dispatch&#39;,
717
+ request: request\n</div><div class=\"line\"> logger.info { started_request_message(request)
718
+ }\n</div><div class=\"line active\"> resp = @app.call(env)\n</div><div
719
+ class=\"line\"> resp[2] = ::Rack::BodyProxy.new(resp[2]) { finish(request)
720
+ }\n</div><div class=\"line\"> resp\n</div><div class=\"line\"> rescue
721
+ Exception\n</div>\n</pre>\n</td>\n </tr>\n </table>\n </div>\n
722
+ \ </div>\n <div class=\"source hidden\" id=\"frame-source-62\">\n <div
723
+ class=\"info\">\n Extracted source (around line <strong>#20</strong>):\n
724
+ \ </div>\n <div class=\"data\">\n <table cellpadding=\"0\"
725
+ cellspacing=\"0\" class=\"lines\">\n <tr>\n <td>\n <pre
726
+ class=\"line_numbers\">\n<span>18</span>\n<span>19</span>\n<span>20</span>\n<span>21</span>\n<span>22</span>\n<span>23</span>\n
727
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
728
+ class=\"line\">\n</div><div class=\"line\"> if logger.respond_to?(:tagged)\n</div><div
729
+ class=\"line active\"> logger.tagged(compute_tags(request)) { call_app(request,
730
+ env) }\n</div><div class=\"line\"> else\n</div><div class=\"line\">
731
+ \ call_app(request, env)\n</div><div class=\"line\"> end\n</div>\n</pre>\n</td>\n
732
+ \ </tr>\n </table>\n </div>\n </div>\n <div class=\"source
733
+ hidden\" id=\"frame-source-63\">\n <div class=\"info\">\n Extracted
734
+ source (around line <strong>#68</strong>):\n </div>\n <div class=\"data\">\n
735
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
736
+ \ <td>\n <pre class=\"line_numbers\">\n<span>66</span>\n<span>67</span>\n<span>68</span>\n<span>69</span>\n<span>70</span>\n<span>71</span>\n
737
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
738
+ class=\"line\">\n</div><div class=\"line\"> def tagged(*tags)\n</div><div
739
+ class=\"line active\"> formatter.tagged(*tags) { yield self }\n</div><div
740
+ class=\"line\"> end\n</div><div class=\"line\">\n</div><div class=\"line\">
741
+ \ def flush\n</div>\n</pre>\n</td>\n </tr>\n </table>\n
742
+ \ </div>\n </div>\n <div class=\"source hidden\" id=\"frame-source-64\">\n
743
+ \ <div class=\"info\">\n Extracted source (around line <strong>#26</strong>):\n
744
+ \ </div>\n <div class=\"data\">\n <table cellpadding=\"0\"
745
+ cellspacing=\"0\" class=\"lines\">\n <tr>\n <td>\n <pre
746
+ class=\"line_numbers\">\n<span>24</span>\n<span>25</span>\n<span>26</span>\n<span>27</span>\n<span>28</span>\n<span>29</span>\n
747
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
748
+ class=\"line\"> def tagged(*tags)\n</div><div class=\"line\"> new_tags
749
+ = push_tags(*tags)\n</div><div class=\"line active\"> yield self\n</div><div
750
+ class=\"line\"> ensure\n</div><div class=\"line\"> pop_tags(new_tags.size)\n</div><div
751
+ class=\"line\"> end\n</div>\n</pre>\n</td>\n </tr>\n </table>\n
752
+ \ </div>\n </div>\n <div class=\"source hidden\" id=\"frame-source-65\">\n
753
+ \ <div class=\"info\">\n Extracted source (around line <strong>#68</strong>):\n
754
+ \ </div>\n <div class=\"data\">\n <table cellpadding=\"0\"
755
+ cellspacing=\"0\" class=\"lines\">\n <tr>\n <td>\n <pre
756
+ class=\"line_numbers\">\n<span>66</span>\n<span>67</span>\n<span>68</span>\n<span>69</span>\n<span>70</span>\n<span>71</span>\n
757
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
758
+ class=\"line\">\n</div><div class=\"line\"> def tagged(*tags)\n</div><div
759
+ class=\"line active\"> formatter.tagged(*tags) { yield self }\n</div><div
760
+ class=\"line\"> end\n</div><div class=\"line\">\n</div><div class=\"line\">
761
+ \ def flush\n</div>\n</pre>\n</td>\n </tr>\n </table>\n
762
+ \ </div>\n </div>\n <div class=\"source hidden\" id=\"frame-source-66\">\n
763
+ \ <div class=\"info\">\n Extracted source (around line <strong>#20</strong>):\n
764
+ \ </div>\n <div class=\"data\">\n <table cellpadding=\"0\"
765
+ cellspacing=\"0\" class=\"lines\">\n <tr>\n <td>\n <pre
766
+ class=\"line_numbers\">\n<span>18</span>\n<span>19</span>\n<span>20</span>\n<span>21</span>\n<span>22</span>\n<span>23</span>\n
767
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
768
+ class=\"line\">\n</div><div class=\"line\"> if logger.respond_to?(:tagged)\n</div><div
769
+ class=\"line active\"> logger.tagged(compute_tags(request)) { call_app(request,
770
+ env) }\n</div><div class=\"line\"> else\n</div><div class=\"line\">
771
+ \ call_app(request, env)\n</div><div class=\"line\"> end\n</div>\n</pre>\n</td>\n
772
+ \ </tr>\n </table>\n </div>\n </div>\n <div class=\"source
773
+ hidden\" id=\"frame-source-67\">\n <div class=\"info\">\n Extracted
774
+ source (around line <strong>#21</strong>):\n </div>\n <div class=\"data\">\n
775
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
776
+ \ <td>\n <pre class=\"line_numbers\">\n<span>19</span>\n<span>20</span>\n<span>21</span>\n<span>22</span>\n<span>23</span>\n<span>24</span>\n
777
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
778
+ class=\"line\"> def call(env)\n</div><div class=\"line\"> env[&quot;action_dispatch.request_id&quot;]
779
+ = external_request_id(env) || internal_request_id\n</div><div class=\"line
780
+ active\"> @app.call(env).tap { |_status, headers, _body| headers[&quot;X-Request-Id&quot;]
781
+ = env[&quot;action_dispatch.request_id&quot;] }\n</div><div class=\"line\">
782
+ \ end\n</div><div class=\"line\">\n</div><div class=\"line\"> private\n</div>\n</pre>\n</td>\n
783
+ \ </tr>\n </table>\n </div>\n </div>\n <div class=\"source
784
+ hidden\" id=\"frame-source-68\">\n <div class=\"info\">\n Extracted
785
+ source (around line <strong>#22</strong>):\n </div>\n <div class=\"data\">\n
786
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
787
+ \ <td>\n <pre class=\"line_numbers\">\n<span>20</span>\n<span>21</span>\n<span>22</span>\n<span>23</span>\n<span>24</span>\n<span>25</span>\n
788
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
789
+ class=\"line\"> end\n</div><div class=\"line\">\n</div><div class=\"line
790
+ active\"> @app.call(env)\n</div><div class=\"line\"> end\n</div><div
791
+ class=\"line\">\n</div><div class=\"line\"> def method_override(env)\n</div>\n</pre>\n</td>\n
792
+ \ </tr>\n </table>\n </div>\n </div>\n <div class=\"source
793
+ hidden\" id=\"frame-source-69\">\n <div class=\"info\">\n Extracted
794
+ source (around line <strong>#18</strong>):\n </div>\n <div class=\"data\">\n
795
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
796
+ \ <td>\n <pre class=\"line_numbers\">\n<span>16</span>\n<span>17</span>\n<span>18</span>\n<span>19</span>\n<span>20</span>\n<span>21</span>\n
797
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
798
+ class=\"line\"> def call(env)\n</div><div class=\"line\"> start_time
799
+ = clock_time\n</div><div class=\"line active\"> status, headers, body
800
+ = @app.call(env)\n</div><div class=\"line\"> request_time = clock_time
801
+ - start_time\n</div><div class=\"line\">\n</div><div class=\"line\"> if
802
+ !headers.has_key?(@header_name)\n</div>\n</pre>\n</td>\n </tr>\n
803
+ \ </table>\n </div>\n </div>\n <div class=\"source hidden\"
804
+ id=\"frame-source-70\">\n <div class=\"info\">\n Extracted source
805
+ (around line <strong>#28</strong>):\n </div>\n <div class=\"data\">\n
806
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
807
+ \ <td>\n <pre class=\"line_numbers\">\n<span>26</span>\n<span>27</span>\n<span>28</span>\n<span>29</span>\n<span>30</span>\n<span>31</span>\n
808
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
809
+ class=\"line\"> def call(env)\n</div><div class=\"line\"> LocalCacheRegistry.set_cache_for(local_cache_key,
810
+ LocalStore.new)\n</div><div class=\"line active\"> response = @app.call(env)\n</div><div
811
+ class=\"line\"> response[2] = ::Rack::BodyProxy.new(response[2])
812
+ do\n</div><div class=\"line\"> LocalCacheRegistry.set_cache_for(local_cache_key,
813
+ nil)\n</div><div class=\"line\"> end\n</div>\n</pre>\n</td>\n </tr>\n
814
+ \ </table>\n </div>\n </div>\n <div class=\"source hidden\"
815
+ id=\"frame-source-71\">\n <div class=\"info\">\n Extracted source
816
+ (around line <strong>#17</strong>):\n </div>\n <div class=\"data\">\n
817
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
818
+ \ <td>\n <pre class=\"line_numbers\">\n<span>15</span>\n<span>16</span>\n<span>17</span>\n<span>18</span>\n<span>19</span>\n<span>20</span>\n
819
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
820
+ class=\"line\"> old, env[FLAG] = env[FLAG], false\n</div><div class=\"line\">
821
+ \ @mutex.lock\n</div><div class=\"line active\"> response = @app.call(env)\n</div><div
822
+ class=\"line\"> body = BodyProxy.new(response[2]) { @mutex.unlock }\n</div><div
823
+ class=\"line\"> response[2] = body\n</div><div class=\"line\"> response\n</div>\n</pre>\n</td>\n
824
+ \ </tr>\n </table>\n </div>\n </div>\n <div class=\"source
825
+ hidden\" id=\"frame-source-72\">\n <div class=\"info\">\n Extracted
826
+ source (around line <strong>#116</strong>):\n </div>\n <div class=\"data\">\n
827
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
828
+ \ <td>\n <pre class=\"line_numbers\">\n<span>114</span>\n<span>115</span>\n<span>116</span>\n<span>117</span>\n<span>118</span>\n<span>119</span>\n
829
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
830
+ class=\"line\"> end\n</div><div class=\"line\">\n</div><div class=\"line
831
+ active\"> @app.call(env)\n</div><div class=\"line\"> end\n</div><div
832
+ class=\"line\"> end\n</div><div class=\"line\">end\n</div>\n</pre>\n</td>\n
833
+ \ </tr>\n </table>\n </div>\n </div>\n <div class=\"source
834
+ hidden\" id=\"frame-source-73\">\n <div class=\"info\">\n Extracted
835
+ source (around line <strong>#113</strong>):\n </div>\n <div class=\"data\">\n
836
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
837
+ \ <td>\n <pre class=\"line_numbers\">\n<span>111</span>\n<span>112</span>\n<span>113</span>\n<span>114</span>\n<span>115</span>\n<span>116</span>\n
838
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
839
+ class=\"line\">\n</div><div class=\"line\"> def call(env)\n</div><div class=\"line
840
+ active\"> status, headers, body = @app.call(env)\n</div><div class=\"line\">
841
+ \ if body.respond_to?(:to_path)\n</div><div class=\"line\"> case
842
+ type = variation(env)\n</div><div class=\"line\"> when &#39;X-Accel-Redirect&#39;\n</div>\n</pre>\n</td>\n
843
+ \ </tr>\n </table>\n </div>\n </div>\n <div class=\"source
844
+ hidden\" id=\"frame-source-74\">\n <div class=\"info\">\n Extracted
845
+ source (around line <strong>#518</strong>):\n </div>\n <div class=\"data\">\n
846
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
847
+ \ <td>\n <pre class=\"line_numbers\">\n<span>516</span>\n<span>517</span>\n<span>518</span>\n<span>519</span>\n<span>520</span>\n<span>521</span>\n
848
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
849
+ class=\"line\"> env[&quot;ROUTES_#{routes.object_id}_SCRIPT_NAME&quot;]
850
+ = env[&#39;SCRIPT_NAME&#39;].dup\n</div><div class=\"line\"> end\n</div><div
851
+ class=\"line active\"> app.call(env)\n</div><div class=\"line\"> end\n</div><div
852
+ class=\"line\">\n</div><div class=\"line\"> # Defines additional Rack env
853
+ configuration that is added on each call.\n</div>\n</pre>\n</td>\n </tr>\n
854
+ \ </table>\n </div>\n </div>\n <div class=\"source hidden\"
855
+ id=\"frame-source-75\">\n <div class=\"info\">\n Extracted source
856
+ (around line <strong>#165</strong>):\n </div>\n <div class=\"data\">\n
857
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
858
+ \ <td>\n <pre class=\"line_numbers\">\n<span>163</span>\n<span>164</span>\n<span>165</span>\n<span>166</span>\n<span>167</span>\n<span>168</span>\n
859
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
860
+ class=\"line\"> env[&quot;ORIGINAL_FULLPATH&quot;] = build_original_fullpath(env)\n</div><div
861
+ class=\"line\"> env[&quot;ORIGINAL_SCRIPT_NAME&quot;] = env[&quot;SCRIPT_NAME&quot;]\n</div><div
862
+ class=\"line active\"> super(env)\n</div><div class=\"line\"> end\n</div><div
863
+ class=\"line\">\n</div><div class=\"line\"> # Reload application routes
864
+ regardless if they changed or not.\n</div>\n</pre>\n</td>\n </tr>\n
865
+ \ </table>\n </div>\n </div>\n <div class=\"source hidden\"
866
+ id=\"frame-source-76\">\n <div class=\"info\">\n Extracted source
867
+ (around line <strong>#17</strong>):\n </div>\n <div class=\"data\">\n
868
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
869
+ \ <td>\n <pre class=\"line_numbers\">\n<span>15</span>\n<span>16</span>\n<span>17</span>\n<span>18</span>\n<span>19</span>\n<span>20</span>\n
870
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
871
+ class=\"line\"> old, env[FLAG] = env[FLAG], false\n</div><div class=\"line\">
872
+ \ @mutex.lock\n</div><div class=\"line active\"> response = @app.call(env)\n</div><div
873
+ class=\"line\"> body = BodyProxy.new(response[2]) { @mutex.unlock }\n</div><div
874
+ class=\"line\"> response[2] = body\n</div><div class=\"line\"> response\n</div>\n</pre>\n</td>\n
875
+ \ </tr>\n </table>\n </div>\n </div>\n <div class=\"source
876
+ hidden\" id=\"frame-source-77\">\n <div class=\"info\">\n Extracted
877
+ source (around line <strong>#15</strong>):\n </div>\n <div class=\"data\">\n
878
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
879
+ \ <td>\n <pre class=\"line_numbers\">\n<span>13</span>\n<span>14</span>\n<span>15</span>\n<span>16</span>\n<span>17</span>\n<span>18</span>\n
880
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
881
+ class=\"line\">\n</div><div class=\"line\"> def call(env)\n</div><div class=\"line
882
+ active\"> status, headers, body = @app.call(env)\n</div><div class=\"line\">
883
+ \ headers = HeaderHash.new(headers)\n</div><div class=\"line\">\n</div><div
884
+ class=\"line\"> if !STATUS_WITH_NO_ENTITY_BODY.include?(status.to_i)
885
+ &amp;&amp;\n</div>\n</pre>\n</td>\n </tr>\n </table>\n </div>\n
886
+ \ </div>\n <div class=\"source hidden\" id=\"frame-source-78\">\n <div
887
+ class=\"info\">\n Extracted source (around line <strong>#88</strong>):\n
888
+ \ </div>\n <div class=\"data\">\n <table cellpadding=\"0\"
889
+ cellspacing=\"0\" class=\"lines\">\n <tr>\n <td>\n <pre
890
+ class=\"line_numbers\">\n<span>86</span>\n<span>87</span>\n<span>88</span>\n<span>89</span>\n<span>90</span>\n<span>91</span>\n
891
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
892
+ class=\"line\"> env[&quot;REQUEST_PATH&quot;] ||= [env[&quot;SCRIPT_NAME&quot;],
893
+ env[PATH_INFO]].join\n</div><div class=\"line\">\n</div><div class=\"line
894
+ active\"> status, headers, body = @app.call(env)\n</div><div class=\"line\">
895
+ \ begin\n</div><div class=\"line\"> res.status = status.to_i\n</div><div
896
+ class=\"line\"> headers.each { |k, vs|\n</div>\n</pre>\n</td>\n </tr>\n
897
+ \ </table>\n </div>\n </div>\n <div class=\"source hidden\"
898
+ id=\"frame-source-79\">\n <div class=\"info\">\n Extracted source
899
+ (around line <strong>#138</strong>):\n </div>\n <div class=\"data\">\n
900
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
901
+ \ <td>\n <pre class=\"line_numbers\">\n<span>136</span>\n<span>137</span>\n<span>138</span>\n<span>139</span>\n<span>140</span>\n<span>141</span>\n
902
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
903
+ class=\"line\"> si = servlet.get_instance(self, *options)\n</div><div
904
+ class=\"line\"> @logger.debug(format(&quot;%s is invoked.&quot;, si.class.name))\n</div><div
905
+ class=\"line active\"> si.service(req, res)\n</div><div class=\"line\">
906
+ \ end\n</div><div class=\"line\">\n</div><div class=\"line\"> ##\n</div>\n</pre>\n</td>\n
907
+ \ </tr>\n </table>\n </div>\n </div>\n <div class=\"source
908
+ hidden\" id=\"frame-source-80\">\n <div class=\"info\">\n Extracted
909
+ source (around line <strong>#94</strong>):\n </div>\n <div class=\"data\">\n
910
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
911
+ \ <td>\n <pre class=\"line_numbers\">\n<span>92</span>\n<span>93</span>\n<span>94</span>\n<span>95</span>\n<span>96</span>\n<span>97</span>\n
912
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
913
+ class=\"line\"> callback.call(req, res)\n</div><div class=\"line\">
914
+ \ end\n</div><div class=\"line active\"> server.service(req,
915
+ res)\n</div><div class=\"line\"> rescue HTTPStatus::EOFError, HTTPStatus::RequestTimeout
916
+ =&gt; ex\n</div><div class=\"line\"> res.set_error(ex)\n</div><div
917
+ class=\"line\"> rescue HTTPStatus::Error =&gt; ex\n</div>\n</pre>\n</td>\n
918
+ \ </tr>\n </table>\n </div>\n </div>\n <div class=\"source
919
+ hidden\" id=\"frame-source-81\">\n <div class=\"info\">\n Extracted
920
+ source (around line <strong>#294</strong>):\n </div>\n <div class=\"data\">\n
921
+ \ <table cellpadding=\"0\" cellspacing=\"0\" class=\"lines\">\n <tr>\n
922
+ \ <td>\n <pre class=\"line_numbers\">\n<span>292</span>\n<span>293</span>\n<span>294</span>\n<span>295</span>\n<span>296</span>\n<span>297</span>\n
923
+ \ </pre>\n </td>\n<td width=\"100%\">\n<pre>\n<div
924
+ class=\"line\"> end\n</div><div class=\"line\"> call_callback(:AcceptCallback,
925
+ sock)\n</div><div class=\"line active\"> block ? block.call(sock)
926
+ : run(sock)\n</div><div class=\"line\"> rescue Errno::ENOTCONN\n</div><div
927
+ class=\"line\"> @logger.debug &quot;Errno::ENOTCONN raised&quot;\n</div><div
928
+ class=\"line\"> rescue ServerError =&gt; ex\n</div>\n</pre>\n</td>\n
929
+ \ </tr>\n </table>\n </div>\n </div>\n\n \n<p><code>Rails.root:
930
+ /data/src/dlss/ld4l_data/annotations/triannon/spec/internal</code></p>\n\n<div
931
+ id=\"traces\">\n <a href=\"#\" onclick=\"hide(&#39;Framework-Trace&#39;);hide(&#39;Full-Trace&#39;);show(&#39;Application-Trace&#39;);;
932
+ return false;\">Application Trace</a> |\n <a href=\"#\" onclick=\"hide(&#39;Application-Trace&#39;);hide(&#39;Full-Trace&#39;);show(&#39;Framework-Trace&#39;);;
933
+ return false;\">Framework Trace</a> |\n <a href=\"#\" onclick=\"hide(&#39;Application-Trace&#39;);hide(&#39;Framework-Trace&#39;);show(&#39;Full-Trace&#39;);;
934
+ return false;\">Full Trace</a> \n\n <div id=\"Application-Trace\" style=\"display:
935
+ none;\">\n <pre><code></code></pre>\n </div>\n <div id=\"Framework-Trace\"
936
+ style=\"display: none;\">\n <pre><code><a class=\"trace-frames\" data-frame-id=\"0\"
937
+ href=\"#\">actionpack (4.2.3) lib/action_controller/metal/mime_responds.rb:217:in
938
+ `respond_to&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"1\" href=\"#\">/data/src/dlss/ld4l_data/annotations/triannon/app/controllers/triannon/annotations_controller.rb:26:in
939
+ `show&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"2\" href=\"#\">actionpack
940
+ (4.2.3) lib/action_controller/metal/implicit_render.rb:4:in `send_action&#39;</a><br><a
941
+ class=\"trace-frames\" data-frame-id=\"3\" href=\"#\">actionpack (4.2.3) lib/abstract_controller/base.rb:198:in
942
+ `process_action&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"4\"
943
+ href=\"#\">actionpack (4.2.3) lib/action_controller/metal/rendering.rb:10:in
944
+ `process_action&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"5\"
945
+ href=\"#\">actionpack (4.2.3) lib/abstract_controller/callbacks.rb:20:in `block
946
+ in process_action&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"6\"
947
+ href=\"#\">activesupport (4.2.3) lib/active_support/callbacks.rb:115:in `call&#39;</a><br><a
948
+ class=\"trace-frames\" data-frame-id=\"7\" href=\"#\">activesupport (4.2.3)
949
+ lib/active_support/callbacks.rb:115:in `call&#39;</a><br><a class=\"trace-frames\"
950
+ data-frame-id=\"8\" href=\"#\">activesupport (4.2.3) lib/active_support/callbacks.rb:553:in
951
+ `block (2 levels) in compile&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"9\"
952
+ href=\"#\">activesupport (4.2.3) lib/active_support/callbacks.rb:503:in `call&#39;</a><br><a
953
+ class=\"trace-frames\" data-frame-id=\"10\" href=\"#\">activesupport (4.2.3)
954
+ lib/active_support/callbacks.rb:503:in `call&#39;</a><br><a class=\"trace-frames\"
955
+ data-frame-id=\"11\" href=\"#\">activesupport (4.2.3) lib/active_support/callbacks.rb:88:in
956
+ `run_callbacks&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"12\"
957
+ href=\"#\">actionpack (4.2.3) lib/abstract_controller/callbacks.rb:19:in `process_action&#39;</a><br><a
958
+ class=\"trace-frames\" data-frame-id=\"13\" href=\"#\">actionpack (4.2.3)
959
+ lib/action_controller/metal/rescue.rb:29:in `process_action&#39;</a><br><a
960
+ class=\"trace-frames\" data-frame-id=\"14\" href=\"#\">actionpack (4.2.3)
961
+ lib/action_controller/metal/instrumentation.rb:32:in `block in process_action&#39;</a><br><a
962
+ class=\"trace-frames\" data-frame-id=\"15\" href=\"#\">activesupport (4.2.3)
963
+ lib/active_support/notifications.rb:164:in `block in instrument&#39;</a><br><a
964
+ class=\"trace-frames\" data-frame-id=\"16\" href=\"#\">activesupport (4.2.3)
965
+ lib/active_support/notifications/instrumenter.rb:20:in `instrument&#39;</a><br><a
966
+ class=\"trace-frames\" data-frame-id=\"17\" href=\"#\">activesupport (4.2.3)
967
+ lib/active_support/notifications.rb:164:in `instrument&#39;</a><br><a class=\"trace-frames\"
968
+ data-frame-id=\"18\" href=\"#\">actionpack (4.2.3) lib/action_controller/metal/instrumentation.rb:30:in
969
+ `process_action&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"19\"
970
+ href=\"#\">actionpack (4.2.3) lib/action_controller/metal/params_wrapper.rb:250:in
971
+ `process_action&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"20\"
972
+ href=\"#\">activerecord (4.2.3) lib/active_record/railties/controller_runtime.rb:18:in
973
+ `process_action&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"21\"
974
+ href=\"#\">actionpack (4.2.3) lib/abstract_controller/base.rb:137:in `process&#39;</a><br><a
975
+ class=\"trace-frames\" data-frame-id=\"22\" href=\"#\">actionview (4.2.3)
976
+ lib/action_view/rendering.rb:30:in `process&#39;</a><br><a class=\"trace-frames\"
977
+ data-frame-id=\"23\" href=\"#\">actionpack (4.2.3) lib/action_controller/metal.rb:196:in
978
+ `dispatch&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"24\" href=\"#\">actionpack
979
+ (4.2.3) lib/action_controller/metal/rack_delegation.rb:13:in `dispatch&#39;</a><br><a
980
+ class=\"trace-frames\" data-frame-id=\"25\" href=\"#\">actionpack (4.2.3)
981
+ lib/action_controller/metal.rb:237:in `block in action&#39;</a><br><a class=\"trace-frames\"
982
+ data-frame-id=\"26\" href=\"#\">actionpack (4.2.3) lib/action_dispatch/routing/route_set.rb:76:in
983
+ `call&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"27\" href=\"#\">actionpack
984
+ (4.2.3) lib/action_dispatch/routing/route_set.rb:76:in `dispatch&#39;</a><br><a
985
+ class=\"trace-frames\" data-frame-id=\"28\" href=\"#\">actionpack (4.2.3)
986
+ lib/action_dispatch/routing/route_set.rb:45:in `serve&#39;</a><br><a class=\"trace-frames\"
987
+ data-frame-id=\"29\" href=\"#\">actionpack (4.2.3) lib/action_dispatch/routing/mapper.rb:49:in
988
+ `serve&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"30\" href=\"#\">actionpack
989
+ (4.2.3) lib/action_dispatch/journey/router.rb:43:in `block in serve&#39;</a><br><a
990
+ class=\"trace-frames\" data-frame-id=\"31\" href=\"#\">actionpack (4.2.3)
991
+ lib/action_dispatch/journey/router.rb:30:in `each&#39;</a><br><a class=\"trace-frames\"
992
+ data-frame-id=\"32\" href=\"#\">actionpack (4.2.3) lib/action_dispatch/journey/router.rb:30:in
993
+ `serve&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"33\" href=\"#\">actionpack
994
+ (4.2.3) lib/action_dispatch/routing/route_set.rb:821:in `call&#39;</a><br><a
995
+ class=\"trace-frames\" data-frame-id=\"34\" href=\"#\">railties (4.2.3) lib/rails/engine.rb:518:in
996
+ `call&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"35\" href=\"#\">railties
997
+ (4.2.3) lib/rails/railtie.rb:194:in `public_send&#39;</a><br><a class=\"trace-frames\"
998
+ data-frame-id=\"36\" href=\"#\">railties (4.2.3) lib/rails/railtie.rb:194:in
999
+ `method_missing&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"37\"
1000
+ href=\"#\">actionpack (4.2.3) lib/action_dispatch/routing/mapper.rb:51:in
1001
+ `serve&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"38\" href=\"#\">actionpack
1002
+ (4.2.3) lib/action_dispatch/journey/router.rb:43:in `block in serve&#39;</a><br><a
1003
+ class=\"trace-frames\" data-frame-id=\"39\" href=\"#\">actionpack (4.2.3)
1004
+ lib/action_dispatch/journey/router.rb:30:in `each&#39;</a><br><a class=\"trace-frames\"
1005
+ data-frame-id=\"40\" href=\"#\">actionpack (4.2.3) lib/action_dispatch/journey/router.rb:30:in
1006
+ `serve&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"41\" href=\"#\">actionpack
1007
+ (4.2.3) lib/action_dispatch/routing/route_set.rb:821:in `call&#39;</a><br><a
1008
+ class=\"trace-frames\" data-frame-id=\"42\" href=\"#\">rack (1.6.4) lib/rack/etag.rb:24:in
1009
+ `call&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"43\" href=\"#\">rack
1010
+ (1.6.4) lib/rack/conditionalget.rb:25:in `call&#39;</a><br><a class=\"trace-frames\"
1011
+ data-frame-id=\"44\" href=\"#\">rack (1.6.4) lib/rack/head.rb:13:in `call&#39;</a><br><a
1012
+ class=\"trace-frames\" data-frame-id=\"45\" href=\"#\">actionpack (4.2.3)
1013
+ lib/action_dispatch/middleware/params_parser.rb:27:in `call&#39;</a><br><a
1014
+ class=\"trace-frames\" data-frame-id=\"46\" href=\"#\">actionpack (4.2.3)
1015
+ lib/action_dispatch/middleware/flash.rb:260:in `call&#39;</a><br><a class=\"trace-frames\"
1016
+ data-frame-id=\"47\" href=\"#\">rack (1.6.4) lib/rack/session/abstract/id.rb:225:in
1017
+ `context&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"48\" href=\"#\">rack
1018
+ (1.6.4) lib/rack/session/abstract/id.rb:220:in `call&#39;</a><br><a class=\"trace-frames\"
1019
+ data-frame-id=\"49\" href=\"#\">actionpack (4.2.3) lib/action_dispatch/middleware/cookies.rb:560:in
1020
+ `call&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"50\" href=\"#\">activerecord
1021
+ (4.2.3) lib/active_record/query_cache.rb:36:in `call&#39;</a><br><a class=\"trace-frames\"
1022
+ data-frame-id=\"51\" href=\"#\">activerecord (4.2.3) lib/active_record/connection_adapters/abstract/connection_pool.rb:653:in
1023
+ `call&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"52\" href=\"#\">activerecord
1024
+ (4.2.3) lib/active_record/migration.rb:377:in `call&#39;</a><br><a class=\"trace-frames\"
1025
+ data-frame-id=\"53\" href=\"#\">actionpack (4.2.3) lib/action_dispatch/middleware/callbacks.rb:29:in
1026
+ `block in call&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"54\"
1027
+ href=\"#\">activesupport (4.2.3) lib/active_support/callbacks.rb:84:in `run_callbacks&#39;</a><br><a
1028
+ class=\"trace-frames\" data-frame-id=\"55\" href=\"#\">actionpack (4.2.3)
1029
+ lib/action_dispatch/middleware/callbacks.rb:27:in `call&#39;</a><br><a class=\"trace-frames\"
1030
+ data-frame-id=\"56\" href=\"#\">actionpack (4.2.3) lib/action_dispatch/middleware/reloader.rb:73:in
1031
+ `call&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"57\" href=\"#\">actionpack
1032
+ (4.2.3) lib/action_dispatch/middleware/remote_ip.rb:78:in `call&#39;</a><br><a
1033
+ class=\"trace-frames\" data-frame-id=\"58\" href=\"#\">actionpack (4.2.3)
1034
+ lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call&#39;</a><br><a
1035
+ class=\"trace-frames\" data-frame-id=\"59\" href=\"#\">web-console (2.2.1)
1036
+ lib/web_console/middleware.rb:39:in `call&#39;</a><br><a class=\"trace-frames\"
1037
+ data-frame-id=\"60\" href=\"#\">actionpack (4.2.3) lib/action_dispatch/middleware/show_exceptions.rb:30:in
1038
+ `call&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"61\" href=\"#\">railties
1039
+ (4.2.3) lib/rails/rack/logger.rb:38:in `call_app&#39;</a><br><a class=\"trace-frames\"
1040
+ data-frame-id=\"62\" href=\"#\">railties (4.2.3) lib/rails/rack/logger.rb:20:in
1041
+ `block in call&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"63\"
1042
+ href=\"#\">activesupport (4.2.3) lib/active_support/tagged_logging.rb:68:in
1043
+ `block in tagged&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"64\"
1044
+ href=\"#\">activesupport (4.2.3) lib/active_support/tagged_logging.rb:26:in
1045
+ `tagged&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"65\" href=\"#\">activesupport
1046
+ (4.2.3) lib/active_support/tagged_logging.rb:68:in `tagged&#39;</a><br><a
1047
+ class=\"trace-frames\" data-frame-id=\"66\" href=\"#\">railties (4.2.3) lib/rails/rack/logger.rb:20:in
1048
+ `call&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"67\" href=\"#\">actionpack
1049
+ (4.2.3) lib/action_dispatch/middleware/request_id.rb:21:in `call&#39;</a><br><a
1050
+ class=\"trace-frames\" data-frame-id=\"68\" href=\"#\">rack (1.6.4) lib/rack/methodoverride.rb:22:in
1051
+ `call&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"69\" href=\"#\">rack
1052
+ (1.6.4) lib/rack/runtime.rb:18:in `call&#39;</a><br><a class=\"trace-frames\"
1053
+ data-frame-id=\"70\" href=\"#\">activesupport (4.2.3) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in
1054
+ `call&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"71\" href=\"#\">rack
1055
+ (1.6.4) lib/rack/lock.rb:17:in `call&#39;</a><br><a class=\"trace-frames\"
1056
+ data-frame-id=\"72\" href=\"#\">actionpack (4.2.3) lib/action_dispatch/middleware/static.rb:116:in
1057
+ `call&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"73\" href=\"#\">rack
1058
+ (1.6.4) lib/rack/sendfile.rb:113:in `call&#39;</a><br><a class=\"trace-frames\"
1059
+ data-frame-id=\"74\" href=\"#\">railties (4.2.3) lib/rails/engine.rb:518:in
1060
+ `call&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"75\" href=\"#\">railties
1061
+ (4.2.3) lib/rails/application.rb:165:in `call&#39;</a><br><a class=\"trace-frames\"
1062
+ data-frame-id=\"76\" href=\"#\">rack (1.6.4) lib/rack/lock.rb:17:in `call&#39;</a><br><a
1063
+ class=\"trace-frames\" data-frame-id=\"77\" href=\"#\">rack (1.6.4) lib/rack/content_length.rb:15:in
1064
+ `call&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"78\" href=\"#\">rack
1065
+ (1.6.4) lib/rack/handler/webrick.rb:88:in `service&#39;</a><br><a class=\"trace-frames\"
1066
+ data-frame-id=\"79\" href=\"#\">/home/dlweber/.rbenv/versions/2.2.2/lib/ruby/2.2.0/webrick/httpserver.rb:138:in
1067
+ `service&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"80\" href=\"#\">/home/dlweber/.rbenv/versions/2.2.2/lib/ruby/2.2.0/webrick/httpserver.rb:94:in
1068
+ `run&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"81\" href=\"#\">/home/dlweber/.rbenv/versions/2.2.2/lib/ruby/2.2.0/webrick/server.rb:294:in
1069
+ `block in start_thread&#39;</a><br></code></pre>\n </div>\n <div id=\"Full-Trace\"
1070
+ style=\"display: block;\">\n <pre><code><a class=\"trace-frames\" data-frame-id=\"0\"
1071
+ href=\"#\">actionpack (4.2.3) lib/action_controller/metal/mime_responds.rb:217:in
1072
+ `respond_to&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"1\" href=\"#\">/data/src/dlss/ld4l_data/annotations/triannon/app/controllers/triannon/annotations_controller.rb:26:in
1073
+ `show&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"2\" href=\"#\">actionpack
1074
+ (4.2.3) lib/action_controller/metal/implicit_render.rb:4:in `send_action&#39;</a><br><a
1075
+ class=\"trace-frames\" data-frame-id=\"3\" href=\"#\">actionpack (4.2.3) lib/abstract_controller/base.rb:198:in
1076
+ `process_action&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"4\"
1077
+ href=\"#\">actionpack (4.2.3) lib/action_controller/metal/rendering.rb:10:in
1078
+ `process_action&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"5\"
1079
+ href=\"#\">actionpack (4.2.3) lib/abstract_controller/callbacks.rb:20:in `block
1080
+ in process_action&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"6\"
1081
+ href=\"#\">activesupport (4.2.3) lib/active_support/callbacks.rb:115:in `call&#39;</a><br><a
1082
+ class=\"trace-frames\" data-frame-id=\"7\" href=\"#\">activesupport (4.2.3)
1083
+ lib/active_support/callbacks.rb:115:in `call&#39;</a><br><a class=\"trace-frames\"
1084
+ data-frame-id=\"8\" href=\"#\">activesupport (4.2.3) lib/active_support/callbacks.rb:553:in
1085
+ `block (2 levels) in compile&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"9\"
1086
+ href=\"#\">activesupport (4.2.3) lib/active_support/callbacks.rb:503:in `call&#39;</a><br><a
1087
+ class=\"trace-frames\" data-frame-id=\"10\" href=\"#\">activesupport (4.2.3)
1088
+ lib/active_support/callbacks.rb:503:in `call&#39;</a><br><a class=\"trace-frames\"
1089
+ data-frame-id=\"11\" href=\"#\">activesupport (4.2.3) lib/active_support/callbacks.rb:88:in
1090
+ `run_callbacks&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"12\"
1091
+ href=\"#\">actionpack (4.2.3) lib/abstract_controller/callbacks.rb:19:in `process_action&#39;</a><br><a
1092
+ class=\"trace-frames\" data-frame-id=\"13\" href=\"#\">actionpack (4.2.3)
1093
+ lib/action_controller/metal/rescue.rb:29:in `process_action&#39;</a><br><a
1094
+ class=\"trace-frames\" data-frame-id=\"14\" href=\"#\">actionpack (4.2.3)
1095
+ lib/action_controller/metal/instrumentation.rb:32:in `block in process_action&#39;</a><br><a
1096
+ class=\"trace-frames\" data-frame-id=\"15\" href=\"#\">activesupport (4.2.3)
1097
+ lib/active_support/notifications.rb:164:in `block in instrument&#39;</a><br><a
1098
+ class=\"trace-frames\" data-frame-id=\"16\" href=\"#\">activesupport (4.2.3)
1099
+ lib/active_support/notifications/instrumenter.rb:20:in `instrument&#39;</a><br><a
1100
+ class=\"trace-frames\" data-frame-id=\"17\" href=\"#\">activesupport (4.2.3)
1101
+ lib/active_support/notifications.rb:164:in `instrument&#39;</a><br><a class=\"trace-frames\"
1102
+ data-frame-id=\"18\" href=\"#\">actionpack (4.2.3) lib/action_controller/metal/instrumentation.rb:30:in
1103
+ `process_action&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"19\"
1104
+ href=\"#\">actionpack (4.2.3) lib/action_controller/metal/params_wrapper.rb:250:in
1105
+ `process_action&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"20\"
1106
+ href=\"#\">activerecord (4.2.3) lib/active_record/railties/controller_runtime.rb:18:in
1107
+ `process_action&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"21\"
1108
+ href=\"#\">actionpack (4.2.3) lib/abstract_controller/base.rb:137:in `process&#39;</a><br><a
1109
+ class=\"trace-frames\" data-frame-id=\"22\" href=\"#\">actionview (4.2.3)
1110
+ lib/action_view/rendering.rb:30:in `process&#39;</a><br><a class=\"trace-frames\"
1111
+ data-frame-id=\"23\" href=\"#\">actionpack (4.2.3) lib/action_controller/metal.rb:196:in
1112
+ `dispatch&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"24\" href=\"#\">actionpack
1113
+ (4.2.3) lib/action_controller/metal/rack_delegation.rb:13:in `dispatch&#39;</a><br><a
1114
+ class=\"trace-frames\" data-frame-id=\"25\" href=\"#\">actionpack (4.2.3)
1115
+ lib/action_controller/metal.rb:237:in `block in action&#39;</a><br><a class=\"trace-frames\"
1116
+ data-frame-id=\"26\" href=\"#\">actionpack (4.2.3) lib/action_dispatch/routing/route_set.rb:76:in
1117
+ `call&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"27\" href=\"#\">actionpack
1118
+ (4.2.3) lib/action_dispatch/routing/route_set.rb:76:in `dispatch&#39;</a><br><a
1119
+ class=\"trace-frames\" data-frame-id=\"28\" href=\"#\">actionpack (4.2.3)
1120
+ lib/action_dispatch/routing/route_set.rb:45:in `serve&#39;</a><br><a class=\"trace-frames\"
1121
+ data-frame-id=\"29\" href=\"#\">actionpack (4.2.3) lib/action_dispatch/routing/mapper.rb:49:in
1122
+ `serve&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"30\" href=\"#\">actionpack
1123
+ (4.2.3) lib/action_dispatch/journey/router.rb:43:in `block in serve&#39;</a><br><a
1124
+ class=\"trace-frames\" data-frame-id=\"31\" href=\"#\">actionpack (4.2.3)
1125
+ lib/action_dispatch/journey/router.rb:30:in `each&#39;</a><br><a class=\"trace-frames\"
1126
+ data-frame-id=\"32\" href=\"#\">actionpack (4.2.3) lib/action_dispatch/journey/router.rb:30:in
1127
+ `serve&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"33\" href=\"#\">actionpack
1128
+ (4.2.3) lib/action_dispatch/routing/route_set.rb:821:in `call&#39;</a><br><a
1129
+ class=\"trace-frames\" data-frame-id=\"34\" href=\"#\">railties (4.2.3) lib/rails/engine.rb:518:in
1130
+ `call&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"35\" href=\"#\">railties
1131
+ (4.2.3) lib/rails/railtie.rb:194:in `public_send&#39;</a><br><a class=\"trace-frames\"
1132
+ data-frame-id=\"36\" href=\"#\">railties (4.2.3) lib/rails/railtie.rb:194:in
1133
+ `method_missing&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"37\"
1134
+ href=\"#\">actionpack (4.2.3) lib/action_dispatch/routing/mapper.rb:51:in
1135
+ `serve&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"38\" href=\"#\">actionpack
1136
+ (4.2.3) lib/action_dispatch/journey/router.rb:43:in `block in serve&#39;</a><br><a
1137
+ class=\"trace-frames\" data-frame-id=\"39\" href=\"#\">actionpack (4.2.3)
1138
+ lib/action_dispatch/journey/router.rb:30:in `each&#39;</a><br><a class=\"trace-frames\"
1139
+ data-frame-id=\"40\" href=\"#\">actionpack (4.2.3) lib/action_dispatch/journey/router.rb:30:in
1140
+ `serve&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"41\" href=\"#\">actionpack
1141
+ (4.2.3) lib/action_dispatch/routing/route_set.rb:821:in `call&#39;</a><br><a
1142
+ class=\"trace-frames\" data-frame-id=\"42\" href=\"#\">rack (1.6.4) lib/rack/etag.rb:24:in
1143
+ `call&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"43\" href=\"#\">rack
1144
+ (1.6.4) lib/rack/conditionalget.rb:25:in `call&#39;</a><br><a class=\"trace-frames\"
1145
+ data-frame-id=\"44\" href=\"#\">rack (1.6.4) lib/rack/head.rb:13:in `call&#39;</a><br><a
1146
+ class=\"trace-frames\" data-frame-id=\"45\" href=\"#\">actionpack (4.2.3)
1147
+ lib/action_dispatch/middleware/params_parser.rb:27:in `call&#39;</a><br><a
1148
+ class=\"trace-frames\" data-frame-id=\"46\" href=\"#\">actionpack (4.2.3)
1149
+ lib/action_dispatch/middleware/flash.rb:260:in `call&#39;</a><br><a class=\"trace-frames\"
1150
+ data-frame-id=\"47\" href=\"#\">rack (1.6.4) lib/rack/session/abstract/id.rb:225:in
1151
+ `context&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"48\" href=\"#\">rack
1152
+ (1.6.4) lib/rack/session/abstract/id.rb:220:in `call&#39;</a><br><a class=\"trace-frames\"
1153
+ data-frame-id=\"49\" href=\"#\">actionpack (4.2.3) lib/action_dispatch/middleware/cookies.rb:560:in
1154
+ `call&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"50\" href=\"#\">activerecord
1155
+ (4.2.3) lib/active_record/query_cache.rb:36:in `call&#39;</a><br><a class=\"trace-frames\"
1156
+ data-frame-id=\"51\" href=\"#\">activerecord (4.2.3) lib/active_record/connection_adapters/abstract/connection_pool.rb:653:in
1157
+ `call&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"52\" href=\"#\">activerecord
1158
+ (4.2.3) lib/active_record/migration.rb:377:in `call&#39;</a><br><a class=\"trace-frames\"
1159
+ data-frame-id=\"53\" href=\"#\">actionpack (4.2.3) lib/action_dispatch/middleware/callbacks.rb:29:in
1160
+ `block in call&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"54\"
1161
+ href=\"#\">activesupport (4.2.3) lib/active_support/callbacks.rb:84:in `run_callbacks&#39;</a><br><a
1162
+ class=\"trace-frames\" data-frame-id=\"55\" href=\"#\">actionpack (4.2.3)
1163
+ lib/action_dispatch/middleware/callbacks.rb:27:in `call&#39;</a><br><a class=\"trace-frames\"
1164
+ data-frame-id=\"56\" href=\"#\">actionpack (4.2.3) lib/action_dispatch/middleware/reloader.rb:73:in
1165
+ `call&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"57\" href=\"#\">actionpack
1166
+ (4.2.3) lib/action_dispatch/middleware/remote_ip.rb:78:in `call&#39;</a><br><a
1167
+ class=\"trace-frames\" data-frame-id=\"58\" href=\"#\">actionpack (4.2.3)
1168
+ lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call&#39;</a><br><a
1169
+ class=\"trace-frames\" data-frame-id=\"59\" href=\"#\">web-console (2.2.1)
1170
+ lib/web_console/middleware.rb:39:in `call&#39;</a><br><a class=\"trace-frames\"
1171
+ data-frame-id=\"60\" href=\"#\">actionpack (4.2.3) lib/action_dispatch/middleware/show_exceptions.rb:30:in
1172
+ `call&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"61\" href=\"#\">railties
1173
+ (4.2.3) lib/rails/rack/logger.rb:38:in `call_app&#39;</a><br><a class=\"trace-frames\"
1174
+ data-frame-id=\"62\" href=\"#\">railties (4.2.3) lib/rails/rack/logger.rb:20:in
1175
+ `block in call&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"63\"
1176
+ href=\"#\">activesupport (4.2.3) lib/active_support/tagged_logging.rb:68:in
1177
+ `block in tagged&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"64\"
1178
+ href=\"#\">activesupport (4.2.3) lib/active_support/tagged_logging.rb:26:in
1179
+ `tagged&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"65\" href=\"#\">activesupport
1180
+ (4.2.3) lib/active_support/tagged_logging.rb:68:in `tagged&#39;</a><br><a
1181
+ class=\"trace-frames\" data-frame-id=\"66\" href=\"#\">railties (4.2.3) lib/rails/rack/logger.rb:20:in
1182
+ `call&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"67\" href=\"#\">actionpack
1183
+ (4.2.3) lib/action_dispatch/middleware/request_id.rb:21:in `call&#39;</a><br><a
1184
+ class=\"trace-frames\" data-frame-id=\"68\" href=\"#\">rack (1.6.4) lib/rack/methodoverride.rb:22:in
1185
+ `call&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"69\" href=\"#\">rack
1186
+ (1.6.4) lib/rack/runtime.rb:18:in `call&#39;</a><br><a class=\"trace-frames\"
1187
+ data-frame-id=\"70\" href=\"#\">activesupport (4.2.3) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in
1188
+ `call&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"71\" href=\"#\">rack
1189
+ (1.6.4) lib/rack/lock.rb:17:in `call&#39;</a><br><a class=\"trace-frames\"
1190
+ data-frame-id=\"72\" href=\"#\">actionpack (4.2.3) lib/action_dispatch/middleware/static.rb:116:in
1191
+ `call&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"73\" href=\"#\">rack
1192
+ (1.6.4) lib/rack/sendfile.rb:113:in `call&#39;</a><br><a class=\"trace-frames\"
1193
+ data-frame-id=\"74\" href=\"#\">railties (4.2.3) lib/rails/engine.rb:518:in
1194
+ `call&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"75\" href=\"#\">railties
1195
+ (4.2.3) lib/rails/application.rb:165:in `call&#39;</a><br><a class=\"trace-frames\"
1196
+ data-frame-id=\"76\" href=\"#\">rack (1.6.4) lib/rack/lock.rb:17:in `call&#39;</a><br><a
1197
+ class=\"trace-frames\" data-frame-id=\"77\" href=\"#\">rack (1.6.4) lib/rack/content_length.rb:15:in
1198
+ `call&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"78\" href=\"#\">rack
1199
+ (1.6.4) lib/rack/handler/webrick.rb:88:in `service&#39;</a><br><a class=\"trace-frames\"
1200
+ data-frame-id=\"79\" href=\"#\">/home/dlweber/.rbenv/versions/2.2.2/lib/ruby/2.2.0/webrick/httpserver.rb:138:in
1201
+ `service&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"80\" href=\"#\">/home/dlweber/.rbenv/versions/2.2.2/lib/ruby/2.2.0/webrick/httpserver.rb:94:in
1202
+ `run&#39;</a><br><a class=\"trace-frames\" data-frame-id=\"81\" href=\"#\">/home/dlweber/.rbenv/versions/2.2.2/lib/ruby/2.2.0/webrick/server.rb:294:in
1203
+ `block in start_thread&#39;</a><br></code></pre>\n </div>\n\n <script
1204
+ type=\"text/javascript\">\n var traceFrames = document.getElementsByClassName('trace-frames');\n
1205
+ \ var selectedFrame, currentSource = document.getElementById('frame-source-0');\n\n
1206
+ \ // Add click listeners for all stack frames\n for (var i = 0; i < traceFrames.length;
1207
+ i++) {\n traceFrames[i].addEventListener('click', function(e) {\n e.preventDefault();\n
1208
+ \ var target = e.target;\n var frame_id = target.dataset.frameId;\n\n
1209
+ \ if (selectedFrame) {\n selectedFrame.className = selectedFrame.className.replace(\"selected\",
1210
+ \"\");\n }\n\n target.className += \" selected\";\n selectedFrame
1211
+ = target;\n\n // Change the extracted source code\n changeSourceExtract(frame_id);\n
1212
+ \ });\n\n function changeSourceExtract(frame_id) {\n var el
1213
+ = document.getElementById('frame-source-' + frame_id);\n if (currentSource
1214
+ && el) {\n currentSource.className += \" hidden\";\n el.className
1215
+ = el.className.replace(\" hidden\", \"\");\n currentSource = el;\n
1216
+ \ }\n }\n }\n </script>\n</div>\n\n \n\n<h2 style=\"margin-top:
1217
+ 30px\">Request</h2>\n<p><b>Parameters</b>:</p> <pre>{&quot;anno_root&quot;=&gt;&quot;bar&quot;,\n
1218
+ &quot;id&quot;=&gt;&quot;/11/4f/9b/26/114f9b26-4b59-4e9b-a3a8-41b03318bc5f&quot;}</pre>\n\n<div
1219
+ class=\"details\">\n <div class=\"summary\"><a href=\"#\" onclick=\"return
1220
+ toggleSessionDump()\">Toggle session dump</a></div>\n <div id=\"session_dump\"
1221
+ style=\"display:none\"><pre></pre></div>\n</div>\n\n<div class=\"details\">\n
1222
+ \ <div class=\"summary\"><a href=\"#\" onclick=\"return toggleEnvDump()\">Toggle
1223
+ env dump</a></div>\n <div id=\"env_dump\" style=\"display:none\"><pre>GATEWAY_INTERFACE:
1224
+ &quot;CGI/1.1&quot;\nHTTP_ACCEPT: &quot;application/trix&quot;\nHTTP_ACCEPT_ENCODING:
1225
+ &quot;gzip, deflate&quot;\nREMOTE_ADDR: &quot;127.0.0.1&quot;\nREMOTE_HOST:
1226
+ &quot;127.0.0.1&quot;\nSERVER_NAME: &quot;localhost&quot;\nSERVER_PROTOCOL:
1227
+ &quot;HTTP/1.1&quot;</pre></div>\n</div>\n\n<h2 style=\"margin-top: 30px\">Response</h2>\n<p><b>Headers</b>:</p>
1228
+ <pre>None</pre>\n\n</div>\n\n\n</body>\n</html>\n"
1229
+ http_version:
1230
+ recorded_at: Mon, 03 Aug 2015 22:12:36 GMT
1231
+ recorded_with: VCR 2.9.3