class Mail::FieldList
Experimental RBS support (using type sampling data from the type_fusion
project).
# sig/mail/field_list.rbs class Mail::FieldList < Mail::Array def select_fields: (String field_name) -> untyped end
having to worry about the order they will appear in.
email fields in order. And allows you to insert new fields without
Field List class provides an enhanced array that keeps a list of
def add_field(field)
def add_field(field) if field.singular? replace_field field else insert_field field end end
def delete_field(name)
def delete_field(name) delete_if { |f| f.responsible_for? name } end
def get_field(field_name)
def get_field(field_name) fields = select_fields(field_name) case fields.size when 0; nil when 1; fields.first else fields end end
def has_field?(field_name)
def has_field?(field_name) any? { |f| f.responsible_for? field_name } end
def insert_field(field)
Licensed under
Copyright (C) 2001-2013 Python Software Foundation.
Heavily based on bisect.insort from Python, which is:
Insert the field in sorted order.
def insert_field(field) lo, hi = 0, size while lo < hi mid = (lo + hi).div(2) if field < self[mid] hi = mid else lo = mid + 1 end end insert lo, field end
def replace_field(field)
def replace_field(field) if first_offset = index { |f| f.responsible_for? field.name } delete_field field.name insert first_offset, field else insert_field field end end
def select_fields(field_name)
Experimental RBS support (using type sampling data from the type_fusion
project).
def select_fields: (String field_name) -> untyped
This signature was generated using 1 sample from 1 application.
def select_fields(field_name) fields = select { |f| f.responsible_for? field_name } if fields.size > 1 && singular?(field_name) Array(fields.detect { |f| f.errors.size == 0 } || fields.first) else fields end end
def singular?(field_name)
def singular?(field_name) if klass = Mail::Field.field_class_for(field_name) klass.singular? else false end end
def summary
def summary map { |f| "<#{f.name}: #{f.value}>" }.join(", ") end