I would check out something like Jekyll. 

https://github.com/mojombo/jekyll

A tip when searching for a RoR version of XYZ, Google something like "XYZ 
ruby rails github gem". There is a gem to accomplish most complex/mundane 
tasks.

I would let something like Jekyll handle the static site creation. You 
could then have a ruby script create a custom config file for each type 
site or actually create another gem that handles that.

Have everything run in the background like so:

1. Request comes in for new static build.
2. Ruby script initializes and custom variables
3. Ruby script creates unique temp folder. Keep track of this folder so it 
can be logged and deleted.
4. Write log to database that process has started.
5. Ruby script runs jekyll command to create static site. 
6. If no errors write to db log that process completed. Log error otherwise 
and notify admin via email.
7. Zip temp directory and notify db log process is complete and zip ready.
8. Notify user via email or prompt that zip is ready.
9. Push zip to browser with new pretty file name.
10. Delete temp zip and directory. Log in db that file was successfully 
delivered.

This process under a heavy server load can take a while. Use a background 
task gem that logs to a DB or roll your own.

Utilize your Linux server via bash as much as possible. You can control 
your server via Ruby. The system in many instances will run tasks like 
zipping way faster than Ruby. Use Cron for scheduled tasks and the "God" 
gem for crash detection. 

Use good error handling as much as possible and log all "states" so you can 
debug where issues arise.

Good Luck. I hope I addressed your issue.

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to rubyonrails-talk+unsubscr...@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/rubyonrails-talk/eeafb177-e3e6-4f02-9a6f-c9f370391335%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to