Skip to content
Totem is a Ruby gem for creating Ruby projects.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin
lib
templates
.gitignore
Gemfile
LICENSE.txt
README.md
Rakefile
totem.gemspec

README.md

Totem

Totem is a Ruby gem for creating Ruby projects. It's like having a Rails project folder without the Rails dependency.

Goals:
  • Use a Ruby on Rails inspired folder structure because many developers are familiar with it.
  • Keep the gem lightweight with simple and easy to understand code.
  • Prefer built in Ruby classes in order to avoid third party dependencies.
  • Design from day one for MRI and JRuby.
  • Make it easily extensible.
  • Maintain thread safety so that it can be used with gems such as Tribe or Celluloid.
Features:
  • console
  • logger
  • environments (development, production, stage, etc).

Installation

Add this line to your application's Gemfile:

gem 'totem'

And then execute:

$ bundle

Or install it yourself as:

$ gem install totem

Create a project

Create a new project called my_app in the current directory:

$ bundle exec totem new my_app

You must now setup Bundler (and rvm, rbenv, etc if you use them) for your new project:

$ bundle

You can now create your custom classes in the app directory. You will need to manually require your classes in app/loader.rb since Tribe doesn't have an auto-loader.

Totem comes with an IRB based console similar to Rails:

$ bundle exec totem console

Totem API

Totem comes with some built in methods that should be familiar to any Rails developer. Copy and paste the below code into app/my_class.rb. You can then run this example in the console by entering MyClass.new.run. Don't forget, you need to register this class in app/loader.rb with require my_class.

class MyClass
  def run
    puts 'Totem provides a few class variables to simplify programming...'
    puts "  Root: #{Totem.root}"
    puts "  Environment: #{Totem.env}"
    puts

    puts 'Totem includes a logger...'
    Totem.logger.error('Example error log entry')
    puts "  Check your #{Totem.log_file_path} to see the entry."
    puts

    puts 'Enjoy!'
  end
end

Add-ons

Below is a list of available add-ons that extend the functionality of a Totem project:

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request
You can’t perform that action at this time.