Class: AdvancedBilling::CalendarBilling

Inherits:
BaseModel
  • Object
show all
Defined in:
lib/advanced_billing/models/calendar_billing.rb

Overview

(Optional). Cannot be used when also specifying next_billing_at

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from BaseModel

#check_for_conflict, #process_additional_properties, #process_array, #process_basic_value, #process_hash, #to_hash, #to_json

Constructor Details

#initialize(snap_day: SKIP, calendar_billing_first_charge: SKIP, additional_properties: {}) ⇒ CalendarBilling

[View source]

44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/advanced_billing/models/calendar_billing.rb', line 44

def initialize(snap_day: SKIP, calendar_billing_first_charge: SKIP,
               additional_properties: {})
  # Add additional model properties to the instance.
  additional_properties.each do |_name, _value|
    instance_variable_set("@#{_name}", _value)
  end

  @snap_day = snap_day unless snap_day == SKIP
  unless calendar_billing_first_charge == SKIP
    @calendar_billing_first_charge =
      calendar_billing_first_charge
  end
end

Instance Attribute Details

#calendar_billing_first_chargeFirstChargeType

A day of month that subscription will be processed on. Can be 1 up to 28 or ‘end’.


20
21
22
# File 'lib/advanced_billing/models/calendar_billing.rb', line 20

def calendar_billing_first_charge
  @calendar_billing_first_charge
end

#snap_dayObject

A day of month that subscription will be processed on. Can be 1 up to 28 or ‘end’.


15
16
17
# File 'lib/advanced_billing/models/calendar_billing.rb', line 15

def snap_day
  @snap_day
end

Class Method Details

.from_hash(hash) ⇒ Object

Creates an instance of the object from a hash.

[View source]

59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'lib/advanced_billing/models/calendar_billing.rb', line 59

def self.from_hash(hash)
  return nil unless hash

  # Extract variables from the hash.
  snap_day = hash.key?('snap_day') ? APIHelper.deserialize_union_type(
    UnionTypeLookUp.get(:CalendarBillingSnapDay), hash['snap_day']
  ) : SKIP
  calendar_billing_first_charge =
    hash.key?('calendar_billing_first_charge') ? hash['calendar_billing_first_charge'] : SKIP

  # Clean out expected properties from Hash.
  additional_properties = hash.reject { |k, _| names.value?(k) }

  # Create object from extracted values.
  CalendarBilling.new(snap_day: snap_day,
                      calendar_billing_first_charge: calendar_billing_first_charge,
                      additional_properties: additional_properties)
end

.namesObject

A mapping from model property names to API property names.

[View source]

23
24
25
26
27
28
29
# File 'lib/advanced_billing/models/calendar_billing.rb', line 23

def self.names
  @_hash = {} if @_hash.nil?
  @_hash['snap_day'] = 'snap_day'
  @_hash['calendar_billing_first_charge'] =
    'calendar_billing_first_charge'
  @_hash
end

.nullablesObject

An array for nullable fields

[View source]

40
41
42
# File 'lib/advanced_billing/models/calendar_billing.rb', line 40

def self.nullables
  []
end

.optionalsObject

An array for optional fields

[View source]

32
33
34
35
36
37
# File 'lib/advanced_billing/models/calendar_billing.rb', line 32

def self.optionals
  %w[
    snap_day
    calendar_billing_first_charge
  ]
end

.validate(value) ⇒ Object

Validates an instance of the object from a given value.

[View source]

80
81
82
83
84
85
86
# File 'lib/advanced_billing/models/calendar_billing.rb', line 80

def self.validate(value)
  return true if value.instance_of? self

  return false unless value.instance_of? Hash

  true
end