class Voucher::SegmentsBuilder
Public Class Methods
call(data)
click to toggle source
# File lib/voucher/segments_builder.rb, line 5 def self.call(data) new(data).call end
new(data)
click to toggle source
# File lib/voucher/segments_builder.rb, line 9 def initialize(data) @data = data end
Public Instance Methods
call()
click to toggle source
# File lib/voucher/segments_builder.rb, line 13 def call build end
Private Instance Methods
build()
click to toggle source
# File lib/voucher/segments_builder.rb, line 19 def build { election: election, segments: segments } end
election()
click to toggle source
# File lib/voucher/segments_builder.rb, line 23 def election attributes = @data.dig(:election, :attributes) || {} Election.new(attributes) end
segments()
click to toggle source
# File lib/voucher/segments_builder.rb, line 29 def segments raise ArgumentError, 'Segments data must be an array' unless @data[:segments].is_a?(Array) @data[:segments].map do |segment| Segment.new(segment[:attributes] || {}) end end