Class: Walletone::Fields
- Inherits:
-
Hash
- Object
- Hash
- Walletone::Fields
- Defined in:
- lib/walletone/fields.rb
Direct Known Subclasses
Constant Summary collapse
- W1_KEYS =
%i( WMI_MERCHANT_ID WMI_PAYMENT_AMOUNT WMI_CURRENCY_ID WMI_PAYMENT_NO WMI_DESCRIPTION WMI_SUCCESS_URL WMI_FAIL_URL WMI_EXPIRED_DATE WMI_PTENABLED WMI_PTDISABLED WMI_RECIPIENT_LOGIN WMI_CUSTOMER_FIRSTNAME WMI_CUSTOMER_LASTNAME WMI_CUSTOMER_EMAIL WMI_CULTURE_ID WMI_SIGNATURE WMI_DELIVERY_REQUEST WMI_DELIVERY_COUNTRY WMI_DELIVERY_REGION WMI_DELIVERY_CITY WMI_DELIVERY_ADDRESS WMI_DELIVERY_CONTACTINFO WMI_DELIVERY_COMMENTS WMI_DELIVERY_ORDERID WMI_DELIVERY_DATEFROM WMI_DELIVERY_DATETILL WMI_PSP_MERCHANT_ID )
- MULTIPLE_VALUES =
%i(WMI_PTENABLED WMI_PTDISABLED)
Instance Method Summary collapse
- #[](key) ⇒ Object
- #[]=(key, value) ⇒ Object
- #as_list ⇒ Object
- #fetch(key, default = nil) ⇒ Object
-
#initialize(attrs = {}) ⇒ Fields
constructor
A new instance of Fields.
Constructor Details
#initialize(attrs = {}) ⇒ Fields
Returns a new instance of Fields.
45 46 47 48 49 50 |
# File 'lib/walletone/fields.rb', line 45 def initialize attrs={} fields = super return fields if attrs.empty? symbolyzed_attrs = attrs.inject({}) { |acc, e| acc[e.first.to_sym]=e.last; acc } fields.merge! symbolyzed_attrs end |
Instance Method Details
#[](key) ⇒ Object
52 53 54 |
# File 'lib/walletone/fields.rb', line 52 def [] key fetch key.to_sym, nil end |
#[]=(key, value) ⇒ Object
56 57 58 |
# File 'lib/walletone/fields.rb', line 56 def []= key, value super key.to_sym, value end |
#as_list ⇒ Object
64 65 66 67 68 69 70 71 72 |
# File 'lib/walletone/fields.rb', line 64 def as_list keys.inject([]) do |acc, name| # Делаем именно так, чтобы работало переопределение методов # в Payment value = respond_to?(name) ? send(name) : fetch(name) Array(value).each { |v| acc << [name.to_s, v.to_s] } acc end end |
#fetch(key, default = nil) ⇒ Object
60 61 62 |
# File 'lib/walletone/fields.rb', line 60 def fetch key, default=nil super key.to_sym, default end |