Class: DPay::CardRecurringRegistration
- Inherits:
-
Object
- Object
- DPay::CardRecurringRegistration
- Defined in:
- lib/dpay/card/card_recurring_registration.rb,
sig/dpay/card/card_recurring_registration.rbs
Constant Summary collapse
- DATE =
/\A\d{4}-\d{2}-\d{2}\z/
Class Method Summary collapse
Instance Method Summary collapse
- #assert_date(date) ⇒ String
-
#initialize(label) ⇒ CardRecurringRegistration
constructor
A new instance of CardRecurringRegistration.
- #to_h ⇒ Hash[String, untyped]
- #with_expiration_date(expiration_date) ⇒ self
- #with_frequency(frequency) ⇒ self
- #with_init_date(init_date) ⇒ self
- #with_limit_amt(limit_amt) ⇒ self
- #with_limit_amt_fixed(fixed) ⇒ self
- #with_tot_limit_amt(tot_limit_amt) ⇒ self
Constructor Details
#initialize(label) ⇒ CardRecurringRegistration
Returns a new instance of CardRecurringRegistration.
11 12 13 14 15 16 17 18 |
# File 'lib/dpay/card/card_recurring_registration.rb', line 11 def initialize(label) unless label.is_a?(String) && !label.empty? && label.length <= 50 raise InvalidArgumentError, "Mandate label must be 1-50 characters" end @label = label @optional = {} end |
Class Method Details
.create(label) ⇒ CardRecurringRegistration
7 8 9 |
# File 'lib/dpay/card/card_recurring_registration.rb', line 7 def self.create(label) new(label) end |
Instance Method Details
#assert_date(date) ⇒ String
63 64 65 66 67 |
# File 'lib/dpay/card/card_recurring_registration.rb', line 63 def assert_date(date) raise InvalidArgumentError, %(Date "#{date}" must be in YYYY-MM-DD format) unless DATE.match?(date.to_s) date end |
#to_h ⇒ Hash[String, untyped]
51 52 53 54 55 56 57 58 59 |
# File 'lib/dpay/card/card_recurring_registration.rb', line 51 def to_h base = { "label" => @label } %w[frequency limit_amt tot_limit_amt is_limit_amt_fixed expiration_date init_date].each do |key| base[key] = @optional[key] if @optional.key?(key) end base end |
#with_expiration_date(expiration_date) ⇒ self
41 42 43 44 |
# File 'lib/dpay/card/card_recurring_registration.rb', line 41 def with_expiration_date(expiration_date) @optional["expiration_date"] = assert_date(expiration_date) self end |
#with_frequency(frequency) ⇒ self
20 21 22 23 24 |
# File 'lib/dpay/card/card_recurring_registration.rb', line 20 def with_frequency(frequency) CardRecurringFrequency.assert_valid(frequency) @optional["frequency"] = frequency self end |
#with_init_date(init_date) ⇒ self
46 47 48 49 |
# File 'lib/dpay/card/card_recurring_registration.rb', line 46 def with_init_date(init_date) @optional["init_date"] = assert_date(init_date) self end |
#with_limit_amt(limit_amt) ⇒ self
26 27 28 29 |
# File 'lib/dpay/card/card_recurring_registration.rb', line 26 def with_limit_amt(limit_amt) @optional["limit_amt"] = limit_amt.minor self end |
#with_limit_amt_fixed(fixed) ⇒ self
36 37 38 39 |
# File 'lib/dpay/card/card_recurring_registration.rb', line 36 def with_limit_amt_fixed(fixed) @optional["is_limit_amt_fixed"] = fixed self end |
#with_tot_limit_amt(tot_limit_amt) ⇒ self
31 32 33 34 |
# File 'lib/dpay/card/card_recurring_registration.rb', line 31 def with_tot_limit_amt(tot_limit_amt) @optional["tot_limit_amt"] = tot_limit_amt.minor self end |