class Structify::VersionRangeError

Error raised when trying to access a field outside its specified version range

def format_versions(versions)

def format_versions(versions)
  if versions.is_a?(Range)
    if versions.end.nil?
      "#{versions.begin} and above"
    else
      "#{versions.begin} to #{versions.end}#{versions.exclude_end? ? ' (exclusive)' : ''}"
    end
  elsif versions.is_a?(Array)
    versions.join(", ")
  else
    "#{versions} and above"  # Single integer means this version and onwards
  end
end

def initialize(field_name, record_version, valid_versions)

def initialize(field_name, record_version, valid_versions)
  @field_name = field_name
  @record_version = record_version
  @valid_versions = valid_versions
  
  message = "Field '#{field_name}' is not available in version #{record_version}. " \
            "This field is only available in versions: #{format_versions(valid_versions)}."
  
  super(message)
end