triannon-client 0.4.2 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
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
+ - text/x-nquads
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
+ - '99508'
27
+ X-Request-Id:
28
+ - beb07b53-6c2c-48af-a9a5-d187f7724e12
29
+ X-Runtime:
30
+ - '0.240912'
31
+ Server:
32
+ - WEBrick/1.3.1 (Ruby/2.2.2/2015-04-13)
33
+ Date:
34
+ - Mon, 03 Aug 2015 22:12:35 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;text/x-nquads&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:35 GMT
1231
+ recorded_with: VCR 2.9.3