• Stars
    star
    169
  • Rank 223,436 (Top 5 %)
  • Language
    Ruby
  • License
    MIT License
  • Created over 14 years ago
  • Updated almost 14 years ago

Reviews

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

Repository Details

rit. is a standalone web application that allows users to edit and schedule content. Content is served up to a consuming application as a web service.

rit.

Ritardando โ€” immediate slowing down (abbreviation: rit. or more specifically, ritard.)

rit. is a standalone web application that allows users to edit and schedule content. Content is served up to a consuming application as a web service.

Design Goals

  • CMSes suck. We don't want our application to live inside a CMS.
  • Do one thing and do it well. rit. schedules content. That's pretty much it.
  • Don't be clever. We're not clever so we probably can't make a computer clever.
  • Be fast. Cache in rit. so that the consuming application doesn't have to.

Consuming Rit. Content

Install the rit_client Rails plugin into your app. Follow the configuration instructions specified in the rit_client readme.

Getting Started

See the Rit wiki for the latest information.

Ideas? Need help? Discuss here.

Development

RVM and Best Practices

Developed using RVM Ruby 1.8.7 and Gemset

$ rvm use 1.8.7
$ rvm gemset create rit
$ rvm use 1.8.7@rit

Terminology

Plate

A Plate is a class of content. A plate is identified by the combination of it's Layout Name, Instance Name and Plate Name. The names are used to classify and organize plates.

Layout Name

A class of pages. For instance, the layout for all help pages.

Instance Name

A specific page using a layout. For instance, the contact help page. The Instance Name can be blank for those layouts that have only one instance, such as a home page.

Plate Name

A content area on a web page. For instance, the body of the contact help page.

Plate Edition

A Plate has many Plate Editions. These editions contain content and can be scheduled.

Fallback Edition

The edition that is published if no scheduled edition can be found.

Publish

Flag used to mark that an edition is ready to be considered for publishing. Scheduling rules will take this edition into account.

Event

Plate Editions can be grouped into Events that can be scheduled. All editions take on the Events start time and and time.

Plate Set

A Plate Set is a template for generating a group of related Plates. For example, if a help page has a body plate and a left column plate, a user can generate an instance of both those plates from that plate set.

Consuming App

The application that makes web calls out to rit. for content.

Scheduling

Conflicts

When there are scheduling conflicts for multiple editions of the same plate, the start time is used to determine which plate gets published. The event latest start time takes priority.

If start multiple editions have the same start time, the most recently modified edition takes priority

Example

                1     2                  3      4
Timeline:  <----^-----^------------------^------^---->

edition 1       |-------------------------------|
edition 2             |------------------|

Edition start times:

  • time 1: edition 1
  • time 2: edition 2
  • time 3: back to edition 1
  • time 4: fallback edition

Example

                1     2                  3      4
Timeline:  <----^-----^------------------^------^---->

edition 1       |------------------------|
edition 2             |-------------------------|

Edition start times:

  • time 1: edition 1
  • time 2: edition 2
  • time 3: edition 2 continues
  • time 4: fallback edition

Example

                1     2      3      4    5      6
Timeline:  <----^-----^------^------^----^------^---->

edition 1       |------------|
edition 2             |------------------|
edition 3                           |-----------|

Edition start times:

  • time 1: edition 1
  • time 2: edition 2
  • time 3: edition 2 continues
  • time 4: edition 3
  • time 5: edition 3 continues
  • time 6: fallback edition

Example

                1     2      3      4    5      6
Timeline:  <----^-----^------^------^----^------^---->

edition 1       |-------------------------------|
edition 2             |-------------|
edition 3                     |----------|

Edition start times:

  • time 1: edition 1
  • time 2: edition 2
  • time 3: edition 3
  • time 4: edition 3 continues
  • time 5: back to edition 1
  • time 6: fallback edition

Publishing

The consuming app can retrieve the current content for a plate from the following URLs:

http://rit.app/published/<layout name>/<instance name>/<plate name>
http://rit.app/published/<layout name>/<plate name>

The consuming app can retrieve content on a specific date with:

http://rit.app/published_on/<layout name>/<instance name>/<plate name>/<epoch time integer>
http://rit.app/published/<layout name>/<plate name>/<epoch time integer>

NOTE: Retrieving content on a specific date is not currently cached.

More Repositories

1

change-inside-surroundings.vim

vim plugin to change the contents of the innermost 'surrounding'
Vim Script
44
star
2

st-elsewhere

St. Elsewhere: A gem that adds support for relationships across different databases in ActiveRecord
Ruby
39
star
3

dotfiles

dotfiles for: ack, git, bash, ruby, rails, vim
Vim Script
21
star
4

twitever

Automatically add web pages to Evernote from links in your favorite tweets
Ruby
9
star
5

rit_client

A Rails plugin providing convenient access methods to a Rit. content scheduling system
Ruby
8
star
6

acts_as_hashed

Provides a unique hash parameter on AR models to use in place of ids or params for private shared URLs
Ruby
7
star
7

git-svn-scripts

Scripts to implement a nice workflow with git svn, influenced heavily by Rein Henrichsโ€™ post entitled hack && ship.
Shell
5
star
8

wodleader

Quick hack of an app to manage multi-event crossfit competition scoring
HTML
5
star
9

briandoll.github.com

CSS
4
star
10

rails_framework_diff

Diff Rails framework-generated files against their defaults. Helpful during code audits and debugging sessions.
Ruby
4
star
11

influencer.tweets

What are 'influencers' on twitter saying right now about X?
3
star
12

db_migration_dry_run

A non-destructive "dry run" for database migrations, based on topfunky's original code
Ruby
3
star
13

greatest_common_factor

Privides gcf features on arrays of integers
Ruby
2
star
14

oh-behave

provides a DSL for testing actual user behavior of a web application, using Google Analytics
Ruby
2
star
15

next-ferry

Single-page app - shows next golden gate ferry
JavaScript
2
star
16

date_sensitive_partial

Render a specific partial among a grouping of partials based on the current date/time
Ruby
2
star
17

cooper

cooper is a very simple consumers' cooperative management application
Ruby
2
star
18

movableink-api

A Ruby API for the Movable Ink API -- In development stage
Ruby
2
star
19

emphaticsolutions.com

my blog, powered by jekyll
JavaScript
2
star
20

crossfit_scorekeeping_generator

Use my Crossfit scoring web app instead: https://github.com/briandoll/wodleader // This is a ruby script that generates Excel files to score multi-event Crossfit competitions
Ruby
2
star
21

referrer_search_phrase

Get the cleaned search phrase used to get to your app via a search engine.
Ruby
1
star
22

eatmoreprotein.com

Eat. More. Protein.
CSS
1
star
23

assert_each

get feedback from each failed assertion in a test
Ruby
1
star
24

kitandride

kitandride.com
CSS
1
star