• Stars
    star
    218
  • Rank 181,805 (Top 4 %)
  • Language
    Ruby
  • License
    MIT License
  • Created over 12 years ago
  • Updated over 11 years ago

Reviews

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

Repository Details

The App Scrolls is a magical tool to generate new Rails apps and modify existing Rails applications (coming) to include your favourite, powerful magic.

The App Scrolls for creating and transforming Rails apps

             ___               ____             ____  
            / _ | ___  ___    / __/__________  / / /__
           / __ |/ _ \/ _ \  _\ \/ __/ __/ _ \/ / (_-<
          /_/ |_/ .__/ .__/ /___/\__/_/  \___/_/_/___/
               /_/  /_/                               

The App Scrolls is a magical tool to generate new Rails and modify existing Rails applications (coming) to include your favourite, powerful magic. Authentication, testing, persistence, javascript, css, deployment, and templating - there's a magical scroll for you.

An example application that was built by the App Scrolls is at https://github.com/drnic/mydemoapp. The generated README shows all the scrolls that were included.

Installation

Installation is simple:

gem install appscrolls

Usage

The primary usage of the appscrolls gem is to utilize its interactive terminal command to build a new Rails application. To get started, you can simply run the command thusly:

appscrolls new APP_NAME
scrolls new APP_NAME

Where APP_NAME is the directory in which you wish to create the app (it mirrors the Rails creation syntax). You will then be guided through the scroll selection process and subsequently the Rails app generator will automatically run with the template and all appropriate command line options included.

To transform an existing Rails app, you ... wait, that's not implemented yet. But since the "apply template" feature of rails new APP_NAME -m template.rb is implemented in Thor, I mean, how hard could it be?*

Available Scrolls

The current available scrolls grouped by category:

  • administration: active_admin, rails_admin
  • assets: jquery, prototype
  • deployment: eycloud, eycloud_recipes_on_deploy, git, github, passenger, thin, unicorn
  • persistence: mysql, postgresql, redis, sqlite3
  • stylesheet: twitter_bootstrap
  • templating: simple_form
  • testing: capybara, cucumber, rspec, test_unit
  • worker: delayed_job, resque
  • other: env_yaml, guard, rails_basics, split

Specifying Scrolls

If you wish to skip the interactive scroll selector, you may provide instead a list of scrolls with the -s or --scrolls option:

scrolls new APP_NAME -s twitter_bootstrap mysql resque
scrolls new APP_NAME --scrolls postgresql github eycloud

This will automatically generate a Rails template with the provided scrolls and begin the app generator.

Listing Scrolls

You can also print out a simple list of scrolls:

scrolls list

Or print out a list of scrolls for a specific category:

scrolls list persistence

Deployment Support

Web applications are boring if they aren't running proudly on the internet. The App Scrolls make this automatic for your favourite providers!

Engine Yard

Scroll: eycloud

Example:

scrolls new mydemoapp -s twitter_bootstrap unicorn postgresql resque github eycloud

The created application above will be automatically stored in a git private/public repository on GitHub and then deployed to Engine Yard Cloud.

When deploying to Engine Yard Cloud you will need to choose:

  • unicorn or passenger for your app server
  • mysql or postgresql for your SQL DB

When choosing from the following scrolls, your Engine Yard Cloud environment will be automatically upgraded/configured with Chef recipes.

  • resque - add utility instances called resque for workers [see readme for more information]
  • redis - add a utility called redis to have a dedicated redis DB; else it is run on your DB master or Solo instance
  • delayed_job - add utility instances called delayed_job or dj for workers [see readme for more information]

Note: Resque is recommended instead of Delayed Job. Soon, Sidekiq will be recommended over both, and

Please open an Issue if you want an alternate option (puma or thin; or mongodb)

Heroku

The App Scrolls needs a Heroku Master to support Heroku for the App Scrolls.

There is some initial work in the current scrolls and the archived/unsupported scrolls

CloudFoundry

The App Scrolls needs a CloudFoundry Master to support CloudFoundry for the App Scrolls.

Authoring Scrolls of Magical Mystery

Create new scrolls using:

thor :new scroll-name

Submitting a scroll is actually a very straightforward process. Scrolls are made of up template code and YAML back-matter stored in a ruby file. The __END__ parsing convention is used so that each scroll is actually a valid, parseable Ruby file. The structure of a scroll looks something like this:

gem 'supergem'

after_bundler do
  generate "supergem:install"
end

__END__

category: templating
name: SuperGem
description: Installs SuperGem which is useful for things
author: mbleigh

It's really that simple. The gem has RSpec tests that automatically validate each scroll in the repository, so you should run rake spec as a basic sanity check before submitting a pull request. Note that these don't verify that your scroll code itself works, just that App Scrolls could properly parse and understand your scroll file.

History

This project is an old fashioned fork of Michael Bleigh's Rails Wizard. A new name, new project, and new purpose.

This project wouldn't exist without Michael having created Rails Wizard during Rails Rumble and maintaining and upgrading it for a long time. Sadly support dropped off, several recipes did not work with Rails 3.1+,

Dr Nic originally worked on Rails Wizard to provide Engine Yard Cloud support, his employer and his favourite hosting platform. He also merged in a lot of recipes from other forks, and added new recipes for modern projects.

Support for Engine Yard Cloud meant integration with Chef Recipes. This meant confusing language - Rails Wizard Recipes and Chef Recipes. He decided that wizards don't use recipes - they use scrolls. Alchemists use recipes. And screw alchemists and their dinky potions. Recipes became Scrolls.

Future

  • Automatically setup Continuous Integration for new applications - branches "jenkins"
  • Interactive mode is a wizard by categories "pick A, B, C or none"
  • Apply scrolls to existing Rails applications - branch "apply_scrolls"*
  • Scrolls work or fail fast on Heroku
  • Scrolls work or fail fast on CloudFoundry
  • Scrolls generate their own README - branch "readmes"
  • 3rd party services/add-ons enabled within deployment platform or directly with service
  • Padrino / Sinatra applications
  • Non-Ruby applications (Lithium for PHP, etc)

Missing scrolls

  • MongoDB - branch "mongodb"
  • OmniAuth - branch "omniauth"
  • Sidekiq - branch "sidekiq"

How hard could it be?

  • * 'How hard could it be to transform applications?' - pretty hard. Scrolls need to be aware of the current code base, rather than merely the list of other scrolls being used to create a new app. Scrolls also need to know about versions of Rails rather than just latest rails.

Thanks

ASCII banner - http://www.network-science.de/ascii/ using 'smslant' font.

License

App Scrolls and its scrolls are distributed under the MIT License. See MIT_LICENSE for the actual words.

More Repositories

1

ruby-on-rails-tmbundle

Ruby on Rails TextMate bundle [Learn it with PeepCode - http://peepcode.com/products/textmate-for-rails-2]
Ruby
893
star
2

install_theme

Use any HTML template as a theme generator for your Rails app.
Ruby
233
star
3

github-tmbundle

TextMate bundle for working with GitHub
Ruby
229
star
4

copy-as-rtf-tmbundle

Copy as RTF - a TextMate bundle to make copying syntax highlighted text into Keynote, etc easy peasy
Ruby
210
star
5

ruby-tmbundle

Ruby TextMate bundle
Ruby
161
star
6

choctop

Build and deploy tools for Cocoa apps using Sparkle for distributions and upgrades; it’s like Hoe but for Cocoa apps.
Ruby
155
star
7

javascript-node.tmbundle

TextMate bundle for node.js
133
star
8

newgem

New Gem Generator for RubyGems
Ruby
122
star
9

searchcraft

Instant Search for Rails and ActiveRecord using SQL materialized views
Ruby
107
star
10

groq-ruby

Groq Cloud runs LLM models fast and cheap. This is a convenience client library for Ruby.
Ruby
106
star
11

github-badges

GitHub Blog Badges for Everyone
JavaScript
104
star
12

tabtab

Create and install double-tab (‘tab tab’) auto-completions for any command-line application on any shell (bash, fish, ksh, etc)
Ruby
90
star
13

ruby-shoulda-tmbundle

TextMate bundle for Ruby Shoulda gem/Rails plugin
Ruby
88
star
14

rbiphonetest

Want to write iPhone apps with unit tests? Want to write them in Ruby?
Ruby
82
star
15

rubigen

Generator framework for your own Ruby framework
Ruby
75
star
16

macruby-tmbundle

MacRuby TextMate bundle
Ruby
59
star
17

objective-c-iphone-tmbundle

TextMate bundle for Objective-C and iPhone SDK
Ruby
50
star
18

jsunittest

JavaScript Unit Test suite; no dependencies (but same API as prototypejs' unittest suite)
JavaScript
45
star
19

jekyll_generator

A nice generator for a Jekyll website including Disqus comments integration
Ruby
45
star
20

Bundler.tmbundle

TextMate bundle for managing Gemfiles and bundler's commands
Ruby
44
star
21

html-tmbundle

HTML TextMate bundle
Ruby
43
star
22

Handlebars.tmbundle

TextMate bundle for Handlebars (and some SproutCore integration)
42
star
23

railsapp-vagrant

Sample Rails3 project with Vagrantfile + cookbooks
Ruby
39
star
24

javascript-jquery-tmbundle

JavaScript jQuery.tmbundle
38
star
25

magic_model_generator

Imagine you get offered $5,000 to write a basic website/admin application on a legacy database that has 200 interconnected tables. You’ll need to add all the associations and validations based on the existing schema. Imagine how long that would take! 1 day? 1 week? more? Try 1 minute. The Magic Model Generator does all this for you automatically.
Ruby
38
star
26

merb-tmbundle

Merb bundle for TextMate (uses Ruby, Ruby on Rails, Datamapper and Sequel bundles as necessary)
Ruby
36
star
27

promptcraft

Try new system prompts on your AI conversations. Over and over until you're happy.
Ruby
36
star
28

magic_multi_connections

Ruby
28
star
29

consul-discovery

Go package is a service discovery client for Consul
Go
25
star
30

oss-8steps-app

Ruby
25
star
31

Chef.tmbundle

TextMate bundle for authoring Chef recipes
24
star
32

dr-nic-magic-models

Dr Nic Magic Models - Ultra-thin, invisible models for ActiveRecord
Ruby
24
star
33

ruby-machinist-tmbundle

TextMate bundle for Machinist
Ruby
23
star
34

newjs

newjs - create new JavaScript libraries
Ruby
21
star
35

Backbone.tmbundle

20
star
36

Showoff.tmbundle

TextMate bundle for the Showoff presentation tool
Ruby
18
star
37

hobo-tmbundle

TextMate bundle for Hobo
Ruby
18
star
38

datamapper-tmbundle

TextMate bundle for DataMapper ORM
18
star
39

ruby-saml-idp-rails3-example

Ruby
18
star
40

rubycocoa-tmbundle

TextMate bundle for RubyCocoa
Ruby
17
star
41

tweet-tail

Get the latest search results streaming to your console
Ruby
17
star
42

personal-rails-generators

A set of rails generators to be cloned into ~/.rails/generators
Ruby
17
star
43

ninja-search-js

Do long drop down lists make you want to send out an assassin and hunt down web developers? Then I have the ninja for you.
JavaScript
17
star
44

github-shields

GitHub Pull Request status badges/shields
Go
17
star
45

babygopher-site

Landing page for getting yourself the Baby Gopher badge for your first Golang projects
16
star
46

javascript-unittest-tmbundle

JavaScript Unit Test TextMate Bundle [for prototype's unittest.js library]
16
star
47

I18n.tmbundle

TextMate bundle when working with i18n library in Ruby projects
Ruby
15
star
48

hillegass-macruby

MacRuby implementations of Cocoa Programming for Mac OS X projects
Ruby
14
star
49

iphoneruby

RENAMED: see rbiphonetest project
Ruby
14
star
50

docker-registry-dockerfile

Dockerfile and an example config file to run the docker-registry in standalone mode
Shell
13
star
51

drnic_js_test_helpers

JavaScript helper libraries for unit testing
JavaScript
13
star
52

macruby-examples

Little sample MacRuby/HotCocoa apps to demonstrate (mostly to myself) some ideas in isolation
Ruby
12
star
53

pastie-packer

Pack a folder (or selection) of files into a pastie; and then unpack it back into raw files
Ruby
12
star
54

ruby-state-machine-tmbundle

TextMate bundle for state_machine project
12
star
55

.dotfiles

Shell
11
star
56

ruby-c-extensions-tmbundle

TextMate bundle for developing C extensions for Ruby
11
star
57

google-gears-mechanizations

This JavaScript project provides an ActiveRecord-esque API for the Google Gears SQLite database.
JavaScript
11
star
58

pivotal-tracker-tmbundle

JavaScript
11
star
59

Bats.tmbundle

10
star
60

html-script-src.tmbundle

Insert <script src=".."> for popular JavaScript libraries (via http://scriptsrc.net/)
10
star
61

airports-chatgpt-plugin

ChatGPT plugin that returns airport information in Australia, written in Ruby/Sinatra.
Ruby
9
star
62

instantrails

Ye Olde InstantRails - imported from SVN to remember the good times
9
star
63

readwritesettings

ReadWriteSettings is a simple configuration / settings solution that uses an ERB enabled YAML file
Ruby
9
star
64

picasa_plucker

Download images from any Google Picasa web album to your computer
Ruby
9
star
65

mydemoapp

Demo app generated by App Scrolls
Ruby
9
star
66

chef-hub

chef cookbook for hub
Ruby
9
star
67

todos-bulk-api-demo

bulk_api working for simple Todo app
Ruby
9
star
68

tranexp

Translate text between two languages using www.tranexp.com
Ruby
8
star
69

magic_metaclass

Explicit metaclasses for Ruby
Ruby
8
star
70

ruby-doctest-tmbundle

TextMate bundle for RubyDocTest project
Ruby
8
star
71

s3sync

project to gemify and update s3sync.rb
Ruby
7
star
72

gemsonrails

Gems On Rails; aka ‘vendor everything’
Ruby
7
star
73

comment_replies

Embedded 'reply' links in blog comments
JavaScript
7
star
74

highrise-greasemonkey

Greasemonkey/GreaseKit extensions for 37signal's Highrise
JavaScript
6
star
75

php-helloworld

PHP
6
star
76

tenderlove-live-streaming-demo

Ruby
6
star
77

Rails-Generators.tmbundle

Ruby
6
star
78

hobo-meeting-app

A sample Hobo app - similar to meetup.com
JavaScript
6
star
79

ruby-chatgpt-plugin-random-numbers

This Ruby/Sinatra app is a ChatGPT plugin that provides a random number.
Ruby
6
star
80

kubernetes-the-kubernetes-way

This tutorial walks you through setting up Kubernetes the way the Kubernetes documentation suggests you might like to do it. A continuation of Kelsey's KTHW tutorial.
Shell
6
star
81

rotate-concourse-credentials

If a friend accidentally leaks credentials used by Concourse CI then here are two scripts to rotate the credentials across all your pipelines
Shell
6
star
82

gitlabhq-boshrelease

Deploy GitlabHQ to a single or multiple VMs with BOSH
Shell
5
star
83

codex-tmbundle

TextMate bundle for Codex project
Ruby
5
star
84

etcd-service-buildpack

Shell
5
star
85

faa-nasr

Tools to fetch, convert and compare the FAA's NASR data files
Ruby
5
star
86

redis-counter-example

Tiny example app that talks to redis
Go
5
star
87

jessica

This Cocoa application demonstrates the integration of ChocTop to generate a Custom DMG (rake dmg) and Sparkle XMLs and remote upload (rake feed and rake upload)
Objective-C
5
star
88

sparkleology

Takes a Mac OS X application name that uses Sparkle for auto-updates, and returns information about that application's Sparkle RSS feed or the latest download URL for that Application.
Ruby
5
star
89

default-twitter-auth-app

JavaScript
4
star
90

gas-uuid-generator

UUID Generator for Google Sheets
TypeScript
4
star
91

ci_demo_app

Ruby
4
star
92

threaded-gtalk-gmscript

JavaScript
4
star
93

go-lvm-client

Client library for LVM commands for the Go language
Go
4
star
94

rubycocoa-cloned-apps

RubyCocoa demo apps cloned from Objective-C demo apps. See both src.
Objective-C
3
star
95

todo-rails3-mongodb

Simple todo-list written in Rails 3 and MongoDB modified to work with EY Cloud services
Ruby
3
star
96

oss-8steps.showoff

RailsConf Tutorial slides: The 8 steps to doing Open Source Software
Ruby
3
star
97

blinksale-greasemonkey

Greasemonkey/GreaseKit extensions for Blinksale
Ruby
3
star
98

drnic-presentations

Dr Nic's presentation slides
JavaScript
3
star
99

github_organizations_scraper

Scrape Github Organization member information.
Ruby
3
star
100

svruby-awards

Ruby
3
star