• Stars
    star
    130
  • Rank 277,575 (Top 6 %)
  • Language
    Ruby
  • License
    MIT License
  • Created over 14 years ago
  • Updated over 13 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Simple gem and release management with customizable Rake tasks.

RakeGem

DESCRIPTION

Ever wanted to manage your RubyGem in a sane way without having to resort to external dependencies like Jeweler or Hoe? Ever thought that Rake and a hand crafted gemspec should be enough to deal with these problems? If so, then RakeGem is here to make your life awesome!

RakeGem is not a library. It is just a few simple file templates that you can copy into your project and easily customize to match your specific needs. It ships with a few Rake tasks to help you keep your gemspec up-to-date, build a gem, and release your library and gem to the world.

RakeGem assumes you are using Git. This makes the Rake tasks easy to write. If you are using something else, you should be able to get RakeGem up and running with your system without too much editing.

The RakeGem tasks were inspired by the Sinatra project.

INSTALLATION

Take a look at Rakefile and NAME.gemspec. For new projects, you can start with these files and edit a few lines to make them fit into your library. If you have an existing project, you'll probably want to take the RakeGem versions and copy any custom stuff from your existing Rakefile and gemspec into them. As long as you're careful, the rake tasks should keep working.

ASSUMPTIONS

RakeGem makes a few assumptions. You will either need to satisfy these assumptions or modify the rake tasks to work with your setup.

You should have a file named lib/NAME.rb (where NAME is the name of your library) that contains a version line. It should look something like this:

module NAME
  VERSION = '0.1.0'
end

It is important that you use the constant VERSION and that it appear on a line by itself.

UPDATING THE VERSION

In order to make a new release, you'll want to update the version. With RakeGem, you only need to do that in the lib/NAME.rb file. Everything else will use this find the canonical version of the library.

TASKS

RakeGem provides three rake tasks:

rake gemspec will update your gemspec with the latest version (taken from the lib/NAME.rb file) and file list (as reported by git ls-files).

rake build will update your gemspec, build your gemspec into a gem, and place it in the pkg directory.

rake release will update your gemspec, build your gem, make a commit with the message Release 0.1.0 (with the correct version, obviously), tag the commit with v0.1.0 (again with the correct version), and push the master branch and new tag to origin.

Keep in mind that these are just simple Rake tasks and you can edit them however you please. Don't want to auto-commit or auto-push? Just delete those lines. You can bend RakeGem to your own needs. That's the whole point!

More Repositories

1

chronic

Chronic is a pure Ruby natural language date parser.
Ruby
3,237
star
2

god

Ruby process monitor
Ruby
2,210
star
3

grit

**Grit is no longer maintained. Check out libgit2/rugged.** Grit gives you object oriented read/write access to Git repositories via Ruby.
Ruby
1,970
star
4

clippy

Clippy is a very simple Flash widget that makes it possible to place arbitrary text onto the client's clipboard.
939
star
5

mojombo.github.io

Jekyll source for my personal blog.
HTML
935
star
6

tpw

697
star
7

proxymachine

A simple TCP routing proxy built on EventMachine that lets you configure the routing logic in Ruby.
Ruby
583
star
8

ernie

Ernie is an Erlang/Ruby BERT-RPC Server.
Erlang
463
star
9

erlectricity

Erlectricity exposes Ruby to Erlang and vice versa.
Ruby
349
star
10

tomdoc

A flexible code documentation specification with human readers in mind.
333
star
11

primer

Primer is a Flash-like API built on top of Canvas using jQuery.
JavaScript
280
star
12

mustache.erl

Mustache template engine for Erlang.
Erlang
239
star
13

bert

BERT (Binary ERlang Term) serialization library for Ruby.
Ruby
206
star
14

github-flavored-markdown

GitHub's Flavor of Markdown
183
star
15

bertrpc

BERTRPC is a Ruby BERT-RPC client library.
Ruby
164
star
16

sf-vegetarian-restaurants

A list of awesome vegetarian-friendly restaurants in SF
141
star
17

egitd

The Erlang git-daemon
Erlang
115
star
18

bert.erl

Erlang BERT encoder/decoder
Erlang
98
star
19

asteroids

Destroy your Atom editor, Asteroids style!
JavaScript
94
star
20

gollum-demo

Gollum test repo
Perl
75
star
21

rebar

Ruby to Erlang Bridge And Runner
Erlang
63
star
22

yaws

YAWS is an erlang web server
Erlang
42
star
23

omniship

Ruby API for Shipper APIs (UPS, FedEx, DHL)
Ruby
37
star
24

glowstick

A realtime, OpenGL graphing library for Ruby
Ruby
35
star
25

mastering-git-basics

A presentation on Git basics using ShowOff
JavaScript
35
star
26

octobeer

The GitHub Kegerator
27
star
27

cubesixel

A pixel font (native size 7x7) I made in a different life
27
star
28

vanhelsing

Super streamlined memory profiler with real time graphs for Ruby programs
Ruby
23
star
29

erlang_pipe

A pipe implementation in pure Erlang
Erlang
21
star
30

fixture-scenarios

This plugin allows you to create 'scenarios' which are collections of fixtures and ruby files that represent a context against which you can run tests.
Ruby
18
star
31

v8

C++
18
star
32

scoped

Scope access for multiple services in Ruby. Warning: OLDSCHOOL CODE!
Ruby
10
star
33

pyberry

A tool for systems analysis.
10
star
34

30daysoflaptops.github.io

CSS
8
star
35

conceptual_algorithms

6
star
36

mojombo.github.com

Old location of Jekyll source for tom.preston-werner.com
6
star
37

erlectricity-presentation

5
star
38

endo

Test repo for talk.
4
star
39

fakegem

This is a fake gem so I can test GitHub's gem building when I need to
Ruby
4
star
40

mojombo

3
star