class Fragmenter::Services::Storer

Attributes

errors[R]
request[R]

Public Class Methods

new(request) click to toggle source
# File lib/fragmenter/services/storer.rb, line 8
def initialize(request)
  @request = request
  @errors  = []
end

Public Instance Methods

store() click to toggle source
# File lib/fragmenter/services/storer.rb, line 13
def store
  stored = fragmenter.store(request.body, extracted_options)

  unless stored
    errors << 'Unable to store fragment'
  end

  stored
end

Private Instance Methods

extracted_options() click to toggle source
# File lib/fragmenter/services/storer.rb, line 29
def extracted_options
  headers = request.headers

  headers['HTTP_X_FRAGMENT_NUMBER'] ||= headers['HTTP_PART_NUMBER']
  headers['HTTP_X_FRAGMENT_TOTAL']  ||= headers['HTTP_PARTS_TOTAL']

  { content_type: headers.fetch('CONTENT_TYPE'),
    number:       headers.fetch('HTTP_X_FRAGMENT_NUMBER'),
    total:        headers.fetch('HTTP_X_FRAGMENT_TOTAL') }
end
fragmenter() click to toggle source
# File lib/fragmenter/services/storer.rb, line 25
def fragmenter
  request.fragmenter
end