mangopay-v4 4.0.0 → 4.0.1

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 (234) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +29 -29
  3. data/.rspec +3 -3
  4. data/.rubocop.yml +1 -1
  5. data/.travis.yml +21 -13
  6. data/Gemfile +2 -2
  7. data/LICENSE +20 -20
  8. data/README.md +379 -379
  9. data/bin/mangopay +9 -9
  10. data/lib/mangopay.rb +132 -132
  11. data/lib/mangopay/api/api.rb +8 -8
  12. data/lib/mangopay/api/api_methods.rb +160 -136
  13. data/lib/mangopay/api/auth_token_manager.rb +173 -173
  14. data/lib/mangopay/api/http_client.rb +324 -324
  15. data/lib/mangopay/api/service/bank_accounts.rb +145 -145
  16. data/lib/mangopay/api/service/banking_aliases.rb +83 -0
  17. data/lib/mangopay/api/service/cards.rb +151 -151
  18. data/lib/mangopay/api/service/client_wallets.rb +88 -88
  19. data/lib/mangopay/api/service/clients.rb +67 -67
  20. data/lib/mangopay/api/service/dispute_documents.rb +157 -157
  21. data/lib/mangopay/api/service/disputes.rb +186 -186
  22. data/lib/mangopay/api/service/e_money.rb +63 -41
  23. data/lib/mangopay/api/service/events.rb +46 -46
  24. data/lib/mangopay/api/service/hooks.rb +92 -92
  25. data/lib/mangopay/api/service/kyc_documents.rb +152 -152
  26. data/lib/mangopay/api/service/mandates.rb +141 -141
  27. data/lib/mangopay/api/service/oauth_tokens.rb +24 -24
  28. data/lib/mangopay/api/service/pay_ins.rb +369 -259
  29. data/lib/mangopay/api/service/pay_outs.rb +53 -53
  30. data/lib/mangopay/api/service/pre_authorizations.rb +126 -68
  31. data/lib/mangopay/api/service/refunds.rb +159 -61
  32. data/lib/mangopay/api/service/reports.rb +150 -150
  33. data/lib/mangopay/api/service/repudiations.rb +31 -31
  34. data/lib/mangopay/api/service/responses.rb +101 -101
  35. data/lib/mangopay/api/service/settlement_transfers.rb +54 -54
  36. data/lib/mangopay/api/service/transactions.rb +246 -182
  37. data/lib/mangopay/api/service/transfers.rb +53 -53
  38. data/lib/mangopay/api/service/ubo_declarations.rb +94 -69
  39. data/lib/mangopay/api/service/users.rb +162 -162
  40. data/lib/mangopay/api/service/wallets.rb +98 -98
  41. data/lib/mangopay/api/uri_provider.rb +32 -34
  42. data/lib/mangopay/common/json_tag_converter.rb +70 -67
  43. data/lib/mangopay/common/jsonifier.rb +266 -248
  44. data/lib/mangopay/common/log_provider.rb +33 -33
  45. data/lib/mangopay/common/rate_limit_interval.rb +16 -16
  46. data/lib/mangopay/common/read_only_fields.rb +26 -26
  47. data/lib/mangopay/common/response_error.rb +61 -61
  48. data/lib/mangopay/common/sort_direction.rb +14 -14
  49. data/lib/mangopay/common/sort_field.rb +12 -12
  50. data/lib/mangopay/common/template_url_options.rb +8 -8
  51. data/lib/mangopay/configuration.rb +38 -38
  52. data/lib/mangopay/environment.rb +65 -65
  53. data/lib/mangopay/model/address.rb +26 -26
  54. data/lib/mangopay/model/billing.rb +13 -0
  55. data/lib/mangopay/model/birthplace.rb +15 -0
  56. data/lib/mangopay/model/declared_ubo.rb +20 -20
  57. data/lib/mangopay/model/dispute_reason.rb +14 -14
  58. data/lib/mangopay/model/document_page_consult.rb +14 -14
  59. data/lib/mangopay/model/e_money.rb +17 -17
  60. data/lib/mangopay/model/entity/account/bank_account.rb +25 -25
  61. data/lib/mangopay/model/entity/account/ca_bank_account.rb +26 -26
  62. data/lib/mangopay/model/entity/account/debited_bank_account.rb +31 -0
  63. data/lib/mangopay/model/entity/account/gb_bank_account.rb +20 -20
  64. data/lib/mangopay/model/entity/account/iban_bank_account.rb +20 -20
  65. data/lib/mangopay/model/entity/account/other_bank_account.rb +23 -23
  66. data/lib/mangopay/model/entity/account/us_bank_account.rb +23 -23
  67. data/lib/mangopay/model/entity/banking_alias.rb +27 -0
  68. data/lib/mangopay/model/entity/card.rb +44 -44
  69. data/lib/mangopay/model/entity/card_registration.rb +42 -42
  70. data/lib/mangopay/model/entity/client.rb +65 -62
  71. data/lib/mangopay/model/entity/client_wallet.rb +22 -22
  72. data/lib/mangopay/model/entity/dispute.rb +49 -49
  73. data/lib/mangopay/model/entity/dispute_document.rb +28 -28
  74. data/lib/mangopay/model/entity/entity_base.rb +17 -17
  75. data/lib/mangopay/model/entity/hook.rb +25 -25
  76. data/lib/mangopay/model/entity/kyc_document.rb +27 -27
  77. data/lib/mangopay/model/entity/mandate.rb +50 -50
  78. data/lib/mangopay/model/entity/pay_in/apple_pay_direct_pay_in.rb +26 -0
  79. data/lib/mangopay/model/entity/pay_in/bank_wire_direct_pay_in.rb +24 -21
  80. data/lib/mangopay/model/entity/pay_in/bank_wire_external_instruction_pay_in.rb +19 -0
  81. data/lib/mangopay/model/entity/pay_in/card_direct_pay_in.rb +41 -32
  82. data/lib/mangopay/model/entity/pay_in/card_pre_authorized_pay_in.rb +15 -12
  83. data/lib/mangopay/model/entity/pay_in/card_web_pay_in.rb +36 -39
  84. data/lib/mangopay/model/entity/pay_in/direct_debit_direct_pay_in.rb +25 -22
  85. data/lib/mangopay/model/entity/pay_in/direct_debit_web_pay_in.rb +37 -37
  86. data/lib/mangopay/model/entity/pay_in/google_pay_direct_pay_in.rb +28 -0
  87. data/lib/mangopay/model/entity/pay_in/pay_in.rb +18 -15
  88. data/lib/mangopay/model/entity/pay_in/paypal_web_pay_in.rb +15 -0
  89. data/lib/mangopay/model/entity/pay_out.rb +21 -21
  90. data/lib/mangopay/model/entity/pre_authorization.rb +74 -67
  91. data/lib/mangopay/model/entity/refund.rb +17 -17
  92. data/lib/mangopay/model/entity/report.rb +50 -50
  93. data/lib/mangopay/model/entity/repudiation.rb +17 -17
  94. data/lib/mangopay/model/entity/settlement_transfer.rb +16 -16
  95. data/lib/mangopay/model/entity/transaction.rb +51 -51
  96. data/lib/mangopay/model/entity/transfer.rb +12 -12
  97. data/lib/mangopay/model/entity/ubo.rb +30 -0
  98. data/lib/mangopay/model/entity/ubo_declaration.rb +29 -31
  99. data/lib/mangopay/model/entity/user/legal_user.rb +55 -52
  100. data/lib/mangopay/model/entity/user/natural_user.rb +49 -49
  101. data/lib/mangopay/model/entity/user/user.rb +17 -17
  102. data/lib/mangopay/model/entity/wallet.rb +27 -27
  103. data/lib/mangopay/model/enum/account_type.rb +23 -23
  104. data/lib/mangopay/model/enum/avs_result.rb +19 -0
  105. data/lib/mangopay/model/enum/banking_alias_type.rb +12 -0
  106. data/lib/mangopay/model/enum/business_type.rb +17 -0
  107. data/lib/mangopay/model/enum/card_status.rb +14 -14
  108. data/lib/mangopay/model/enum/card_type.rb +32 -32
  109. data/lib/mangopay/model/enum/card_validity.rb +18 -18
  110. data/lib/mangopay/model/enum/country_iso.rb +758 -758
  111. data/lib/mangopay/model/enum/culture_code.rb +43 -43
  112. data/lib/mangopay/model/enum/currency_iso.rb +551 -551
  113. data/lib/mangopay/model/enum/declared_ubo_refused_reason_type.rb +15 -15
  114. data/lib/mangopay/model/enum/declared_ubo_status.rb +17 -17
  115. data/lib/mangopay/model/enum/deposit_type.rb +14 -14
  116. data/lib/mangopay/model/enum/direct_debit_type.rb +12 -12
  117. data/lib/mangopay/model/enum/dispute_doc_refused_reason_type.rb +24 -24
  118. data/lib/mangopay/model/enum/dispute_document_type.rb +22 -22
  119. data/lib/mangopay/model/enum/dispute_reason_type.rb +32 -32
  120. data/lib/mangopay/model/enum/dispute_status.rb +20 -20
  121. data/lib/mangopay/model/enum/dispute_type.rb +14 -14
  122. data/lib/mangopay/model/enum/document_status.rb +20 -20
  123. data/lib/mangopay/model/enum/download_format.rb +10 -10
  124. data/lib/mangopay/model/enum/event_type.rb +76 -73
  125. data/lib/mangopay/model/enum/funds_type.rb +14 -14
  126. data/lib/mangopay/model/enum/hook_status.rb +12 -12
  127. data/lib/mangopay/model/enum/hook_validity.rb +14 -14
  128. data/lib/mangopay/model/enum/income_range.rb +20 -20
  129. data/lib/mangopay/model/enum/kyc_doc_refused_reason_type.rb +36 -36
  130. data/lib/mangopay/model/enum/kyc_document_type.rb +18 -18
  131. data/lib/mangopay/model/enum/kyc_level.rb +12 -12
  132. data/lib/mangopay/model/enum/legal_person_type.rb +14 -14
  133. data/lib/mangopay/model/enum/mandate_culture_code.rb +22 -22
  134. data/lib/mangopay/model/enum/mandate_execution_type.rb +10 -10
  135. data/lib/mangopay/model/enum/mandate_scheme.rb +12 -12
  136. data/lib/mangopay/model/enum/mandate_status.rb +23 -23
  137. data/lib/mangopay/model/enum/mandate_type.rb +10 -10
  138. data/lib/mangopay/model/enum/natural_user_capacity.rb +14 -14
  139. data/lib/mangopay/model/enum/pay_in_execution_type.rb +17 -17
  140. data/lib/mangopay/model/enum/pay_in_payment_type.rb +29 -20
  141. data/lib/mangopay/model/enum/pay_out_payment_type.rb +10 -10
  142. data/lib/mangopay/model/enum/payment_status.rb +20 -20
  143. data/lib/mangopay/model/enum/person_type.rb +14 -14
  144. data/lib/mangopay/model/enum/platform_type.rb +22 -22
  145. data/lib/mangopay/model/enum/pre_authorization_execution_type.rb +10 -10
  146. data/lib/mangopay/model/enum/pre_authorization_status.rb +17 -17
  147. data/lib/mangopay/model/enum/refund_reason_type.rb +20 -20
  148. data/lib/mangopay/model/enum/report_status.rb +16 -16
  149. data/lib/mangopay/model/enum/report_type.rb +12 -12
  150. data/lib/mangopay/model/enum/sector.rb +29 -0
  151. data/lib/mangopay/model/enum/secure_mode.rb +15 -15
  152. data/lib/mangopay/model/enum/transaction_nature.rb +16 -16
  153. data/lib/mangopay/model/enum/transaction_status.rb +14 -14
  154. data/lib/mangopay/model/enum/transaction_type.rb +14 -14
  155. data/lib/mangopay/model/enum/ubo_declaration_refused_reason_type.rb +18 -18
  156. data/lib/mangopay/model/enum/ubo_declaration_status.rb +20 -20
  157. data/lib/mangopay/model/event.rb +17 -17
  158. data/lib/mangopay/model/model.rb +214 -193
  159. data/lib/mangopay/model/money.rb +16 -16
  160. data/lib/mangopay/model/pay_in_web_extended_view.rb +30 -30
  161. data/lib/mangopay/model/platform_categorization.rb +15 -0
  162. data/lib/mangopay/model/refund_reason.rb +14 -14
  163. data/lib/mangopay/model/report_filter.rb +82 -82
  164. data/lib/mangopay/model/request/cancel_request.rb +15 -15
  165. data/lib/mangopay/model/request/complete_registration_request.rb +12 -12
  166. data/lib/mangopay/model/request/currency_request.rb +12 -12
  167. data/lib/mangopay/model/request/deactivation_request.rb +9 -9
  168. data/lib/mangopay/model/request/filter_request.rb +37 -37
  169. data/lib/mangopay/model/request/submit_document_request.rb +13 -13
  170. data/lib/mangopay/model/request/submit_ubo_declaration_request.rb +16 -13
  171. data/lib/mangopay/model/request/upload_file_request.rb +8 -8
  172. data/lib/mangopay/model/response_replica.rb +26 -26
  173. data/lib/mangopay/model/security_info.rb +13 -0
  174. data/lib/mangopay/util/custom_formatter.rb +11 -11
  175. data/lib/mangopay/util/custom_logger.rb +33 -33
  176. data/lib/mangopay/util/enum.rb +51 -51
  177. data/lib/mangopay/util/file_encoder.rb +15 -15
  178. data/lib/mangopay/util/non_instantiable.rb +5 -5
  179. data/lib/mangopay/util/storage_strategy.rb +9 -9
  180. data/lib/mangopay/util/void_logger.rb +5 -5
  181. data/mangopay-v4.gemspec +32 -0
  182. data/mangopay.gemspec +32 -32
  183. data/spec/context/address_context.rb +24 -24
  184. data/spec/context/bank_account_context.rb +137 -137
  185. data/spec/context/banking_alias_context.rb +17 -0
  186. data/spec/context/birthplace_context.rb +17 -0
  187. data/spec/context/card_context.rb +45 -45
  188. data/spec/context/client_context.rb +43 -44
  189. data/spec/context/dispute_context.rb +36 -36
  190. data/spec/context/dispute_document_context.rb +19 -19
  191. data/spec/context/hook_context.rb +15 -15
  192. data/spec/context/kyc_document_context.rb +22 -22
  193. data/spec/context/mandate_context.rb +26 -26
  194. data/spec/context/pay_in_context.rb +319 -224
  195. data/spec/context/pay_out_context.rb +39 -38
  196. data/spec/context/pre_authorization_context.rb +44 -40
  197. data/spec/context/refund_context.rb +32 -32
  198. data/spec/context/report_context.rb +21 -21
  199. data/spec/context/repudiation_context.rb +18 -18
  200. data/spec/context/settlement_transfer_context.rb +27 -27
  201. data/spec/context/transfer_context.rb +50 -50
  202. data/spec/context/ubo_declaration_context.rb +29 -24
  203. data/spec/context/user_context.rb +83 -82
  204. data/spec/context/wallet_context.rb +52 -52
  205. data/spec/mangopay/bank_accounts_spec.rb +228 -228
  206. data/spec/mangopay/banking_alias_spec.rb +85 -0
  207. data/spec/mangopay/cards_spec.rb +133 -134
  208. data/spec/mangopay/client_wallets_spec.rb +147 -147
  209. data/spec/mangopay/clients_spec.rb +56 -54
  210. data/spec/mangopay/configuration_spec.rb +125 -125
  211. data/spec/mangopay/dispute_documents_spec.rb +173 -173
  212. data/spec/mangopay/disputes_spec.rb +264 -264
  213. data/spec/mangopay/e_money_spec.rb +57 -37
  214. data/spec/mangopay/events_spec.rb +49 -49
  215. data/spec/mangopay/hooks_spec.rb +70 -70
  216. data/spec/mangopay/kyc_documents_spec.rb +179 -179
  217. data/spec/mangopay/mandates_spec.rb +218 -218
  218. data/spec/mangopay/oauth_tokens_spec.rb +40 -40
  219. data/spec/mangopay/pay_ins_spec.rb +279 -180
  220. data/spec/mangopay/pay_outs_spec.rb +38 -38
  221. data/spec/mangopay/pre_authorizations_spec.rb +134 -57
  222. data/spec/mangopay/refunds_spec.rb +187 -39
  223. data/spec/mangopay/reports_spec.rb +118 -120
  224. data/spec/mangopay/responses_spec.rb +324 -294
  225. data/spec/mangopay/settlement_transfers_spec.rb +36 -36
  226. data/spec/mangopay/transactions_spec.rb +347 -232
  227. data/spec/mangopay/transfers_spec.rb +37 -37
  228. data/spec/mangopay/ubo_declarations_spec.rb +127 -64
  229. data/spec/mangopay/users_spec.rb +145 -145
  230. data/spec/mangopay/wallets_spec.rb +103 -103
  231. data/spec/spec_helper.rb +72 -72
  232. data/spec/tmp/MangoPay.AuthorizationToken.FileStore.tmp +6 -0
  233. data/spec/tmp/mangopay.log.tmp +1201 -0
  234. metadata +31 -5
@@ -1,14 +1,14 @@
1
- require_relative '../../common/jsonifier'
2
-
3
- # Model object for body of a request to submit a document for approval
4
- class SubmitDocumentRequest
5
- include MangoPay::Jsonifier
6
-
7
- # [String] Custom data added with the request
8
- attr_accessor :tag
9
-
10
- def initialize(tag = nil)
11
- self.tag = tag
12
- @status = MangoModel::DocumentStatus::VALIDATION_ASKED
13
- end
1
+ require_relative '../../common/jsonifier'
2
+
3
+ # Model object for body of a request to submit a document for approval
4
+ class SubmitDocumentRequest
5
+ include MangoPay::Jsonifier
6
+
7
+ # [String] Custom data added with the request
8
+ attr_accessor :tag
9
+
10
+ def initialize(tag = nil)
11
+ self.tag = tag
12
+ @status = MangoModel::DocumentStatus::VALIDATION_ASKED
13
+ end
14
14
  end
@@ -1,14 +1,17 @@
1
- require_relative '../../common/jsonifier'
2
-
3
- # Model object for body of request to submit a UBO declaration for approval
4
- class SubmitUboDeclarationRequest
5
- include MangoPay::Jsonifier
6
-
7
- # [String] Custom data added with the request
8
- attr_accessor :tag
9
-
10
- def initialize(tag = nil)
11
- self.tag = tag
12
- @status = MangoModel::UboDeclarationStatus::VALIDATION_ASKED
13
- end
1
+ require_relative '../../common/jsonifier'
2
+
3
+ # Model object for body of request to submit a UBO declaration for approval
4
+ class SubmitUboDeclarationRequest
5
+ include MangoPay::Jsonifier
6
+
7
+ # Id of the ubo declaration
8
+ attr_accessor :id
9
+ # [String] Custom data added with the request
10
+ attr_accessor :tag
11
+
12
+ def initialize(id, tag = nil)
13
+ self.id = id
14
+ self.tag = tag
15
+ @status = MangoModel::UboDeclarationStatus::VALIDATION_ASKED
16
+ end
14
17
  end
@@ -1,9 +1,9 @@
1
- require_relative '../../common/jsonifier'
2
-
3
- # Model object for body of request to upload a file
4
- class UploadFileRequest
5
- include MangoPay::Jsonifier
6
-
7
- # [String] Base64-encoded file to be uploaded
8
- attr_accessor :file
1
+ require_relative '../../common/jsonifier'
2
+
3
+ # Model object for body of request to upload a file
4
+ class UploadFileRequest
5
+ include MangoPay::Jsonifier
6
+
7
+ # [String] Base64-encoded file to be uploaded
8
+ attr_accessor :file
9
9
  end
@@ -1,27 +1,27 @@
1
- require_relative '../common/jsonifier'
2
-
3
- module MangoModel
4
-
5
- # Replication of a previous request's response
6
- class ResponseReplica
7
- include MangoPay::Jsonifier
8
-
9
- # [String] Original response's status code
10
- attr_accessor :status_code
11
-
12
- # [String] Value of the original response's Content-Length header
13
- attr_accessor :content_length
14
-
15
- # [String] Value of the original response's Content-Type header
16
- attr_accessor :content_type
17
-
18
- # [DateTime] Time of request of the original response
19
- attr_accessor :long_date
20
-
21
- # [Object] The original response object
22
- attr_accessor :resource
23
-
24
- # [String] URL of the original request
25
- attr_accessor :request_url
26
- end
1
+ require_relative '../common/jsonifier'
2
+
3
+ module MangoModel
4
+
5
+ # Replication of a previous request's response
6
+ class ResponseReplica
7
+ include MangoPay::Jsonifier
8
+
9
+ # [String] Original response's status code
10
+ attr_accessor :status_code
11
+
12
+ # [String] Value of the original response's Content-Length header
13
+ attr_accessor :content_length
14
+
15
+ # [String] Value of the original response's Content-Type header
16
+ attr_accessor :content_type
17
+
18
+ # [DateTime] Time of request of the original response
19
+ attr_accessor :long_date
20
+
21
+ # [Object] The original response object
22
+ attr_accessor :resource
23
+
24
+ # [String] URL of the original request
25
+ attr_accessor :request_url
26
+ end
27
27
  end
@@ -0,0 +1,13 @@
1
+ require_relative '../common/jsonifier'
2
+
3
+ module MangoModel
4
+
5
+ # Security & validation information
6
+ class SecurityInfo
7
+ include MangoPay::Jsonifier
8
+
9
+ # [AVSResult] Result of the AVS verification
10
+ attr_accessor :avs_result
11
+
12
+ end
13
+ end
@@ -1,12 +1,12 @@
1
- # Formatter for log messages
2
- class CustomFormatter < Logger::Formatter
3
- def call(severity, time, progname, msg)
4
- "[#{time}] #{five_chars(severity)} - #{progname}: #{msg2str(msg)}\n"
5
- end
6
-
7
- def five_chars(string)
8
- result = ''
9
- (5 - string.length).times { result << ' ' }
10
- result + string
11
- end
1
+ # Formatter for log messages
2
+ class CustomFormatter < Logger::Formatter
3
+ def call(severity, time, progname, msg)
4
+ "[#{time}] #{five_chars(severity)} - #{progname}: #{msg2str(msg)}\n"
5
+ end
6
+
7
+ def five_chars(string)
8
+ result = ''
9
+ (5 - string.length).times { result << ' ' }
10
+ result + string
11
+ end
12
12
  end
@@ -1,34 +1,34 @@
1
- require 'logger'
2
-
3
- # Custom Logger implementation which handles concatenation
4
- # of multiple provided arguments into the log message string,
5
- # allowing for much cleaner logging statements.
6
- class CustomLogger < Logger
7
-
8
- def debug(message, *args)
9
- super(format(message, args))
10
- end
11
-
12
- def info(message, *args)
13
- super(format(message, args))
14
- end
15
-
16
- def warn(message, *args)
17
- super(format(message, args))
18
- end
19
-
20
- def error(message, *args)
21
- super(format(message, args))
22
- end
23
-
24
- def fatal(message, *args)
25
- super(format(message, args))
26
- end
27
-
28
- def format(msg, msg_args)
29
- msg_args.each do |arg|
30
- msg.sub! '{}', arg.to_s
31
- end
32
- msg
33
- end
1
+ require 'logger'
2
+
3
+ # Custom Logger implementation which handles concatenation
4
+ # of multiple provided arguments into the log message string,
5
+ # allowing for much cleaner logging statements.
6
+ class CustomLogger < Logger
7
+
8
+ def debug(message, *args)
9
+ super(format(message, args))
10
+ end
11
+
12
+ def info(message, *args)
13
+ super(format(message, args))
14
+ end
15
+
16
+ def warn(message, *args)
17
+ super(format(message, args))
18
+ end
19
+
20
+ def error(message, *args)
21
+ super(format(message, args))
22
+ end
23
+
24
+ def fatal(message, *args)
25
+ super(format(message, args))
26
+ end
27
+
28
+ def format(msg, msg_args)
29
+ msg_args.each do |arg|
30
+ msg.sub! '{}', arg.to_s
31
+ end
32
+ msg
33
+ end
34
34
  end
@@ -1,52 +1,52 @@
1
- # Extend in order to apply methods for Enum instantiation.
2
- module Enum
3
-
4
- # Restrict enum instantiation to the +value+ method.
5
- def self.extended(base)
6
- base.class_eval do
7
- disable_instantiation
8
- end
9
- end
10
-
11
- def value_of(string)
12
- value = nil
13
- constants.each do |const|
14
- value = const_get const if const.to_s == string
15
- end
16
- value
17
- end
18
-
19
- private
20
-
21
- # Temporary self-called method which instantiates Enums.
22
- # Assign returned values to accordingly-named constant variables.
23
- #
24
- # @param +enum_value+ Representation value for the Enum instance
25
- def value(enum_value)
26
- enable_instantiation
27
- enum_instance = new
28
- disable_instantiation
29
- enum_instance.instance_variable_set :@value, enum_value
30
- enum_instance.define_singleton_method :to_s do
31
- enum_value.to_s
32
- end
33
- enum_instance
34
- end
35
-
36
- # Enables instantiation of extending class.
37
- def enable_instantiation
38
- class_eval do
39
- define_method :initialize do
40
- end
41
- end
42
- end
43
-
44
- # Disables instantiation of extending class.
45
- def disable_instantiation
46
- class_eval do
47
- define_method :initialize do
48
- raise 'Use the Enum#value method to instantiate Enums.'
49
- end
50
- end
51
- end
1
+ # Extend in order to apply methods for Enum instantiation.
2
+ module Enum
3
+
4
+ # Restrict enum instantiation to the +value+ method.
5
+ def self.extended(base)
6
+ base.class_eval do
7
+ disable_instantiation
8
+ end
9
+ end
10
+
11
+ def value_of(string)
12
+ value = nil
13
+ constants.each do |const|
14
+ value = const_get const if const.to_s == string
15
+ end
16
+ value
17
+ end
18
+
19
+ private
20
+
21
+ # Temporary self-called method which instantiates Enums.
22
+ # Assign returned values to accordingly-named constant variables.
23
+ #
24
+ # @param +enum_value+ Representation value for the Enum instance
25
+ def value(enum_value)
26
+ enable_instantiation
27
+ enum_instance = new
28
+ disable_instantiation
29
+ enum_instance.instance_variable_set :@value, enum_value
30
+ enum_instance.define_singleton_method :to_s do
31
+ enum_value.to_s
32
+ end
33
+ enum_instance
34
+ end
35
+
36
+ # Enables instantiation of extending class.
37
+ def enable_instantiation
38
+ class_eval do
39
+ define_method :initialize do
40
+ end
41
+ end
42
+ end
43
+
44
+ # Disables instantiation of extending class.
45
+ def disable_instantiation
46
+ class_eval do
47
+ define_method :initialize do
48
+ raise 'Use the Enum#value method to instantiate Enums.'
49
+ end
50
+ end
51
+ end
52
52
  end
@@ -1,16 +1,16 @@
1
- require 'base64'
2
-
3
- # Encodes files
4
- module FileEncoder
5
- class << self
6
-
7
- # Encodes a file to a Base64 string.
8
- #
9
- # @param +path+ [String] path to the file to be encoded
10
- # @return [String] the file as a Base64-encoded string
11
- def encode_base64(path)
12
- data = File.open(path, 'rb', &:read)
13
- Base64.strict_encode64 data
14
- end
15
- end
1
+ require 'base64'
2
+
3
+ # Encodes files
4
+ module FileEncoder
5
+ class << self
6
+
7
+ # Encodes a file to a Base64 string.
8
+ #
9
+ # @param +path+ [String] path to the file to be encoded
10
+ # @return [String] the file as a Base64-encoded string
11
+ def encode_base64(path)
12
+ data = File.open(path, 'rb', &:read)
13
+ Base64.strict_encode64 data
14
+ end
15
+ end
16
16
  end
@@ -1,6 +1,6 @@
1
- # To be extended in order to render a class non-instantiable
2
- module NonInstantiable
3
- def initialize(*_args)
4
- raise "Cannot instantiate #{self.class.name.split('::').last}"
5
- end
1
+ # To be extended in order to render a class non-instantiable
2
+ module NonInstantiable
3
+ def initialize(*_args)
4
+ raise "Cannot instantiate #{self.class.name.split('::').last}"
5
+ end
6
6
  end
@@ -1,10 +1,10 @@
1
- require_relative 'enum'
2
-
3
- # Storage strategy enumeration
4
- class StorageStrategy
5
- extend Enum
6
-
7
- MEMORY = value 'MEMORY'
8
-
9
- FILE = value 'FILE'
1
+ require_relative 'enum'
2
+
3
+ # Storage strategy enumeration
4
+ class StorageStrategy
5
+ extend Enum
6
+
7
+ MEMORY = value 'MEMORY'
8
+
9
+ FILE = value 'FILE'
10
10
  end
@@ -1,6 +1,6 @@
1
- # Logger implementation which will not print any messages.
2
- class VoidLogger < CustomLogger
3
- def initialize(*_args); end
4
-
5
- def add(*_args, &_block); end
1
+ # Logger implementation which will not print any messages.
2
+ class VoidLogger < CustomLogger
3
+ def initialize(*_args); end
4
+
5
+ def add(*_args, &_block); end
6
6
  end
@@ -0,0 +1,32 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), 'lib'))
2
+
3
+ require 'mangopay'
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = 'mangopay-v4'
7
+ spec.version = MangoPay::VERSION
8
+ spec.summary = 'Ruby bindings for the version 2 of the MANGOPAY API'
9
+ spec.description = <<-EOF
10
+ The mangopay Gem makes interacting with MANGOPAY Services much easier.
11
+ For any questions regarding the use of MANGOPAY's Services feel free to contact us at http://www.mangopay.com/get-started-2/
12
+ You can find more documentation about MANGOPAY Services at http://docs.mangopay.com/
13
+ EOF
14
+ spec.authors = ['MangoTeam']
15
+ spec.email = 'support@mangopay.com'
16
+ spec.homepage = 'http://docs.mangopay.com/'
17
+ spec.license = 'MIT'
18
+
19
+ spec.required_ruby_version = '>= 1.9.2'
20
+
21
+ spec.add_dependency('multi_json', '>= 1.7.7')
22
+
23
+ spec.add_development_dependency('rake', '>= 10.1.0')
24
+ spec.add_development_dependency('rspec', '>= 3.0.0')
25
+
26
+ spec.files = `git ls-files`.split("\n")
27
+ spec.test_files = `git ls-files -- spec/*`.split("\n")
28
+ spec.executables = `git ls-files -- bin/*`
29
+ .split("\n")
30
+ .map { |file| File.basename(file) }
31
+ spec.require_paths = ['lib']
32
+ end