ruby compactor/consolidator?

Discussion in 'Ruby' started by Kyle Schmitt, Apr 8, 2009.

  1. Kyle Schmitt

    Kyle Schmitt Guest

    Is there a built-in or common way to consolidate a ruby project into one file?

    I've got a project of 8-10 files (one class per file & a script that
    use the classes). For ease of distributing it to my servers, I've got
    a secondary script that consolidates all of them to one big ugly
    script.

    While the script to consolidate the project does does work well enough
    for now, I can easily see it may not in the future.

    Thanks
    --Kyle
     
    Kyle Schmitt, Apr 8, 2009
    #1
    1. Advertisements

  2. Kyle Schmitt

    James Coglan Guest

    [Note: parts of this message were removed to make it a legal post.]


    cat `find . -name '*.rb'` > all.rb
     
    James Coglan, Apr 8, 2009
    #2
    1. Advertisements

  3. Kyle Schmitt

    James Coglan Guest

    [Note: parts of this message were removed to make it a legal post.]

    My apologies, that was kind of a silly answer. Best idea is to package it as
    a gem. I use hoe for this, for which there is an excellent tutorial:

    http://nubyonrails.com/articles/tutorial-publishing-rubygems-with-hoe
     
    James Coglan, Apr 8, 2009
    #3
  4. Kyle Schmitt

    Kyle Schmitt Guest

    Did you get that from the new O'Reilly book, "Mastering cat"? ;)
    http://www.shlomifish.org/humour/bits/Mastering-Cat/

    For some reason I never even _thought_ of doing it as a gem. Although
    I'm not sure gem works by default on CentOS... I'll have to see.

    Thanks
    --Kyle
     
    Kyle Schmitt, Apr 8, 2009
    #4
  5. Kyle Schmitt

    James Coglan Guest

    [Note: parts of this message were removed to make it a legal post.]


    Hey, it's worth knowing your cat... although I really wish someone actually
    would publish that book, I'd love to see how much mileage they could eke out
    of it.

    I slightly more robust thing to do would be to list all the files in a
    config file e.g. Manifest.txt, since order can be important, then write a
    build take in your Rakefile:

    task :build do
    files = File.read('Manifest.txt').strip.split(/\s+/)
    code = files.map(&File.method:)read)) * "\n\n"
    File.open('build.rb', 'wb') { |f| f.write(code) }
    end
     
    James Coglan, Apr 8, 2009
    #5
  6. Might be helpful:

    http://raa.ruby-lang.org/project/darb

    (Doesn't package binary extensions, though, only ruby source.)
     
    Joel VanderWerf, Apr 8, 2009
    #6
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.