Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??

Thanks for the great responses. Y'all have definitely given me plenty upon which to meditate. Here are some of my thoughts on what I've read thus far:

On Sub-Classing...
This generated the nice debate I was looking for. ;) I had considered the issue of having to create separate objects for each of the different output methods, which was the main reason I considered proceeding with the single-class system. But on the other hand, I would like to make it relatively easy to pick and choose the functionality and implementation you want to use on a given system. For example, if you don't have and/or don't want to install the PDFLib module and its baggage, you simply don't have to create any Resume::PDF objects. And if someone wanted to write a different PDF output system, it feels cleaner to me to just replace the existing Resume/PDF.pm module than to have to edit the Resume.pm module itself. I do like and intend to use the Factory object idea as well.
Template Toolkit
I've checked out many of the templating modules out there and liked what I've seen. So far, for the XML, HTML, and text outputs, they all seem overkill when I've already got my favorite new hammer on the workbench generating the outputs, but the jury's still out on the best way to handle PDF. I figured I'd get the PDFLib version completed, then see what I can improve if I change modules.
Joining forces...
I'm certainly not adverse to joining up with a similar (or identical) project. ;) I'm planning to get the code cleaned up a bit more and incorporate the ideas I've gotten thus far, and posting it for review Real Soon Now. When I do, let me know if it looks like you'd like my assistance.
Other Outputs
How could I have forgotten RTF? It's an obvious choice, especially considering how many times I've provided an MS Word version of my own in the past. There seem to be several RTF modules available for the task. I've also considered (for far off in the future when I get time to bang my head on it) learning Win32::OLE to try and directly generate Word documents.
I also like the idea of XML to XML transforms using XSLT. That will be simple to add; on the XML output, I can allow an optional XSL file to be passed in for transformations.
Related Projects (XML resumé library, etc)
I should have mentioned XML resumé library explicity as one of the other solutions I've looked at. It is a fine resource, and actually one of the projects that inspired me to try this. It was quite a bit more than I need at this point, and I'm trying to avoid Java for now, but its has given me several ideas. While I'm at it, I should also mention Andrew Ho Résumé Formats. I considered using it for my own purposes, but I prefer to use XSLT for my transforms rather than a dispatch table.

Thanks again for all the comments and for giving me plenty of food for thought.

-rattus

__________
He seemed like such a nice guy to his neighbors / Kept to himself and never bothered them with favors
- Jefferson Airplane, "Assassin"


In reply to Re: XML Resume Module design by rattusillegitimus
in thread XML Resume Module design by rattusillegitimus

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others romping around the Monastery: (9)
As of 2024-03-28 10:17 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found