Class: Spree::Checkout::Requirements

Inherits:
Object
  • Object
show all
Defined in:
app/models/spree/checkout/requirements.rb

Overview

Aggregates all checkout requirements for an order.

Combines built-in checks from DefaultRequirements with custom steps and requirements registered in Registry. The resulting array of hashes is exposed on the Cart API as the requirements attribute.

Each requirement hash has the shape:

{ step: String, field: String, message: String }

Examples:

reqs = Spree::Checkout::Requirements.new(order)
reqs.call  # => [{ step: "address", field: "email", message: "Email address is required" }]
reqs.met?  # => false

Instance Method Summary collapse

Constructor Details

#initialize(order) ⇒ Requirements

Returns a new instance of Requirements.

Parameters:



18
19
20
# File 'app/models/spree/checkout/requirements.rb', line 18

def initialize(order)
  @order = order
end

Instance Method Details

#callArray<Hash{Symbol => String}>

Returns all unmet requirements.

Returns:

  • (Array<Hash{Symbol => String}>)

    all unmet requirements



23
24
25
# File 'app/models/spree/checkout/requirements.rb', line 23

def call
  default + from_registered_steps + from_additional_requirements
end

#met?Boolean

Returns true when all requirements are satisfied.

Returns:

  • (Boolean)

    true when all requirements are satisfied



28
29
30
# File 'app/models/spree/checkout/requirements.rb', line 28

def met?
  call.empty?
end