class Xenon::Headers::IfRange

tools.ietf.org/html/rfc7233#section-3.2

Attributes

date[R]
etag[R]

Public Class Methods

new(value) click to toggle source
# File lib/xenon/headers/if_range.rb, line 12
def initialize(value)
  case value
  when Time, DateTime, Date then @date = value
  when ETag then @etag = value
  when String then @etag = ETag.parse(value)
  else raise ArgumentError, 'Value must be a time or an etag.'
  end

  raise ProtocolError, 'If-Range headers must use strong ETags.' if @etag && @etag.weak?
end
parse(s) click to toggle source
# File lib/xenon/headers/if_range.rb, line 23
def self.parse(s)
  tree = Parsers::IfRangeHeader.new.parse(s)
  Parsers::IfRangeHeaderTransform.new.apply(tree)
end

Public Instance Methods

to_s() click to toggle source
# File lib/xenon/headers/if_range.rb, line 28
def to_s
  @etag ? @etag.to_s : @date.httpdate
end