Class: StarkInfra::DynamicBrcode::Discount

Inherits:
StarkCore::Utils::SubResource
  • Object
show all
Defined in:
lib/dynamicbrcode/dynamicbrcode.rb

Overview

# DynamicBrcode.Discount object

Used to define a Discount in the BR Code

## Parameters (required):

  • percentage [integer]: discount percentage that will be applied. ex: 2.5

  • due [DateTime or string, default now + 2 days]: Date after when the discount will be overdue in UTC ISO format. ex: DateTime.new(2020, 3, 10, 10, 30, 0, 0) or “2020-03-10T10:30:00.000000+00:00”

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(percentage:, due:) ⇒ Discount



316
317
318
319
# File 'lib/dynamicbrcode/dynamicbrcode.rb', line 316

def initialize(percentage:, due:)
  @percentage = percentage
  @due = due
end

Instance Attribute Details

#dueObject (readonly)

Returns the value of attribute due.



315
316
317
# File 'lib/dynamicbrcode/dynamicbrcode.rb', line 315

def due
  @due
end

#percentageObject (readonly)

Returns the value of attribute percentage.



315
316
317
# File 'lib/dynamicbrcode/dynamicbrcode.rb', line 315

def percentage
  @percentage
end

Class Method Details

.parse_discounts(discounts) ⇒ Object



321
322
323
324
325
326
327
328
329
330
331
332
333
# File 'lib/dynamicbrcode/dynamicbrcode.rb', line 321

def self.parse_discounts(discounts)
  return discounts if discounts.nil?

  parsed_discounts = []
  discounts.each do |discount|

    if discount.is_a? DynamicBrcode::Discount
      discount = StarkCore::Utils::API.api_json(discount)
    end
    parsed_discounts << discount
  end
  parsed_discounts
end

.resourceObject



335
336
337
338
339
340
341
342
343
344
345
# File 'lib/dynamicbrcode/dynamicbrcode.rb', line 335

def self.resource
  {
    resource_name: 'Discount',
    resource_maker: proc { |json|
      Discount.new(
        percentage: json['percentage'],
        due: json['due']
      )
    }
  }
end