Sha256: bf07a91f28384d51bf161c63f735e5fa8b9475f5830c9c5d5990ea1e159b0e0b

Contents?: true

Size: 1.05 KB

Versions: 67

Compression:

Stored size: 1.05 KB

Contents

module Mail
  grammar ContentType

    include RFC2822
    include RFC2045
    
    rule content_type
      main_type "/" sub_type param_hashes:(CFWS ";"? parameter CFWS)* {
        def parameters
          param_hashes.elements.map do |param|
            param.parameter.param_hash
          end
        end
      }
    end

    rule main_type
      discrete_type / composite_type
    end

    rule discrete_type
      "text" / "image" / "audio" / "video" / "application" / extension_token
    end

    rule composite_type
      "message" / "multipart" / extension_token
    end
  
    rule extension_token
      ietf_token / custom_x_token
    end

    rule sub_type
      extension_token / iana_token
    end
  
    rule parameter
      CFWS? attr:attribute "=" val:value CFWS? {
        def param_hash
          {attr.text_value => val.text_value}
        end
      }
    end

    rule attribute
      token+
    end

    rule value
      quoted_string {
        def text_value
          quoted_content.text_value
        end
      } / (token / [\x3d])+
    end

  end
end

Version data entries

67 entries across 37 versions & 3 rubygems

Version Path
depengine-0.0.31 etc/isolate/jruby-1.8/gems/mail-2.2.5/lib/mail/parsers/content_type.treetop
depengine-0.0.31 etc/isolate/ruby-1.8/gems/mail-2.2.5/lib/mail/parsers/content_type.treetop
depengine-0.0.30 etc/isolate/ruby-1.8/gems/mail-2.2.5/lib/mail/parsers/content_type.treetop
depengine-0.0.30 etc/isolate/jruby-1.8/gems/mail-2.2.5/lib/mail/parsers/content_type.treetop
depengine-0.0.29 etc/isolate/jruby-1.8/gems/mail-2.2.5/lib/mail/parsers/content_type.treetop
depengine-0.0.29 etc/isolate/ruby-1.8/gems/mail-2.2.5/lib/mail/parsers/content_type.treetop
depengine-0.0.28 etc/isolate/ruby-1.8/gems/mail-2.2.5/lib/mail/parsers/content_type.treetop
depengine-0.0.28 etc/isolate/jruby-1.8/gems/mail-2.2.5/lib/mail/parsers/content_type.treetop
depengine-0.0.27 etc/isolate/ruby-1.8/gems/mail-2.2.5/lib/mail/parsers/content_type.treetop
depengine-0.0.27 etc/isolate/jruby-1.8/gems/mail-2.2.5/lib/mail/parsers/content_type.treetop
depengine-0.0.26 etc/isolate/jruby-1.8/gems/mail-2.2.5/lib/mail/parsers/content_type.treetop
depengine-0.0.26 etc/isolate/ruby-1.8/gems/mail-2.2.5/lib/mail/parsers/content_type.treetop
depengine-0.0.25 etc/isolate/ruby-1.8/gems/mail-2.2.5/lib/mail/parsers/content_type.treetop
depengine-0.0.25 etc/isolate/jruby-1.8/gems/mail-2.2.5/lib/mail/parsers/content_type.treetop
depengine-0.0.24 etc/isolate/ruby-1.8/gems/mail-2.2.5/lib/mail/parsers/content_type.treetop
depengine-0.0.24 etc/isolate/jruby-1.8/gems/mail-2.2.5/lib/mail/parsers/content_type.treetop
depengine-0.0.23 etc/isolate/jruby-1.8/gems/mail-2.2.5/lib/mail/parsers/content_type.treetop
depengine-0.0.23 etc/isolate/ruby-1.8/gems/mail-2.2.5/lib/mail/parsers/content_type.treetop
depengine-0.0.22 etc/isolate/jruby-1.8/gems/mail-2.2.5/lib/mail/parsers/content_type.treetop
depengine-0.0.22 etc/isolate/ruby-1.8/gems/mail-2.2.5/lib/mail/parsers/content_type.treetop