vrpayment-ruby-sdk 5.1.0 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1429) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +20 -5
  3. data/Gemfile.lock +31 -38
  4. data/LICENSE +1 -1
  5. data/README.md +3025 -140
  6. data/Rakefile +24 -5
  7. data/lib/vrpayment-ruby-sdk/api_client.rb +236 -196
  8. data/lib/vrpayment-ruby-sdk/api_error.rb +40 -17
  9. data/lib/vrpayment-ruby-sdk/configuration.rb +240 -41
  10. data/lib/vrpayment-ruby-sdk/models/abstract_account_update.rb +85 -62
  11. data/lib/vrpayment-ruby-sdk/models/abstract_application_user_update.rb +112 -58
  12. data/lib/vrpayment-ruby-sdk/models/abstract_customer_active.rb +156 -99
  13. data/lib/vrpayment-ruby-sdk/models/abstract_customer_address_active.rb +98 -49
  14. data/lib/vrpayment-ruby-sdk/models/abstract_customer_comment_active.rb +79 -46
  15. data/lib/vrpayment-ruby-sdk/models/abstract_human_user_update.rb +167 -101
  16. data/lib/vrpayment-ruby-sdk/models/abstract_payment_connector_configuration_update.rb +304 -0
  17. data/lib/vrpayment-ruby-sdk/models/abstract_payment_link_update.rb +202 -108
  18. data/lib/vrpayment-ruby-sdk/models/abstract_payment_method_configuration_update.rb +313 -0
  19. data/lib/vrpayment-ruby-sdk/models/abstract_payment_processor_configuration_active.rb +269 -0
  20. data/lib/vrpayment-ruby-sdk/models/abstract_payment_terminal_update.rb +238 -0
  21. data/lib/vrpayment-ruby-sdk/models/abstract_refund_comment_active.rb +79 -46
  22. data/lib/vrpayment-ruby-sdk/models/abstract_role_update.rb +253 -0
  23. data/lib/vrpayment-ruby-sdk/models/abstract_single_sign_on_user_update.rb +318 -0
  24. data/lib/vrpayment-ruby-sdk/models/abstract_space_update.rb +153 -100
  25. data/lib/vrpayment-ruby-sdk/models/abstract_subscriber_update.rb +167 -116
  26. data/lib/vrpayment-ruby-sdk/models/abstract_subscription_affiliate_update.rb +118 -64
  27. data/lib/vrpayment-ruby-sdk/models/abstract_subscription_metric_update.rb +89 -60
  28. data/lib/vrpayment-ruby-sdk/models/abstract_subscription_product_active.rb +136 -82
  29. data/lib/vrpayment-ruby-sdk/models/abstract_token_update.rb +125 -76
  30. data/lib/vrpayment-ruby-sdk/models/abstract_transaction_comment_active.rb +79 -46
  31. data/lib/vrpayment-ruby-sdk/models/abstract_transaction_invoice_comment_active.rb +79 -46
  32. data/lib/vrpayment-ruby-sdk/models/abstract_transaction_pending.rb +298 -203
  33. data/lib/vrpayment-ruby-sdk/models/abstract_webhook_listener_update.rb +125 -61
  34. data/lib/vrpayment-ruby-sdk/models/abstract_webhook_url_update.rb +111 -53
  35. data/lib/vrpayment-ruby-sdk/models/account.rb +186 -146
  36. data/lib/vrpayment-ruby-sdk/models/account_create.rb +107 -76
  37. data/lib/vrpayment-ruby-sdk/models/account_list_response.rb +241 -0
  38. data/lib/vrpayment-ruby-sdk/models/account_search_response.rb +251 -0
  39. data/lib/vrpayment-ruby-sdk/models/account_state.rb +40 -27
  40. data/lib/vrpayment-ruby-sdk/models/account_type.rb +37 -24
  41. data/lib/vrpayment-ruby-sdk/models/account_update.rb +95 -79
  42. data/lib/vrpayment-ruby-sdk/models/address.rb +365 -257
  43. data/lib/vrpayment-ruby-sdk/models/address_create.rb +366 -257
  44. data/lib/vrpayment-ruby-sdk/models/application_key_state.rb +49 -0
  45. data/lib/vrpayment-ruby-sdk/models/application_user.rb +142 -83
  46. data/lib/vrpayment-ruby-sdk/models/application_user_create.rb +123 -61
  47. data/lib/vrpayment-ruby-sdk/models/application_user_create_with_mac_key.rb +142 -83
  48. data/lib/vrpayment-ruby-sdk/models/application_user_list_response.rb +241 -0
  49. data/lib/vrpayment-ruby-sdk/models/application_user_search_response.rb +251 -0
  50. data/lib/vrpayment-ruby-sdk/models/application_user_update.rb +122 -75
  51. data/lib/vrpayment-ruby-sdk/models/authenticated_card_data.rb +119 -65
  52. data/lib/vrpayment-ruby-sdk/models/authenticated_card_data_create.rb +208 -102
  53. data/lib/vrpayment-ruby-sdk/models/authenticated_card_request.rb +228 -0
  54. data/lib/vrpayment-ruby-sdk/models/bank_account.rb +145 -88
  55. data/lib/vrpayment-ruby-sdk/models/bank_account_environment.rb +36 -23
  56. data/lib/vrpayment-ruby-sdk/models/bank_account_list_response.rb +241 -0
  57. data/lib/vrpayment-ruby-sdk/models/bank_account_search_response.rb +251 -0
  58. data/lib/vrpayment-ruby-sdk/models/bank_account_state.rb +38 -25
  59. data/lib/vrpayment-ruby-sdk/models/bank_account_type.rb +101 -73
  60. data/lib/vrpayment-ruby-sdk/models/bank_transaction.rb +218 -155
  61. data/lib/vrpayment-ruby-sdk/models/bank_transaction_flow_direction.rb +36 -23
  62. data/lib/vrpayment-ruby-sdk/models/bank_transaction_list_response.rb +241 -0
  63. data/lib/vrpayment-ruby-sdk/models/bank_transaction_search_response.rb +251 -0
  64. data/lib/vrpayment-ruby-sdk/models/bank_transaction_source.rb +91 -63
  65. data/lib/vrpayment-ruby-sdk/models/bank_transaction_state.rb +36 -23
  66. data/lib/vrpayment-ruby-sdk/models/bank_transaction_type.rb +91 -63
  67. data/lib/vrpayment-ruby-sdk/models/billing_cycle_model.rb +147 -79
  68. data/lib/vrpayment-ruby-sdk/models/billing_cycle_type.rb +38 -25
  69. data/lib/vrpayment-ruby-sdk/models/billing_day_customization.rb +36 -23
  70. data/lib/vrpayment-ruby-sdk/models/card_authentication_response.rb +39 -26
  71. data/lib/vrpayment-ruby-sdk/models/card_authentication_version.rb +36 -23
  72. data/lib/vrpayment-ruby-sdk/models/card_cryptogram.rb +75 -47
  73. data/lib/vrpayment-ruby-sdk/models/card_cryptogram_create.rb +77 -47
  74. data/lib/vrpayment-ruby-sdk/models/cardholder_authentication.rb +111 -63
  75. data/lib/vrpayment-ruby-sdk/models/cardholder_authentication_create.rb +115 -63
  76. data/lib/vrpayment-ruby-sdk/models/charge.rb +175 -129
  77. data/lib/vrpayment-ruby-sdk/models/charge_attempt.rb +277 -224
  78. data/lib/vrpayment-ruby-sdk/models/charge_attempt_environment.rb +36 -23
  79. data/lib/vrpayment-ruby-sdk/models/charge_attempt_list_response.rb +241 -0
  80. data/lib/vrpayment-ruby-sdk/models/charge_attempt_search_response.rb +251 -0
  81. data/lib/vrpayment-ruby-sdk/models/charge_attempt_state.rb +37 -24
  82. data/lib/vrpayment-ruby-sdk/models/charge_bank_transaction.rb +129 -104
  83. data/lib/vrpayment-ruby-sdk/models/charge_bank_transaction_list_response.rb +241 -0
  84. data/lib/vrpayment-ruby-sdk/models/charge_bank_transaction_search_response.rb +251 -0
  85. data/lib/vrpayment-ruby-sdk/models/charge_flow.rb +131 -82
  86. data/lib/vrpayment-ruby-sdk/models/charge_flow_level.rb +159 -115
  87. data/lib/vrpayment-ruby-sdk/models/charge_flow_level_configuration.rb +146 -94
  88. data/lib/vrpayment-ruby-sdk/models/charge_flow_level_configuration_type.rb +92 -64
  89. data/lib/vrpayment-ruby-sdk/models/charge_flow_level_list_response.rb +241 -0
  90. data/lib/vrpayment-ruby-sdk/models/charge_flow_level_payment_link.rb +88 -61
  91. data/lib/vrpayment-ruby-sdk/models/charge_flow_level_payment_link_list_response.rb +241 -0
  92. data/lib/vrpayment-ruby-sdk/models/charge_flow_level_payment_link_search_response.rb +251 -0
  93. data/lib/vrpayment-ruby-sdk/models/charge_flow_level_search_response.rb +251 -0
  94. data/lib/vrpayment-ruby-sdk/models/charge_flow_level_state.rb +37 -24
  95. data/lib/vrpayment-ruby-sdk/models/charge_flow_list_response.rb +241 -0
  96. data/lib/vrpayment-ruby-sdk/models/charge_flow_search_response.rb +251 -0
  97. data/lib/vrpayment-ruby-sdk/models/charge_state.rb +37 -24
  98. data/lib/vrpayment-ruby-sdk/models/charge_type.rb +38 -25
  99. data/lib/vrpayment-ruby-sdk/models/client_platform_information_list_response.rb +241 -0
  100. data/lib/vrpayment-ruby-sdk/models/client_platform_information_search_response.rb +251 -0
  101. data/lib/vrpayment-ruby-sdk/models/completion_line_item.rb +82 -50
  102. data/lib/vrpayment-ruby-sdk/models/completion_line_item_create.rb +83 -49
  103. data/lib/vrpayment-ruby-sdk/models/completion_list_response.rb +241 -0
  104. data/lib/vrpayment-ruby-sdk/models/completion_search_response.rb +251 -0
  105. data/lib/vrpayment-ruby-sdk/models/condition.rb +125 -72
  106. data/lib/vrpayment-ruby-sdk/models/condition_type.rb +91 -63
  107. data/lib/vrpayment-ruby-sdk/models/condition_type_list_response.rb +241 -0
  108. data/lib/vrpayment-ruby-sdk/models/condition_type_search_response.rb +251 -0
  109. data/lib/vrpayment-ruby-sdk/models/connector_invocation.rb +141 -92
  110. data/lib/vrpayment-ruby-sdk/models/connector_invocation_stage.rb +38 -25
  111. data/lib/vrpayment-ruby-sdk/models/country_list_response.rb +241 -0
  112. data/lib/vrpayment-ruby-sdk/models/country_search_response.rb +251 -0
  113. data/lib/vrpayment-ruby-sdk/models/creation_entity_state.rb +39 -26
  114. data/lib/vrpayment-ruby-sdk/models/currency_bank_account.rb +117 -69
  115. data/lib/vrpayment-ruby-sdk/models/currency_bank_account_list_response.rb +241 -0
  116. data/lib/vrpayment-ruby-sdk/models/currency_bank_account_search_response.rb +251 -0
  117. data/lib/vrpayment-ruby-sdk/models/currency_list_response.rb +241 -0
  118. data/lib/vrpayment-ruby-sdk/models/currency_search_response.rb +251 -0
  119. data/lib/vrpayment-ruby-sdk/models/customer.rb +174 -118
  120. data/lib/vrpayment-ruby-sdk/models/customer_active.rb +160 -110
  121. data/lib/vrpayment-ruby-sdk/models/customer_address.rb +132 -85
  122. data/lib/vrpayment-ruby-sdk/models/customer_address_active.rb +109 -67
  123. data/lib/vrpayment-ruby-sdk/models/customer_address_create.rb +108 -51
  124. data/lib/vrpayment-ruby-sdk/models/customer_address_list_response.rb +241 -0
  125. data/lib/vrpayment-ruby-sdk/models/customer_address_search_response.rb +251 -0
  126. data/lib/vrpayment-ruby-sdk/models/customer_address_type.rb +37 -24
  127. data/lib/vrpayment-ruby-sdk/models/customer_comment.rb +138 -107
  128. data/lib/vrpayment-ruby-sdk/models/customer_comment_active.rb +90 -64
  129. data/lib/vrpayment-ruby-sdk/models/customer_comment_create.rb +89 -48
  130. data/lib/vrpayment-ruby-sdk/models/customer_comment_list_response.rb +241 -0
  131. data/lib/vrpayment-ruby-sdk/models/customer_comment_search_response.rb +251 -0
  132. data/lib/vrpayment-ruby-sdk/models/customer_create.rb +163 -100
  133. data/lib/vrpayment-ruby-sdk/models/customer_email_address_list_response.rb +241 -0
  134. data/lib/vrpayment-ruby-sdk/models/customer_list_response.rb +241 -0
  135. data/lib/vrpayment-ruby-sdk/models/customer_postal_address.rb +365 -257
  136. data/lib/vrpayment-ruby-sdk/models/customer_postal_address_create.rb +366 -257
  137. data/lib/vrpayment-ruby-sdk/models/customer_search_response.rb +251 -0
  138. data/lib/vrpayment-ruby-sdk/models/customers_presence.rb +37 -24
  139. data/lib/vrpayment-ruby-sdk/models/data_collection_type.rb +36 -23
  140. data/lib/vrpayment-ruby-sdk/models/delivery_indication.rb +157 -111
  141. data/lib/vrpayment-ruby-sdk/models/delivery_indication_decision_reason.rb +91 -63
  142. data/lib/vrpayment-ruby-sdk/models/delivery_indication_list_response.rb +241 -0
  143. data/lib/vrpayment-ruby-sdk/models/delivery_indication_search_response.rb +251 -0
  144. data/lib/vrpayment-ruby-sdk/models/delivery_indication_state.rb +38 -25
  145. data/lib/vrpayment-ruby-sdk/models/displayable_day_of_week.rb +41 -28
  146. data/lib/vrpayment-ruby-sdk/models/displayable_month.rb +46 -33
  147. data/lib/vrpayment-ruby-sdk/models/document_template.rb +146 -93
  148. data/lib/vrpayment-ruby-sdk/models/document_template_list_response.rb +241 -0
  149. data/lib/vrpayment-ruby-sdk/models/document_template_search_response.rb +251 -0
  150. data/lib/vrpayment-ruby-sdk/models/document_template_type.rb +97 -71
  151. data/lib/vrpayment-ruby-sdk/models/document_template_type_group.rb +75 -47
  152. data/lib/vrpayment-ruby-sdk/models/document_template_type_list_response.rb +241 -0
  153. data/lib/vrpayment-ruby-sdk/models/document_template_type_search_response.rb +251 -0
  154. data/lib/vrpayment-ruby-sdk/models/dunning_case.rb +164 -121
  155. data/lib/vrpayment-ruby-sdk/models/dunning_case_list_response.rb +241 -0
  156. data/lib/vrpayment-ruby-sdk/models/dunning_case_search_response.rb +251 -0
  157. data/lib/vrpayment-ruby-sdk/models/dunning_case_state.rb +40 -27
  158. data/lib/vrpayment-ruby-sdk/models/dunning_condition.rb +119 -65
  159. data/lib/vrpayment-ruby-sdk/models/dunning_condition_type.rb +91 -63
  160. data/lib/vrpayment-ruby-sdk/models/dunning_flow.rb +132 -84
  161. data/lib/vrpayment-ruby-sdk/models/dunning_flow_level.rb +175 -125
  162. data/lib/vrpayment-ruby-sdk/models/dunning_flow_level_list_response.rb +241 -0
  163. data/lib/vrpayment-ruby-sdk/models/dunning_flow_level_processor.rb +99 -72
  164. data/lib/vrpayment-ruby-sdk/models/dunning_flow_level_search_response.rb +251 -0
  165. data/lib/vrpayment-ruby-sdk/models/dunning_flow_list_response.rb +241 -0
  166. data/lib/vrpayment-ruby-sdk/models/dunning_flow_search_response.rb +251 -0
  167. data/lib/vrpayment-ruby-sdk/models/dunning_flow_type.rb +98 -71
  168. data/lib/vrpayment-ruby-sdk/models/environment.rb +36 -23
  169. data/lib/vrpayment-ruby-sdk/models/express_checkout_create_response.rb +227 -0
  170. data/lib/vrpayment-ruby-sdk/models/express_checkout_session.rb +302 -0
  171. data/lib/vrpayment-ruby-sdk/models/express_checkout_session_create.rb +231 -0
  172. data/lib/vrpayment-ruby-sdk/models/express_checkout_session_state.rb +51 -0
  173. data/lib/vrpayment-ruby-sdk/models/express_checkout_shipping_option.rb +279 -0
  174. data/lib/vrpayment-ruby-sdk/models/express_checkout_wallet_type.rb +243 -0
  175. data/lib/vrpayment-ruby-sdk/models/external_transfer_bank_transaction.rb +112 -85
  176. data/lib/vrpayment-ruby-sdk/models/external_transfer_bank_transaction_list_response.rb +241 -0
  177. data/lib/vrpayment-ruby-sdk/models/external_transfer_bank_transaction_search_response.rb +251 -0
  178. data/lib/vrpayment-ruby-sdk/models/failure_category.rb +39 -26
  179. data/lib/vrpayment-ruby-sdk/models/failure_reason.rb +113 -64
  180. data/lib/vrpayment-ruby-sdk/models/feature.rb +132 -105
  181. data/lib/vrpayment-ruby-sdk/models/feature_category.rb +100 -72
  182. data/lib/vrpayment-ruby-sdk/models/gender.rb +36 -23
  183. data/lib/vrpayment-ruby-sdk/models/human_user.rb +171 -128
  184. data/lib/vrpayment-ruby-sdk/models/human_user_create.rb +178 -106
  185. data/lib/vrpayment-ruby-sdk/models/human_user_list_response.rb +241 -0
  186. data/lib/vrpayment-ruby-sdk/models/human_user_search_response.rb +251 -0
  187. data/lib/vrpayment-ruby-sdk/models/human_user_update.rb +179 -120
  188. data/lib/vrpayment-ruby-sdk/models/internal_transfer_bank_transaction.rb +93 -67
  189. data/lib/vrpayment-ruby-sdk/models/internal_transfer_bank_transaction_list_response.rb +241 -0
  190. data/lib/vrpayment-ruby-sdk/models/internal_transfer_bank_transaction_search_response.rb +251 -0
  191. data/lib/vrpayment-ruby-sdk/models/invoice_comment_list_response.rb +241 -0
  192. data/lib/vrpayment-ruby-sdk/models/invoice_comment_search_response.rb +251 -0
  193. data/lib/vrpayment-ruby-sdk/models/invoice_list_response.rb +241 -0
  194. data/lib/vrpayment-ruby-sdk/models/invoice_search_response.rb +251 -0
  195. data/lib/vrpayment-ruby-sdk/models/label.rb +90 -62
  196. data/lib/vrpayment-ruby-sdk/models/label_descriptor.rb +148 -90
  197. data/lib/vrpayment-ruby-sdk/models/label_descriptor_category.rb +36 -23
  198. data/lib/vrpayment-ruby-sdk/models/label_descriptor_group.rb +100 -72
  199. data/lib/vrpayment-ruby-sdk/models/label_descriptor_group_list_response.rb +241 -0
  200. data/lib/vrpayment-ruby-sdk/models/label_descriptor_group_search_response.rb +251 -0
  201. data/lib/vrpayment-ruby-sdk/models/label_descriptor_list_response.rb +241 -0
  202. data/lib/vrpayment-ruby-sdk/models/label_descriptor_search_response.rb +251 -0
  203. data/lib/vrpayment-ruby-sdk/models/label_descriptor_type.rb +91 -63
  204. data/lib/vrpayment-ruby-sdk/models/language_list_response.rb +241 -0
  205. data/lib/vrpayment-ruby-sdk/models/language_search_response.rb +251 -0
  206. data/lib/vrpayment-ruby-sdk/models/legal_organization_form.rb +120 -72
  207. data/lib/vrpayment-ruby-sdk/models/legal_organization_form_list_response.rb +241 -0
  208. data/lib/vrpayment-ruby-sdk/models/legal_organization_form_search_response.rb +251 -0
  209. data/lib/vrpayment-ruby-sdk/models/line_item.rb +252 -181
  210. data/lib/vrpayment-ruby-sdk/models/line_item_attribute.rb +85 -49
  211. data/lib/vrpayment-ruby-sdk/models/line_item_attribute_create.rb +79 -47
  212. data/lib/vrpayment-ruby-sdk/models/line_item_create.rb +180 -107
  213. data/lib/vrpayment-ruby-sdk/models/line_item_reduction.rb +94 -62
  214. data/lib/vrpayment-ruby-sdk/models/line_item_reduction_create.rb +105 -71
  215. data/lib/vrpayment-ruby-sdk/models/line_item_type.rb +39 -26
  216. data/lib/vrpayment-ruby-sdk/models/line_item_version_list_response.rb +241 -0
  217. data/lib/vrpayment-ruby-sdk/models/line_item_version_search_response.rb +251 -0
  218. data/lib/vrpayment-ruby-sdk/models/localized_string.rb +87 -59
  219. data/lib/vrpayment-ruby-sdk/models/manual_task.rb +141 -91
  220. data/lib/vrpayment-ruby-sdk/models/manual_task_action.rb +118 -69
  221. data/lib/vrpayment-ruby-sdk/models/manual_task_action_style.rb +37 -24
  222. data/lib/vrpayment-ruby-sdk/models/manual_task_list_response.rb +241 -0
  223. data/lib/vrpayment-ruby-sdk/models/manual_task_search_response.rb +251 -0
  224. data/lib/vrpayment-ruby-sdk/models/manual_task_state.rb +37 -24
  225. data/lib/vrpayment-ruby-sdk/models/manual_task_type.rb +110 -71
  226. data/lib/vrpayment-ruby-sdk/models/metric_list_response.rb +241 -0
  227. data/lib/vrpayment-ruby-sdk/models/metric_search_response.rb +251 -0
  228. data/lib/vrpayment-ruby-sdk/models/metric_usage.rb +93 -64
  229. data/lib/vrpayment-ruby-sdk/models/metric_usage_list_response.rb +241 -0
  230. data/lib/vrpayment-ruby-sdk/models/metric_usage_report_list_response.rb +241 -0
  231. data/lib/vrpayment-ruby-sdk/models/metric_usage_report_search_response.rb +251 -0
  232. data/lib/vrpayment-ruby-sdk/models/one_click_payment_mode.rb +37 -24
  233. data/lib/vrpayment-ruby-sdk/models/pan_type.rb +42 -28
  234. data/lib/vrpayment-ruby-sdk/models/payment_adjustment.rb +116 -70
  235. data/lib/vrpayment-ruby-sdk/models/payment_adjustment_type.rb +91 -63
  236. data/lib/vrpayment-ruby-sdk/models/payment_app_charge_attempt_target_state.rb +36 -23
  237. data/lib/vrpayment-ruby-sdk/models/payment_app_charge_attempt_update.rb +321 -0
  238. data/lib/vrpayment-ruby-sdk/models/payment_app_completion_configuration.rb +96 -68
  239. data/lib/vrpayment-ruby-sdk/models/payment_app_completion_configuration_create.rb +96 -68
  240. data/lib/vrpayment-ruby-sdk/models/payment_app_completion_target_state.rb +36 -23
  241. data/lib/vrpayment-ruby-sdk/models/payment_app_completion_update.rb +292 -0
  242. data/lib/vrpayment-ruby-sdk/models/payment_app_connector.rb +179 -126
  243. data/lib/vrpayment-ruby-sdk/models/payment_app_connector_details.rb +209 -0
  244. data/lib/vrpayment-ruby-sdk/models/payment_app_connector_details_create.rb +259 -0
  245. data/lib/vrpayment-ruby-sdk/models/payment_app_connector_state.rb +36 -23
  246. data/lib/vrpayment-ruby-sdk/models/payment_app_processor.rb +210 -151
  247. data/lib/vrpayment-ruby-sdk/models/payment_app_processor_details.rb +209 -0
  248. data/lib/vrpayment-ruby-sdk/models/payment_app_processor_details_create.rb +259 -0
  249. data/lib/vrpayment-ruby-sdk/models/payment_app_processor_state.rb +36 -23
  250. data/lib/vrpayment-ruby-sdk/models/payment_app_refund_configuration.rb +90 -62
  251. data/lib/vrpayment-ruby-sdk/models/payment_app_refund_configuration_create.rb +90 -62
  252. data/lib/vrpayment-ruby-sdk/models/payment_app_refund_target_state.rb +36 -23
  253. data/lib/vrpayment-ruby-sdk/models/payment_app_refund_update.rb +292 -0
  254. data/lib/vrpayment-ruby-sdk/models/payment_app_void_target_state.rb +36 -23
  255. data/lib/vrpayment-ruby-sdk/models/payment_app_void_update.rb +292 -0
  256. data/lib/vrpayment-ruby-sdk/models/payment_connector.rb +200 -125
  257. data/lib/vrpayment-ruby-sdk/models/payment_connector_configuration.rb +208 -138
  258. data/lib/vrpayment-ruby-sdk/models/payment_connector_configuration_create.rb +400 -0
  259. data/lib/vrpayment-ruby-sdk/models/payment_connector_configuration_list_response.rb +241 -0
  260. data/lib/vrpayment-ruby-sdk/models/payment_connector_configuration_search_response.rb +251 -0
  261. data/lib/vrpayment-ruby-sdk/models/payment_connector_configuration_update.rb +328 -0
  262. data/lib/vrpayment-ruby-sdk/models/payment_connector_feature.rb +76 -48
  263. data/lib/vrpayment-ruby-sdk/models/payment_connector_list_response.rb +241 -0
  264. data/lib/vrpayment-ruby-sdk/models/payment_connector_search_response.rb +251 -0
  265. data/lib/vrpayment-ruby-sdk/models/payment_contract.rb +179 -142
  266. data/lib/vrpayment-ruby-sdk/models/payment_contract_state.rb +39 -26
  267. data/lib/vrpayment-ruby-sdk/models/payment_contract_type.rb +91 -63
  268. data/lib/vrpayment-ruby-sdk/models/payment_information_hash.rb +76 -48
  269. data/lib/vrpayment-ruby-sdk/models/payment_information_hash_type.rb +88 -60
  270. data/lib/vrpayment-ruby-sdk/models/payment_link.rb +249 -158
  271. data/lib/vrpayment-ruby-sdk/models/payment_link_active.rb +213 -127
  272. data/lib/vrpayment-ruby-sdk/models/payment_link_address_handling_mode.rb +37 -24
  273. data/lib/vrpayment-ruby-sdk/models/payment_link_create.rb +232 -130
  274. data/lib/vrpayment-ruby-sdk/models/payment_link_list_response.rb +241 -0
  275. data/lib/vrpayment-ruby-sdk/models/payment_link_protection_mode.rb +36 -23
  276. data/lib/vrpayment-ruby-sdk/models/payment_link_search_response.rb +251 -0
  277. data/lib/vrpayment-ruby-sdk/models/payment_link_update.rb +206 -126
  278. data/lib/vrpayment-ruby-sdk/models/payment_method.rb +137 -89
  279. data/lib/vrpayment-ruby-sdk/models/payment_method_brand.rb +105 -77
  280. data/lib/vrpayment-ruby-sdk/models/payment_method_brand_list_response.rb +241 -0
  281. data/lib/vrpayment-ruby-sdk/models/payment_method_brand_search_response.rb +251 -0
  282. data/lib/vrpayment-ruby-sdk/models/payment_method_configuration.rb +214 -145
  283. data/lib/vrpayment-ruby-sdk/models/payment_method_configuration_active.rb +346 -0
  284. data/lib/vrpayment-ruby-sdk/models/payment_method_configuration_create.rb +369 -0
  285. data/lib/vrpayment-ruby-sdk/models/payment_method_configuration_list_response.rb +241 -0
  286. data/lib/vrpayment-ruby-sdk/models/payment_method_configuration_search_response.rb +251 -0
  287. data/lib/vrpayment-ruby-sdk/models/payment_method_configuration_update.rb +330 -0
  288. data/lib/vrpayment-ruby-sdk/models/payment_method_list_response.rb +241 -0
  289. data/lib/vrpayment-ruby-sdk/models/payment_method_search_response.rb +251 -0
  290. data/lib/vrpayment-ruby-sdk/models/payment_primary_risk_taker.rb +37 -24
  291. data/lib/vrpayment-ruby-sdk/models/payment_processor.rb +105 -76
  292. data/lib/vrpayment-ruby-sdk/models/payment_processor_configuration.rb +136 -84
  293. data/lib/vrpayment-ruby-sdk/models/payment_processor_configuration_active.rb +293 -0
  294. data/lib/vrpayment-ruby-sdk/models/payment_processor_configuration_create.rb +293 -0
  295. data/lib/vrpayment-ruby-sdk/models/payment_processor_configuration_list_response.rb +241 -0
  296. data/lib/vrpayment-ruby-sdk/models/payment_processor_configuration_search_response.rb +251 -0
  297. data/lib/vrpayment-ruby-sdk/models/payment_processor_list_response.rb +241 -0
  298. data/lib/vrpayment-ruby-sdk/models/payment_processor_search_response.rb +251 -0
  299. data/lib/vrpayment-ruby-sdk/models/payment_terminal.rb +173 -123
  300. data/lib/vrpayment-ruby-sdk/models/payment_terminal_address.rb +196 -148
  301. data/lib/vrpayment-ruby-sdk/models/payment_terminal_configuration.rb +119 -67
  302. data/lib/vrpayment-ruby-sdk/models/payment_terminal_configuration_state.rb +38 -25
  303. data/lib/vrpayment-ruby-sdk/models/payment_terminal_configuration_version.rb +173 -125
  304. data/lib/vrpayment-ruby-sdk/models/payment_terminal_configuration_version_state.rb +39 -26
  305. data/lib/vrpayment-ruby-sdk/models/payment_terminal_create.rb +309 -0
  306. data/lib/vrpayment-ruby-sdk/models/payment_terminal_location.rb +126 -73
  307. data/lib/vrpayment-ruby-sdk/models/payment_terminal_location_state.rb +38 -25
  308. data/lib/vrpayment-ruby-sdk/models/payment_terminal_location_version.rb +151 -105
  309. data/lib/vrpayment-ruby-sdk/models/payment_terminal_location_version_state.rb +39 -26
  310. data/lib/vrpayment-ruby-sdk/models/payment_terminal_preparing.rb +272 -0
  311. data/lib/vrpayment-ruby-sdk/models/payment_terminal_receipt_type.rb +91 -63
  312. data/lib/vrpayment-ruby-sdk/models/payment_terminal_state.rb +40 -27
  313. data/lib/vrpayment-ruby-sdk/models/payment_terminal_transaction_summary_reference.rb +88 -60
  314. data/lib/vrpayment-ruby-sdk/models/payment_terminal_type.rb +91 -63
  315. data/lib/vrpayment-ruby-sdk/models/payment_terminal_update.rb +255 -0
  316. data/lib/vrpayment-ruby-sdk/models/permission.rb +135 -109
  317. data/lib/vrpayment-ruby-sdk/models/permission_list_response.rb +241 -0
  318. data/lib/vrpayment-ruby-sdk/models/permission_search_response.rb +251 -0
  319. data/lib/vrpayment-ruby-sdk/models/persistable_currency_amount.rb +75 -49
  320. data/lib/vrpayment-ruby-sdk/models/persistable_currency_amount_update.rb +75 -49
  321. data/lib/vrpayment-ruby-sdk/models/product_component_group_list_response.rb +241 -0
  322. data/lib/vrpayment-ruby-sdk/models/product_component_group_search_response.rb +251 -0
  323. data/lib/vrpayment-ruby-sdk/models/product_component_list_response.rb +241 -0
  324. data/lib/vrpayment-ruby-sdk/models/product_component_search_response.rb +251 -0
  325. data/lib/vrpayment-ruby-sdk/models/product_fee_type.rb +37 -24
  326. data/lib/vrpayment-ruby-sdk/models/product_list_response.rb +241 -0
  327. data/lib/vrpayment-ruby-sdk/models/product_metered_fee.rb +134 -88
  328. data/lib/vrpayment-ruby-sdk/models/product_metered_fee_list_response.rb +241 -0
  329. data/lib/vrpayment-ruby-sdk/models/product_metered_fee_search_response.rb +251 -0
  330. data/lib/vrpayment-ruby-sdk/models/product_metered_fee_tier_list_response.rb +241 -0
  331. data/lib/vrpayment-ruby-sdk/models/product_metered_fee_tier_search_response.rb +251 -0
  332. data/lib/vrpayment-ruby-sdk/models/product_metered_fee_update.rb +125 -89
  333. data/lib/vrpayment-ruby-sdk/models/product_metered_tier_fee.rb +106 -69
  334. data/lib/vrpayment-ruby-sdk/models/product_metered_tier_fee_update.rb +108 -83
  335. data/lib/vrpayment-ruby-sdk/models/product_metered_tier_pricing.rb +36 -23
  336. data/lib/vrpayment-ruby-sdk/models/product_period_fee.rb +162 -104
  337. data/lib/vrpayment-ruby-sdk/models/product_period_fee_list_response.rb +241 -0
  338. data/lib/vrpayment-ruby-sdk/models/product_period_fee_search_response.rb +251 -0
  339. data/lib/vrpayment-ruby-sdk/models/product_period_fee_update.rb +130 -105
  340. data/lib/vrpayment-ruby-sdk/models/product_retirement_list_response.rb +241 -0
  341. data/lib/vrpayment-ruby-sdk/models/product_retirement_search_response.rb +251 -0
  342. data/lib/vrpayment-ruby-sdk/models/product_search_response.rb +251 -0
  343. data/lib/vrpayment-ruby-sdk/models/product_setup_fee.rb +204 -99
  344. data/lib/vrpayment-ruby-sdk/models/product_setup_fee_list_response.rb +241 -0
  345. data/lib/vrpayment-ruby-sdk/models/product_setup_fee_search_response.rb +251 -0
  346. data/lib/vrpayment-ruby-sdk/models/product_setup_fee_update.rb +143 -98
  347. data/lib/vrpayment-ruby-sdk/models/product_version_list_response.rb +241 -0
  348. data/lib/vrpayment-ruby-sdk/models/product_version_retirement_list_response.rb +241 -0
  349. data/lib/vrpayment-ruby-sdk/models/product_version_retirement_search_response.rb +251 -0
  350. data/lib/vrpayment-ruby-sdk/models/product_version_search_response.rb +251 -0
  351. data/lib/vrpayment-ruby-sdk/models/recurring_indicator.rb +38 -25
  352. data/lib/vrpayment-ruby-sdk/models/refund.rb +358 -256
  353. data/lib/vrpayment-ruby-sdk/models/refund_bank_transaction.rb +129 -103
  354. data/lib/vrpayment-ruby-sdk/models/refund_bank_transaction_list_response.rb +241 -0
  355. data/lib/vrpayment-ruby-sdk/models/refund_bank_transaction_search_response.rb +251 -0
  356. data/lib/vrpayment-ruby-sdk/models/refund_comment.rb +138 -107
  357. data/lib/vrpayment-ruby-sdk/models/refund_comment_active.rb +90 -64
  358. data/lib/vrpayment-ruby-sdk/models/refund_comment_create.rb +89 -48
  359. data/lib/vrpayment-ruby-sdk/models/refund_comment_list_response.rb +241 -0
  360. data/lib/vrpayment-ruby-sdk/models/refund_comment_search_response.rb +251 -0
  361. data/lib/vrpayment-ruby-sdk/models/refund_create.rb +167 -85
  362. data/lib/vrpayment-ruby-sdk/models/refund_list_response.rb +241 -0
  363. data/lib/vrpayment-ruby-sdk/models/refund_recovery_bank_transaction.rb +133 -107
  364. data/lib/vrpayment-ruby-sdk/models/refund_recovery_bank_transaction_list_response.rb +241 -0
  365. data/lib/vrpayment-ruby-sdk/models/refund_recovery_bank_transaction_search_response.rb +251 -0
  366. data/lib/vrpayment-ruby-sdk/models/refund_search_response.rb +251 -0
  367. data/lib/vrpayment-ruby-sdk/models/refund_state.rb +40 -27
  368. data/lib/vrpayment-ruby-sdk/models/refund_type.rb +38 -25
  369. data/lib/vrpayment-ruby-sdk/models/rendered_document.rb +87 -73
  370. data/lib/vrpayment-ruby-sdk/models/rendered_terminal_receipt.rb +97 -84
  371. data/lib/vrpayment-ruby-sdk/models/rendered_terminal_receipt_list_response.rb +241 -0
  372. data/lib/vrpayment-ruby-sdk/models/rest_address_format.rb +113 -65
  373. data/lib/vrpayment-ruby-sdk/models/rest_address_format_field.rb +44 -31
  374. data/lib/vrpayment-ruby-sdk/models/rest_api_bulk_operation_result.rb +249 -0
  375. data/lib/vrpayment-ruby-sdk/models/rest_api_error_response.rb +261 -0
  376. data/lib/vrpayment-ruby-sdk/models/rest_application_user_mac_key.rb +260 -0
  377. data/lib/vrpayment-ruby-sdk/models/rest_application_user_mac_key_created.rb +277 -0
  378. data/lib/vrpayment-ruby-sdk/models/rest_country.rb +112 -75
  379. data/lib/vrpayment-ruby-sdk/models/rest_country_state.rb +90 -62
  380. data/lib/vrpayment-ruby-sdk/models/rest_currency.rb +92 -64
  381. data/lib/vrpayment-ruby-sdk/models/rest_customer_email_address.rb +229 -0
  382. data/lib/vrpayment-ruby-sdk/models/rest_language.rb +109 -81
  383. data/lib/vrpayment-ruby-sdk/models/role.rb +149 -91
  384. data/lib/vrpayment-ruby-sdk/models/role_create.rb +277 -0
  385. data/lib/vrpayment-ruby-sdk/models/role_list_response.rb +241 -0
  386. data/lib/vrpayment-ruby-sdk/models/role_search_response.rb +251 -0
  387. data/lib/vrpayment-ruby-sdk/models/role_state.rb +38 -25
  388. data/lib/vrpayment-ruby-sdk/models/role_update.rb +277 -0
  389. data/lib/vrpayment-ruby-sdk/models/sales_channel.rb +99 -71
  390. data/lib/vrpayment-ruby-sdk/models/sales_channel_list_response.rb +241 -0
  391. data/lib/vrpayment-ruby-sdk/models/sales_channel_search_response.rb +251 -0
  392. data/lib/vrpayment-ruby-sdk/models/scope.rb +296 -136
  393. data/lib/vrpayment-ruby-sdk/models/scope_single_sign_on_provider.rb +318 -0
  394. data/lib/vrpayment-ruby-sdk/models/single_sign_on_user.rb +317 -0
  395. data/lib/vrpayment-ruby-sdk/models/single_sign_on_user_create.rb +352 -0
  396. data/lib/vrpayment-ruby-sdk/models/single_sign_on_user_list_response.rb +241 -0
  397. data/lib/vrpayment-ruby-sdk/models/single_sign_on_user_search_response.rb +251 -0
  398. data/lib/vrpayment-ruby-sdk/models/single_sign_on_user_update.rb +342 -0
  399. data/lib/vrpayment-ruby-sdk/models/sorting_order.rb +48 -0
  400. data/lib/vrpayment-ruby-sdk/models/space.rb +221 -171
  401. data/lib/vrpayment-ruby-sdk/models/space_address.rb +244 -180
  402. data/lib/vrpayment-ruby-sdk/models/space_address_create.rb +244 -180
  403. data/lib/vrpayment-ruby-sdk/models/space_create.rb +170 -109
  404. data/lib/vrpayment-ruby-sdk/models/space_list_response.rb +241 -0
  405. data/lib/vrpayment-ruby-sdk/models/space_search_response.rb +251 -0
  406. data/lib/vrpayment-ruby-sdk/models/space_update.rb +159 -113
  407. data/lib/vrpayment-ruby-sdk/models/space_view.rb +131 -79
  408. data/lib/vrpayment-ruby-sdk/models/static_value.rb +100 -72
  409. data/lib/vrpayment-ruby-sdk/models/static_value_list_response.rb +241 -0
  410. data/lib/vrpayment-ruby-sdk/models/static_value_search_response.rb +251 -0
  411. data/lib/vrpayment-ruby-sdk/models/subscriber.rb +216 -144
  412. data/lib/vrpayment-ruby-sdk/models/subscriber_active.rb +206 -140
  413. data/lib/vrpayment-ruby-sdk/models/subscriber_create.rb +208 -127
  414. data/lib/vrpayment-ruby-sdk/models/subscriber_list_response.rb +241 -0
  415. data/lib/vrpayment-ruby-sdk/models/subscriber_search_response.rb +251 -0
  416. data/lib/vrpayment-ruby-sdk/models/subscriber_update.rb +176 -138
  417. data/lib/vrpayment-ruby-sdk/models/subscription.rb +232 -167
  418. data/lib/vrpayment-ruby-sdk/models/subscription_affiliate.rb +171 -114
  419. data/lib/vrpayment-ruby-sdk/models/subscription_affiliate_create.rb +148 -84
  420. data/lib/vrpayment-ruby-sdk/models/subscription_affiliate_deleted.rb +178 -114
  421. data/lib/vrpayment-ruby-sdk/models/subscription_affiliate_deleting.rb +178 -114
  422. data/lib/vrpayment-ruby-sdk/models/subscription_affiliate_inactive.rb +144 -97
  423. data/lib/vrpayment-ruby-sdk/models/subscription_affiliate_list_response.rb +241 -0
  424. data/lib/vrpayment-ruby-sdk/models/subscription_affiliate_search_response.rb +251 -0
  425. data/lib/vrpayment-ruby-sdk/models/subscription_affiliate_update.rb +137 -97
  426. data/lib/vrpayment-ruby-sdk/models/subscription_charge.rb +274 -194
  427. data/lib/vrpayment-ruby-sdk/models/subscription_charge_create.rb +197 -117
  428. data/lib/vrpayment-ruby-sdk/models/subscription_charge_list_response.rb +241 -0
  429. data/lib/vrpayment-ruby-sdk/models/subscription_charge_processing_type.rb +36 -23
  430. data/lib/vrpayment-ruby-sdk/models/subscription_charge_search_response.rb +251 -0
  431. data/lib/vrpayment-ruby-sdk/models/subscription_charge_state.rb +39 -26
  432. data/lib/vrpayment-ruby-sdk/models/subscription_charge_type.rb +36 -23
  433. data/lib/vrpayment-ruby-sdk/models/subscription_component_configuration.rb +95 -67
  434. data/lib/vrpayment-ruby-sdk/models/subscription_component_reference_configuration.rb +87 -58
  435. data/lib/vrpayment-ruby-sdk/models/subscription_create_request.rb +97 -87
  436. data/lib/vrpayment-ruby-sdk/models/subscription_initialize_subscriber_present_request.rb +229 -0
  437. data/lib/vrpayment-ruby-sdk/models/subscription_ledger_entry.rb +262 -187
  438. data/lib/vrpayment-ruby-sdk/models/subscription_ledger_entry_create.rb +149 -102
  439. data/lib/vrpayment-ruby-sdk/models/subscription_ledger_entry_list_response.rb +241 -0
  440. data/lib/vrpayment-ruby-sdk/models/subscription_ledger_entry_search_response.rb +251 -0
  441. data/lib/vrpayment-ruby-sdk/models/subscription_ledger_entry_state.rb +37 -24
  442. data/lib/vrpayment-ruby-sdk/models/subscription_list_response.rb +241 -0
  443. data/lib/vrpayment-ruby-sdk/models/subscription_metric.rb +125 -76
  444. data/lib/vrpayment-ruby-sdk/models/subscription_metric_active.rb +100 -77
  445. data/lib/vrpayment-ruby-sdk/models/subscription_metric_create.rb +98 -58
  446. data/lib/vrpayment-ruby-sdk/models/subscription_metric_type.rb +99 -71
  447. data/lib/vrpayment-ruby-sdk/models/subscription_metric_update.rb +93 -77
  448. data/lib/vrpayment-ruby-sdk/models/subscription_metric_usage_report.rb +123 -90
  449. data/lib/vrpayment-ruby-sdk/models/subscription_metric_usage_report_create.rb +107 -66
  450. data/lib/vrpayment-ruby-sdk/models/subscription_pending.rb +131 -89
  451. data/lib/vrpayment-ruby-sdk/models/subscription_period_bill.rb +152 -104
  452. data/lib/vrpayment-ruby-sdk/models/subscription_period_bill_list_response.rb +241 -0
  453. data/lib/vrpayment-ruby-sdk/models/subscription_period_bill_search_response.rb +251 -0
  454. data/lib/vrpayment-ruby-sdk/models/subscription_period_bill_state.rb +36 -23
  455. data/lib/vrpayment-ruby-sdk/models/subscription_product.rb +195 -125
  456. data/lib/vrpayment-ruby-sdk/models/subscription_product_active.rb +140 -92
  457. data/lib/vrpayment-ruby-sdk/models/subscription_product_component.rb +152 -127
  458. data/lib/vrpayment-ruby-sdk/models/subscription_product_component_group.rb +103 -76
  459. data/lib/vrpayment-ruby-sdk/models/subscription_product_component_group_update.rb +100 -85
  460. data/lib/vrpayment-ruby-sdk/models/subscription_product_component_reference.rb +143 -73
  461. data/lib/vrpayment-ruby-sdk/models/subscription_product_component_reference_state.rb +38 -25
  462. data/lib/vrpayment-ruby-sdk/models/subscription_product_component_update.rb +150 -135
  463. data/lib/vrpayment-ruby-sdk/models/subscription_product_create.rb +155 -80
  464. data/lib/vrpayment-ruby-sdk/models/subscription_product_retirement.rb +112 -86
  465. data/lib/vrpayment-ruby-sdk/models/subscription_product_retirement_request.rb +229 -0
  466. data/lib/vrpayment-ruby-sdk/models/subscription_product_state.rb +39 -26
  467. data/lib/vrpayment-ruby-sdk/models/subscription_product_version.rb +239 -179
  468. data/lib/vrpayment-ruby-sdk/models/subscription_product_version_pending.rb +164 -119
  469. data/lib/vrpayment-ruby-sdk/models/subscription_product_version_retirement.rb +112 -86
  470. data/lib/vrpayment-ruby-sdk/models/subscription_product_version_retirement_request.rb +229 -0
  471. data/lib/vrpayment-ruby-sdk/models/subscription_product_version_state.rb +39 -26
  472. data/lib/vrpayment-ruby-sdk/models/subscription_search_response.rb +251 -0
  473. data/lib/vrpayment-ruby-sdk/models/subscription_state.rb +42 -29
  474. data/lib/vrpayment-ruby-sdk/models/subscription_suspension.rb +177 -127
  475. data/lib/vrpayment-ruby-sdk/models/subscription_suspension_action.rb +36 -23
  476. data/lib/vrpayment-ruby-sdk/models/subscription_suspension_reason.rb +37 -24
  477. data/lib/vrpayment-ruby-sdk/models/subscription_suspension_state.rb +36 -23
  478. data/lib/vrpayment-ruby-sdk/models/subscription_update.rb +106 -87
  479. data/lib/vrpayment-ruby-sdk/models/subscription_update_request.rb +79 -47
  480. data/lib/vrpayment-ruby-sdk/models/subscription_version.rb +219 -163
  481. data/lib/vrpayment-ruby-sdk/models/subscription_version_list_response.rb +241 -0
  482. data/lib/vrpayment-ruby-sdk/models/subscription_version_search_response.rb +251 -0
  483. data/lib/vrpayment-ruby-sdk/models/subscription_version_state.rb +40 -27
  484. data/lib/vrpayment-ruby-sdk/models/suspension_creation_request.rb +279 -0
  485. data/lib/vrpayment-ruby-sdk/models/suspension_list_response.rb +241 -0
  486. data/lib/vrpayment-ruby-sdk/models/suspension_search_response.rb +251 -0
  487. data/lib/vrpayment-ruby-sdk/models/tax.rb +102 -51
  488. data/lib/vrpayment-ruby-sdk/models/tax_calculation.rb +36 -23
  489. data/lib/vrpayment-ruby-sdk/models/tax_class.rb +118 -65
  490. data/lib/vrpayment-ruby-sdk/models/tax_create.rb +100 -49
  491. data/lib/vrpayment-ruby-sdk/models/tenant_database.rb +90 -58
  492. data/lib/vrpayment-ruby-sdk/models/terminal_list_response.rb +241 -0
  493. data/lib/vrpayment-ruby-sdk/models/terminal_receipt_format.rb +36 -23
  494. data/lib/vrpayment-ruby-sdk/models/terminal_search_response.rb +251 -0
  495. data/lib/vrpayment-ruby-sdk/models/token.rb +186 -117
  496. data/lib/vrpayment-ruby-sdk/models/token_create.rb +159 -81
  497. data/lib/vrpayment-ruby-sdk/models/token_list_response.rb +241 -0
  498. data/lib/vrpayment-ruby-sdk/models/token_search_response.rb +251 -0
  499. data/lib/vrpayment-ruby-sdk/models/token_update.rb +133 -91
  500. data/lib/vrpayment-ruby-sdk/models/token_version.rb +285 -187
  501. data/lib/vrpayment-ruby-sdk/models/token_version_list_response.rb +241 -0
  502. data/lib/vrpayment-ruby-sdk/models/token_version_retry_strategy.rb +49 -0
  503. data/lib/vrpayment-ruby-sdk/models/token_version_search_response.rb +251 -0
  504. data/lib/vrpayment-ruby-sdk/models/token_version_state.rb +37 -24
  505. data/lib/vrpayment-ruby-sdk/models/token_version_type.rb +99 -72
  506. data/lib/vrpayment-ruby-sdk/models/tokenization_mode.rb +38 -25
  507. data/lib/vrpayment-ruby-sdk/models/tokenized_card_data.rb +113 -65
  508. data/lib/vrpayment-ruby-sdk/models/tokenized_card_data_create.rb +201 -94
  509. data/lib/vrpayment-ruby-sdk/models/tokenized_card_request.rb +228 -0
  510. data/lib/vrpayment-ruby-sdk/models/transaction.rb +659 -561
  511. data/lib/vrpayment-ruby-sdk/models/transaction_client_platform_information.rb +289 -0
  512. data/lib/vrpayment-ruby-sdk/models/transaction_comment.rb +138 -107
  513. data/lib/vrpayment-ruby-sdk/models/transaction_comment_active.rb +90 -64
  514. data/lib/vrpayment-ruby-sdk/models/transaction_comment_create.rb +89 -48
  515. data/lib/vrpayment-ruby-sdk/models/transaction_comment_list_response.rb +241 -0
  516. data/lib/vrpayment-ruby-sdk/models/transaction_comment_search_response.rb +251 -0
  517. data/lib/vrpayment-ruby-sdk/models/transaction_completion.rb +360 -256
  518. data/lib/vrpayment-ruby-sdk/models/transaction_completion_behavior.rb +37 -24
  519. data/lib/vrpayment-ruby-sdk/models/transaction_completion_details.rb +363 -0
  520. data/lib/vrpayment-ruby-sdk/models/transaction_completion_mode.rb +37 -24
  521. data/lib/vrpayment-ruby-sdk/models/transaction_completion_state.rb +39 -26
  522. data/lib/vrpayment-ruby-sdk/models/transaction_create.rb +366 -250
  523. data/lib/vrpayment-ruby-sdk/models/transaction_environment_selection_strategy.rb +37 -24
  524. data/lib/vrpayment-ruby-sdk/models/transaction_group.rb +144 -79
  525. data/lib/vrpayment-ruby-sdk/models/transaction_group_state.rb +37 -24
  526. data/lib/vrpayment-ruby-sdk/models/transaction_invoice.rb +256 -178
  527. data/lib/vrpayment-ruby-sdk/models/transaction_invoice_comment.rb +134 -103
  528. data/lib/vrpayment-ruby-sdk/models/transaction_invoice_comment_active.rb +90 -64
  529. data/lib/vrpayment-ruby-sdk/models/transaction_invoice_comment_create.rb +90 -49
  530. data/lib/vrpayment-ruby-sdk/models/transaction_invoice_replacement.rb +145 -86
  531. data/lib/vrpayment-ruby-sdk/models/transaction_invoice_state.rb +41 -28
  532. data/lib/vrpayment-ruby-sdk/models/transaction_line_item_version.rb +219 -162
  533. data/lib/vrpayment-ruby-sdk/models/transaction_line_item_version_create.rb +98 -64
  534. data/lib/vrpayment-ruby-sdk/models/transaction_line_item_version_state.rb +39 -26
  535. data/lib/vrpayment-ruby-sdk/models/transaction_list_response.rb +241 -0
  536. data/lib/vrpayment-ruby-sdk/models/transaction_pending.rb +305 -217
  537. data/lib/vrpayment-ruby-sdk/models/transaction_search_response.rb +251 -0
  538. data/lib/vrpayment-ruby-sdk/models/transaction_state.rb +44 -31
  539. data/lib/vrpayment-ruby-sdk/models/transaction_user_interface_type.rb +40 -26
  540. data/lib/vrpayment-ruby-sdk/models/transaction_void.rb +207 -151
  541. data/lib/vrpayment-ruby-sdk/models/transaction_void_list_response.rb +241 -0
  542. data/lib/vrpayment-ruby-sdk/models/transaction_void_mode.rb +36 -23
  543. data/lib/vrpayment-ruby-sdk/models/transaction_void_search_response.rb +251 -0
  544. data/lib/vrpayment-ruby-sdk/models/transaction_void_state.rb +38 -25
  545. data/lib/vrpayment-ruby-sdk/models/two_factor_authentication_type.rb +101 -73
  546. data/lib/vrpayment-ruby-sdk/models/user.rb +116 -68
  547. data/lib/vrpayment-ruby-sdk/models/user_account_role.rb +104 -76
  548. data/lib/vrpayment-ruby-sdk/models/user_account_role_list_response.rb +241 -0
  549. data/lib/vrpayment-ruby-sdk/models/user_space_role.rb +97 -69
  550. data/lib/vrpayment-ruby-sdk/models/user_space_role_list_response.rb +241 -0
  551. data/lib/vrpayment-ruby-sdk/models/user_type.rb +39 -26
  552. data/lib/vrpayment-ruby-sdk/models/wallet_type.rb +116 -61
  553. data/lib/vrpayment-ruby-sdk/models/web_app_confirmation_response.rb +90 -62
  554. data/lib/vrpayment-ruby-sdk/models/webhook_identity.rb +118 -64
  555. data/lib/vrpayment-ruby-sdk/models/webhook_listener.rb +174 -113
  556. data/lib/vrpayment-ruby-sdk/models/webhook_listener_create.rb +144 -70
  557. data/lib/vrpayment-ruby-sdk/models/webhook_listener_entity.rb +87 -59
  558. data/lib/vrpayment-ruby-sdk/models/webhook_listener_list_response.rb +241 -0
  559. data/lib/vrpayment-ruby-sdk/models/webhook_listener_search_response.rb +251 -0
  560. data/lib/vrpayment-ruby-sdk/models/webhook_listener_update.rb +132 -75
  561. data/lib/vrpayment-ruby-sdk/models/webhook_url.rb +145 -88
  562. data/lib/vrpayment-ruby-sdk/models/webhook_url_create.rb +118 -54
  563. data/lib/vrpayment-ruby-sdk/models/webhook_url_list_response.rb +241 -0
  564. data/lib/vrpayment-ruby-sdk/models/webhook_url_search_response.rb +251 -0
  565. data/lib/vrpayment-ruby-sdk/models/webhook_url_update.rb +122 -71
  566. data/lib/vrpayment-ruby-sdk/service/accounts_service.rb +600 -0
  567. data/lib/vrpayment-ruby-sdk/service/application_users_roles_service.rb +476 -0
  568. data/lib/vrpayment-ruby-sdk/service/application_users_service.rb +668 -0
  569. data/lib/vrpayment-ruby-sdk/service/bank_accounts_service.rb +287 -0
  570. data/lib/vrpayment-ruby-sdk/service/bank_transactions_service.rb +287 -0
  571. data/lib/vrpayment-ruby-sdk/service/charge_attempts_service.rb +287 -0
  572. data/lib/vrpayment-ruby-sdk/service/charge_bank_transactions_service.rb +287 -0
  573. data/lib/vrpayment-ruby-sdk/service/charge_flow_levels_service.rb +356 -0
  574. data/lib/vrpayment-ruby-sdk/service/charge_flows_level_payment_links_service.rb +287 -0
  575. data/lib/vrpayment-ruby-sdk/service/charge_flows_service.rb +287 -0
  576. data/lib/vrpayment-ruby-sdk/service/condition_types_service.rb +266 -0
  577. data/lib/vrpayment-ruby-sdk/service/consumed_resources_service.rb +111 -0
  578. data/lib/vrpayment-ruby-sdk/service/countries_service.rb +418 -0
  579. data/lib/vrpayment-ruby-sdk/service/currencies_service.rb +235 -0
  580. data/lib/vrpayment-ruby-sdk/service/currency_bank_accounts_service.rb +287 -0
  581. data/lib/vrpayment-ruby-sdk/service/customer_addresses_service.rb +627 -0
  582. data/lib/vrpayment-ruby-sdk/service/customer_comments_service.rb +702 -0
  583. data/lib/vrpayment-ruby-sdk/service/customers_service.rb +890 -0
  584. data/lib/vrpayment-ruby-sdk/service/delivery_indications_service.rb +431 -0
  585. data/lib/vrpayment-ruby-sdk/service/document_template_types_service.rb +266 -0
  586. data/lib/vrpayment-ruby-sdk/service/document_templates_service.rb +287 -0
  587. data/lib/vrpayment-ruby-sdk/service/dunning_cases_service.rb +428 -0
  588. data/lib/vrpayment-ruby-sdk/service/dunning_flow_levels_service.rb +287 -0
  589. data/lib/vrpayment-ruby-sdk/service/dunning_flows_service.rb +287 -0
  590. data/lib/vrpayment-ruby-sdk/service/express_checkout_service.rb +105 -0
  591. data/lib/vrpayment-ruby-sdk/service/external_transfer_bank_transactions_service.rb +287 -0
  592. data/lib/vrpayment-ruby-sdk/service/human_users_roles_service.rb +476 -0
  593. data/lib/vrpayment-ruby-sdk/service/human_users_service.rb +557 -0
  594. data/lib/vrpayment-ruby-sdk/service/internal_transfer_bank_transactions_service.rb +287 -0
  595. data/lib/vrpayment-ruby-sdk/service/label_descriptors_service.rb +501 -0
  596. data/lib/vrpayment-ruby-sdk/service/languages_service.rb +235 -0
  597. data/lib/vrpayment-ruby-sdk/service/legal_organization_forms_service.rb +266 -0
  598. data/lib/vrpayment-ruby-sdk/service/manual_tasks_service.rb +431 -0
  599. data/lib/vrpayment-ruby-sdk/service/payment_connector_configurations_service.rb +518 -0
  600. data/lib/vrpayment-ruby-sdk/service/payment_connectors_service.rb +266 -0
  601. data/lib/vrpayment-ruby-sdk/service/payment_links_service.rb +518 -0
  602. data/lib/vrpayment-ruby-sdk/service/payment_method_brands_service.rb +266 -0
  603. data/lib/vrpayment-ruby-sdk/service/payment_method_configurations_service.rb +518 -0
  604. data/lib/vrpayment-ruby-sdk/service/payment_methods_service.rb +266 -0
  605. data/lib/vrpayment-ruby-sdk/service/payment_processor_configurations_service.rb +518 -0
  606. data/lib/vrpayment-ruby-sdk/service/payment_processors_service.rb +266 -0
  607. data/lib/vrpayment-ruby-sdk/service/payment_sales_channels_service.rb +266 -0
  608. data/lib/vrpayment-ruby-sdk/service/payment_terminals_service.rb +1048 -0
  609. data/lib/vrpayment-ruby-sdk/service/payment_web_apps_service.rb +911 -0
  610. data/lib/vrpayment-ruby-sdk/service/permissions_service.rb +266 -0
  611. data/lib/vrpayment-ruby-sdk/service/refund_bank_transactions_service.rb +287 -0
  612. data/lib/vrpayment-ruby-sdk/service/refund_comments_service.rb +702 -0
  613. data/lib/vrpayment-ruby-sdk/service/refund_recovery_bank_transactions_service.rb +287 -0
  614. data/lib/vrpayment-ruby-sdk/service/refunds_service.rb +577 -0
  615. data/lib/vrpayment-ruby-sdk/service/roles_service.rb +476 -0
  616. data/lib/vrpayment-ruby-sdk/service/single_sign_on_users_roles_service.rb +476 -0
  617. data/lib/vrpayment-ruby-sdk/service/single_sign_on_users_service.rb +476 -0
  618. data/lib/vrpayment-ruby-sdk/service/spaces_service.rb +476 -0
  619. data/lib/vrpayment-ruby-sdk/service/static_values_service.rb +266 -0
  620. data/lib/vrpayment-ruby-sdk/service/subscribers_service.rb +516 -0
  621. data/lib/vrpayment-ruby-sdk/service/subscription_affiliates_service.rb +516 -0
  622. data/lib/vrpayment-ruby-sdk/service/subscription_charges_service.rb +436 -0
  623. data/lib/vrpayment-ruby-sdk/service/subscription_ledger_entries_service.rb +364 -0
  624. data/lib/vrpayment-ruby-sdk/service/subscription_metric_usage_reports_service.rb +364 -0
  625. data/lib/vrpayment-ruby-sdk/service/subscription_metrics_service.rb +516 -0
  626. data/lib/vrpayment-ruby-sdk/service/subscription_period_bills_service.rb +373 -0
  627. data/lib/vrpayment-ruby-sdk/service/subscription_product_component_groups_service.rb +516 -0
  628. data/lib/vrpayment-ruby-sdk/service/subscription_product_components_service.rb +516 -0
  629. data/lib/vrpayment-ruby-sdk/service/subscription_product_metered_fee_tiers_service.rb +552 -0
  630. data/lib/vrpayment-ruby-sdk/service/subscription_product_metered_fees_service.rb +516 -0
  631. data/lib/vrpayment-ruby-sdk/service/subscription_product_period_fees_service.rb +516 -0
  632. data/lib/vrpayment-ruby-sdk/service/subscription_product_retirements_service.rb +287 -0
  633. data/lib/vrpayment-ruby-sdk/service/subscription_product_setup_fees_service.rb +516 -0
  634. data/lib/vrpayment-ruby-sdk/service/subscription_product_version_retirements_service.rb +287 -0
  635. data/lib/vrpayment-ruby-sdk/service/subscription_product_versions_service.rb +602 -0
  636. data/lib/vrpayment-ruby-sdk/service/subscription_products_service.rb +530 -0
  637. data/lib/vrpayment-ruby-sdk/service/subscription_suspensions_service.rb +287 -0
  638. data/lib/vrpayment-ruby-sdk/service/subscription_versions_service.rb +287 -0
  639. data/lib/vrpayment-ruby-sdk/service/subscriptions_service.rb +1088 -0
  640. data/lib/vrpayment-ruby-sdk/service/token_versions_service.rb +287 -0
  641. data/lib/vrpayment-ruby-sdk/service/tokens_service.rb +662 -0
  642. data/lib/vrpayment-ruby-sdk/service/transaction_client_platforms_service.rb +287 -0
  643. data/lib/vrpayment-ruby-sdk/service/transaction_comments_service.rb +702 -0
  644. data/lib/vrpayment-ruby-sdk/service/transaction_completions_service.rb +287 -0
  645. data/lib/vrpayment-ruby-sdk/service/transaction_invoice_comments_service.rb +702 -0
  646. data/lib/vrpayment-ruby-sdk/service/transaction_invoices_service.rb +652 -0
  647. data/lib/vrpayment-ruby-sdk/service/transaction_line_item_versions_service.rb +364 -0
  648. data/lib/vrpayment-ruby-sdk/service/transaction_voids_service.rb +287 -0
  649. data/lib/vrpayment-ruby-sdk/service/transactions_service.rb +2838 -0
  650. data/lib/vrpayment-ruby-sdk/service/web_apps_service.rb +228 -0
  651. data/lib/vrpayment-ruby-sdk/service/webhook_encryption_keys_service.rb +133 -0
  652. data/lib/vrpayment-ruby-sdk/service/webhook_listeners_service.rb +738 -0
  653. data/lib/vrpayment-ruby-sdk/service/webhook_urls_service.rb +738 -0
  654. data/lib/vrpayment-ruby-sdk/utils/encryption_util.rb +80 -0
  655. data/lib/vrpayment-ruby-sdk/version.rb +21 -18
  656. data/lib/vrpayment-ruby-sdk/vrpayment_sdk_exception.rb +59 -0
  657. data/lib/vrpayment-ruby-sdk.rb +372 -201
  658. data/test/constants.rb +49 -80
  659. data/test/encryption_util_test.rb +47 -27
  660. data/test/test_querying.rb +242 -0
  661. data/test/test_refunds_service.rb +119 -0
  662. data/test/test_transaction_completions_service.rb +72 -0
  663. data/test/test_transactions_service.rb +1163 -0
  664. data/test/test_webhook_listeners_service.rb +132 -0
  665. data/test/utils.rb +62 -0
  666. data/vrpayment-ruby-sdk.gemspec +38 -28
  667. metadata +394 -799
  668. data/lib/vrpayment-ruby-sdk/api/account_service_api.rb +0 -398
  669. data/lib/vrpayment-ruby-sdk/api/application_user_service_api.rb +0 -398
  670. data/lib/vrpayment-ruby-sdk/api/bank_account_service_api.rb +0 -228
  671. data/lib/vrpayment-ruby-sdk/api/bank_transaction_service_api.rb +0 -228
  672. data/lib/vrpayment-ruby-sdk/api/card_processing_service_api.rb +0 -182
  673. data/lib/vrpayment-ruby-sdk/api/charge_attempt_service_api.rb +0 -228
  674. data/lib/vrpayment-ruby-sdk/api/charge_bank_transaction_service_api.rb +0 -228
  675. data/lib/vrpayment-ruby-sdk/api/charge_flow_level_payment_link_service_api.rb +0 -228
  676. data/lib/vrpayment-ruby-sdk/api/charge_flow_level_service_api.rb +0 -296
  677. data/lib/vrpayment-ruby-sdk/api/charge_flow_service_api.rb +0 -509
  678. data/lib/vrpayment-ruby-sdk/api/condition_type_service_api.rb +0 -149
  679. data/lib/vrpayment-ruby-sdk/api/country_service_api.rb +0 -86
  680. data/lib/vrpayment-ruby-sdk/api/country_state_service_api.rb +0 -149
  681. data/lib/vrpayment-ruby-sdk/api/currency_bank_account_service_api.rb +0 -228
  682. data/lib/vrpayment-ruby-sdk/api/currency_service_api.rb +0 -86
  683. data/lib/vrpayment-ruby-sdk/api/customer_address_service_api.rb +0 -495
  684. data/lib/vrpayment-ruby-sdk/api/customer_comment_service_api.rb +0 -562
  685. data/lib/vrpayment-ruby-sdk/api/customer_service_api.rb +0 -428
  686. data/lib/vrpayment-ruby-sdk/api/delivery_indication_service_api.rb +0 -362
  687. data/lib/vrpayment-ruby-sdk/api/document_template_service_api.rb +0 -228
  688. data/lib/vrpayment-ruby-sdk/api/document_template_type_service_api.rb +0 -149
  689. data/lib/vrpayment-ruby-sdk/api/dunning_case_level_service_api.rb +0 -228
  690. data/lib/vrpayment-ruby-sdk/api/dunning_case_service_api.rb +0 -366
  691. data/lib/vrpayment-ruby-sdk/api/dunning_flow_level_service_api.rb +0 -228
  692. data/lib/vrpayment-ruby-sdk/api/dunning_flow_service_api.rb +0 -228
  693. data/lib/vrpayment-ruby-sdk/api/external_transfer_bank_transaction_service_api.rb +0 -228
  694. data/lib/vrpayment-ruby-sdk/api/human_user_service_api.rb +0 -460
  695. data/lib/vrpayment-ruby-sdk/api/internal_transfer_bank_transaction_service_api.rb +0 -228
  696. data/lib/vrpayment-ruby-sdk/api/invoice_reconciliation_record_invoice_link_service_api.rb +0 -376
  697. data/lib/vrpayment-ruby-sdk/api/invoice_reconciliation_record_service_api.rb +0 -429
  698. data/lib/vrpayment-ruby-sdk/api/invoice_reimbursement_service_api.rb +0 -373
  699. data/lib/vrpayment-ruby-sdk/api/label_description_group_service_api.rb +0 -149
  700. data/lib/vrpayment-ruby-sdk/api/label_description_service_api.rb +0 -149
  701. data/lib/vrpayment-ruby-sdk/api/language_service_api.rb +0 -86
  702. data/lib/vrpayment-ruby-sdk/api/legal_organization_form_service_api.rb +0 -212
  703. data/lib/vrpayment-ruby-sdk/api/manual_task_service_api.rb +0 -228
  704. data/lib/vrpayment-ruby-sdk/api/mertic_usage_service_api.rb +0 -101
  705. data/lib/vrpayment-ruby-sdk/api/payment_connector_configuration_service_api.rb +0 -228
  706. data/lib/vrpayment-ruby-sdk/api/payment_connector_service_api.rb +0 -149
  707. data/lib/vrpayment-ruby-sdk/api/payment_link_service_api.rb +0 -428
  708. data/lib/vrpayment-ruby-sdk/api/payment_method_brand_service_api.rb +0 -149
  709. data/lib/vrpayment-ruby-sdk/api/payment_method_configuration_service_api.rb +0 -228
  710. data/lib/vrpayment-ruby-sdk/api/payment_method_service_api.rb +0 -149
  711. data/lib/vrpayment-ruby-sdk/api/payment_processor_configuration_service_api.rb +0 -228
  712. data/lib/vrpayment-ruby-sdk/api/payment_processor_service_api.rb +0 -149
  713. data/lib/vrpayment-ruby-sdk/api/payment_terminal_service_api.rb +0 -503
  714. data/lib/vrpayment-ruby-sdk/api/payment_terminal_till_service_api.rb +0 -180
  715. data/lib/vrpayment-ruby-sdk/api/payment_terminal_transaction_summary_service_api.rb +0 -295
  716. data/lib/vrpayment-ruby-sdk/api/payment_web_app_service_api.rb +0 -632
  717. data/lib/vrpayment-ruby-sdk/api/permission_service_api.rb +0 -149
  718. data/lib/vrpayment-ruby-sdk/api/refund_bank_transaction_service_api.rb +0 -228
  719. data/lib/vrpayment-ruby-sdk/api/refund_comment_service_api.rb +0 -498
  720. data/lib/vrpayment-ruby-sdk/api/refund_recovery_bank_transaction_service_api.rb +0 -228
  721. data/lib/vrpayment-ruby-sdk/api/refund_service_api.rb +0 -572
  722. data/lib/vrpayment-ruby-sdk/api/space_service_api.rb +0 -398
  723. data/lib/vrpayment-ruby-sdk/api/static_value_service_api.rb +0 -149
  724. data/lib/vrpayment-ruby-sdk/api/subscriber_service_api.rb +0 -428
  725. data/lib/vrpayment-ruby-sdk/api/subscription_affiliate_service_api.rb +0 -428
  726. data/lib/vrpayment-ruby-sdk/api/subscription_charge_service_api.rb +0 -363
  727. data/lib/vrpayment-ruby-sdk/api/subscription_ledger_entry_service_api.rb +0 -295
  728. data/lib/vrpayment-ruby-sdk/api/subscription_metric_service_api.rb +0 -428
  729. data/lib/vrpayment-ruby-sdk/api/subscription_metric_usage_service_api.rb +0 -295
  730. data/lib/vrpayment-ruby-sdk/api/subscription_period_bill_service_api.rb +0 -228
  731. data/lib/vrpayment-ruby-sdk/api/subscription_product_component_group_service_api.rb +0 -428
  732. data/lib/vrpayment-ruby-sdk/api/subscription_product_component_service_api.rb +0 -428
  733. data/lib/vrpayment-ruby-sdk/api/subscription_product_fee_tier_service_api.rb +0 -428
  734. data/lib/vrpayment-ruby-sdk/api/subscription_product_metered_fee_service_api.rb +0 -428
  735. data/lib/vrpayment-ruby-sdk/api/subscription_product_period_fee_service_api.rb +0 -428
  736. data/lib/vrpayment-ruby-sdk/api/subscription_product_retirement_service_api.rb +0 -295
  737. data/lib/vrpayment-ruby-sdk/api/subscription_product_service_api.rb +0 -362
  738. data/lib/vrpayment-ruby-sdk/api/subscription_product_setup_fee_service_api.rb +0 -428
  739. data/lib/vrpayment-ruby-sdk/api/subscription_product_version_retirement_service_api.rb +0 -295
  740. data/lib/vrpayment-ruby-sdk/api/subscription_product_version_service_api.rb +0 -430
  741. data/lib/vrpayment-ruby-sdk/api/subscription_service_api.rb +0 -793
  742. data/lib/vrpayment-ruby-sdk/api/subscription_suspension_service_api.rb +0 -363
  743. data/lib/vrpayment-ruby-sdk/api/subscription_version_service_api.rb +0 -228
  744. data/lib/vrpayment-ruby-sdk/api/token_service_api.rb +0 -768
  745. data/lib/vrpayment-ruby-sdk/api/token_version_service_api.rb +0 -296
  746. data/lib/vrpayment-ruby-sdk/api/transaction_comment_service_api.rb +0 -498
  747. data/lib/vrpayment-ruby-sdk/api/transaction_completion_service_api.rb +0 -498
  748. data/lib/vrpayment-ruby-sdk/api/transaction_iframe_service_api.rb +0 -96
  749. data/lib/vrpayment-ruby-sdk/api/transaction_invoice_comment_service_api.rb +0 -498
  750. data/lib/vrpayment-ruby-sdk/api/transaction_invoice_service_api.rb +0 -645
  751. data/lib/vrpayment-ruby-sdk/api/transaction_lightbox_service_api.rb +0 -96
  752. data/lib/vrpayment-ruby-sdk/api/transaction_line_item_version_service_api.rb +0 -295
  753. data/lib/vrpayment-ruby-sdk/api/transaction_mobile_sdk_service_api.rb +0 -91
  754. data/lib/vrpayment-ruby-sdk/api/transaction_payment_page_service_api.rb +0 -96
  755. data/lib/vrpayment-ruby-sdk/api/transaction_service_api.rb +0 -1238
  756. data/lib/vrpayment-ruby-sdk/api/transaction_terminal_service_api.rb +0 -171
  757. data/lib/vrpayment-ruby-sdk/api/transaction_void_service_api.rb +0 -364
  758. data/lib/vrpayment-ruby-sdk/api/user_account_role_service_api.rb +0 -234
  759. data/lib/vrpayment-ruby-sdk/api/user_space_role_service_api.rb +0 -231
  760. data/lib/vrpayment-ruby-sdk/api/web_app_service_api.rb +0 -215
  761. data/lib/vrpayment-ruby-sdk/api/webhook_encryption_service_api.rb +0 -117
  762. data/lib/vrpayment-ruby-sdk/api/webhook_listener_service_api.rb +0 -428
  763. data/lib/vrpayment-ruby-sdk/api/webhook_url_service_api.rb +0 -428
  764. data/lib/vrpayment-ruby-sdk/encryption_util.rb +0 -40
  765. data/lib/vrpayment-ruby-sdk/models/client_error.rb +0 -231
  766. data/lib/vrpayment-ruby-sdk/models/client_error_type.rb +0 -36
  767. data/lib/vrpayment-ruby-sdk/models/criteria_operator.rb +0 -45
  768. data/lib/vrpayment-ruby-sdk/models/dunning_case_level.rb +0 -351
  769. data/lib/vrpayment-ruby-sdk/models/dunning_case_level_state.rb +0 -38
  770. data/lib/vrpayment-ruby-sdk/models/entity_export_request.rb +0 -208
  771. data/lib/vrpayment-ruby-sdk/models/entity_query.rb +0 -233
  772. data/lib/vrpayment-ruby-sdk/models/entity_query_filter.rb +0 -238
  773. data/lib/vrpayment-ruby-sdk/models/entity_query_filter_type.rb +0 -36
  774. data/lib/vrpayment-ruby-sdk/models/entity_query_order_by.rb +0 -211
  775. data/lib/vrpayment-ruby-sdk/models/entity_query_order_by_type.rb +0 -35
  776. data/lib/vrpayment-ruby-sdk/models/invoice_reconciliation_record.rb +0 -571
  777. data/lib/vrpayment-ruby-sdk/models/invoice_reconciliation_record_invoice_link.rb +0 -241
  778. data/lib/vrpayment-ruby-sdk/models/invoice_reconciliation_record_rejection_status.rb +0 -36
  779. data/lib/vrpayment-ruby-sdk/models/invoice_reconciliation_record_state.rb +0 -38
  780. data/lib/vrpayment-ruby-sdk/models/invoice_reconciliation_record_type.rb +0 -215
  781. data/lib/vrpayment-ruby-sdk/models/invoice_reimbursement.rb +0 -401
  782. data/lib/vrpayment-ruby-sdk/models/invoice_reimbursement_state.rb +0 -38
  783. data/lib/vrpayment-ruby-sdk/models/invoice_reimbursement_with_refund_reference.rb +0 -411
  784. data/lib/vrpayment-ruby-sdk/models/payment_app_charge_attempt_update_request.rb +0 -261
  785. data/lib/vrpayment-ruby-sdk/models/payment_app_completion_update_request.rb +0 -236
  786. data/lib/vrpayment-ruby-sdk/models/payment_app_connector_creation_request.rb +0 -366
  787. data/lib/vrpayment-ruby-sdk/models/payment_app_processor_creation_request.rb +0 -317
  788. data/lib/vrpayment-ruby-sdk/models/payment_app_refund_update_request.rb +0 -236
  789. data/lib/vrpayment-ruby-sdk/models/payment_app_void_update_request.rb +0 -236
  790. data/lib/vrpayment-ruby-sdk/models/payment_initiation_advice_file.rb +0 -281
  791. data/lib/vrpayment-ruby-sdk/models/payment_initiation_advice_file_state.rb +0 -40
  792. data/lib/vrpayment-ruby-sdk/models/payment_terminal_dcc_transaction_sum.rb +0 -261
  793. data/lib/vrpayment-ruby-sdk/models/payment_terminal_transaction_sum.rb +0 -291
  794. data/lib/vrpayment-ruby-sdk/models/payment_terminal_transaction_summary.rb +0 -307
  795. data/lib/vrpayment-ruby-sdk/models/payment_terminal_transaction_summary_fetch_request.rb +0 -221
  796. data/lib/vrpayment-ruby-sdk/models/rendered_terminal_transaction_summary.rb +0 -215
  797. data/lib/vrpayment-ruby-sdk/models/resource_path.rb +0 -275
  798. data/lib/vrpayment-ruby-sdk/models/resource_state.rb +0 -36
  799. data/lib/vrpayment-ruby-sdk/models/server_error.rb +0 -211
  800. data/lib/vrpayment-ruby-sdk/models/subscription_change_request.rb +0 -260
  801. data/lib/vrpayment-ruby-sdk/models/subscription_product_retirement_create.rb +0 -216
  802. data/lib/vrpayment-ruby-sdk/models/subscription_product_version_retirement_create.rb +0 -216
  803. data/lib/vrpayment-ruby-sdk/models/subscription_suspension_create.rb +0 -251
  804. data/lib/vrpayment-ruby-sdk/models/subscription_suspension_running.rb +0 -336
  805. data/lib/vrpayment-ruby-sdk/models/terminal_receipt_fetch_request.rb +0 -221
  806. data/lib/vrpayment-ruby-sdk/models/transaction_completion_request.rb +0 -316
  807. data/lib/vrpayment-ruby-sdk/models/web_app_confirmation_request.rb +0 -206
  808. data/lib/vrpayment-ruby-sdk/models/webhook_encryption_public_key.rb +0 -201
  809. data/test/refund_service_test.rb +0 -133
  810. data/test/transaction_completion_service_test.rb +0 -104
  811. data/test/transaction_iframe_service_test.rb +0 -25
  812. data/test/transaction_lightbox_service_test.rb +0 -25
  813. data/test/transaction_payment_page_service_test.rb +0 -25
  814. data/test/transaction_service_test.rb +0 -230
  815. data/vendor/bundle/ruby/3.3.0/bin/rake +0 -29
  816. data/vendor/bundle/ruby/3.3.0/cache/addressable-2.8.7.gem +0 -0
  817. data/vendor/bundle/ruby/3.3.0/cache/ethon-0.16.0.gem +0 -0
  818. data/vendor/bundle/ruby/3.3.0/cache/ffi-1.17.2-x86_64-linux-gnu.gem +0 -0
  819. data/vendor/bundle/ruby/3.3.0/cache/json-2.13.0.gem +0 -0
  820. data/vendor/bundle/ruby/3.3.0/cache/power_assert-2.0.5.gem +0 -0
  821. data/vendor/bundle/ruby/3.3.0/cache/public_suffix-6.0.2.gem +0 -0
  822. data/vendor/bundle/ruby/3.3.0/cache/rake-13.0.6.gem +0 -0
  823. data/vendor/bundle/ruby/3.3.0/cache/test-unit-3.3.9.gem +0 -0
  824. data/vendor/bundle/ruby/3.3.0/cache/typhoeus-1.4.1.gem +0 -0
  825. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/json-2.13.0/gem.build_complete +0 -0
  826. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/json-2.13.0/gem_make.out +0 -25
  827. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/json-2.13.0/json/ext/generator.so +0 -0
  828. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/json-2.13.0/json/ext/parser.so +0 -0
  829. data/vendor/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/json-2.13.0/mkmf.log +0 -164
  830. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/CHANGELOG.md +0 -301
  831. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/Gemfile +0 -31
  832. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/LICENSE.txt +0 -202
  833. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/README.md +0 -121
  834. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/Rakefile +0 -37
  835. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/addressable.gemspec +0 -28
  836. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/data/unicode.data +0 -0
  837. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/lib/addressable/idna/native.rb +0 -66
  838. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/lib/addressable/idna/pure.rb +0 -505
  839. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/lib/addressable/idna.rb +0 -26
  840. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/lib/addressable/template.rb +0 -1029
  841. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/lib/addressable/uri.rb +0 -2602
  842. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/lib/addressable/version.rb +0 -31
  843. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/lib/addressable.rb +0 -4
  844. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/spec/addressable/idna_spec.rb +0 -302
  845. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/spec/addressable/net_http_compat_spec.rb +0 -29
  846. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/spec/addressable/security_spec.rb +0 -58
  847. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/spec/addressable/template_spec.rb +0 -1264
  848. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/spec/addressable/uri_spec.rb +0 -6840
  849. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/spec/spec_helper.rb +0 -33
  850. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/tasks/clobber.rake +0 -4
  851. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/tasks/gem.rake +0 -95
  852. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/tasks/git.rake +0 -47
  853. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/tasks/metrics.rake +0 -24
  854. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/tasks/profile.rake +0 -72
  855. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/tasks/rspec.rake +0 -23
  856. data/vendor/bundle/ruby/3.3.0/gems/addressable-2.8.7/tasks/yard.rake +0 -29
  857. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/.github/workflows/ruby.yml +0 -41
  858. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/.gitignore +0 -8
  859. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/.rspec +0 -3
  860. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/CHANGELOG.md +0 -375
  861. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/Gemfile +0 -43
  862. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/Guardfile +0 -10
  863. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/LICENSE +0 -20
  864. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/README.md +0 -118
  865. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/Rakefile +0 -40
  866. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/ethon.gemspec +0 -26
  867. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/curl.rb +0 -90
  868. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/curls/classes.rb +0 -65
  869. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/curls/codes.rb +0 -122
  870. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/curls/constants.rb +0 -80
  871. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/curls/form_options.rb +0 -37
  872. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/curls/functions.rb +0 -58
  873. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/curls/infos.rb +0 -151
  874. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/curls/messages.rb +0 -19
  875. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/curls/options.rb +0 -503
  876. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/curls/settings.rb +0 -12
  877. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/callbacks.rb +0 -149
  878. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/debug_info.rb +0 -47
  879. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/features.rb +0 -31
  880. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/form.rb +0 -107
  881. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/header.rb +0 -61
  882. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/http/actionable.rb +0 -157
  883. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/http/custom.rb +0 -29
  884. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/http/delete.rb +0 -25
  885. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/http/get.rb +0 -24
  886. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/http/head.rb +0 -24
  887. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/http/options.rb +0 -24
  888. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/http/patch.rb +0 -24
  889. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/http/post.rb +0 -26
  890. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/http/postable.rb +0 -32
  891. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/http/put.rb +0 -27
  892. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/http/putable.rb +0 -25
  893. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/http.rb +0 -68
  894. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/informations.rb +0 -116
  895. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/mirror.rb +0 -36
  896. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/operations.rb +0 -64
  897. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/options.rb +0 -50
  898. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/params.rb +0 -29
  899. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/queryable.rb +0 -154
  900. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/response_callbacks.rb +0 -136
  901. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy/util.rb +0 -28
  902. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/easy.rb +0 -315
  903. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/errors/ethon_error.rb +0 -9
  904. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/errors/global_init.rb +0 -13
  905. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/errors/invalid_option.rb +0 -13
  906. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/errors/invalid_value.rb +0 -13
  907. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/errors/multi_add.rb +0 -12
  908. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/errors/multi_fdset.rb +0 -12
  909. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/errors/multi_remove.rb +0 -12
  910. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/errors/multi_timeout.rb +0 -13
  911. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/errors/select.rb +0 -13
  912. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/errors.rb +0 -17
  913. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/libc.rb +0 -21
  914. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/loggable.rb +0 -59
  915. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/multi/operations.rb +0 -228
  916. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/multi/options.rb +0 -117
  917. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/multi/stack.rb +0 -49
  918. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/multi.rb +0 -126
  919. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon/version.rb +0 -6
  920. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/lib/ethon.rb +0 -36
  921. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/profile/benchmarks.rb +0 -104
  922. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/profile/memory_leaks.rb +0 -114
  923. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/profile/perf_spec_helper.rb +0 -37
  924. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/profile/support/memory_test_helpers.rb +0 -76
  925. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/profile/support/os_memory_leak_tracker.rb +0 -48
  926. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/profile/support/ruby_object_leak_tracker.rb +0 -49
  927. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/curl_spec.rb +0 -38
  928. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/callbacks_spec.rb +0 -81
  929. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/debug_info_spec.rb +0 -54
  930. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/features_spec.rb +0 -24
  931. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/form_spec.rb +0 -104
  932. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/header_spec.rb +0 -79
  933. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/http/custom_spec.rb +0 -177
  934. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/http/delete_spec.rb +0 -21
  935. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/http/get_spec.rb +0 -126
  936. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/http/head_spec.rb +0 -80
  937. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/http/options_spec.rb +0 -51
  938. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/http/patch_spec.rb +0 -51
  939. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/http/post_spec.rb +0 -317
  940. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/http/put_spec.rb +0 -168
  941. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/http_spec.rb +0 -64
  942. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/informations_spec.rb +0 -126
  943. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/mirror_spec.rb +0 -47
  944. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/operations_spec.rb +0 -271
  945. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/options_spec.rb +0 -193
  946. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/queryable_spec.rb +0 -235
  947. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/response_callbacks_spec.rb +0 -152
  948. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy/util_spec.rb +0 -28
  949. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/easy_spec.rb +0 -203
  950. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/libc_spec.rb +0 -14
  951. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/loggable_spec.rb +0 -22
  952. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/multi/operations_spec.rb +0 -298
  953. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/multi/options_spec.rb +0 -182
  954. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/multi/stack_spec.rb +0 -80
  955. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/ethon/multi_spec.rb +0 -152
  956. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/spec_helper.rb +0 -28
  957. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/support/localhost_server.rb +0 -95
  958. data/vendor/bundle/ruby/3.3.0/gems/ethon-0.16.0/spec/support/server.rb +0 -115
  959. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/CHANGELOG.md +0 -473
  960. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/COPYING +0 -49
  961. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/Gemfile +0 -23
  962. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/LICENSE +0 -24
  963. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/LICENSE.SPECS +0 -22
  964. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/README.md +0 -137
  965. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/Rakefile +0 -206
  966. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/ffi.gemspec +0 -42
  967. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/2.5/ffi_c.so +0 -0
  968. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/2.6/ffi_c.so +0 -0
  969. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/2.7/ffi_c.so +0 -0
  970. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/3.0/ffi_c.so +0 -0
  971. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/3.1/ffi_c.so +0 -0
  972. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/3.2/ffi_c.so +0 -0
  973. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/3.3/ffi_c.so +0 -0
  974. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/3.4/ffi_c.so +0 -0
  975. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/abstract_memory.rb +0 -44
  976. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/autopointer.rb +0 -180
  977. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/buffer.rb +0 -4
  978. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/callback.rb +0 -4
  979. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/compat.rb +0 -43
  980. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/data_converter.rb +0 -67
  981. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/dynamic_library.rb +0 -118
  982. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/enum.rb +0 -302
  983. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/errno.rb +0 -43
  984. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/ffi.rb +0 -109
  985. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/function.rb +0 -71
  986. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/io.rb +0 -62
  987. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/library.rb +0 -576
  988. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/library_path.rb +0 -109
  989. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/managedstruct.rb +0 -84
  990. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/memorypointer.rb +0 -1
  991. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/aarch64-darwin/types.conf +0 -130
  992. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/aarch64-freebsd/types.conf +0 -128
  993. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/aarch64-freebsd12/types.conf +0 -181
  994. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/aarch64-linux/types.conf +0 -175
  995. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/aarch64-openbsd/types.conf +0 -134
  996. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/aarch64-windows/types.conf +0 -52
  997. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/arm-freebsd/types.conf +0 -152
  998. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/arm-freebsd12/types.conf +0 -152
  999. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/arm-linux/types.conf +0 -132
  1000. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/hppa1.1-linux/types.conf +0 -178
  1001. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/hppa2.0-linux/types.conf +0 -178
  1002. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/i386-cygwin/types.conf +0 -3
  1003. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/i386-darwin/types.conf +0 -100
  1004. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/i386-freebsd/types.conf +0 -152
  1005. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/i386-freebsd12/types.conf +0 -152
  1006. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/i386-gnu/types.conf +0 -107
  1007. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/i386-linux/types.conf +0 -103
  1008. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/i386-netbsd/types.conf +0 -126
  1009. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/i386-openbsd/types.conf +0 -128
  1010. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/i386-solaris/types.conf +0 -122
  1011. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/i386-windows/types.conf +0 -52
  1012. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/ia64-linux/types.conf +0 -104
  1013. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/loongarch64-linux/types.conf +0 -141
  1014. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/mips-linux/types.conf +0 -102
  1015. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/mips64-linux/types.conf +0 -104
  1016. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/mips64el-linux/types.conf +0 -104
  1017. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/mipsel-linux/types.conf +0 -102
  1018. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/mipsisa32r6-linux/types.conf +0 -102
  1019. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/mipsisa32r6el-linux/types.conf +0 -102
  1020. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/mipsisa64r6-linux/types.conf +0 -104
  1021. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/mipsisa64r6el-linux/types.conf +0 -104
  1022. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/powerpc-aix/types.conf +0 -180
  1023. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/powerpc-darwin/types.conf +0 -100
  1024. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/powerpc-linux/types.conf +0 -130
  1025. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/powerpc-openbsd/types.conf +0 -156
  1026. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/powerpc64-linux/types.conf +0 -104
  1027. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/powerpc64le-linux/types.conf +0 -100
  1028. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/riscv64-linux/types.conf +0 -104
  1029. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/s390-linux/types.conf +0 -102
  1030. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/s390x-linux/types.conf +0 -102
  1031. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/sparc-linux/types.conf +0 -102
  1032. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/sparc-solaris/types.conf +0 -128
  1033. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/sparcv9-linux/types.conf +0 -102
  1034. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/sparcv9-openbsd/types.conf +0 -156
  1035. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/sparcv9-solaris/types.conf +0 -128
  1036. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/sw_64-linux/types.conf +0 -141
  1037. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/x86_64-cygwin/types.conf +0 -3
  1038. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/x86_64-darwin/types.conf +0 -130
  1039. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/x86_64-dragonflybsd/types.conf +0 -130
  1040. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/x86_64-freebsd/types.conf +0 -128
  1041. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/x86_64-freebsd12/types.conf +0 -158
  1042. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/x86_64-haiku/types.conf +0 -117
  1043. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/x86_64-linux/types.conf +0 -132
  1044. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/x86_64-msys/types.conf +0 -119
  1045. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/x86_64-netbsd/types.conf +0 -128
  1046. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/x86_64-openbsd/types.conf +0 -134
  1047. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/x86_64-solaris/types.conf +0 -122
  1048. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform/x86_64-windows/types.conf +0 -52
  1049. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/platform.rb +0 -187
  1050. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/pointer.rb +0 -167
  1051. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/struct.rb +0 -317
  1052. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/struct_by_reference.rb +0 -72
  1053. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/struct_layout.rb +0 -96
  1054. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/struct_layout_builder.rb +0 -227
  1055. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/tools/const_generator.rb +0 -232
  1056. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/tools/generator.rb +0 -105
  1057. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/tools/generator_task.rb +0 -32
  1058. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/tools/struct_generator.rb +0 -195
  1059. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/tools/types_generator.rb +0 -137
  1060. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/types.rb +0 -222
  1061. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/union.rb +0 -43
  1062. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/variadic.rb +0 -80
  1063. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi/version.rb +0 -3
  1064. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/lib/ffi.rb +0 -27
  1065. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/rakelib/ffi_gem_helper.rb +0 -65
  1066. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/samples/getlogin.rb +0 -8
  1067. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/samples/getpid.rb +0 -8
  1068. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/samples/gettimeofday.rb +0 -18
  1069. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/samples/hello.rb +0 -8
  1070. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/samples/hello_ractor.rb +0 -11
  1071. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/samples/inotify.rb +0 -60
  1072. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/samples/pty.rb +0 -75
  1073. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/samples/qsort.rb +0 -20
  1074. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/samples/qsort_ractor.rb +0 -28
  1075. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/sig/ffi/abstract_memory.rbs +0 -165
  1076. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/sig/ffi/auto_pointer.rbs +0 -26
  1077. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/sig/ffi/buffer.rbs +0 -18
  1078. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/sig/ffi/data_converter.rbs +0 -10
  1079. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/sig/ffi/dynamic_library.rbs +0 -9
  1080. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/sig/ffi/enum.rbs +0 -38
  1081. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/sig/ffi/function.rbs +0 -39
  1082. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/sig/ffi/library.rbs +0 -42
  1083. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/sig/ffi/native_type.rbs +0 -86
  1084. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/sig/ffi/pointer.rbs +0 -42
  1085. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/sig/ffi/struct.rbs +0 -76
  1086. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/sig/ffi/struct_by_reference.rbs +0 -11
  1087. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/sig/ffi/struct_by_value.rbs +0 -7
  1088. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/sig/ffi/struct_layout.rbs +0 -9
  1089. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/sig/ffi/struct_layout_builder.rbs +0 -5
  1090. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/sig/ffi/type.rbs +0 -39
  1091. data/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.2-x86_64-linux-gnu/sig/ffi.rbs +0 -26
  1092. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/BSDL +0 -22
  1093. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/CHANGES.md +0 -652
  1094. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/COPYING +0 -56
  1095. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/LEGAL +0 -8
  1096. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/README.md +0 -281
  1097. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/ext/json/ext/fbuffer/fbuffer.h +0 -270
  1098. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/ext/json/ext/generator/Makefile +0 -269
  1099. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/ext/json/ext/generator/extconf.rb +0 -16
  1100. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/ext/json/ext/generator/generator.c +0 -2139
  1101. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/ext/json/ext/parser/Makefile +0 -269
  1102. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/ext/json/ext/parser/extconf.rb +0 -15
  1103. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/ext/json/ext/parser/parser.c +0 -1507
  1104. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/ext/json/ext/simd/conf.rb +0 -20
  1105. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/ext/json/ext/simd/simd.h +0 -187
  1106. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/ext/json/ext/vendor/fpconv.c +0 -479
  1107. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/ext/json/ext/vendor/jeaiii-ltoa.h +0 -267
  1108. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/json.gemspec +0 -62
  1109. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/lib/json/add/bigdecimal.rb +0 -58
  1110. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/lib/json/add/complex.rb +0 -51
  1111. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/lib/json/add/core.rb +0 -12
  1112. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/lib/json/add/date.rb +0 -54
  1113. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/lib/json/add/date_time.rb +0 -67
  1114. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/lib/json/add/exception.rb +0 -49
  1115. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/lib/json/add/ostruct.rb +0 -54
  1116. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/lib/json/add/range.rb +0 -54
  1117. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/lib/json/add/rational.rb +0 -49
  1118. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/lib/json/add/regexp.rb +0 -48
  1119. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/lib/json/add/set.rb +0 -48
  1120. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/lib/json/add/struct.rb +0 -52
  1121. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/lib/json/add/symbol.rb +0 -52
  1122. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/lib/json/add/time.rb +0 -52
  1123. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/lib/json/common.rb +0 -1104
  1124. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/lib/json/ext/generator/state.rb +0 -106
  1125. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/lib/json/ext/generator.so +0 -0
  1126. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/lib/json/ext/parser.so +0 -0
  1127. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/lib/json/ext.rb +0 -45
  1128. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/lib/json/generic_object.rb +0 -75
  1129. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/lib/json/truffle_ruby/generator.rb +0 -690
  1130. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/lib/json/version.rb +0 -5
  1131. data/vendor/bundle/ruby/3.3.0/gems/json-2.13.0/lib/json.rb +0 -620
  1132. data/vendor/bundle/ruby/3.3.0/gems/power_assert-2.0.5/.github/dependabot.yml +0 -6
  1133. data/vendor/bundle/ruby/3.3.0/gems/power_assert-2.0.5/.github/workflows/ci.yml +0 -46
  1134. data/vendor/bundle/ruby/3.3.0/gems/power_assert-2.0.5/.gitignore +0 -9
  1135. data/vendor/bundle/ruby/3.3.0/gems/power_assert-2.0.5/BSDL +0 -22
  1136. data/vendor/bundle/ruby/3.3.0/gems/power_assert-2.0.5/COPYING +0 -57
  1137. data/vendor/bundle/ruby/3.3.0/gems/power_assert-2.0.5/Gemfile +0 -19
  1138. data/vendor/bundle/ruby/3.3.0/gems/power_assert-2.0.5/LEGAL +0 -4
  1139. data/vendor/bundle/ruby/3.3.0/gems/power_assert-2.0.5/README.md +0 -98
  1140. data/vendor/bundle/ruby/3.3.0/gems/power_assert-2.0.5/Rakefile +0 -59
  1141. data/vendor/bundle/ruby/3.3.0/gems/power_assert-2.0.5/lib/power_assert/colorize.rb +0 -7
  1142. data/vendor/bundle/ruby/3.3.0/gems/power_assert-2.0.5/lib/power_assert/configuration.rb +0 -46
  1143. data/vendor/bundle/ruby/3.3.0/gems/power_assert-2.0.5/lib/power_assert/context.rb +0 -233
  1144. data/vendor/bundle/ruby/3.3.0/gems/power_assert-2.0.5/lib/power_assert/enable_tracepoint_events.rb +0 -62
  1145. data/vendor/bundle/ruby/3.3.0/gems/power_assert-2.0.5/lib/power_assert/inspector.rb +0 -66
  1146. data/vendor/bundle/ruby/3.3.0/gems/power_assert-2.0.5/lib/power_assert/parser.rb +0 -251
  1147. data/vendor/bundle/ruby/3.3.0/gems/power_assert-2.0.5/lib/power_assert/version.rb +0 -3
  1148. data/vendor/bundle/ruby/3.3.0/gems/power_assert-2.0.5/lib/power_assert.rb +0 -93
  1149. data/vendor/bundle/ruby/3.3.0/gems/power_assert-2.0.5/power_assert.gemspec +0 -24
  1150. data/vendor/bundle/ruby/3.3.0/gems/public_suffix-6.0.2/.yardopts +0 -1
  1151. data/vendor/bundle/ruby/3.3.0/gems/public_suffix-6.0.2/CHANGELOG.md +0 -498
  1152. data/vendor/bundle/ruby/3.3.0/gems/public_suffix-6.0.2/LICENSE.txt +0 -22
  1153. data/vendor/bundle/ruby/3.3.0/gems/public_suffix-6.0.2/README.md +0 -222
  1154. data/vendor/bundle/ruby/3.3.0/gems/public_suffix-6.0.2/SECURITY.md +0 -24
  1155. data/vendor/bundle/ruby/3.3.0/gems/public_suffix-6.0.2/data/list.txt +0 -15791
  1156. data/vendor/bundle/ruby/3.3.0/gems/public_suffix-6.0.2/lib/public_suffix/domain.rb +0 -235
  1157. data/vendor/bundle/ruby/3.3.0/gems/public_suffix-6.0.2/lib/public_suffix/errors.rb +0 -41
  1158. data/vendor/bundle/ruby/3.3.0/gems/public_suffix-6.0.2/lib/public_suffix/list.rb +0 -247
  1159. data/vendor/bundle/ruby/3.3.0/gems/public_suffix-6.0.2/lib/public_suffix/rule.rb +0 -350
  1160. data/vendor/bundle/ruby/3.3.0/gems/public_suffix-6.0.2/lib/public_suffix/version.rb +0 -14
  1161. data/vendor/bundle/ruby/3.3.0/gems/public_suffix-6.0.2/lib/public_suffix.rb +0 -177
  1162. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/History.rdoc +0 -2403
  1163. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/MIT-LICENSE +0 -21
  1164. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/README.rdoc +0 -155
  1165. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/doc/command_line_usage.rdoc +0 -158
  1166. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/doc/example/Rakefile1 +0 -38
  1167. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/doc/example/Rakefile2 +0 -35
  1168. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/doc/example/a.c +0 -6
  1169. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/doc/example/b.c +0 -6
  1170. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/doc/example/main.c +0 -11
  1171. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/doc/glossary.rdoc +0 -42
  1172. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/doc/jamis.rb +0 -592
  1173. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/doc/proto_rake.rdoc +0 -127
  1174. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/doc/rake.1 +0 -156
  1175. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/doc/rakefile.rdoc +0 -622
  1176. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/doc/rational.rdoc +0 -151
  1177. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/exe/rake +0 -27
  1178. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/application.rb +0 -831
  1179. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/backtrace.rb +0 -24
  1180. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/clean.rb +0 -78
  1181. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/cloneable.rb +0 -17
  1182. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/cpu_counter.rb +0 -107
  1183. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/default_loader.rb +0 -15
  1184. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/dsl_definition.rb +0 -195
  1185. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/early_time.rb +0 -22
  1186. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/ext/core.rb +0 -26
  1187. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/ext/string.rb +0 -176
  1188. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/file_creation_task.rb +0 -25
  1189. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/file_list.rb +0 -435
  1190. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/file_task.rb +0 -54
  1191. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/file_utils.rb +0 -134
  1192. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/file_utils_ext.rb +0 -134
  1193. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/invocation_chain.rb +0 -57
  1194. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/invocation_exception_mixin.rb +0 -17
  1195. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/late_time.rb +0 -18
  1196. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/linked_list.rb +0 -112
  1197. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/loaders/makefile.rb +0 -54
  1198. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/multi_task.rb +0 -14
  1199. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/name_space.rb +0 -38
  1200. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/packagetask.rb +0 -222
  1201. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/phony.rb +0 -16
  1202. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/private_reader.rb +0 -21
  1203. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/promise.rb +0 -100
  1204. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/pseudo_status.rb +0 -30
  1205. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/rake_module.rb +0 -67
  1206. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/rake_test_loader.rb +0 -27
  1207. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/rule_recursion_overflow_error.rb +0 -20
  1208. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/scope.rb +0 -43
  1209. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/task.rb +0 -434
  1210. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/task_argument_error.rb +0 -8
  1211. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/task_arguments.rb +0 -109
  1212. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/task_manager.rb +0 -331
  1213. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/tasklib.rb +0 -12
  1214. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/testtask.rb +0 -189
  1215. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/thread_history_display.rb +0 -49
  1216. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/thread_pool.rb +0 -163
  1217. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/trace_output.rb +0 -23
  1218. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/version.rb +0 -10
  1219. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake/win32.rb +0 -51
  1220. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/lib/rake.rb +0 -71
  1221. data/vendor/bundle/ruby/3.3.0/gems/rake-13.0.6/rake.gemspec +0 -100
  1222. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/BSDL +0 -24
  1223. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/COPYING +0 -64
  1224. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/PSFL +0 -271
  1225. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/README.md +0 -97
  1226. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/Rakefile +0 -66
  1227. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/doc/text/getting-started.md +0 -246
  1228. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/doc/text/how-to.md +0 -90
  1229. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/doc/text/news.md +0 -1533
  1230. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/assertion-failed-error.rb +0 -25
  1231. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/assertions.rb +0 -2256
  1232. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/attribute-matcher.rb +0 -26
  1233. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/attribute.rb +0 -227
  1234. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/auto-runner-loader.rb +0 -17
  1235. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/autorunner.rb +0 -569
  1236. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/code-snippet-fetcher.rb +0 -58
  1237. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/collector/descendant.rb +0 -19
  1238. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/collector/dir.rb +0 -108
  1239. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/collector/load.rb +0 -197
  1240. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/collector/objectspace.rb +0 -34
  1241. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/collector/xml.rb +0 -249
  1242. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/collector.rb +0 -73
  1243. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/color-scheme.rb +0 -216
  1244. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/color.rb +0 -134
  1245. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/data-sets.rb +0 -116
  1246. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/data.rb +0 -371
  1247. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/diff.rb +0 -745
  1248. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/error.rb +0 -158
  1249. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/exception-handler.rb +0 -82
  1250. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/failure.rb +0 -169
  1251. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/fault-location-detector.rb +0 -100
  1252. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/fixture.rb +0 -298
  1253. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/notification.rb +0 -138
  1254. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/omission.rb +0 -198
  1255. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/pending.rb +0 -155
  1256. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/priority.rb +0 -196
  1257. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/runner/console.rb +0 -67
  1258. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/runner/emacs.rb +0 -8
  1259. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/runner/xml.rb +0 -15
  1260. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/test-suite-creator.rb +0 -103
  1261. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/testcase.rb +0 -899
  1262. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/testresult.rb +0 -132
  1263. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/testsuite.rb +0 -175
  1264. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/ui/console/outputlevel.rb +0 -15
  1265. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/ui/console/testrunner.rb +0 -733
  1266. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/ui/emacs/testrunner.rb +0 -49
  1267. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/ui/testrunner.rb +0 -53
  1268. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/ui/testrunnermediator.rb +0 -114
  1269. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/ui/testrunnerutilities.rb +0 -41
  1270. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/ui/xml/testrunner.rb +0 -224
  1271. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/util/backtracefilter.rb +0 -59
  1272. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/util/method-owner-finder.rb +0 -28
  1273. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/util/observable.rb +0 -90
  1274. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/util/output.rb +0 -32
  1275. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/util/procwrapper.rb +0 -48
  1276. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit/version.rb +0 -5
  1277. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test/unit.rb +0 -519
  1278. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/lib/test-unit.rb +0 -17
  1279. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/sample/adder.rb +0 -13
  1280. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/sample/subtracter.rb +0 -12
  1281. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/sample/test_adder.rb +0 -20
  1282. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/sample/test_subtracter.rb +0 -20
  1283. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/sample/test_user.rb +0 -23
  1284. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/collector/test-descendant.rb +0 -182
  1285. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/collector/test-load.rb +0 -475
  1286. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/collector/test_dir.rb +0 -407
  1287. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/collector/test_objectspace.rb +0 -102
  1288. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/fixtures/header-label.csv +0 -3
  1289. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/fixtures/header-label.tsv +0 -3
  1290. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/fixtures/header.csv +0 -3
  1291. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/fixtures/header.tsv +0 -3
  1292. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/fixtures/no-header.csv +0 -2
  1293. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/fixtures/no-header.tsv +0 -2
  1294. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/fixtures/plus.csv +0 -3
  1295. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/run-test.rb +0 -22
  1296. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/test-assertions.rb +0 -2187
  1297. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/test-attribute-matcher.rb +0 -38
  1298. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/test-attribute.rb +0 -123
  1299. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/test-code-snippet.rb +0 -79
  1300. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/test-color-scheme.rb +0 -123
  1301. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/test-color.rb +0 -47
  1302. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/test-data.rb +0 -419
  1303. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/test-diff.rb +0 -518
  1304. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/test-emacs-runner.rb +0 -60
  1305. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/test-error.rb +0 -26
  1306. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/test-failure.rb +0 -33
  1307. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/test-fault-location-detector.rb +0 -163
  1308. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/test-fixture.rb +0 -713
  1309. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/test-notification.rb +0 -33
  1310. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/test-omission.rb +0 -81
  1311. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/test-pending.rb +0 -70
  1312. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/test-priority.rb +0 -184
  1313. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/test-test-case.rb +0 -1284
  1314. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/test-test-result.rb +0 -113
  1315. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/test-test-suite-creator.rb +0 -97
  1316. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/test-test-suite.rb +0 -151
  1317. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/testunit-test-util.rb +0 -33
  1318. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/ui/test_testrunmediator.rb +0 -20
  1319. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/util/test-method-owner-finder.rb +0 -38
  1320. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/util/test-output.rb +0 -11
  1321. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/util/test_backtracefilter.rb +0 -52
  1322. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/util/test_observable.rb +0 -102
  1323. data/vendor/bundle/ruby/3.3.0/gems/test-unit-3.3.9/test/util/test_procwrapper.rb +0 -36
  1324. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/.github/workflows/ci.yml +0 -30
  1325. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/.github/workflows/experimental.yml +0 -33
  1326. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/.gitignore +0 -8
  1327. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/.rspec +0 -4
  1328. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/CHANGELOG.md +0 -410
  1329. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/CONTRIBUTING.md +0 -20
  1330. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/Gemfile +0 -36
  1331. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/Guardfile +0 -9
  1332. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/LICENSE +0 -22
  1333. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/README.md +0 -588
  1334. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/Rakefile +0 -38
  1335. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/UPGRADE.md +0 -55
  1336. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/rack/typhoeus/middleware/params_decoder/helper.rb +0 -76
  1337. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/rack/typhoeus/middleware/params_decoder.rb +0 -57
  1338. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/rack/typhoeus.rb +0 -1
  1339. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/adapters/faraday.rb +0 -180
  1340. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/cache/dalli.rb +0 -28
  1341. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/cache/rails.rb +0 -28
  1342. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/cache/redis.rb +0 -35
  1343. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/config.rb +0 -85
  1344. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/easy_factory.rb +0 -206
  1345. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/errors/no_stub.rb +0 -12
  1346. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/errors/typhoeus_error.rb +0 -8
  1347. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/errors.rb +0 -9
  1348. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/expectation.rb +0 -217
  1349. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/hydra/addable.rb +0 -23
  1350. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/hydra/before.rb +0 -31
  1351. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/hydra/block_connection.rb +0 -35
  1352. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/hydra/cacheable.rb +0 -15
  1353. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/hydra/memoizable.rb +0 -56
  1354. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/hydra/queueable.rb +0 -83
  1355. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/hydra/runnable.rb +0 -19
  1356. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/hydra/stubbable.rb +0 -28
  1357. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/hydra.rb +0 -95
  1358. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/pool.rb +0 -70
  1359. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/railtie.rb +0 -12
  1360. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/request/actions.rb +0 -125
  1361. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/request/before.rb +0 -30
  1362. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/request/block_connection.rb +0 -52
  1363. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/request/cacheable.rb +0 -38
  1364. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/request/callbacks.rb +0 -151
  1365. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/request/marshal.rb +0 -22
  1366. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/request/memoizable.rb +0 -38
  1367. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/request/operations.rb +0 -40
  1368. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/request/responseable.rb +0 -29
  1369. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/request/streamable.rb +0 -34
  1370. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/request/stubbable.rb +0 -30
  1371. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/request.rb +0 -223
  1372. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/response/cacheable.rb +0 -14
  1373. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/response/header.rb +0 -105
  1374. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/response/informations.rb +0 -305
  1375. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/response/status.rb +0 -106
  1376. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/response.rb +0 -68
  1377. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus/version.rb +0 -5
  1378. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/lib/typhoeus.rb +0 -143
  1379. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/perf/profile.rb +0 -14
  1380. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/perf/vs_nethttp.rb +0 -64
  1381. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/rack/typhoeus/middleware/params_decoder/helper_spec.rb +0 -156
  1382. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/rack/typhoeus/middleware/params_decoder_spec.rb +0 -31
  1383. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/spec_helper.rb +0 -29
  1384. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/support/localhost_server.rb +0 -94
  1385. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/support/memory_cache.rb +0 -15
  1386. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/support/server.rb +0 -116
  1387. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/adapters/faraday_spec.rb +0 -339
  1388. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/cache/dalli_spec.rb +0 -41
  1389. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/cache/redis_spec.rb +0 -41
  1390. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/config_spec.rb +0 -15
  1391. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/easy_factory_spec.rb +0 -143
  1392. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/errors/no_stub_spec.rb +0 -13
  1393. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/expectation_spec.rb +0 -280
  1394. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/hydra/addable_spec.rb +0 -22
  1395. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/hydra/before_spec.rb +0 -98
  1396. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/hydra/block_connection_spec.rb +0 -18
  1397. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/hydra/cacheable_spec.rb +0 -88
  1398. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/hydra/memoizable_spec.rb +0 -53
  1399. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/hydra/queueable_spec.rb +0 -98
  1400. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/hydra/runnable_spec.rb +0 -137
  1401. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/hydra/stubbable_spec.rb +0 -48
  1402. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/hydra_spec.rb +0 -22
  1403. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/pool_spec.rb +0 -137
  1404. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/request/actions_spec.rb +0 -19
  1405. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/request/before_spec.rb +0 -93
  1406. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/request/block_connection_spec.rb +0 -75
  1407. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/request/cacheable_spec.rb +0 -94
  1408. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/request/callbacks_spec.rb +0 -91
  1409. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/request/marshal_spec.rb +0 -60
  1410. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/request/memoizable_spec.rb +0 -34
  1411. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/request/operations_spec.rb +0 -101
  1412. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/request/responseable_spec.rb +0 -13
  1413. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/request/stubbable_spec.rb +0 -45
  1414. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/request_spec.rb +0 -256
  1415. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/response/header_spec.rb +0 -147
  1416. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/response/informations_spec.rb +0 -323
  1417. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/response/status_spec.rb +0 -256
  1418. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus/response_spec.rb +0 -100
  1419. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/spec/typhoeus_spec.rb +0 -105
  1420. data/vendor/bundle/ruby/3.3.0/gems/typhoeus-1.4.1/typhoeus.gemspec +0 -25
  1421. data/vendor/bundle/ruby/3.3.0/specifications/addressable-2.8.7.gemspec +0 -30
  1422. data/vendor/bundle/ruby/3.3.0/specifications/ethon-0.16.0.gemspec +0 -24
  1423. data/vendor/bundle/ruby/3.3.0/specifications/ffi-1.17.2-x86_64-linux-gnu.gemspec +0 -31
  1424. data/vendor/bundle/ruby/3.3.0/specifications/json-2.13.0.gemspec +0 -0
  1425. data/vendor/bundle/ruby/3.3.0/specifications/power_assert-2.0.5.gemspec +0 -24
  1426. data/vendor/bundle/ruby/3.3.0/specifications/public_suffix-6.0.2.gemspec +0 -24
  1427. data/vendor/bundle/ruby/3.3.0/specifications/rake-13.0.6.gemspec +0 -26
  1428. data/vendor/bundle/ruby/3.3.0/specifications/test-unit-3.3.9.gemspec +0 -30
  1429. data/vendor/bundle/ruby/3.3.0/specifications/typhoeus-1.4.1.gemspec +0 -24
@@ -1,2602 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- #--
4
- # Copyright (C) Bob Aman
5
- #
6
- # Licensed under the Apache License, Version 2.0 (the "License");
7
- # you may not use this file except in compliance with the License.
8
- # You may obtain a copy of the License at
9
- #
10
- # http://www.apache.org/licenses/LICENSE-2.0
11
- #
12
- # Unless required by applicable law or agreed to in writing, software
13
- # distributed under the License is distributed on an "AS IS" BASIS,
14
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
- # See the License for the specific language governing permissions and
16
- # limitations under the License.
17
- #++
18
-
19
-
20
- require "addressable/version"
21
- require "addressable/idna"
22
- require "public_suffix"
23
-
24
- ##
25
- # Addressable is a library for processing links and URIs.
26
- module Addressable
27
- ##
28
- # This is an implementation of a URI parser based on
29
- # <a href="http://www.ietf.org/rfc/rfc3986.txt">RFC 3986</a>,
30
- # <a href="http://www.ietf.org/rfc/rfc3987.txt">RFC 3987</a>.
31
- class URI
32
- ##
33
- # Raised if something other than a uri is supplied.
34
- class InvalidURIError < StandardError
35
- end
36
-
37
- ##
38
- # Container for the character classes specified in
39
- # <a href="http://www.ietf.org/rfc/rfc3986.txt">RFC 3986</a>.
40
- #
41
- # Note: Concatenated and interpolated `String`s are not affected by the
42
- # `frozen_string_literal` directive and must be frozen explicitly.
43
- #
44
- # Interpolated `String`s *were* frozen this way before Ruby 3.0:
45
- # https://bugs.ruby-lang.org/issues/17104
46
- module CharacterClasses
47
- ALPHA = "a-zA-Z"
48
- DIGIT = "0-9"
49
- GEN_DELIMS = "\\:\\/\\?\\#\\[\\]\\@"
50
- SUB_DELIMS = "\\!\\$\\&\\'\\(\\)\\*\\+\\,\\;\\="
51
- RESERVED = (GEN_DELIMS + SUB_DELIMS).freeze
52
- UNRESERVED = (ALPHA + DIGIT + "\\-\\.\\_\\~").freeze
53
- RESERVED_AND_UNRESERVED = RESERVED + UNRESERVED
54
- PCHAR = (UNRESERVED + SUB_DELIMS + "\\:\\@").freeze
55
- SCHEME = (ALPHA + DIGIT + "\\-\\+\\.").freeze
56
- HOST = (UNRESERVED + SUB_DELIMS + "\\[\\:\\]").freeze
57
- AUTHORITY = (PCHAR + "\\[\\]").freeze
58
- PATH = (PCHAR + "\\/").freeze
59
- QUERY = (PCHAR + "\\/\\?").freeze
60
- FRAGMENT = (PCHAR + "\\/\\?").freeze
61
- end
62
-
63
- module NormalizeCharacterClasses
64
- HOST = /[^#{CharacterClasses::HOST}]/
65
- UNRESERVED = /[^#{CharacterClasses::UNRESERVED}]/
66
- PCHAR = /[^#{CharacterClasses::PCHAR}]/
67
- SCHEME = /[^#{CharacterClasses::SCHEME}]/
68
- FRAGMENT = /[^#{CharacterClasses::FRAGMENT}]/
69
- QUERY = %r{[^a-zA-Z0-9\-\.\_\~\!\$\'\(\)\*\+\,\=\:\@\/\?%]|%(?!2B|2b)}
70
- end
71
-
72
- module CharacterClassesRegexps
73
- AUTHORITY = /[^#{CharacterClasses::AUTHORITY}]/
74
- FRAGMENT = /[^#{CharacterClasses::FRAGMENT}]/
75
- HOST = /[^#{CharacterClasses::HOST}]/
76
- PATH = /[^#{CharacterClasses::PATH}]/
77
- QUERY = /[^#{CharacterClasses::QUERY}]/
78
- RESERVED = /[^#{CharacterClasses::RESERVED}]/
79
- RESERVED_AND_UNRESERVED = /[^#{CharacterClasses::RESERVED_AND_UNRESERVED}]/
80
- SCHEME = /[^#{CharacterClasses::SCHEME}]/
81
- UNRESERVED = /[^#{CharacterClasses::UNRESERVED}]/
82
- end
83
-
84
- SLASH = '/'
85
- EMPTY_STR = ''
86
-
87
- URIREGEX = /^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/
88
-
89
- PORT_MAPPING = {
90
- "http" => 80,
91
- "https" => 443,
92
- "ftp" => 21,
93
- "tftp" => 69,
94
- "sftp" => 22,
95
- "ssh" => 22,
96
- "svn+ssh" => 22,
97
- "telnet" => 23,
98
- "nntp" => 119,
99
- "gopher" => 70,
100
- "wais" => 210,
101
- "ldap" => 389,
102
- "prospero" => 1525
103
- }.freeze
104
-
105
- ##
106
- # Returns a URI object based on the parsed string.
107
- #
108
- # @param [String, Addressable::URI, #to_str] uri
109
- # The URI string to parse.
110
- # No parsing is performed if the object is already an
111
- # <code>Addressable::URI</code>.
112
- #
113
- # @return [Addressable::URI] The parsed URI.
114
- def self.parse(uri)
115
- # If we were given nil, return nil.
116
- return nil unless uri
117
- # If a URI object is passed, just return itself.
118
- return uri.dup if uri.kind_of?(self)
119
-
120
- # If a URI object of the Ruby standard library variety is passed,
121
- # convert it to a string, then parse the string.
122
- # We do the check this way because we don't want to accidentally
123
- # cause a missing constant exception to be thrown.
124
- if uri.class.name =~ /^URI\b/
125
- uri = uri.to_s
126
- end
127
-
128
- # Otherwise, convert to a String
129
- begin
130
- uri = uri.to_str
131
- rescue TypeError, NoMethodError
132
- raise TypeError, "Can't convert #{uri.class} into String."
133
- end unless uri.is_a?(String)
134
-
135
- # This Regexp supplied as an example in RFC 3986, and it works great.
136
- scan = uri.scan(URIREGEX)
137
- fragments = scan[0]
138
- scheme = fragments[1]
139
- authority = fragments[3]
140
- path = fragments[4]
141
- query = fragments[6]
142
- fragment = fragments[8]
143
- user = nil
144
- password = nil
145
- host = nil
146
- port = nil
147
- if authority != nil
148
- # The Regexp above doesn't split apart the authority.
149
- userinfo = authority[/^([^\[\]]*)@/, 1]
150
- if userinfo != nil
151
- user = userinfo.strip[/^([^:]*):?/, 1]
152
- password = userinfo.strip[/:(.*)$/, 1]
153
- end
154
-
155
- host = authority.sub(
156
- /^([^\[\]]*)@/, EMPTY_STR
157
- ).sub(
158
- /:([^:@\[\]]*?)$/, EMPTY_STR
159
- )
160
-
161
- port = authority[/:([^:@\[\]]*?)$/, 1]
162
- port = nil if port == EMPTY_STR
163
- end
164
-
165
- return new(
166
- :scheme => scheme,
167
- :user => user,
168
- :password => password,
169
- :host => host,
170
- :port => port,
171
- :path => path,
172
- :query => query,
173
- :fragment => fragment
174
- )
175
- end
176
-
177
- ##
178
- # Converts an input to a URI. The input does not have to be a valid
179
- # URI — the method will use heuristics to guess what URI was intended.
180
- # This is not standards-compliant, merely user-friendly.
181
- #
182
- # @param [String, Addressable::URI, #to_str] uri
183
- # The URI string to parse.
184
- # No parsing is performed if the object is already an
185
- # <code>Addressable::URI</code>.
186
- # @param [Hash] hints
187
- # A <code>Hash</code> of hints to the heuristic parser.
188
- # Defaults to <code>{:scheme => "http"}</code>.
189
- #
190
- # @return [Addressable::URI] The parsed URI.
191
- def self.heuristic_parse(uri, hints={})
192
- # If we were given nil, return nil.
193
- return nil unless uri
194
- # If a URI object is passed, just return itself.
195
- return uri.dup if uri.kind_of?(self)
196
-
197
- # If a URI object of the Ruby standard library variety is passed,
198
- # convert it to a string, then parse the string.
199
- # We do the check this way because we don't want to accidentally
200
- # cause a missing constant exception to be thrown.
201
- if uri.class.name =~ /^URI\b/
202
- uri = uri.to_s
203
- end
204
-
205
- unless uri.respond_to?(:to_str)
206
- raise TypeError, "Can't convert #{uri.class} into String."
207
- end
208
- # Otherwise, convert to a String
209
- uri = uri.to_str.dup.strip
210
- hints = {
211
- :scheme => "http"
212
- }.merge(hints)
213
- case uri
214
- when /^http:\//i
215
- uri.sub!(/^http:\/+/i, "http://")
216
- when /^https:\//i
217
- uri.sub!(/^https:\/+/i, "https://")
218
- when /^feed:\/+http:\//i
219
- uri.sub!(/^feed:\/+http:\/+/i, "feed:http://")
220
- when /^feed:\//i
221
- uri.sub!(/^feed:\/+/i, "feed://")
222
- when %r[^file:/{4}]i
223
- uri.sub!(%r[^file:/+]i, "file:////")
224
- when %r[^file://localhost/]i
225
- uri.sub!(%r[^file://localhost/+]i, "file:///")
226
- when %r[^file:/+]i
227
- uri.sub!(%r[^file:/+]i, "file:///")
228
- when /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/
229
- uri.sub!(/^/, hints[:scheme] + "://")
230
- when /\A\d+\..*:\d+\z/
231
- uri = "#{hints[:scheme]}://#{uri}"
232
- end
233
- match = uri.match(URIREGEX)
234
- fragments = match.captures
235
- authority = fragments[3]
236
- if authority && authority.length > 0
237
- new_authority = authority.tr("\\", "/").gsub(" ", "%20")
238
- # NOTE: We want offset 4, not 3!
239
- offset = match.offset(4)
240
- uri = uri.dup
241
- uri[offset[0]...offset[1]] = new_authority
242
- end
243
- parsed = self.parse(uri)
244
- if parsed.scheme =~ /^[^\/?#\.]+\.[^\/?#]+$/
245
- parsed = self.parse(hints[:scheme] + "://" + uri)
246
- end
247
- if parsed.path.include?(".")
248
- if parsed.path[/\b@\b/]
249
- parsed.scheme = "mailto" unless parsed.scheme
250
- elsif new_host = parsed.path[/^([^\/]+\.[^\/]*)/, 1]
251
- parsed.defer_validation do
252
- new_path = parsed.path.sub(
253
- Regexp.new("^" + Regexp.escape(new_host)), EMPTY_STR)
254
- parsed.host = new_host
255
- parsed.path = new_path
256
- parsed.scheme = hints[:scheme] unless parsed.scheme
257
- end
258
- end
259
- end
260
- return parsed
261
- end
262
-
263
- ##
264
- # Converts a path to a file scheme URI. If the path supplied is
265
- # relative, it will be returned as a relative URI. If the path supplied
266
- # is actually a non-file URI, it will parse the URI as if it had been
267
- # parsed with <code>Addressable::URI.parse</code>. Handles all of the
268
- # various Microsoft-specific formats for specifying paths.
269
- #
270
- # @param [String, Addressable::URI, #to_str] path
271
- # Typically a <code>String</code> path to a file or directory, but
272
- # will return a sensible return value if an absolute URI is supplied
273
- # instead.
274
- #
275
- # @return [Addressable::URI]
276
- # The parsed file scheme URI or the original URI if some other URI
277
- # scheme was provided.
278
- #
279
- # @example
280
- # base = Addressable::URI.convert_path("/absolute/path/")
281
- # uri = Addressable::URI.convert_path("relative/path")
282
- # (base + uri).to_s
283
- # #=> "file:///absolute/path/relative/path"
284
- #
285
- # Addressable::URI.convert_path(
286
- # "c:\\windows\\My Documents 100%20\\foo.txt"
287
- # ).to_s
288
- # #=> "file:///c:/windows/My%20Documents%20100%20/foo.txt"
289
- #
290
- # Addressable::URI.convert_path("http://example.com/").to_s
291
- # #=> "http://example.com/"
292
- def self.convert_path(path)
293
- # If we were given nil, return nil.
294
- return nil unless path
295
- # If a URI object is passed, just return itself.
296
- return path if path.kind_of?(self)
297
- unless path.respond_to?(:to_str)
298
- raise TypeError, "Can't convert #{path.class} into String."
299
- end
300
- # Otherwise, convert to a String
301
- path = path.to_str.strip
302
-
303
- path.sub!(/^file:\/?\/?/, EMPTY_STR) if path =~ /^file:\/?\/?/
304
- path = SLASH + path if path =~ /^([a-zA-Z])[\|:]/
305
- uri = self.parse(path)
306
-
307
- if uri.scheme == nil
308
- # Adjust windows-style uris
309
- uri.path.sub!(/^\/?([a-zA-Z])[\|:][\\\/]/) do
310
- "/#{$1.downcase}:/"
311
- end
312
- uri.path.tr!("\\", SLASH)
313
- if File.exist?(uri.path) &&
314
- File.stat(uri.path).directory?
315
- uri.path.chomp!(SLASH)
316
- uri.path = uri.path + '/'
317
- end
318
-
319
- # If the path is absolute, set the scheme and host.
320
- if uri.path.start_with?(SLASH)
321
- uri.scheme = "file"
322
- uri.host = EMPTY_STR
323
- end
324
- uri.normalize!
325
- end
326
-
327
- return uri
328
- end
329
-
330
- ##
331
- # Joins several URIs together.
332
- #
333
- # @param [String, Addressable::URI, #to_str] *uris
334
- # The URIs to join.
335
- #
336
- # @return [Addressable::URI] The joined URI.
337
- #
338
- # @example
339
- # base = "http://example.com/"
340
- # uri = Addressable::URI.parse("relative/path")
341
- # Addressable::URI.join(base, uri)
342
- # #=> #<Addressable::URI:0xcab390 URI:http://example.com/relative/path>
343
- def self.join(*uris)
344
- uri_objects = uris.collect do |uri|
345
- unless uri.respond_to?(:to_str)
346
- raise TypeError, "Can't convert #{uri.class} into String."
347
- end
348
- uri.kind_of?(self) ? uri : self.parse(uri.to_str)
349
- end
350
- result = uri_objects.shift.dup
351
- uri_objects.each do |uri|
352
- result.join!(uri)
353
- end
354
- return result
355
- end
356
-
357
- ##
358
- # Tables used to optimize encoding operations in `self.encode_component`
359
- # and `self.normalize_component`
360
- SEQUENCE_ENCODING_TABLE = (0..255).map do |byte|
361
- format("%02x", byte).freeze
362
- end.freeze
363
-
364
- SEQUENCE_UPCASED_PERCENT_ENCODING_TABLE = (0..255).map do |byte|
365
- format("%%%02X", byte).freeze
366
- end.freeze
367
-
368
- ##
369
- # Percent encodes a URI component.
370
- #
371
- # @param [String, #to_str] component The URI component to encode.
372
- #
373
- # @param [String, Regexp] character_class
374
- # The characters which are not percent encoded. If a <code>String</code>
375
- # is passed, the <code>String</code> must be formatted as a regular
376
- # expression character class. (Do not include the surrounding square
377
- # brackets.) For example, <code>"b-zB-Z0-9"</code> would cause
378
- # everything but the letters 'b' through 'z' and the numbers '0' through
379
- # '9' to be percent encoded. If a <code>Regexp</code> is passed, the
380
- # value <code>/[^b-zB-Z0-9]/</code> would have the same effect. A set of
381
- # useful <code>String</code> values may be found in the
382
- # <code>Addressable::URI::CharacterClasses</code> module. The default
383
- # value is the reserved plus unreserved character classes specified in
384
- # <a href="http://www.ietf.org/rfc/rfc3986.txt">RFC 3986</a>.
385
- #
386
- # @param [Regexp] upcase_encoded
387
- # A string of characters that may already be percent encoded, and whose
388
- # encodings should be upcased. This allows normalization of percent
389
- # encodings for characters not included in the
390
- # <code>character_class</code>.
391
- #
392
- # @return [String] The encoded component.
393
- #
394
- # @example
395
- # Addressable::URI.encode_component("simple/example", "b-zB-Z0-9")
396
- # => "simple%2Fex%61mple"
397
- # Addressable::URI.encode_component("simple/example", /[^b-zB-Z0-9]/)
398
- # => "simple%2Fex%61mple"
399
- # Addressable::URI.encode_component(
400
- # "simple/example", Addressable::URI::CharacterClasses::UNRESERVED
401
- # )
402
- # => "simple%2Fexample"
403
- def self.encode_component(component, character_class=CharacterClassesRegexps::RESERVED_AND_UNRESERVED, upcase_encoded='')
404
- return nil if component.nil?
405
-
406
- begin
407
- if component.kind_of?(Symbol) ||
408
- component.kind_of?(Numeric) ||
409
- component.kind_of?(TrueClass) ||
410
- component.kind_of?(FalseClass)
411
- component = component.to_s
412
- else
413
- component = component.to_str
414
- end
415
- rescue TypeError, NoMethodError
416
- raise TypeError, "Can't convert #{component.class} into String."
417
- end if !component.is_a? String
418
-
419
- if ![String, Regexp].include?(character_class.class)
420
- raise TypeError,
421
- "Expected String or Regexp, got #{character_class.inspect}"
422
- end
423
- if character_class.kind_of?(String)
424
- character_class = /[^#{character_class}]/
425
- end
426
- # We can't perform regexps on invalid UTF sequences, but
427
- # here we need to, so switch to ASCII.
428
- component = component.dup
429
- component.force_encoding(Encoding::ASCII_8BIT)
430
- # Avoiding gsub! because there are edge cases with frozen strings
431
- component = component.gsub(character_class) do |char|
432
- SEQUENCE_UPCASED_PERCENT_ENCODING_TABLE[char.ord]
433
- end
434
- if upcase_encoded.length > 0
435
- upcase_encoded_chars = upcase_encoded.bytes.map do |byte|
436
- SEQUENCE_ENCODING_TABLE[byte]
437
- end
438
- component = component.gsub(/%(#{upcase_encoded_chars.join('|')})/,
439
- &:upcase)
440
- end
441
-
442
- return component
443
- end
444
-
445
- class << self
446
- alias_method :escape_component, :encode_component
447
- end
448
-
449
- ##
450
- # Unencodes any percent encoded characters within a URI component.
451
- # This method may be used for unencoding either components or full URIs,
452
- # however, it is recommended to use the <code>unencode_component</code>
453
- # alias when unencoding components.
454
- #
455
- # @param [String, Addressable::URI, #to_str] uri
456
- # The URI or component to unencode.
457
- #
458
- # @param [Class] return_type
459
- # The type of object to return.
460
- # This value may only be set to <code>String</code> or
461
- # <code>Addressable::URI</code>. All other values are invalid. Defaults
462
- # to <code>String</code>.
463
- #
464
- # @param [String] leave_encoded
465
- # A string of characters to leave encoded. If a percent encoded character
466
- # in this list is encountered then it will remain percent encoded.
467
- #
468
- # @return [String, Addressable::URI]
469
- # The unencoded component or URI.
470
- # The return type is determined by the <code>return_type</code>
471
- # parameter.
472
- def self.unencode(uri, return_type=String, leave_encoded='')
473
- return nil if uri.nil?
474
-
475
- begin
476
- uri = uri.to_str
477
- rescue NoMethodError, TypeError
478
- raise TypeError, "Can't convert #{uri.class} into String."
479
- end if !uri.is_a? String
480
- if ![String, ::Addressable::URI].include?(return_type)
481
- raise TypeError,
482
- "Expected Class (String or Addressable::URI), " +
483
- "got #{return_type.inspect}"
484
- end
485
-
486
- result = uri.gsub(/%[0-9a-f]{2}/i) do |sequence|
487
- c = sequence[1..3].to_i(16).chr
488
- c.force_encoding(sequence.encoding)
489
- leave_encoded.include?(c) ? sequence : c
490
- end
491
-
492
- result.force_encoding(Encoding::UTF_8)
493
- if return_type == String
494
- return result
495
- elsif return_type == ::Addressable::URI
496
- return ::Addressable::URI.parse(result)
497
- end
498
- end
499
-
500
- class << self
501
- alias_method :unescape, :unencode
502
- alias_method :unencode_component, :unencode
503
- alias_method :unescape_component, :unencode
504
- end
505
-
506
-
507
- ##
508
- # Normalizes the encoding of a URI component.
509
- #
510
- # @param [String, #to_str] component The URI component to encode.
511
- #
512
- # @param [String, Regexp] character_class
513
- # The characters which are not percent encoded. If a <code>String</code>
514
- # is passed, the <code>String</code> must be formatted as a regular
515
- # expression character class. (Do not include the surrounding square
516
- # brackets.) For example, <code>"b-zB-Z0-9"</code> would cause
517
- # everything but the letters 'b' through 'z' and the numbers '0'
518
- # through '9' to be percent encoded. If a <code>Regexp</code> is passed,
519
- # the value <code>/[^b-zB-Z0-9]/</code> would have the same effect. A
520
- # set of useful <code>String</code> values may be found in the
521
- # <code>Addressable::URI::CharacterClasses</code> module. The default
522
- # value is the reserved plus unreserved character classes specified in
523
- # <a href="http://www.ietf.org/rfc/rfc3986.txt">RFC 3986</a>.
524
- #
525
- # @param [String] leave_encoded
526
- # When <code>character_class</code> is a <code>String</code> then
527
- # <code>leave_encoded</code> is a string of characters that should remain
528
- # percent encoded while normalizing the component; if they appear percent
529
- # encoded in the original component, then they will be upcased ("%2f"
530
- # normalized to "%2F") but otherwise left alone.
531
- #
532
- # @return [String] The normalized component.
533
- #
534
- # @example
535
- # Addressable::URI.normalize_component("simpl%65/%65xampl%65", "b-zB-Z")
536
- # => "simple%2Fex%61mple"
537
- # Addressable::URI.normalize_component(
538
- # "simpl%65/%65xampl%65", /[^b-zB-Z]/
539
- # )
540
- # => "simple%2Fex%61mple"
541
- # Addressable::URI.normalize_component(
542
- # "simpl%65/%65xampl%65",
543
- # Addressable::URI::CharacterClasses::UNRESERVED
544
- # )
545
- # => "simple%2Fexample"
546
- # Addressable::URI.normalize_component(
547
- # "one%20two%2fthree%26four",
548
- # "0-9a-zA-Z &/",
549
- # "/"
550
- # )
551
- # => "one two%2Fthree&four"
552
- def self.normalize_component(component, character_class=
553
- CharacterClassesRegexps::RESERVED_AND_UNRESERVED,
554
- leave_encoded='')
555
- return nil if component.nil?
556
-
557
- begin
558
- component = component.to_str
559
- rescue NoMethodError, TypeError
560
- raise TypeError, "Can't convert #{component.class} into String."
561
- end if !component.is_a? String
562
-
563
- if ![String, Regexp].include?(character_class.class)
564
- raise TypeError,
565
- "Expected String or Regexp, got #{character_class.inspect}"
566
- end
567
- if character_class.kind_of?(String)
568
- leave_re = if leave_encoded.length > 0
569
- character_class = "#{character_class}%" unless character_class.include?('%')
570
-
571
- bytes = leave_encoded.bytes
572
- leave_encoded_pattern = bytes.map { |b| SEQUENCE_ENCODING_TABLE[b] }.join('|')
573
- "|%(?!#{leave_encoded_pattern}|#{leave_encoded_pattern.upcase})"
574
- end
575
-
576
- character_class = if leave_re
577
- /[^#{character_class}]#{leave_re}/
578
- else
579
- /[^#{character_class}]/
580
- end
581
- end
582
- # We can't perform regexps on invalid UTF sequences, but
583
- # here we need to, so switch to ASCII.
584
- component = component.dup
585
- component.force_encoding(Encoding::ASCII_8BIT)
586
- unencoded = self.unencode_component(component, String, leave_encoded)
587
- begin
588
- encoded = self.encode_component(
589
- unencoded.unicode_normalize(:nfc),
590
- character_class,
591
- leave_encoded
592
- )
593
- rescue ArgumentError
594
- encoded = self.encode_component(unencoded)
595
- end
596
- encoded.force_encoding(Encoding::UTF_8)
597
- return encoded
598
- end
599
-
600
- ##
601
- # Percent encodes any special characters in the URI.
602
- #
603
- # @param [String, Addressable::URI, #to_str] uri
604
- # The URI to encode.
605
- #
606
- # @param [Class] return_type
607
- # The type of object to return.
608
- # This value may only be set to <code>String</code> or
609
- # <code>Addressable::URI</code>. All other values are invalid. Defaults
610
- # to <code>String</code>.
611
- #
612
- # @return [String, Addressable::URI]
613
- # The encoded URI.
614
- # The return type is determined by the <code>return_type</code>
615
- # parameter.
616
- def self.encode(uri, return_type=String)
617
- return nil if uri.nil?
618
-
619
- begin
620
- uri = uri.to_str
621
- rescue NoMethodError, TypeError
622
- raise TypeError, "Can't convert #{uri.class} into String."
623
- end if !uri.is_a? String
624
-
625
- if ![String, ::Addressable::URI].include?(return_type)
626
- raise TypeError,
627
- "Expected Class (String or Addressable::URI), " +
628
- "got #{return_type.inspect}"
629
- end
630
- uri_object = uri.kind_of?(self) ? uri : self.parse(uri)
631
- encoded_uri = Addressable::URI.new(
632
- :scheme => self.encode_component(uri_object.scheme,
633
- Addressable::URI::CharacterClassesRegexps::SCHEME),
634
- :authority => self.encode_component(uri_object.authority,
635
- Addressable::URI::CharacterClassesRegexps::AUTHORITY),
636
- :path => self.encode_component(uri_object.path,
637
- Addressable::URI::CharacterClassesRegexps::PATH),
638
- :query => self.encode_component(uri_object.query,
639
- Addressable::URI::CharacterClassesRegexps::QUERY),
640
- :fragment => self.encode_component(uri_object.fragment,
641
- Addressable::URI::CharacterClassesRegexps::FRAGMENT)
642
- )
643
- if return_type == String
644
- return encoded_uri.to_s
645
- elsif return_type == ::Addressable::URI
646
- return encoded_uri
647
- end
648
- end
649
-
650
- class << self
651
- alias_method :escape, :encode
652
- end
653
-
654
- ##
655
- # Normalizes the encoding of a URI. Characters within a hostname are
656
- # not percent encoded to allow for internationalized domain names.
657
- #
658
- # @param [String, Addressable::URI, #to_str] uri
659
- # The URI to encode.
660
- #
661
- # @param [Class] return_type
662
- # The type of object to return.
663
- # This value may only be set to <code>String</code> or
664
- # <code>Addressable::URI</code>. All other values are invalid. Defaults
665
- # to <code>String</code>.
666
- #
667
- # @return [String, Addressable::URI]
668
- # The encoded URI.
669
- # The return type is determined by the <code>return_type</code>
670
- # parameter.
671
- def self.normalized_encode(uri, return_type=String)
672
- begin
673
- uri = uri.to_str
674
- rescue NoMethodError, TypeError
675
- raise TypeError, "Can't convert #{uri.class} into String."
676
- end if !uri.is_a? String
677
-
678
- if ![String, ::Addressable::URI].include?(return_type)
679
- raise TypeError,
680
- "Expected Class (String or Addressable::URI), " +
681
- "got #{return_type.inspect}"
682
- end
683
- uri_object = uri.kind_of?(self) ? uri : self.parse(uri)
684
- components = {
685
- :scheme => self.unencode_component(uri_object.scheme),
686
- :user => self.unencode_component(uri_object.user),
687
- :password => self.unencode_component(uri_object.password),
688
- :host => self.unencode_component(uri_object.host),
689
- :port => (uri_object.port.nil? ? nil : uri_object.port.to_s),
690
- :path => self.unencode_component(uri_object.path),
691
- :query => self.unencode_component(uri_object.query),
692
- :fragment => self.unencode_component(uri_object.fragment)
693
- }
694
- components.each do |key, value|
695
- if value != nil
696
- begin
697
- components[key] = value.to_str.unicode_normalize(:nfc)
698
- rescue ArgumentError
699
- # Likely a malformed UTF-8 character, skip unicode normalization
700
- components[key] = value.to_str
701
- end
702
- end
703
- end
704
- encoded_uri = Addressable::URI.new(
705
- :scheme => self.encode_component(components[:scheme],
706
- Addressable::URI::CharacterClassesRegexps::SCHEME),
707
- :user => self.encode_component(components[:user],
708
- Addressable::URI::CharacterClassesRegexps::UNRESERVED),
709
- :password => self.encode_component(components[:password],
710
- Addressable::URI::CharacterClassesRegexps::UNRESERVED),
711
- :host => components[:host],
712
- :port => components[:port],
713
- :path => self.encode_component(components[:path],
714
- Addressable::URI::CharacterClassesRegexps::PATH),
715
- :query => self.encode_component(components[:query],
716
- Addressable::URI::CharacterClassesRegexps::QUERY),
717
- :fragment => self.encode_component(components[:fragment],
718
- Addressable::URI::CharacterClassesRegexps::FRAGMENT)
719
- )
720
- if return_type == String
721
- return encoded_uri.to_s
722
- elsif return_type == ::Addressable::URI
723
- return encoded_uri
724
- end
725
- end
726
-
727
- ##
728
- # Encodes a set of key/value pairs according to the rules for the
729
- # <code>application/x-www-form-urlencoded</code> MIME type.
730
- #
731
- # @param [#to_hash, #to_ary] form_values
732
- # The form values to encode.
733
- #
734
- # @param [TrueClass, FalseClass] sort
735
- # Sort the key/value pairs prior to encoding.
736
- # Defaults to <code>false</code>.
737
- #
738
- # @return [String]
739
- # The encoded value.
740
- def self.form_encode(form_values, sort=false)
741
- if form_values.respond_to?(:to_hash)
742
- form_values = form_values.to_hash.to_a
743
- elsif form_values.respond_to?(:to_ary)
744
- form_values = form_values.to_ary
745
- else
746
- raise TypeError, "Can't convert #{form_values.class} into Array."
747
- end
748
-
749
- form_values = form_values.inject([]) do |accu, (key, value)|
750
- if value.kind_of?(Array)
751
- value.each do |v|
752
- accu << [key.to_s, v.to_s]
753
- end
754
- else
755
- accu << [key.to_s, value.to_s]
756
- end
757
- accu
758
- end
759
-
760
- if sort
761
- # Useful for OAuth and optimizing caching systems
762
- form_values = form_values.sort
763
- end
764
- escaped_form_values = form_values.map do |(key, value)|
765
- # Line breaks are CRLF pairs
766
- [
767
- self.encode_component(
768
- key.gsub(/(\r\n|\n|\r)/, "\r\n"),
769
- CharacterClassesRegexps::UNRESERVED
770
- ).gsub("%20", "+"),
771
- self.encode_component(
772
- value.gsub(/(\r\n|\n|\r)/, "\r\n"),
773
- CharacterClassesRegexps::UNRESERVED
774
- ).gsub("%20", "+")
775
- ]
776
- end
777
- return escaped_form_values.map do |(key, value)|
778
- "#{key}=#{value}"
779
- end.join("&")
780
- end
781
-
782
- ##
783
- # Decodes a <code>String</code> according to the rules for the
784
- # <code>application/x-www-form-urlencoded</code> MIME type.
785
- #
786
- # @param [String, #to_str] encoded_value
787
- # The form values to decode.
788
- #
789
- # @return [Array]
790
- # The decoded values.
791
- # This is not a <code>Hash</code> because of the possibility for
792
- # duplicate keys.
793
- def self.form_unencode(encoded_value)
794
- if !encoded_value.respond_to?(:to_str)
795
- raise TypeError, "Can't convert #{encoded_value.class} into String."
796
- end
797
- encoded_value = encoded_value.to_str
798
- split_values = encoded_value.split("&").map do |pair|
799
- pair.split("=", 2)
800
- end
801
- return split_values.map do |(key, value)|
802
- [
803
- key ? self.unencode_component(
804
- key.gsub("+", "%20")).gsub(/(\r\n|\n|\r)/, "\n") : nil,
805
- value ? (self.unencode_component(
806
- value.gsub("+", "%20")).gsub(/(\r\n|\n|\r)/, "\n")) : nil
807
- ]
808
- end
809
- end
810
-
811
- ##
812
- # Creates a new uri object from component parts.
813
- #
814
- # @option [String, #to_str] scheme The scheme component.
815
- # @option [String, #to_str] user The user component.
816
- # @option [String, #to_str] password The password component.
817
- # @option [String, #to_str] userinfo
818
- # The userinfo component. If this is supplied, the user and password
819
- # components must be omitted.
820
- # @option [String, #to_str] host The host component.
821
- # @option [String, #to_str] port The port component.
822
- # @option [String, #to_str] authority
823
- # The authority component. If this is supplied, the user, password,
824
- # userinfo, host, and port components must be omitted.
825
- # @option [String, #to_str] path The path component.
826
- # @option [String, #to_str] query The query component.
827
- # @option [String, #to_str] fragment The fragment component.
828
- #
829
- # @return [Addressable::URI] The constructed URI object.
830
- def initialize(options={})
831
- if options.has_key?(:authority)
832
- if (options.keys & [:userinfo, :user, :password, :host, :port]).any?
833
- raise ArgumentError,
834
- "Cannot specify both an authority and any of the components " +
835
- "within the authority."
836
- end
837
- end
838
- if options.has_key?(:userinfo)
839
- if (options.keys & [:user, :password]).any?
840
- raise ArgumentError,
841
- "Cannot specify both a userinfo and either the user or password."
842
- end
843
- end
844
-
845
- reset_ivs
846
-
847
- defer_validation do
848
- # Bunch of crazy logic required because of the composite components
849
- # like userinfo and authority.
850
- self.scheme = options[:scheme] if options[:scheme]
851
- self.user = options[:user] if options[:user]
852
- self.password = options[:password] if options[:password]
853
- self.userinfo = options[:userinfo] if options[:userinfo]
854
- self.host = options[:host] if options[:host]
855
- self.port = options[:port] if options[:port]
856
- self.authority = options[:authority] if options[:authority]
857
- self.path = options[:path] if options[:path]
858
- self.query = options[:query] if options[:query]
859
- self.query_values = options[:query_values] if options[:query_values]
860
- self.fragment = options[:fragment] if options[:fragment]
861
- end
862
-
863
- to_s # force path validation
864
- end
865
-
866
- ##
867
- # Freeze URI, initializing instance variables.
868
- #
869
- # @return [Addressable::URI] The frozen URI object.
870
- def freeze
871
- self.normalized_scheme
872
- self.normalized_user
873
- self.normalized_password
874
- self.normalized_userinfo
875
- self.normalized_host
876
- self.normalized_port
877
- self.normalized_authority
878
- self.normalized_site
879
- self.normalized_path
880
- self.normalized_query
881
- self.normalized_fragment
882
- self.hash
883
- super
884
- end
885
-
886
- ##
887
- # The scheme component for this URI.
888
- #
889
- # @return [String] The scheme component.
890
- attr_reader :scheme
891
-
892
- ##
893
- # The scheme component for this URI, normalized.
894
- #
895
- # @return [String] The scheme component, normalized.
896
- def normalized_scheme
897
- return nil unless self.scheme
898
- if @normalized_scheme == NONE
899
- @normalized_scheme = if self.scheme =~ /^\s*ssh\+svn\s*$/i
900
- "svn+ssh".dup
901
- else
902
- Addressable::URI.normalize_component(
903
- self.scheme.strip.downcase,
904
- Addressable::URI::NormalizeCharacterClasses::SCHEME
905
- )
906
- end
907
- end
908
- # All normalized values should be UTF-8
909
- force_utf8_encoding_if_needed(@normalized_scheme)
910
- @normalized_scheme
911
- end
912
-
913
- ##
914
- # Sets the scheme component for this URI.
915
- #
916
- # @param [String, #to_str] new_scheme The new scheme component.
917
- def scheme=(new_scheme)
918
- if new_scheme && !new_scheme.respond_to?(:to_str)
919
- raise TypeError, "Can't convert #{new_scheme.class} into String."
920
- elsif new_scheme
921
- new_scheme = new_scheme.to_str
922
- end
923
- if new_scheme && new_scheme !~ /\A[a-z][a-z0-9\.\+\-]*\z/i
924
- raise InvalidURIError, "Invalid scheme format: '#{new_scheme}'"
925
- end
926
- @scheme = new_scheme
927
- @scheme = nil if @scheme.to_s.strip.empty?
928
-
929
- # Reset dependent values
930
- @normalized_scheme = NONE
931
- remove_composite_values
932
-
933
- # Ensure we haven't created an invalid URI
934
- validate()
935
- end
936
-
937
- ##
938
- # The user component for this URI.
939
- #
940
- # @return [String] The user component.
941
- attr_reader :user
942
-
943
- ##
944
- # The user component for this URI, normalized.
945
- #
946
- # @return [String] The user component, normalized.
947
- def normalized_user
948
- return nil unless self.user
949
- return @normalized_user unless @normalized_user == NONE
950
- @normalized_user = begin
951
- if normalized_scheme =~ /https?/ && self.user.strip.empty? &&
952
- (!self.password || self.password.strip.empty?)
953
- nil
954
- else
955
- Addressable::URI.normalize_component(
956
- self.user.strip,
957
- Addressable::URI::NormalizeCharacterClasses::UNRESERVED
958
- )
959
- end
960
- end
961
- # All normalized values should be UTF-8
962
- force_utf8_encoding_if_needed(@normalized_user)
963
- @normalized_user
964
- end
965
-
966
- ##
967
- # Sets the user component for this URI.
968
- #
969
- # @param [String, #to_str] new_user The new user component.
970
- def user=(new_user)
971
- if new_user && !new_user.respond_to?(:to_str)
972
- raise TypeError, "Can't convert #{new_user.class} into String."
973
- end
974
- @user = new_user ? new_user.to_str : nil
975
-
976
- # You can't have a nil user with a non-nil password
977
- if password != nil
978
- @user = EMPTY_STR unless user
979
- end
980
-
981
- # Reset dependent values
982
- @userinfo = nil
983
- @normalized_userinfo = NONE
984
- @authority = nil
985
- @normalized_user = NONE
986
- remove_composite_values
987
-
988
- # Ensure we haven't created an invalid URI
989
- validate()
990
- end
991
-
992
- ##
993
- # The password component for this URI.
994
- #
995
- # @return [String] The password component.
996
- attr_reader :password
997
-
998
- ##
999
- # The password component for this URI, normalized.
1000
- #
1001
- # @return [String] The password component, normalized.
1002
- def normalized_password
1003
- return nil unless self.password
1004
- return @normalized_password unless @normalized_password == NONE
1005
- @normalized_password = begin
1006
- if self.normalized_scheme =~ /https?/ && self.password.strip.empty? &&
1007
- (!self.user || self.user.strip.empty?)
1008
- nil
1009
- else
1010
- Addressable::URI.normalize_component(
1011
- self.password.strip,
1012
- Addressable::URI::NormalizeCharacterClasses::UNRESERVED
1013
- )
1014
- end
1015
- end
1016
- # All normalized values should be UTF-8
1017
- force_utf8_encoding_if_needed(@normalized_password)
1018
- @normalized_password
1019
- end
1020
-
1021
- ##
1022
- # Sets the password component for this URI.
1023
- #
1024
- # @param [String, #to_str] new_password The new password component.
1025
- def password=(new_password)
1026
- if new_password && !new_password.respond_to?(:to_str)
1027
- raise TypeError, "Can't convert #{new_password.class} into String."
1028
- end
1029
- @password = new_password ? new_password.to_str : nil
1030
-
1031
- # You can't have a nil user with a non-nil password
1032
- if @password != nil
1033
- self.user = EMPTY_STR if user.nil?
1034
- end
1035
-
1036
- # Reset dependent values
1037
- @userinfo = nil
1038
- @normalized_userinfo = NONE
1039
- @authority = nil
1040
- @normalized_password = NONE
1041
- remove_composite_values
1042
-
1043
- # Ensure we haven't created an invalid URI
1044
- validate()
1045
- end
1046
-
1047
- ##
1048
- # The userinfo component for this URI.
1049
- # Combines the user and password components.
1050
- #
1051
- # @return [String] The userinfo component.
1052
- def userinfo
1053
- current_user = self.user
1054
- current_password = self.password
1055
- (current_user || current_password) && @userinfo ||= begin
1056
- if current_user && current_password
1057
- "#{current_user}:#{current_password}"
1058
- elsif current_user && !current_password
1059
- "#{current_user}"
1060
- end
1061
- end
1062
- end
1063
-
1064
- ##
1065
- # The userinfo component for this URI, normalized.
1066
- #
1067
- # @return [String] The userinfo component, normalized.
1068
- def normalized_userinfo
1069
- return nil unless self.userinfo
1070
- return @normalized_userinfo unless @normalized_userinfo == NONE
1071
- @normalized_userinfo = begin
1072
- current_user = self.normalized_user
1073
- current_password = self.normalized_password
1074
- if !current_user && !current_password
1075
- nil
1076
- elsif current_user && current_password
1077
- "#{current_user}:#{current_password}".dup
1078
- elsif current_user && !current_password
1079
- "#{current_user}".dup
1080
- end
1081
- end
1082
- # All normalized values should be UTF-8
1083
- force_utf8_encoding_if_needed(@normalized_userinfo)
1084
- @normalized_userinfo
1085
- end
1086
-
1087
- ##
1088
- # Sets the userinfo component for this URI.
1089
- #
1090
- # @param [String, #to_str] new_userinfo The new userinfo component.
1091
- def userinfo=(new_userinfo)
1092
- if new_userinfo && !new_userinfo.respond_to?(:to_str)
1093
- raise TypeError, "Can't convert #{new_userinfo.class} into String."
1094
- end
1095
- new_user, new_password = if new_userinfo
1096
- [
1097
- new_userinfo.to_str.strip[/^(.*):/, 1],
1098
- new_userinfo.to_str.strip[/:(.*)$/, 1]
1099
- ]
1100
- else
1101
- [nil, nil]
1102
- end
1103
-
1104
- # Password assigned first to ensure validity in case of nil
1105
- self.password = new_password
1106
- self.user = new_user
1107
-
1108
- # Reset dependent values
1109
- @authority = nil
1110
- remove_composite_values
1111
-
1112
- # Ensure we haven't created an invalid URI
1113
- validate()
1114
- end
1115
-
1116
- ##
1117
- # The host component for this URI.
1118
- #
1119
- # @return [String] The host component.
1120
- attr_reader :host
1121
-
1122
- ##
1123
- # The host component for this URI, normalized.
1124
- #
1125
- # @return [String] The host component, normalized.
1126
- def normalized_host
1127
- return nil unless self.host
1128
-
1129
- @normalized_host ||= begin
1130
- if !self.host.strip.empty?
1131
- result = ::Addressable::IDNA.to_ascii(
1132
- URI.unencode_component(self.host.strip.downcase)
1133
- )
1134
- if result =~ /[^\.]\.$/
1135
- # Single trailing dots are unnecessary.
1136
- result = result[0...-1]
1137
- end
1138
- result = Addressable::URI.normalize_component(
1139
- result,
1140
- NormalizeCharacterClasses::HOST
1141
- )
1142
- result
1143
- else
1144
- EMPTY_STR.dup
1145
- end
1146
- end
1147
- # All normalized values should be UTF-8
1148
- force_utf8_encoding_if_needed(@normalized_host)
1149
- @normalized_host
1150
- end
1151
-
1152
- ##
1153
- # Sets the host component for this URI.
1154
- #
1155
- # @param [String, #to_str] new_host The new host component.
1156
- def host=(new_host)
1157
- if new_host && !new_host.respond_to?(:to_str)
1158
- raise TypeError, "Can't convert #{new_host.class} into String."
1159
- end
1160
- @host = new_host ? new_host.to_str : nil
1161
-
1162
- # Reset dependent values
1163
- @authority = nil
1164
- @normalized_host = nil
1165
- remove_composite_values
1166
-
1167
- # Ensure we haven't created an invalid URI
1168
- validate()
1169
- end
1170
-
1171
- ##
1172
- # This method is same as URI::Generic#host except
1173
- # brackets for IPv6 (and 'IPvFuture') addresses are removed.
1174
- #
1175
- # @see Addressable::URI#host
1176
- #
1177
- # @return [String] The hostname for this URI.
1178
- def hostname
1179
- v = self.host
1180
- /\A\[(.*)\]\z/ =~ v ? $1 : v
1181
- end
1182
-
1183
- ##
1184
- # This method is same as URI::Generic#host= except
1185
- # the argument can be a bare IPv6 address (or 'IPvFuture').
1186
- #
1187
- # @see Addressable::URI#host=
1188
- #
1189
- # @param [String, #to_str] new_hostname The new hostname for this URI.
1190
- def hostname=(new_hostname)
1191
- if new_hostname &&
1192
- (new_hostname.respond_to?(:ipv4?) || new_hostname.respond_to?(:ipv6?))
1193
- new_hostname = new_hostname.to_s
1194
- elsif new_hostname && !new_hostname.respond_to?(:to_str)
1195
- raise TypeError, "Can't convert #{new_hostname.class} into String."
1196
- end
1197
- v = new_hostname ? new_hostname.to_str : nil
1198
- v = "[#{v}]" if /\A\[.*\]\z/ !~ v && /:/ =~ v
1199
- self.host = v
1200
- end
1201
-
1202
- ##
1203
- # Returns the top-level domain for this host.
1204
- #
1205
- # @example
1206
- # Addressable::URI.parse("http://www.example.co.uk").tld # => "co.uk"
1207
- def tld
1208
- PublicSuffix.parse(self.host, ignore_private: true).tld
1209
- end
1210
-
1211
- ##
1212
- # Sets the top-level domain for this URI.
1213
- #
1214
- # @param [String, #to_str] new_tld The new top-level domain.
1215
- def tld=(new_tld)
1216
- replaced_tld = host.sub(/#{tld}\z/, new_tld)
1217
- self.host = PublicSuffix::Domain.new(replaced_tld).to_s
1218
- end
1219
-
1220
- ##
1221
- # Returns the public suffix domain for this host.
1222
- #
1223
- # @example
1224
- # Addressable::URI.parse("http://www.example.co.uk").domain # => "example.co.uk"
1225
- def domain
1226
- PublicSuffix.domain(self.host, ignore_private: true)
1227
- end
1228
-
1229
- ##
1230
- # The authority component for this URI.
1231
- # Combines the user, password, host, and port components.
1232
- #
1233
- # @return [String] The authority component.
1234
- def authority
1235
- self.host && @authority ||= begin
1236
- authority = String.new
1237
- if self.userinfo != nil
1238
- authority << "#{self.userinfo}@"
1239
- end
1240
- authority << self.host
1241
- if self.port != nil
1242
- authority << ":#{self.port}"
1243
- end
1244
- authority
1245
- end
1246
- end
1247
-
1248
- ##
1249
- # The authority component for this URI, normalized.
1250
- #
1251
- # @return [String] The authority component, normalized.
1252
- def normalized_authority
1253
- return nil unless self.authority
1254
- @normalized_authority ||= begin
1255
- authority = String.new
1256
- if self.normalized_userinfo != nil
1257
- authority << "#{self.normalized_userinfo}@"
1258
- end
1259
- authority << self.normalized_host
1260
- if self.normalized_port != nil
1261
- authority << ":#{self.normalized_port}"
1262
- end
1263
- authority
1264
- end
1265
- # All normalized values should be UTF-8
1266
- force_utf8_encoding_if_needed(@normalized_authority)
1267
- @normalized_authority
1268
- end
1269
-
1270
- ##
1271
- # Sets the authority component for this URI.
1272
- #
1273
- # @param [String, #to_str] new_authority The new authority component.
1274
- def authority=(new_authority)
1275
- if new_authority
1276
- if !new_authority.respond_to?(:to_str)
1277
- raise TypeError, "Can't convert #{new_authority.class} into String."
1278
- end
1279
- new_authority = new_authority.to_str
1280
- new_userinfo = new_authority[/^([^\[\]]*)@/, 1]
1281
- if new_userinfo
1282
- new_user = new_userinfo.strip[/^([^:]*):?/, 1]
1283
- new_password = new_userinfo.strip[/:(.*)$/, 1]
1284
- end
1285
- new_host = new_authority.sub(
1286
- /^([^\[\]]*)@/, EMPTY_STR
1287
- ).sub(
1288
- /:([^:@\[\]]*?)$/, EMPTY_STR
1289
- )
1290
- new_port =
1291
- new_authority[/:([^:@\[\]]*?)$/, 1]
1292
- end
1293
-
1294
- # Password assigned first to ensure validity in case of nil
1295
- self.password = new_password
1296
- self.user = new_user
1297
- self.host = new_host
1298
- self.port = new_port
1299
-
1300
- # Reset dependent values
1301
- @userinfo = nil
1302
- @normalized_userinfo = NONE
1303
- remove_composite_values
1304
-
1305
- # Ensure we haven't created an invalid URI
1306
- validate()
1307
- end
1308
-
1309
- ##
1310
- # The origin for this URI, serialized to ASCII, as per
1311
- # RFC 6454, section 6.2.
1312
- #
1313
- # @return [String] The serialized origin.
1314
- def origin
1315
- if self.scheme && self.authority
1316
- if self.normalized_port
1317
- "#{self.normalized_scheme}://#{self.normalized_host}" +
1318
- ":#{self.normalized_port}"
1319
- else
1320
- "#{self.normalized_scheme}://#{self.normalized_host}"
1321
- end
1322
- else
1323
- "null"
1324
- end
1325
- end
1326
-
1327
- ##
1328
- # Sets the origin for this URI, serialized to ASCII, as per
1329
- # RFC 6454, section 6.2. This assignment will reset the `userinfo`
1330
- # component.
1331
- #
1332
- # @param [String, #to_str] new_origin The new origin component.
1333
- def origin=(new_origin)
1334
- if new_origin
1335
- if !new_origin.respond_to?(:to_str)
1336
- raise TypeError, "Can't convert #{new_origin.class} into String."
1337
- end
1338
- new_origin = new_origin.to_str
1339
- new_scheme = new_origin[/^([^:\/?#]+):\/\//, 1]
1340
- unless new_scheme
1341
- raise InvalidURIError, 'An origin cannot omit the scheme.'
1342
- end
1343
- new_host = new_origin[/:\/\/([^\/?#:]+)/, 1]
1344
- unless new_host
1345
- raise InvalidURIError, 'An origin cannot omit the host.'
1346
- end
1347
- new_port = new_origin[/:([^:@\[\]\/]*?)$/, 1]
1348
- end
1349
-
1350
- self.scheme = new_scheme
1351
- self.host = new_host
1352
- self.port = new_port
1353
- self.userinfo = nil
1354
-
1355
- # Reset dependent values
1356
- @userinfo = nil
1357
- @normalized_userinfo = NONE
1358
- @authority = nil
1359
- @normalized_authority = nil
1360
- remove_composite_values
1361
-
1362
- # Ensure we haven't created an invalid URI
1363
- validate()
1364
- end
1365
-
1366
- # Returns an array of known ip-based schemes. These schemes typically
1367
- # use a similar URI form:
1368
- # <code>//<user>:<password>@<host>:<port>/<url-path></code>
1369
- def self.ip_based_schemes
1370
- return self.port_mapping.keys
1371
- end
1372
-
1373
- # Returns a hash of common IP-based schemes and their default port
1374
- # numbers. Adding new schemes to this hash, as necessary, will allow
1375
- # for better URI normalization.
1376
- def self.port_mapping
1377
- PORT_MAPPING
1378
- end
1379
-
1380
- ##
1381
- # The port component for this URI.
1382
- # This is the port number actually given in the URI. This does not
1383
- # infer port numbers from default values.
1384
- #
1385
- # @return [Integer] The port component.
1386
- attr_reader :port
1387
-
1388
- ##
1389
- # The port component for this URI, normalized.
1390
- #
1391
- # @return [Integer] The port component, normalized.
1392
- def normalized_port
1393
- return nil unless self.port
1394
- return @normalized_port unless @normalized_port == NONE
1395
- @normalized_port = begin
1396
- if URI.port_mapping[self.normalized_scheme] == self.port
1397
- nil
1398
- else
1399
- self.port
1400
- end
1401
- end
1402
- end
1403
-
1404
- ##
1405
- # Sets the port component for this URI.
1406
- #
1407
- # @param [String, Integer, #to_s] new_port The new port component.
1408
- def port=(new_port)
1409
- if new_port != nil && new_port.respond_to?(:to_str)
1410
- new_port = Addressable::URI.unencode_component(new_port.to_str)
1411
- end
1412
-
1413
- if new_port.respond_to?(:valid_encoding?) && !new_port.valid_encoding?
1414
- raise InvalidURIError, "Invalid encoding in port"
1415
- end
1416
-
1417
- if new_port != nil && !(new_port.to_s =~ /^\d+$/)
1418
- raise InvalidURIError,
1419
- "Invalid port number: #{new_port.inspect}"
1420
- end
1421
-
1422
- @port = new_port.to_s.to_i
1423
- @port = nil if @port == 0
1424
-
1425
- # Reset dependent values
1426
- @authority = nil
1427
- @normalized_port = NONE
1428
- remove_composite_values
1429
-
1430
- # Ensure we haven't created an invalid URI
1431
- validate()
1432
- end
1433
-
1434
- ##
1435
- # The inferred port component for this URI.
1436
- # This method will normalize to the default port for the URI's scheme if
1437
- # the port isn't explicitly specified in the URI.
1438
- #
1439
- # @return [Integer] The inferred port component.
1440
- def inferred_port
1441
- if self.port.to_i == 0
1442
- self.default_port
1443
- else
1444
- self.port.to_i
1445
- end
1446
- end
1447
-
1448
- ##
1449
- # The default port for this URI's scheme.
1450
- # This method will always returns the default port for the URI's scheme
1451
- # regardless of the presence of an explicit port in the URI.
1452
- #
1453
- # @return [Integer] The default port.
1454
- def default_port
1455
- URI.port_mapping[self.scheme.strip.downcase] if self.scheme
1456
- end
1457
-
1458
- ##
1459
- # The combination of components that represent a site.
1460
- # Combines the scheme, user, password, host, and port components.
1461
- # Primarily useful for HTTP and HTTPS.
1462
- #
1463
- # For example, <code>"http://example.com/path?query"</code> would have a
1464
- # <code>site</code> value of <code>"http://example.com"</code>.
1465
- #
1466
- # @return [String] The components that identify a site.
1467
- def site
1468
- (self.scheme || self.authority) && @site ||= begin
1469
- site_string = "".dup
1470
- site_string << "#{self.scheme}:" if self.scheme != nil
1471
- site_string << "//#{self.authority}" if self.authority != nil
1472
- site_string
1473
- end
1474
- end
1475
-
1476
- ##
1477
- # The normalized combination of components that represent a site.
1478
- # Combines the scheme, user, password, host, and port components.
1479
- # Primarily useful for HTTP and HTTPS.
1480
- #
1481
- # For example, <code>"http://example.com/path?query"</code> would have a
1482
- # <code>site</code> value of <code>"http://example.com"</code>.
1483
- #
1484
- # @return [String] The normalized components that identify a site.
1485
- def normalized_site
1486
- return nil unless self.site
1487
- @normalized_site ||= begin
1488
- site_string = "".dup
1489
- if self.normalized_scheme != nil
1490
- site_string << "#{self.normalized_scheme}:"
1491
- end
1492
- if self.normalized_authority != nil
1493
- site_string << "//#{self.normalized_authority}"
1494
- end
1495
- site_string
1496
- end
1497
- # All normalized values should be UTF-8
1498
- force_utf8_encoding_if_needed(@normalized_site)
1499
- @normalized_site
1500
- end
1501
-
1502
- ##
1503
- # Sets the site value for this URI.
1504
- #
1505
- # @param [String, #to_str] new_site The new site value.
1506
- def site=(new_site)
1507
- if new_site
1508
- if !new_site.respond_to?(:to_str)
1509
- raise TypeError, "Can't convert #{new_site.class} into String."
1510
- end
1511
- new_site = new_site.to_str
1512
- # These two regular expressions derived from the primary parsing
1513
- # expression
1514
- self.scheme = new_site[/^(?:([^:\/?#]+):)?(?:\/\/(?:[^\/?#]*))?$/, 1]
1515
- self.authority = new_site[
1516
- /^(?:(?:[^:\/?#]+):)?(?:\/\/([^\/?#]*))?$/, 1
1517
- ]
1518
- else
1519
- self.scheme = nil
1520
- self.authority = nil
1521
- end
1522
- end
1523
-
1524
- ##
1525
- # The path component for this URI.
1526
- #
1527
- # @return [String] The path component.
1528
- attr_reader :path
1529
-
1530
- NORMPATH = /^(?!\/)[^\/:]*:.*$/
1531
- ##
1532
- # The path component for this URI, normalized.
1533
- #
1534
- # @return [String] The path component, normalized.
1535
- def normalized_path
1536
- @normalized_path ||= begin
1537
- path = self.path.to_s
1538
- if self.scheme == nil && path =~ NORMPATH
1539
- # Relative paths with colons in the first segment are ambiguous.
1540
- path = path.sub(":", "%2F")
1541
- end
1542
- # String#split(delimiter, -1) uses the more strict splitting behavior
1543
- # found by default in Python.
1544
- result = path.strip.split(SLASH, -1).map do |segment|
1545
- Addressable::URI.normalize_component(
1546
- segment,
1547
- Addressable::URI::NormalizeCharacterClasses::PCHAR
1548
- )
1549
- end.join(SLASH)
1550
-
1551
- result = URI.normalize_path(result)
1552
- if result.empty? &&
1553
- ["http", "https", "ftp", "tftp"].include?(self.normalized_scheme)
1554
- result = SLASH.dup
1555
- end
1556
- result
1557
- end
1558
- # All normalized values should be UTF-8
1559
- force_utf8_encoding_if_needed(@normalized_path)
1560
- @normalized_path
1561
- end
1562
-
1563
- ##
1564
- # Sets the path component for this URI.
1565
- #
1566
- # @param [String, #to_str] new_path The new path component.
1567
- def path=(new_path)
1568
- if new_path && !new_path.respond_to?(:to_str)
1569
- raise TypeError, "Can't convert #{new_path.class} into String."
1570
- end
1571
- @path = (new_path || EMPTY_STR).to_str
1572
- if !@path.empty? && @path[0..0] != SLASH && host != nil
1573
- @path = "/#{@path}"
1574
- end
1575
-
1576
- # Reset dependent values
1577
- @normalized_path = nil
1578
- remove_composite_values
1579
-
1580
- # Ensure we haven't created an invalid URI
1581
- validate()
1582
- end
1583
-
1584
- ##
1585
- # The basename, if any, of the file in the path component.
1586
- #
1587
- # @return [String] The path's basename.
1588
- def basename
1589
- # Path cannot be nil
1590
- return File.basename(self.path).sub(/;[^\/]*$/, EMPTY_STR)
1591
- end
1592
-
1593
- ##
1594
- # The extname, if any, of the file in the path component.
1595
- # Empty string if there is no extension.
1596
- #
1597
- # @return [String] The path's extname.
1598
- def extname
1599
- return nil unless self.path
1600
- return File.extname(self.basename)
1601
- end
1602
-
1603
- ##
1604
- # The query component for this URI.
1605
- #
1606
- # @return [String] The query component.
1607
- attr_reader :query
1608
-
1609
- ##
1610
- # The query component for this URI, normalized.
1611
- #
1612
- # @return [String] The query component, normalized.
1613
- def normalized_query(*flags)
1614
- return nil unless self.query
1615
- return @normalized_query unless @normalized_query == NONE
1616
- @normalized_query = begin
1617
- modified_query_class = Addressable::URI::CharacterClasses::QUERY.dup
1618
- # Make sure possible key-value pair delimiters are escaped.
1619
- modified_query_class.sub!("\\&", "").sub!("\\;", "")
1620
- pairs = (query || "").split("&", -1)
1621
- pairs.delete_if(&:empty?).uniq! if flags.include?(:compacted)
1622
- pairs.sort! if flags.include?(:sorted)
1623
- component = pairs.map do |pair|
1624
- Addressable::URI.normalize_component(
1625
- pair,
1626
- Addressable::URI::NormalizeCharacterClasses::QUERY,
1627
- "+"
1628
- )
1629
- end.join("&")
1630
- component == "" ? nil : component
1631
- end
1632
- # All normalized values should be UTF-8
1633
- force_utf8_encoding_if_needed(@normalized_query)
1634
- @normalized_query
1635
- end
1636
-
1637
- ##
1638
- # Sets the query component for this URI.
1639
- #
1640
- # @param [String, #to_str] new_query The new query component.
1641
- def query=(new_query)
1642
- if new_query && !new_query.respond_to?(:to_str)
1643
- raise TypeError, "Can't convert #{new_query.class} into String."
1644
- end
1645
- @query = new_query ? new_query.to_str : nil
1646
-
1647
- # Reset dependent values
1648
- @normalized_query = NONE
1649
- remove_composite_values
1650
- end
1651
-
1652
- ##
1653
- # Converts the query component to a Hash value.
1654
- #
1655
- # @param [Class] return_type The return type desired. Value must be either
1656
- # `Hash` or `Array`.
1657
- #
1658
- # @return [Hash, Array, nil] The query string parsed as a Hash or Array
1659
- # or nil if the query string is blank.
1660
- #
1661
- # @example
1662
- # Addressable::URI.parse("?one=1&two=2&three=3").query_values
1663
- # #=> {"one" => "1", "two" => "2", "three" => "3"}
1664
- # Addressable::URI.parse("?one=two&one=three").query_values(Array)
1665
- # #=> [["one", "two"], ["one", "three"]]
1666
- # Addressable::URI.parse("?one=two&one=three").query_values(Hash)
1667
- # #=> {"one" => "three"}
1668
- # Addressable::URI.parse("?").query_values
1669
- # #=> {}
1670
- # Addressable::URI.parse("").query_values
1671
- # #=> nil
1672
- def query_values(return_type=Hash)
1673
- empty_accumulator = Array == return_type ? [] : {}
1674
- if return_type != Hash && return_type != Array
1675
- raise ArgumentError, "Invalid return type. Must be Hash or Array."
1676
- end
1677
- return nil if self.query == nil
1678
- split_query = self.query.split("&").map do |pair|
1679
- pair.split("=", 2) if pair && !pair.empty?
1680
- end.compact
1681
- return split_query.inject(empty_accumulator.dup) do |accu, pair|
1682
- # I'd rather use key/value identifiers instead of array lookups,
1683
- # but in this case I really want to maintain the exact pair structure,
1684
- # so it's best to make all changes in-place.
1685
- pair[0] = URI.unencode_component(pair[0])
1686
- if pair[1].respond_to?(:to_str)
1687
- value = pair[1].to_str
1688
- # I loathe the fact that I have to do this. Stupid HTML 4.01.
1689
- # Treating '+' as a space was just an unbelievably bad idea.
1690
- # There was nothing wrong with '%20'!
1691
- # If it ain't broke, don't fix it!
1692
- value = value.tr("+", " ") if ["http", "https", nil].include?(scheme)
1693
- pair[1] = URI.unencode_component(value)
1694
- end
1695
- if return_type == Hash
1696
- accu[pair[0]] = pair[1]
1697
- else
1698
- accu << pair
1699
- end
1700
- accu
1701
- end
1702
- end
1703
-
1704
- ##
1705
- # Sets the query component for this URI from a Hash object.
1706
- # An empty Hash or Array will result in an empty query string.
1707
- #
1708
- # @param [Hash, #to_hash, Array] new_query_values The new query values.
1709
- #
1710
- # @example
1711
- # uri.query_values = {:a => "a", :b => ["c", "d", "e"]}
1712
- # uri.query
1713
- # # => "a=a&b=c&b=d&b=e"
1714
- # uri.query_values = [['a', 'a'], ['b', 'c'], ['b', 'd'], ['b', 'e']]
1715
- # uri.query
1716
- # # => "a=a&b=c&b=d&b=e"
1717
- # uri.query_values = [['a', 'a'], ['b', ['c', 'd', 'e']]]
1718
- # uri.query
1719
- # # => "a=a&b=c&b=d&b=e"
1720
- # uri.query_values = [['flag'], ['key', 'value']]
1721
- # uri.query
1722
- # # => "flag&key=value"
1723
- def query_values=(new_query_values)
1724
- if new_query_values == nil
1725
- self.query = nil
1726
- return nil
1727
- end
1728
-
1729
- if !new_query_values.is_a?(Array)
1730
- if !new_query_values.respond_to?(:to_hash)
1731
- raise TypeError,
1732
- "Can't convert #{new_query_values.class} into Hash."
1733
- end
1734
- new_query_values = new_query_values.to_hash
1735
- new_query_values = new_query_values.map do |key, value|
1736
- key = key.to_s if key.kind_of?(Symbol)
1737
- [key, value]
1738
- end
1739
- # Useful default for OAuth and caching.
1740
- # Only to be used for non-Array inputs. Arrays should preserve order.
1741
- new_query_values.sort!
1742
- end
1743
-
1744
- # new_query_values have form [['key1', 'value1'], ['key2', 'value2']]
1745
- buffer = "".dup
1746
- new_query_values.each do |key, value|
1747
- encoded_key = URI.encode_component(
1748
- key, CharacterClassesRegexps::UNRESERVED
1749
- )
1750
- if value == nil
1751
- buffer << "#{encoded_key}&"
1752
- elsif value.kind_of?(Array)
1753
- value.each do |sub_value|
1754
- encoded_value = URI.encode_component(
1755
- sub_value, CharacterClassesRegexps::UNRESERVED
1756
- )
1757
- buffer << "#{encoded_key}=#{encoded_value}&"
1758
- end
1759
- else
1760
- encoded_value = URI.encode_component(
1761
- value, CharacterClassesRegexps::UNRESERVED
1762
- )
1763
- buffer << "#{encoded_key}=#{encoded_value}&"
1764
- end
1765
- end
1766
- self.query = buffer.chop
1767
- end
1768
-
1769
- ##
1770
- # The HTTP request URI for this URI. This is the path and the
1771
- # query string.
1772
- #
1773
- # @return [String] The request URI required for an HTTP request.
1774
- def request_uri
1775
- return nil if self.absolute? && self.scheme !~ /^https?$/i
1776
- return (
1777
- (!self.path.empty? ? self.path : SLASH) +
1778
- (self.query ? "?#{self.query}" : EMPTY_STR)
1779
- )
1780
- end
1781
-
1782
- ##
1783
- # Sets the HTTP request URI for this URI.
1784
- #
1785
- # @param [String, #to_str] new_request_uri The new HTTP request URI.
1786
- def request_uri=(new_request_uri)
1787
- if !new_request_uri.respond_to?(:to_str)
1788
- raise TypeError, "Can't convert #{new_request_uri.class} into String."
1789
- end
1790
- if self.absolute? && self.scheme !~ /^https?$/i
1791
- raise InvalidURIError,
1792
- "Cannot set an HTTP request URI for a non-HTTP URI."
1793
- end
1794
- new_request_uri = new_request_uri.to_str
1795
- path_component = new_request_uri[/^([^\?]*)\??(?:.*)$/, 1]
1796
- query_component = new_request_uri[/^(?:[^\?]*)\?(.*)$/, 1]
1797
- path_component = path_component.to_s
1798
- path_component = (!path_component.empty? ? path_component : SLASH)
1799
- self.path = path_component
1800
- self.query = query_component
1801
-
1802
- # Reset dependent values
1803
- remove_composite_values
1804
- end
1805
-
1806
- ##
1807
- # The fragment component for this URI.
1808
- #
1809
- # @return [String] The fragment component.
1810
- attr_reader :fragment
1811
-
1812
- ##
1813
- # The fragment component for this URI, normalized.
1814
- #
1815
- # @return [String] The fragment component, normalized.
1816
- def normalized_fragment
1817
- return nil unless self.fragment
1818
- return @normalized_fragment unless @normalized_fragment == NONE
1819
- @normalized_fragment = begin
1820
- component = Addressable::URI.normalize_component(
1821
- self.fragment,
1822
- Addressable::URI::NormalizeCharacterClasses::FRAGMENT
1823
- )
1824
- component == "" ? nil : component
1825
- end
1826
- # All normalized values should be UTF-8
1827
- force_utf8_encoding_if_needed(@normalized_fragment)
1828
- @normalized_fragment
1829
- end
1830
-
1831
- ##
1832
- # Sets the fragment component for this URI.
1833
- #
1834
- # @param [String, #to_str] new_fragment The new fragment component.
1835
- def fragment=(new_fragment)
1836
- if new_fragment && !new_fragment.respond_to?(:to_str)
1837
- raise TypeError, "Can't convert #{new_fragment.class} into String."
1838
- end
1839
- @fragment = new_fragment ? new_fragment.to_str : nil
1840
-
1841
- # Reset dependent values
1842
- @normalized_fragment = NONE
1843
- remove_composite_values
1844
-
1845
- # Ensure we haven't created an invalid URI
1846
- validate()
1847
- end
1848
-
1849
- ##
1850
- # Determines if the scheme indicates an IP-based protocol.
1851
- #
1852
- # @return [TrueClass, FalseClass]
1853
- # <code>true</code> if the scheme indicates an IP-based protocol.
1854
- # <code>false</code> otherwise.
1855
- def ip_based?
1856
- if self.scheme
1857
- return URI.ip_based_schemes.include?(
1858
- self.scheme.strip.downcase)
1859
- end
1860
- return false
1861
- end
1862
-
1863
- ##
1864
- # Determines if the URI is relative.
1865
- #
1866
- # @return [TrueClass, FalseClass]
1867
- # <code>true</code> if the URI is relative. <code>false</code>
1868
- # otherwise.
1869
- def relative?
1870
- return self.scheme.nil?
1871
- end
1872
-
1873
- ##
1874
- # Determines if the URI is absolute.
1875
- #
1876
- # @return [TrueClass, FalseClass]
1877
- # <code>true</code> if the URI is absolute. <code>false</code>
1878
- # otherwise.
1879
- def absolute?
1880
- return !relative?
1881
- end
1882
-
1883
- ##
1884
- # Joins two URIs together.
1885
- #
1886
- # @param [String, Addressable::URI, #to_str] The URI to join with.
1887
- #
1888
- # @return [Addressable::URI] The joined URI.
1889
- def join(uri)
1890
- if !uri.respond_to?(:to_str)
1891
- raise TypeError, "Can't convert #{uri.class} into String."
1892
- end
1893
- if !uri.kind_of?(URI)
1894
- # Otherwise, convert to a String, then parse.
1895
- uri = URI.parse(uri.to_str)
1896
- end
1897
- if uri.to_s.empty?
1898
- return self.dup
1899
- end
1900
-
1901
- joined_scheme = nil
1902
- joined_user = nil
1903
- joined_password = nil
1904
- joined_host = nil
1905
- joined_port = nil
1906
- joined_path = nil
1907
- joined_query = nil
1908
- joined_fragment = nil
1909
-
1910
- # Section 5.2.2 of RFC 3986
1911
- if uri.scheme != nil
1912
- joined_scheme = uri.scheme
1913
- joined_user = uri.user
1914
- joined_password = uri.password
1915
- joined_host = uri.host
1916
- joined_port = uri.port
1917
- joined_path = URI.normalize_path(uri.path)
1918
- joined_query = uri.query
1919
- else
1920
- if uri.authority != nil
1921
- joined_user = uri.user
1922
- joined_password = uri.password
1923
- joined_host = uri.host
1924
- joined_port = uri.port
1925
- joined_path = URI.normalize_path(uri.path)
1926
- joined_query = uri.query
1927
- else
1928
- if uri.path == nil || uri.path.empty?
1929
- joined_path = self.path
1930
- if uri.query != nil
1931
- joined_query = uri.query
1932
- else
1933
- joined_query = self.query
1934
- end
1935
- else
1936
- if uri.path[0..0] == SLASH
1937
- joined_path = URI.normalize_path(uri.path)
1938
- else
1939
- base_path = self.path.dup
1940
- base_path = EMPTY_STR if base_path == nil
1941
- base_path = URI.normalize_path(base_path)
1942
-
1943
- # Section 5.2.3 of RFC 3986
1944
- #
1945
- # Removes the right-most path segment from the base path.
1946
- if base_path.include?(SLASH)
1947
- base_path.sub!(/\/[^\/]+$/, SLASH)
1948
- else
1949
- base_path = EMPTY_STR
1950
- end
1951
-
1952
- # If the base path is empty and an authority segment has been
1953
- # defined, use a base path of SLASH
1954
- if base_path.empty? && self.authority != nil
1955
- base_path = SLASH
1956
- end
1957
-
1958
- joined_path = URI.normalize_path(base_path + uri.path)
1959
- end
1960
- joined_query = uri.query
1961
- end
1962
- joined_user = self.user
1963
- joined_password = self.password
1964
- joined_host = self.host
1965
- joined_port = self.port
1966
- end
1967
- joined_scheme = self.scheme
1968
- end
1969
- joined_fragment = uri.fragment
1970
-
1971
- return self.class.new(
1972
- :scheme => joined_scheme,
1973
- :user => joined_user,
1974
- :password => joined_password,
1975
- :host => joined_host,
1976
- :port => joined_port,
1977
- :path => joined_path,
1978
- :query => joined_query,
1979
- :fragment => joined_fragment
1980
- )
1981
- end
1982
- alias_method :+, :join
1983
-
1984
- ##
1985
- # Destructive form of <code>join</code>.
1986
- #
1987
- # @param [String, Addressable::URI, #to_str] The URI to join with.
1988
- #
1989
- # @return [Addressable::URI] The joined URI.
1990
- #
1991
- # @see Addressable::URI#join
1992
- def join!(uri)
1993
- replace_self(self.join(uri))
1994
- end
1995
-
1996
- ##
1997
- # Merges a URI with a <code>Hash</code> of components.
1998
- # This method has different behavior from <code>join</code>. Any
1999
- # components present in the <code>hash</code> parameter will override the
2000
- # original components. The path component is not treated specially.
2001
- #
2002
- # @param [Hash, Addressable::URI, #to_hash] The components to merge with.
2003
- #
2004
- # @return [Addressable::URI] The merged URI.
2005
- #
2006
- # @see Hash#merge
2007
- def merge(hash)
2008
- unless hash.respond_to?(:to_hash)
2009
- raise TypeError, "Can't convert #{hash.class} into Hash."
2010
- end
2011
- hash = hash.to_hash
2012
-
2013
- if hash.has_key?(:authority)
2014
- if (hash.keys & [:userinfo, :user, :password, :host, :port]).any?
2015
- raise ArgumentError,
2016
- "Cannot specify both an authority and any of the components " +
2017
- "within the authority."
2018
- end
2019
- end
2020
- if hash.has_key?(:userinfo)
2021
- if (hash.keys & [:user, :password]).any?
2022
- raise ArgumentError,
2023
- "Cannot specify both a userinfo and either the user or password."
2024
- end
2025
- end
2026
-
2027
- uri = self.class.new
2028
- uri.defer_validation do
2029
- # Bunch of crazy logic required because of the composite components
2030
- # like userinfo and authority.
2031
- uri.scheme =
2032
- hash.has_key?(:scheme) ? hash[:scheme] : self.scheme
2033
- if hash.has_key?(:authority)
2034
- uri.authority =
2035
- hash.has_key?(:authority) ? hash[:authority] : self.authority
2036
- end
2037
- if hash.has_key?(:userinfo)
2038
- uri.userinfo =
2039
- hash.has_key?(:userinfo) ? hash[:userinfo] : self.userinfo
2040
- end
2041
- if !hash.has_key?(:userinfo) && !hash.has_key?(:authority)
2042
- uri.user =
2043
- hash.has_key?(:user) ? hash[:user] : self.user
2044
- uri.password =
2045
- hash.has_key?(:password) ? hash[:password] : self.password
2046
- end
2047
- if !hash.has_key?(:authority)
2048
- uri.host =
2049
- hash.has_key?(:host) ? hash[:host] : self.host
2050
- uri.port =
2051
- hash.has_key?(:port) ? hash[:port] : self.port
2052
- end
2053
- uri.path =
2054
- hash.has_key?(:path) ? hash[:path] : self.path
2055
- uri.query =
2056
- hash.has_key?(:query) ? hash[:query] : self.query
2057
- uri.fragment =
2058
- hash.has_key?(:fragment) ? hash[:fragment] : self.fragment
2059
- end
2060
-
2061
- return uri
2062
- end
2063
-
2064
- ##
2065
- # Destructive form of <code>merge</code>.
2066
- #
2067
- # @param [Hash, Addressable::URI, #to_hash] The components to merge with.
2068
- #
2069
- # @return [Addressable::URI] The merged URI.
2070
- #
2071
- # @see Addressable::URI#merge
2072
- def merge!(uri)
2073
- replace_self(self.merge(uri))
2074
- end
2075
-
2076
- ##
2077
- # Returns the shortest normalized relative form of this URI that uses the
2078
- # supplied URI as a base for resolution. Returns an absolute URI if
2079
- # necessary. This is effectively the opposite of <code>route_to</code>.
2080
- #
2081
- # @param [String, Addressable::URI, #to_str] uri The URI to route from.
2082
- #
2083
- # @return [Addressable::URI]
2084
- # The normalized relative URI that is equivalent to the original URI.
2085
- def route_from(uri)
2086
- uri = URI.parse(uri).normalize
2087
- normalized_self = self.normalize
2088
- if normalized_self.relative?
2089
- raise ArgumentError, "Expected absolute URI, got: #{self.to_s}"
2090
- end
2091
- if uri.relative?
2092
- raise ArgumentError, "Expected absolute URI, got: #{uri.to_s}"
2093
- end
2094
- if normalized_self == uri
2095
- return Addressable::URI.parse("##{normalized_self.fragment}")
2096
- end
2097
- components = normalized_self.to_hash
2098
- if normalized_self.scheme == uri.scheme
2099
- components[:scheme] = nil
2100
- if normalized_self.authority == uri.authority
2101
- components[:user] = nil
2102
- components[:password] = nil
2103
- components[:host] = nil
2104
- components[:port] = nil
2105
- if normalized_self.path == uri.path
2106
- components[:path] = nil
2107
- if normalized_self.query == uri.query
2108
- components[:query] = nil
2109
- end
2110
- else
2111
- if uri.path != SLASH and components[:path]
2112
- self_splitted_path = split_path(components[:path])
2113
- uri_splitted_path = split_path(uri.path)
2114
- self_dir = self_splitted_path.shift
2115
- uri_dir = uri_splitted_path.shift
2116
- while !self_splitted_path.empty? && !uri_splitted_path.empty? and self_dir == uri_dir
2117
- self_dir = self_splitted_path.shift
2118
- uri_dir = uri_splitted_path.shift
2119
- end
2120
- components[:path] = (uri_splitted_path.fill('..') + [self_dir] + self_splitted_path).join(SLASH)
2121
- end
2122
- end
2123
- end
2124
- end
2125
- # Avoid network-path references.
2126
- if components[:host] != nil
2127
- components[:scheme] = normalized_self.scheme
2128
- end
2129
- return Addressable::URI.new(
2130
- :scheme => components[:scheme],
2131
- :user => components[:user],
2132
- :password => components[:password],
2133
- :host => components[:host],
2134
- :port => components[:port],
2135
- :path => components[:path],
2136
- :query => components[:query],
2137
- :fragment => components[:fragment]
2138
- )
2139
- end
2140
-
2141
- ##
2142
- # Returns the shortest normalized relative form of the supplied URI that
2143
- # uses this URI as a base for resolution. Returns an absolute URI if
2144
- # necessary. This is effectively the opposite of <code>route_from</code>.
2145
- #
2146
- # @param [String, Addressable::URI, #to_str] uri The URI to route to.
2147
- #
2148
- # @return [Addressable::URI]
2149
- # The normalized relative URI that is equivalent to the supplied URI.
2150
- def route_to(uri)
2151
- return URI.parse(uri).route_from(self)
2152
- end
2153
-
2154
- ##
2155
- # Returns a normalized URI object.
2156
- #
2157
- # NOTE: This method does not attempt to fully conform to specifications.
2158
- # It exists largely to correct other people's failures to read the
2159
- # specifications, and also to deal with caching issues since several
2160
- # different URIs may represent the same resource and should not be
2161
- # cached multiple times.
2162
- #
2163
- # @return [Addressable::URI] The normalized URI.
2164
- def normalize
2165
- # This is a special exception for the frequently misused feed
2166
- # URI scheme.
2167
- if normalized_scheme == "feed"
2168
- if self.to_s =~ /^feed:\/*http:\/*/
2169
- return URI.parse(
2170
- self.to_s[/^feed:\/*(http:\/*.*)/, 1]
2171
- ).normalize
2172
- end
2173
- end
2174
-
2175
- return self.class.new(
2176
- :scheme => normalized_scheme,
2177
- :authority => normalized_authority,
2178
- :path => normalized_path,
2179
- :query => normalized_query,
2180
- :fragment => normalized_fragment
2181
- )
2182
- end
2183
-
2184
- ##
2185
- # Destructively normalizes this URI object.
2186
- #
2187
- # @return [Addressable::URI] The normalized URI.
2188
- #
2189
- # @see Addressable::URI#normalize
2190
- def normalize!
2191
- replace_self(self.normalize)
2192
- end
2193
-
2194
- ##
2195
- # Creates a URI suitable for display to users. If semantic attacks are
2196
- # likely, the application should try to detect these and warn the user.
2197
- # See <a href="http://www.ietf.org/rfc/rfc3986.txt">RFC 3986</a>,
2198
- # section 7.6 for more information.
2199
- #
2200
- # @return [Addressable::URI] A URI suitable for display purposes.
2201
- def display_uri
2202
- display_uri = self.normalize
2203
- display_uri.host = ::Addressable::IDNA.to_unicode(display_uri.host)
2204
- return display_uri
2205
- end
2206
-
2207
- ##
2208
- # Returns <code>true</code> if the URI objects are equal. This method
2209
- # normalizes both URIs before doing the comparison, and allows comparison
2210
- # against <code>Strings</code>.
2211
- #
2212
- # @param [Object] uri The URI to compare.
2213
- #
2214
- # @return [TrueClass, FalseClass]
2215
- # <code>true</code> if the URIs are equivalent, <code>false</code>
2216
- # otherwise.
2217
- def ===(uri)
2218
- if uri.respond_to?(:normalize)
2219
- uri_string = uri.normalize.to_s
2220
- else
2221
- begin
2222
- uri_string = ::Addressable::URI.parse(uri).normalize.to_s
2223
- rescue InvalidURIError, TypeError
2224
- return false
2225
- end
2226
- end
2227
- return self.normalize.to_s == uri_string
2228
- end
2229
-
2230
- ##
2231
- # Returns <code>true</code> if the URI objects are equal. This method
2232
- # normalizes both URIs before doing the comparison.
2233
- #
2234
- # @param [Object] uri The URI to compare.
2235
- #
2236
- # @return [TrueClass, FalseClass]
2237
- # <code>true</code> if the URIs are equivalent, <code>false</code>
2238
- # otherwise.
2239
- def ==(uri)
2240
- return false unless uri.kind_of?(URI)
2241
- return self.normalize.to_s == uri.normalize.to_s
2242
- end
2243
-
2244
- ##
2245
- # Returns <code>true</code> if the URI objects are equal. This method
2246
- # does NOT normalize either URI before doing the comparison.
2247
- #
2248
- # @param [Object] uri The URI to compare.
2249
- #
2250
- # @return [TrueClass, FalseClass]
2251
- # <code>true</code> if the URIs are equivalent, <code>false</code>
2252
- # otherwise.
2253
- def eql?(uri)
2254
- return false unless uri.kind_of?(URI)
2255
- return self.to_s == uri.to_s
2256
- end
2257
-
2258
- ##
2259
- # A hash value that will make a URI equivalent to its normalized
2260
- # form.
2261
- #
2262
- # @return [Integer] A hash of the URI.
2263
- def hash
2264
- @hash ||= self.to_s.hash * -1
2265
- end
2266
-
2267
- ##
2268
- # Clones the URI object.
2269
- #
2270
- # @return [Addressable::URI] The cloned URI.
2271
- def dup
2272
- duplicated_uri = self.class.new(
2273
- :scheme => self.scheme ? self.scheme.dup : nil,
2274
- :user => self.user ? self.user.dup : nil,
2275
- :password => self.password ? self.password.dup : nil,
2276
- :host => self.host ? self.host.dup : nil,
2277
- :port => self.port,
2278
- :path => self.path ? self.path.dup : nil,
2279
- :query => self.query ? self.query.dup : nil,
2280
- :fragment => self.fragment ? self.fragment.dup : nil
2281
- )
2282
- return duplicated_uri
2283
- end
2284
-
2285
- ##
2286
- # Omits components from a URI.
2287
- #
2288
- # @param [Symbol] *components The components to be omitted.
2289
- #
2290
- # @return [Addressable::URI] The URI with components omitted.
2291
- #
2292
- # @example
2293
- # uri = Addressable::URI.parse("http://example.com/path?query")
2294
- # #=> #<Addressable::URI:0xcc5e7a URI:http://example.com/path?query>
2295
- # uri.omit(:scheme, :authority)
2296
- # #=> #<Addressable::URI:0xcc4d86 URI:/path?query>
2297
- def omit(*components)
2298
- invalid_components = components - [
2299
- :scheme, :user, :password, :userinfo, :host, :port, :authority,
2300
- :path, :query, :fragment
2301
- ]
2302
- unless invalid_components.empty?
2303
- raise ArgumentError,
2304
- "Invalid component names: #{invalid_components.inspect}."
2305
- end
2306
- duplicated_uri = self.dup
2307
- duplicated_uri.defer_validation do
2308
- components.each do |component|
2309
- duplicated_uri.send((component.to_s + "=").to_sym, nil)
2310
- end
2311
- duplicated_uri.user = duplicated_uri.normalized_user
2312
- end
2313
- duplicated_uri
2314
- end
2315
-
2316
- ##
2317
- # Destructive form of omit.
2318
- #
2319
- # @param [Symbol] *components The components to be omitted.
2320
- #
2321
- # @return [Addressable::URI] The URI with components omitted.
2322
- #
2323
- # @see Addressable::URI#omit
2324
- def omit!(*components)
2325
- replace_self(self.omit(*components))
2326
- end
2327
-
2328
- ##
2329
- # Determines if the URI is an empty string.
2330
- #
2331
- # @return [TrueClass, FalseClass]
2332
- # Returns <code>true</code> if empty, <code>false</code> otherwise.
2333
- def empty?
2334
- return self.to_s.empty?
2335
- end
2336
-
2337
- ##
2338
- # Converts the URI to a <code>String</code>.
2339
- #
2340
- # @return [String] The URI's <code>String</code> representation.
2341
- def to_s
2342
- if self.scheme == nil && self.path != nil && !self.path.empty? &&
2343
- self.path =~ NORMPATH
2344
- raise InvalidURIError,
2345
- "Cannot assemble URI string with ambiguous path: '#{self.path}'"
2346
- end
2347
- @uri_string ||= begin
2348
- uri_string = String.new
2349
- uri_string << "#{self.scheme}:" if self.scheme != nil
2350
- uri_string << "//#{self.authority}" if self.authority != nil
2351
- uri_string << self.path.to_s
2352
- uri_string << "?#{self.query}" if self.query != nil
2353
- uri_string << "##{self.fragment}" if self.fragment != nil
2354
- uri_string.force_encoding(Encoding::UTF_8)
2355
- uri_string
2356
- end
2357
- end
2358
-
2359
- ##
2360
- # URI's are glorified <code>Strings</code>. Allow implicit conversion.
2361
- alias_method :to_str, :to_s
2362
-
2363
- ##
2364
- # Returns a Hash of the URI components.
2365
- #
2366
- # @return [Hash] The URI as a <code>Hash</code> of components.
2367
- def to_hash
2368
- return {
2369
- :scheme => self.scheme,
2370
- :user => self.user,
2371
- :password => self.password,
2372
- :host => self.host,
2373
- :port => self.port,
2374
- :path => self.path,
2375
- :query => self.query,
2376
- :fragment => self.fragment
2377
- }
2378
- end
2379
-
2380
- ##
2381
- # Returns a <code>String</code> representation of the URI object's state.
2382
- #
2383
- # @return [String] The URI object's state, as a <code>String</code>.
2384
- def inspect
2385
- sprintf("#<%s:%#0x URI:%s>", URI.to_s, self.object_id, self.to_s)
2386
- end
2387
-
2388
- ##
2389
- # This method allows you to make several changes to a URI simultaneously,
2390
- # which separately would cause validation errors, but in conjunction,
2391
- # are valid. The URI will be revalidated as soon as the entire block has
2392
- # been executed.
2393
- #
2394
- # @param [Proc] block
2395
- # A set of operations to perform on a given URI.
2396
- def defer_validation
2397
- raise LocalJumpError, "No block given." unless block_given?
2398
- @validation_deferred = true
2399
- yield
2400
- @validation_deferred = false
2401
- validate
2402
- ensure
2403
- @validation_deferred = false
2404
- end
2405
-
2406
- def encode_with(coder)
2407
- instance_variables.each do |ivar|
2408
- value = instance_variable_get(ivar)
2409
- if value != NONE
2410
- key = ivar.to_s.slice(1..-1)
2411
- coder[key] = value
2412
- end
2413
- end
2414
- nil
2415
- end
2416
-
2417
- def init_with(coder)
2418
- reset_ivs
2419
- coder.map.each do |key, value|
2420
- instance_variable_set("@#{key}", value)
2421
- end
2422
- nil
2423
- end
2424
-
2425
- protected
2426
- SELF_REF = '.'
2427
- PARENT = '..'
2428
-
2429
- RULE_2A = /\/\.\/|\/\.$/
2430
- RULE_2B_2C = /\/([^\/]*)\/\.\.\/|\/([^\/]*)\/\.\.$/
2431
- RULE_2D = /^\.\.?\/?/
2432
- RULE_PREFIXED_PARENT = /^\/\.\.?\/|^(\/\.\.?)+\/?$/
2433
-
2434
- ##
2435
- # Resolves paths to their simplest form.
2436
- #
2437
- # @param [String] path The path to normalize.
2438
- #
2439
- # @return [String] The normalized path.
2440
- def self.normalize_path(path)
2441
- # Section 5.2.4 of RFC 3986
2442
-
2443
- return if path.nil?
2444
- normalized_path = path.dup
2445
- loop do
2446
- mod ||= normalized_path.gsub!(RULE_2A, SLASH)
2447
-
2448
- pair = normalized_path.match(RULE_2B_2C)
2449
- if pair
2450
- parent = pair[1]
2451
- current = pair[2]
2452
- else
2453
- parent = nil
2454
- current = nil
2455
- end
2456
-
2457
- regexp = "/#{Regexp.escape(parent.to_s)}/\\.\\./|"
2458
- regexp += "(/#{Regexp.escape(current.to_s)}/\\.\\.$)"
2459
-
2460
- if pair && ((parent != SELF_REF && parent != PARENT) ||
2461
- (current != SELF_REF && current != PARENT))
2462
- mod ||= normalized_path.gsub!(Regexp.new(regexp), SLASH)
2463
- end
2464
-
2465
- mod ||= normalized_path.gsub!(RULE_2D, EMPTY_STR)
2466
- # Non-standard, removes prefixed dotted segments from path.
2467
- mod ||= normalized_path.gsub!(RULE_PREFIXED_PARENT, SLASH)
2468
- break if mod.nil?
2469
- end
2470
-
2471
- normalized_path
2472
- end
2473
-
2474
- ##
2475
- # Ensures that the URI is valid.
2476
- def validate
2477
- return if !!@validation_deferred
2478
- if self.scheme != nil && self.ip_based? &&
2479
- (self.host == nil || self.host.empty?) &&
2480
- (self.path == nil || self.path.empty?)
2481
- raise InvalidURIError,
2482
- "Absolute URI missing hierarchical segment: '#{self.to_s}'"
2483
- end
2484
- if self.host == nil
2485
- if self.port != nil ||
2486
- self.user != nil ||
2487
- self.password != nil
2488
- raise InvalidURIError, "Hostname not supplied: '#{self.to_s}'"
2489
- end
2490
- end
2491
- if self.path != nil && !self.path.empty? && self.path[0..0] != SLASH &&
2492
- self.authority != nil
2493
- raise InvalidURIError,
2494
- "Cannot have a relative path with an authority set: '#{self.to_s}'"
2495
- end
2496
- if self.path != nil && !self.path.empty? &&
2497
- self.path[0..1] == SLASH + SLASH && self.authority == nil
2498
- raise InvalidURIError,
2499
- "Cannot have a path with two leading slashes " +
2500
- "without an authority set: '#{self.to_s}'"
2501
- end
2502
- unreserved = CharacterClasses::UNRESERVED
2503
- sub_delims = CharacterClasses::SUB_DELIMS
2504
- if !self.host.nil? && (self.host =~ /[<>{}\/\\\?\#\@"[[:space:]]]/ ||
2505
- (self.host[/^\[(.*)\]$/, 1] != nil && self.host[/^\[(.*)\]$/, 1] !~
2506
- Regexp.new("^[#{unreserved}#{sub_delims}:]*$")))
2507
- raise InvalidURIError, "Invalid character in host: '#{self.host.to_s}'"
2508
- end
2509
- return nil
2510
- end
2511
-
2512
- ##
2513
- # Replaces the internal state of self with the specified URI's state.
2514
- # Used in destructive operations to avoid massive code repetition.
2515
- #
2516
- # @param [Addressable::URI] uri The URI to replace <code>self</code> with.
2517
- #
2518
- # @return [Addressable::URI] <code>self</code>.
2519
- def replace_self(uri)
2520
- # Reset dependent values
2521
- reset_ivs
2522
-
2523
- @scheme = uri.scheme
2524
- @user = uri.user
2525
- @password = uri.password
2526
- @host = uri.host
2527
- @port = uri.port
2528
- @path = uri.path
2529
- @query = uri.query
2530
- @fragment = uri.fragment
2531
- return self
2532
- end
2533
-
2534
- ##
2535
- # Splits path string with "/" (slash).
2536
- # It is considered that there is empty string after last slash when
2537
- # path ends with slash.
2538
- #
2539
- # @param [String] path The path to split.
2540
- #
2541
- # @return [Array<String>] An array of parts of path.
2542
- def split_path(path)
2543
- splitted = path.split(SLASH)
2544
- splitted << EMPTY_STR if path.end_with? SLASH
2545
- splitted
2546
- end
2547
-
2548
- ##
2549
- # Resets composite values for the entire URI
2550
- #
2551
- # @api private
2552
- def remove_composite_values
2553
- @uri_string = nil
2554
- @hash = nil
2555
- end
2556
-
2557
- ##
2558
- # Converts the string to be UTF-8 if it is not already UTF-8
2559
- #
2560
- # @api private
2561
- def force_utf8_encoding_if_needed(str)
2562
- if str && str.encoding != Encoding::UTF_8
2563
- str.force_encoding(Encoding::UTF_8)
2564
- end
2565
- end
2566
-
2567
- private
2568
-
2569
- ##
2570
- # Resets instance variables
2571
- #
2572
- # @api private
2573
- def reset_ivs
2574
- @scheme = nil
2575
- @user = nil
2576
- @normalized_scheme = NONE
2577
- @normalized_user = NONE
2578
- @uri_string = nil
2579
- @hash = nil
2580
- @userinfo = nil
2581
- @normalized_userinfo = NONE
2582
- @authority = nil
2583
- @password = nil
2584
- @normalized_authority = nil
2585
- @port = nil
2586
- @normalized_password = NONE
2587
- @host = nil
2588
- @normalized_host = nil
2589
- @normalized_port = NONE
2590
- @path = EMPTY_STR
2591
- @normalized_path = nil
2592
- @normalized_query = NONE
2593
- @fragment = nil
2594
- @normalized_fragment = NONE
2595
- @query = nil
2596
- end
2597
-
2598
- NONE = Module.new.freeze
2599
-
2600
- private_constant :NONE
2601
- end
2602
- end