Sha256: c131c043b03497f2bc249a4b0eac7831592450ecd76b2ae28c85f2e7a192d8d3

Contents?: true

Size: 1.21 KB

Versions: 14

Compression:

Stored size: 1.21 KB

Contents

# encoding: utf-8
# frozen_string_literal: true
require 'mail/constants'

module Mail
  class CommonField #:nodoc:
    def self.singular?
      false
    end

    def self.parse(*args)
      new(*args).tap(&:parse)
    end

    attr_accessor :name
    attr_reader :value
    attr_accessor :charset
    attr_reader :errors

    def initialize(name = nil, value = nil, charset = nil)
      @errors = []

      self.name = name
      self.value = value
      self.charset = charset || 'utf-8'
    end

    def singular?
      self.class.singular?
    end

    def value=(value)
      @element = nil
      @value = value.is_a?(Array) ? value : value.to_s
      parse
    end

    def parse
      tap(&:element)
    end

    def element
      nil
    end

    def to_s
      decoded.to_s
    end

    def default
      decoded
    end

    def decoded
      do_decode
    end

    def encoded
      do_encode
    end

    def responsible_for?(field_name)
      name.to_s.casecmp(field_name.to_s) == 0
    end

    private

    FILENAME_RE = /\b(filename|name)=([^;"\r\n]+\s[^;"\r\n]+)/
    def ensure_filename_quoted(value)
      if value.is_a?(String)
        value.sub FILENAME_RE, '\1="\2"'
      else
        value
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 5 rubygems

Version Path
minato_ruby_api_client-0.2.2 vendor/bundle/ruby/3.2.0/gems/mail-2.8.1/lib/mail/fields/common_field.rb
blacklight-spotlight-3.6.0.beta8 vendor/bundle/ruby/3.2.0/gems/mail-2.8.1/lib/mail/fields/common_field.rb
cm-admin-1.5.22 vendor/bundle/ruby/3.3.0/gems/mail-2.8.1/lib/mail/fields/common_field.rb
cm-admin-1.5.21 vendor/bundle/ruby/3.3.0/gems/mail-2.8.1/lib/mail/fields/common_field.rb
cm-admin-1.5.20 vendor/bundle/ruby/3.3.0/gems/mail-2.8.1/lib/mail/fields/common_field.rb
tinymce-rails-7.1.2 vendor/bundle/ruby/3.3.0/gems/mail-2.8.1/lib/mail/fields/common_field.rb
mail-2.8.1 lib/mail/fields/common_field.rb
mail-2.8.1.rc2 lib/mail/fields/common_field.rb
mail-2.8.0.1 lib/mail/fields/common_field.rb
mail-2.8.0.1.rc1 lib/mail/fields/common_field.rb
mail-2.8.0 lib/mail/fields/common_field.rb
mail-2.8.0.rc3 lib/mail/fields/common_field.rb
mail-2.8.0.rc2 lib/mail/fields/common_field.rb
mail-2.8.0.rc1 lib/mail/fields/common_field.rb