Giter Site home page Giter Site logo

Comments (7)

mikel avatar mikel commented on June 13, 2024

Sounds good, any chance you can write a patch with a spec to cover?

from mail.

nel avatar nel commented on June 13, 2024

Here's a failing spec:

http://gist.github.com/320229

Mail::Body#sort_parts! only makes sense for email generation, and Mail::Message#html_part Mail::Message#text_part Mail::Message#part Mail::Message#all_part mostly makes senses and need consistency in email parsing.

I triggered the bug through the to_s (that trigger) body.encoded that trigger Body#sort_parts!. There is no real reason to use to_s in real case, so in most case this won't be a problem.

If you want me to fix it, what I'll do is get rid of Body#sort_parts! and replace it by a dynamic Body#sorted_parts (private?) and Body#encoded would use it directly. I can imagine the use of sorting the parts comes from a bad support for some mail client when attachment come first before text part or html part.

It's your lib, you decide :)

from mail.

mikel avatar mikel commented on June 13, 2024

Please leave sort_parts! but add a public method sorted_parts and switch encoding to use this.

Mikel

from mail.

mikel avatar mikel commented on June 13, 2024

Actually, I can't really see the problem here, at least with the spec you provided, because in that case we ARE generating the mail message and so the parts should get sorted.

Do you have a case where we are not?

Mikel

from mail.

nel avatar nel commented on June 13, 2024

I agree for real work use this is not an issue as you are unlikely to generate the encoded email and then iterate over its parts. But while playing around with the api this is kinda unexpected that the order of your parts is changing when you execute some methods.

By the way I had a look at this time and this created tons of change just to add a sorted_parts which does change the internal state of the parts as this is deeply nest to a low level Array Extension and tweeked version of sort! with extra arguments if I remind well.

As a conclusion this is far too complicated for the minimal level of inconvenience which by the way is not a problem in real world case so you can close this ticket in my opinion.

from mail.

mikel avatar mikel commented on June 13, 2024

OK, awesome :)

from mail.

mikel avatar mikel commented on June 13, 2024

Having said that and closed, I do agree that it could be neater... maybe for Mail 3 :)

from mail.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.