mango 0.5.0.beta5 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/CHANGES.mdown +6 -5
- data/Gemfile +15 -0
- data/Gemfile.lock +41 -0
- data/README.mdown +195 -82
- data/lib/mango/application.rb +4 -0
- data/lib/mango/content_page.rb +1 -1
- data/lib/mango/dependencies.rb +2 -2
- data/lib/mango/runner.rb +26 -19
- data/lib/mango/templates/Gemfile +1 -2
- data/lib/mango/templates/README.md +22 -1
- data/lib/mango/templates/content/index.md +1 -1
- data/lib/mango/templates/themes/default/public/styles/reset.css +1 -1
- data/lib/mango/version.rb +1 -1
- data/mango.gemspec +4 -4
- data/spec/bin/mango_spec.rb +10 -0
- data/spec/{app_root → fixture}/content/about/index.haml +0 -0
- data/spec/{app_root → fixture}/content/about/us.haml +0 -0
- data/spec/{app_root → fixture}/content/engines/haml.haml +0 -0
- data/spec/{app_root → fixture}/content/engines/markdown.markdown +0 -0
- data/spec/{app_root → fixture}/content/engines/md.md +0 -0
- data/spec/{app_root → fixture}/content/engines/mdown.mdown +0 -0
- data/spec/{app_root → fixture}/content/index.haml +0 -0
- data/spec/{app_root → fixture}/content/override.haml +0 -0
- data/spec/{app_root → fixture}/content/page_with_missing_view.haml +0 -0
- data/spec/{app_root → fixture}/content/turner+hooch.haml +0 -0
- data/spec/{app_root → fixture}/security_hole.haml +0 -0
- data/spec/{app_root → fixture}/themes/default/public/default.css +0 -0
- data/spec/{app_root → fixture}/themes/default/public/images/index.html +0 -0
- data/spec/{app_root → fixture}/themes/default/public/images/ripe-mango.jpg +0 -0
- data/spec/{app_root → fixture}/themes/default/public/override +0 -0
- data/spec/{app_root → fixture}/themes/default/public/robots.txt +0 -0
- data/spec/{app_root → fixture}/themes/default/public/styles/override.css +0 -0
- data/spec/{app_root → fixture}/themes/default/public/styles/reset.css +0 -0
- data/spec/{app_root → fixture}/themes/default/public/styles/subfolder/another.css +0 -0
- data/spec/{app_root → fixture}/themes/default/security_hole.sass +0 -0
- data/spec/{app_root → fixture}/themes/default/security_hole.txt +0 -0
- data/spec/{app_root → fixture}/themes/default/styles/override.sass +0 -0
- data/spec/{app_root → fixture}/themes/default/styles/screen.sass +0 -0
- data/spec/{app_root → fixture}/themes/default/styles/subfolder/screen.sass +0 -0
- data/spec/{app_root → fixture}/themes/default/views/404.haml +0 -0
- data/spec/{app_root → fixture}/themes/default/views/layout.haml +0 -0
- data/spec/{app_root → fixture}/themes/default/views/page.haml +0 -0
- data/spec/{mango → lib}/application/routing_content_pages_spec.rb +11 -11
- data/spec/{mango → lib}/application/routing_public_files_spec.rb +7 -7
- data/spec/{mango → lib}/application/routing_style_sheets_spec.rb +9 -9
- data/spec/{mango → lib}/application_spec.rb +5 -9
- data/spec/{mango → lib}/content_page/finding_spec.rb +5 -5
- data/spec/{mango → lib}/content_page/initializing_spec.rb +0 -0
- data/spec/{mango → lib}/content_page_spec.rb +0 -0
- data/spec/{mango → lib}/dependencies_spec.rb +9 -9
- data/spec/{mango → lib}/flavored_markdown_spec.rb +0 -0
- data/spec/{mango → lib}/rack/debugger_spec.rb +0 -0
- data/spec/lib/runner_spec.rb +380 -0
- data/spec/{mango → lib}/version_spec.rb +2 -2
- data/spec/quality_spec.rb +2 -2
- data/spec/spec_helper.rb +5 -4
- metadata +93 -102
data/CHANGES.mdown
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
Mango release 0.5.0
|
2
|
-
|
1
|
+
Mango release 0.5.0 (October 31, 2010)
|
2
|
+
======================================
|
3
3
|
|
4
4
|
### Features
|
5
5
|
|
@@ -9,19 +9,20 @@ Mango release 0.5.0.beta5 (October 29, 2010)
|
|
9
9
|
* Mango now supports theme-switching!
|
10
10
|
* For example, add `class Mango::Application; set :theme, "theme_name"; end` to your application's config.ru.
|
11
11
|
* As a result of the new command-line application generator, all embedded application code has been removed.
|
12
|
-
* Now routes like `GET /images/` return a 200 response
|
12
|
+
* Now routes like `GET /images/` return a 200 response as long as `themes/default/public/images/index.html` exists.
|
13
13
|
|
14
14
|
### Dependencies
|
15
15
|
|
16
16
|
* Added [RubyGems](https://rubygems.org/) 1.3.7
|
17
|
-
* Updated [Ruby](http://www.ruby-lang.org/) to 1.9.
|
17
|
+
* Updated [Ruby](http://www.ruby-lang.org/) to 1.9.2
|
18
18
|
* Updated [Bundler](http://gembundler.com/) to 1.0.3
|
19
|
+
* Updated [Sinatra](http://www.sinatrarb.com/) to 1.1.0
|
19
20
|
* Updated [Haml](http://haml-lang.com/) to 3.0.22
|
20
21
|
* Updated [Sass](http://sass-lang.com/) to 3.0.22 (bundled with Haml)
|
21
22
|
* Updated [BlueCloth](http://deveiate.org/projects/BlueCloth) to 2.0.9
|
22
23
|
* Updated [Rack::Test](http://github.com/brynary/rack-test) to 0.5.6
|
23
24
|
* Updated [RSpec](http://rspec.info/) to 2.0.1
|
24
|
-
* Updated [YARD](http://yardoc.org/) to 0.
|
25
|
+
* Updated [YARD](http://yardoc.org/) to 0.6.1
|
25
26
|
* Updated [YARD::Sinatra](http://github.com/rkh/yard-sinatra) to 0.5.1
|
26
27
|
|
27
28
|
### Bugs
|
data/Gemfile
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
source "http://rubygems.org"
|
3
|
+
|
4
|
+
gem "rack", "~> 1.2.1"
|
5
|
+
gem "sinatra", "~> 1.1.0"
|
6
|
+
gem "haml", "~> 3.0.22"
|
7
|
+
gem "bluecloth", "~> 2.0.9"
|
8
|
+
gem "thor", "~> 0.14.3"
|
9
|
+
|
10
|
+
gem "rspec", "~> 2.0.1"
|
11
|
+
gem "rack-test", "~> 0.5.6"
|
12
|
+
gem "yard", "~> 0.6.1"
|
13
|
+
gem "bluecloth", "~> 2.0.9"
|
14
|
+
gem "yard-sinatra", "~> 0.5.1"
|
15
|
+
|
data/Gemfile.lock
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
GEM
|
2
|
+
remote: http://rubygems.org/
|
3
|
+
specs:
|
4
|
+
bluecloth (2.0.9)
|
5
|
+
diff-lcs (1.1.2)
|
6
|
+
haml (3.0.22)
|
7
|
+
rack (1.2.1)
|
8
|
+
rack-test (0.5.6)
|
9
|
+
rack (>= 1.0)
|
10
|
+
rspec (2.0.1)
|
11
|
+
rspec-core (~> 2.0.1)
|
12
|
+
rspec-expectations (~> 2.0.1)
|
13
|
+
rspec-mocks (~> 2.0.1)
|
14
|
+
rspec-core (2.0.1)
|
15
|
+
rspec-expectations (2.0.1)
|
16
|
+
diff-lcs (>= 1.1.2)
|
17
|
+
rspec-mocks (2.0.1)
|
18
|
+
rspec-core (~> 2.0.1)
|
19
|
+
rspec-expectations (~> 2.0.1)
|
20
|
+
sinatra (1.1.0)
|
21
|
+
rack (~> 1.1)
|
22
|
+
tilt (~> 1.1)
|
23
|
+
thor (0.14.3)
|
24
|
+
tilt (1.1)
|
25
|
+
yard (0.6.1)
|
26
|
+
yard-sinatra (0.5.1)
|
27
|
+
yard (~> 0.6.0)
|
28
|
+
|
29
|
+
PLATFORMS
|
30
|
+
ruby
|
31
|
+
|
32
|
+
DEPENDENCIES
|
33
|
+
bluecloth (~> 2.0.9)
|
34
|
+
haml (~> 3.0.22)
|
35
|
+
rack (~> 1.2.1)
|
36
|
+
rack-test (~> 0.5.6)
|
37
|
+
rspec (~> 2.0.1)
|
38
|
+
sinatra (~> 1.1.0)
|
39
|
+
thor (~> 0.14.3)
|
40
|
+
yard (~> 0.6.1)
|
41
|
+
yard-sinatra (~> 0.5.1)
|
data/README.mdown
CHANGED
@@ -1,120 +1,165 @@
|
|
1
|
-
|
1
|
+
Mango release 0.5.0 (October 31, 2010)
|
2
|
+
======================================
|
2
3
|
|
3
|
-
|
4
|
+
Copyright (c) 2010 Ryan Sobol. Licensed under the MIT license. Please see the {file:LICENSE} for more information.
|
4
5
|
|
5
|
-
|
6
|
-
|
6
|
+
* **Source Code**: [http://github.com/ryansobol/mango](http://github.com/ryansobol/mango)
|
7
|
+
* **Documentation**: [http://rubydoc.info/github/ryansobol/mango/master/frames](http://rubydoc.info/github/ryansobol/mango/master/frames)
|
8
|
+
* **Issue Tracker**: [http://github.com/ryansobol/mango/issues](http://github.com/ryansobol/mango/issues)
|
9
|
+
* **Wiki**: [http://wiki.github.com/ryansobol/mango](http://wiki.github.com/ryansobol/mango)
|
7
10
|
|
8
|
-
|
11
|
+
SYNOPSIS
|
12
|
+
--------
|
9
13
|
|
10
|
-
|
11
|
-
* **Documentation**: [http://rubydoc.info/github/ryansobol/mango](http://rubydoc.info/github/ryansobol/mango)
|
12
|
-
* **Issue Tracker**: [http://github.com/ryansobol/mango/issues](http://github.com/ryansobol/mango/issues)
|
13
|
-
* **Wiki**: [http://wiki.github.com/ryansobol/mango](http://wiki.github.com/ryansobol/mango)
|
14
|
+
**Mango is a dynamic, database-free, and open source website framework that is designed to make life easier for small teams of designers, developers, and content writers.**
|
14
15
|
|
15
|
-
|
16
|
+
FEATURES
|
17
|
+
--------
|
16
18
|
|
17
|
-
|
18
|
-
-----------
|
19
|
+
### Easy to install
|
19
20
|
|
20
|
-
|
21
|
+
Mango installs as a [RubyGem](https://rubygems.org/gems/mango) and contains all the necessary components to get a basic website up-and-running in seconds.
|
21
22
|
|
22
|
-
|
23
|
-
1. A web framework, distributed as a Ruby gem, that is completely abstracted away from application code.
|
24
|
-
2. A `mango` command-line tool that generates a [demo Mango application](http://mango-fireworks.heroku.com/).
|
25
|
-
* Mango now supports theme-switching!
|
26
|
-
* For example, add `class Mango::Application; set :theme, "theme_name"; end` to your application's config.ru.
|
27
|
-
* As a result of the new command-line application generator, all embedded application code has been removed.
|
28
|
-
* Now routes like `GET /images/` return a 200 response if the `themes/default/public/images/index.html` file is exists.
|
23
|
+
### Easy to write
|
29
24
|
|
30
|
-
|
25
|
+
Mango integrates with the writing tools you're already familiar with -- the file system and your favorite text editor.
|
31
26
|
|
32
|
-
*
|
33
|
-
* Updated [Ruby](http://www.ruby-lang.org/) to 1.9.1 or 1.9.2
|
34
|
-
* Updated [Bundler](http://gembundler.com/) to 1.0.3
|
35
|
-
* Updated [Haml](http://haml-lang.com/) to 3.0.22
|
36
|
-
* Updated [Sass](http://sass-lang.com/) to 3.0.22 (bundled with Haml)
|
37
|
-
* Updated [BlueCloth](http://deveiate.org/projects/BlueCloth) to 2.0.9
|
38
|
-
* Updated [Rack::Test](http://github.com/brynary/rack-test) to 0.5.6
|
39
|
-
* Updated [RSpec](http://rspec.info/) to 2.0.1
|
40
|
-
* Updated [YARD](http://yardoc.org/) to 0.5.8
|
41
|
-
* Updated [YARD::Sinatra](http://github.com/rkh/yard-sinatra) to 0.5.1
|
27
|
+
Working with a text editor you already know *saves time*. And writing and revising content in a file *is often easier* then using the clunky administrator interface of a CMS (e.g. WordPress). Plus, files *match perfectly* with version control systems, like [Git](http://git-scm.com/), for powerful revision history. Bonus!
|
42
28
|
|
43
|
-
###
|
29
|
+
### Easy to theme
|
44
30
|
|
45
|
-
*
|
46
|
-
* Improved install-time and run-time error messages for Ruby 1.8 environments
|
31
|
+
Mango separates a website's theme from it's content. This makes it *easy to change* the look-and-feel of a single page or an entire website. Mango also supports powerful template languages that make it *easy to have uniformity* with major sections (i.e. headers, footers, navigation, sidebars, etc.) across multiple pages. The following web and template formats are supported by Mango:
|
47
32
|
|
48
|
-
|
33
|
+
* HAML
|
34
|
+
* HTML
|
35
|
+
* SASS
|
36
|
+
* CSS
|
37
|
+
* JavaScript
|
49
38
|
|
50
|
-
|
51
|
-
--------
|
39
|
+
with [more](http://github.com/sinatra/sinatra/blob/1.1.0/CHANGES#L12) on the way.
|
52
40
|
|
53
|
-
|
41
|
+
### Easy to publish
|
54
42
|
|
55
|
-
|
56
|
-
|
43
|
+
Mango applications are dead-simple to publish. Mango was designed to support a wide variety of publishing tools like:
|
44
|
+
|
45
|
+
* Single target, drag-and-drop secure FTP uploading
|
46
|
+
* Multiple target, automated deploying with [Capistrano](http://github.com/capistrano/capistrano)
|
47
|
+
* Cutting-edge cloud deploying with [Git](http://git-scm.com/) and [Heroku](http://heroku.com/)
|
57
48
|
|
58
|
-
|
49
|
+
### Easy to collaborate
|
59
50
|
|
60
|
-
|
51
|
+
With a strong separation of writing, theming and publishing, Mango applications are *designed to be shared* with content writers, web designers, and web developers. But the beauty of Mango is that its simple, file-based approach *appeals to both veterans and newcomers*. In addition, Mango has an emphasis on *accurate documentation*. Mango understands that getting up and running quickly is critical for domain-specific experts.
|
61
52
|
|
62
|
-
|
53
|
+
### Easy to maintain
|
63
54
|
|
64
|
-
|
55
|
+
Mango is a database-less web framework. With no database to install, configure, or manage, the maintenance needed to keep your website in working order is *drastically reduced*. And because Mango is distributed as a RubyGem and respects [Semantic Versioning](http://semver.org/), *upgrading is painless andi backwards-compatible* between patch releases.
|
65
56
|
|
66
|
-
|
57
|
+
### Easy to scale
|
67
58
|
|
68
|
-
|
59
|
+
Mango application's are *built for speed*. With minimal server side scripting and zero database queries, Mango is *lightening fast* and the user experience is snappy.
|
69
60
|
|
70
|
-
|
61
|
+
### Easy on the wallet
|
62
|
+
|
63
|
+
Mango is *free* and open source software.
|
71
64
|
|
72
65
|
REQUIREMENTS
|
73
66
|
------------
|
74
67
|
|
75
|
-
**
|
68
|
+
**Mango respects [Semantic Versioning](http://semver.org/).**
|
69
|
+
|
70
|
+
### Required dependencies
|
76
71
|
|
77
|
-
* [Ruby](http://www.ruby-lang.org/) 1.9.
|
72
|
+
* [Ruby](http://www.ruby-lang.org/) 1.9.2 ([RVM](http://rvm.beginrescueend.com/) recommended)
|
78
73
|
* [RubyGems](https://rubygems.org/) 1.3.7 (bundled with Ruby)
|
79
74
|
* [Bundler](http://gembundler.com/) 1.0.3
|
80
75
|
* [Rack](http://rack.rubyforge.org/) 1.2.1
|
81
|
-
* [Sinatra](http://www.sinatrarb.com/) 1.0
|
76
|
+
* [Sinatra](http://www.sinatrarb.com/) 1.1.0
|
82
77
|
* [Haml](http://haml-lang.com/) 3.0.22
|
83
78
|
* [Sass](http://sass-lang.com/) 3.0.22 (bundled with Haml)
|
84
79
|
* [BlueCloth](http://deveiate.org/projects/BlueCloth) 2.0.9
|
85
80
|
|
86
|
-
|
81
|
+
### Optional development dependencies
|
87
82
|
|
88
83
|
* [Rake](http://rake.rubyforge.org/) 0.8.7 (bundled with Ruby)
|
89
84
|
* [Rack::Test](http://github.com/brynary/rack-test) 0.5.6
|
90
85
|
* [RSpec](http://rspec.info/) 2.0.1
|
91
|
-
* [YARD](http://yardoc.org/) 0.
|
86
|
+
* [YARD](http://yardoc.org/) 0.6.1
|
92
87
|
* [YARD::Sinatra](http://github.com/rkh/yard-sinatra) 0.5.1
|
93
88
|
* [BlueCloth](http://deveiate.org/projects/BlueCloth) 2.0.9
|
94
89
|
|
95
90
|
INSTALLING
|
96
91
|
----------
|
97
92
|
|
98
|
-
|
93
|
+
### Ensuring Ruby 1.9.2 is installed and active
|
94
|
+
|
95
|
+
I highly recommend [RVM](http://rvm.beginrescueend.com/) by Wayne E. Seguin. It trivializes managing multiple versions of Ruby on one machine.
|
96
|
+
|
97
|
+
$ ruby -v
|
98
|
+
ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-darwin10.4.0]
|
99
99
|
|
100
|
-
|
100
|
+
**TIP:** The revision and arch-type may differ on your machine.
|
101
101
|
|
102
|
-
|
103
|
-
|
102
|
+
### Installing the Mango gem
|
103
|
+
|
104
|
+
Mango, and all its necessary components, are packaged as RubyGems for easy distribution.
|
105
|
+
|
106
|
+
$ gem install mango
|
107
|
+
|
108
|
+
**TIP:** If you're not using [RVM](http://rvm.beginrescueend.com/), you *may* want to prepend the `gem` command with `sudo`.
|
109
|
+
|
110
|
+
### Upgrading a Mango application
|
111
|
+
|
112
|
+
Simply edit the gem version in your application's `Gemfile` and re-install with [Bundler](http://gembundler.com/).
|
113
|
+
|
114
|
+
$ cd /path/to/your/app
|
115
|
+
$ cat Gemfile
|
116
|
+
# encoding: UTF-8
|
117
|
+
source "http://rubygems.org"
|
118
|
+
gem "mango", "~> 0.5.0"
|
119
|
+
$ bundle install
|
120
|
+
|
121
|
+
**TIP:** If you're working in the insolation of an [RVM gemset](http://rvm.beginrescueend.com/gemsets/basics/), type `gem clean` to uninstall outdated gems.
|
122
|
+
|
123
|
+
GETTING STARTED
|
124
|
+
---------------
|
104
125
|
|
105
126
|
### Generating a Mango application
|
106
127
|
|
128
|
+
With Mango installed, the `mango` command will generate a new application.
|
129
|
+
|
107
130
|
$ mango create /path/to/your/app
|
108
131
|
|
109
132
|
### Starting the application
|
110
133
|
|
134
|
+
Mango applications are compatible with any [Rack supported web-server](http://rack.rubyforge.org/doc/). The `rackup` command will start a web-server (default: WEBrick) listening at `http://0.0.0.0:9292`.
|
135
|
+
|
111
136
|
$ cd /path/to/your/app
|
112
137
|
$ rackup
|
138
|
+
[2010-10-30 15:39:41] INFO WEBrick 1.3.1
|
139
|
+
[2010-10-30 15:39:41] INFO ruby 1.9.2 (2010-08-18) [x86_64-darwin10.4.0]
|
140
|
+
[2010-10-30 15:39:41] INFO WEBrick::HTTPServer#start: pid=27513 port=9292
|
141
|
+
|
142
|
+
**TIP:** Type `Control + C` to quit `rackup`.
|
143
|
+
|
144
|
+
### Using an alternative web-server
|
145
|
+
|
146
|
+
If you prefer an alternative web-server (e.g. `thin`), simply install the gem and use the `-s SERVER` option to specify the web-server.
|
147
|
+
|
148
|
+
$ cd /path/to/your/app
|
149
|
+
$ gem install thin
|
150
|
+
$ rackup -s thin
|
151
|
+
>> Thin web server (v1.2.7 codename No Hup)
|
152
|
+
>> Maximum connections set to 1024
|
153
|
+
>> Listening on 0.0.0.0:9292, CTRL+C to stop
|
154
|
+
|
155
|
+
**TIP:** To see a list of all the `rackup` command-line options, use the `--help` option.
|
113
156
|
|
114
157
|
### Generated application structure
|
115
158
|
|
116
|
-
|
117
|
-
|
159
|
+
Now that the newly generated Mango application is running, here's how the application is structured.
|
160
|
+
|
161
|
+
$ tree /path/to/your/app
|
162
|
+
/path/to/your/app
|
118
163
|
├── Gemfile
|
119
164
|
├── README.md
|
120
165
|
├── config.ru
|
@@ -140,44 +185,112 @@ USAGE
|
|
140
185
|
├── layout.haml
|
141
186
|
└── page.haml
|
142
187
|
|
143
|
-
|
144
|
-
|
188
|
+
**TIP:** The [tree](http://mama.indstate.edu/users/ice/tree/) command is awesome!
|
189
|
+
|
190
|
+
### Under the hood
|
191
|
+
|
192
|
+
* First, Mango tries to route an HTTP request to a static file found in `themes/default/public/`.
|
193
|
+
* If no static file is found, Mango tries to route the request to a template file.
|
194
|
+
* For routes ending in `.css`, Mango searches for [Sass](http://sass-lang.com/) styles found in `themes/styles/`.
|
195
|
+
* For all other routes:
|
196
|
+
* Mango searches for [Markdown](http://daringfireball.net/projects/markdown/syntax) or [Haml](http://haml-lang.com/) content pages in `content/`.
|
197
|
+
* Mango will also try to wrap the content page within [Haml](http://haml-lang.com/) page and layout templates in `themes/default/views`.
|
198
|
+
* If no static or template file is found, Mango routes unknown HTTP requests to a customizable 404 page found in `themes/default/views`.
|
199
|
+
|
200
|
+
WRITING
|
201
|
+
-------
|
202
|
+
|
203
|
+
Coming soon. [Patches are welcomed](http://github.com/ryansobol/mango/issues#issue/2).
|
145
204
|
|
146
|
-
|
147
|
-
|
148
|
-
* Finally, it routes unknown HTTP requests to a customizable 404 page
|
149
|
-
* Wraps content pages within a customizable Haml template and layout
|
150
|
-
* Supports any Rack-based application server (e.g. Phusion Passenger, thin, mongrel, webrick, etc.)
|
205
|
+
THEMING
|
206
|
+
-------
|
151
207
|
|
152
|
-
|
208
|
+
Coming soon. [Patches are welcomed](http://github.com/ryansobol/mango/issues#issue/3).
|
209
|
+
|
210
|
+
PUBLISHING
|
153
211
|
----------
|
154
212
|
|
155
|
-
|
213
|
+
### Deploying to a single target with secure FTP uploads
|
214
|
+
|
215
|
+
Coming soon. [Patches are welcomed](http://github.com/ryansobol/mango/issues#issue/4).
|
216
|
+
|
217
|
+
### Deploying to multiple targets with Capistrano
|
218
|
+
|
219
|
+
Coming soon. [Patches are welcomed](http://github.com/ryansobol/mango/issues#issue/5).
|
220
|
+
|
221
|
+
### Deploying to the cloud with Heroku
|
222
|
+
|
223
|
+
Heroku (pronounced her-OH-koo) is a cloud platform for Ruby-powered web applications. Heroku lets app developers spend 100% of their time on their application code, not managing servers, deployment, ongoing operations, or scaling. And best of all, Mango applications can leverage this power with their *free* [Blossom tier](http://heroku.com/pricing).
|
224
|
+
|
225
|
+
If you haven't done so already, prepare your Mango application with Git. Just initialize a new Git repository, add the project directory, and commit.
|
226
|
+
|
227
|
+
$ cd /path/to/your/app
|
228
|
+
$ git init
|
229
|
+
$ git add .
|
230
|
+
$ git commit -m "First commit"
|
231
|
+
|
232
|
+
Next, [get started with Heroku](http://docs.heroku.com/heroku-command#installation) by signing up for an account, installing the `heroku` gem, and adding your ssh public key to their network.
|
233
|
+
|
234
|
+
$ gem install heroku
|
235
|
+
$ heroku keys:add
|
236
|
+
|
237
|
+
Then [create a heroku app](http://docs.heroku.com/creating-apps) that targets the "Badius Bamboo" plus "Matz Ruby Implementation" 1.9.2 [platform stack](http://docs.heroku.com/stack).
|
156
238
|
|
157
|
-
|
158
|
-
----------------
|
239
|
+
$ heroku create APP_NAME --stack bamboo-mri-1.9.2
|
159
240
|
|
160
|
-
|
241
|
+
Finally, [deploy](http://docs.heroku.com/git) the heroku app. If you've followed these instructions carefully, deployment is trivial.
|
161
242
|
|
162
|
-
|
243
|
+
$ git push heroku master
|
244
|
+
|
245
|
+
Now, bask in the glory of your *live application* in the cloud.
|
246
|
+
|
247
|
+
$ heroku open
|
248
|
+
|
249
|
+
**TIP:** Like the entire the platform, the `heroku` command-line tool has [great documentation](http://docs.heroku.com/heroku-command).
|
250
|
+
|
251
|
+
PHILOSOPHY
|
252
|
+
----------
|
253
|
+
|
254
|
+
### Painless collaboration
|
255
|
+
|
256
|
+
Mango is designed to make life easier for small, integrated teams. They prefer tools that allow for shared access to the same resources and for processes that provide instantaneous feedback.
|
257
|
+
|
258
|
+
### Harness the power of the Ruby toolbox
|
259
|
+
|
260
|
+
The Ruby on Rails revolution has arrived. The world's next-generation web applications are built with powerful tools from the Ruby eco-system. Mango is designed to harness this power, but delivered in a smaller package to meet the needs of simpler websites.
|
163
261
|
|
164
262
|
CONTRIBUTING
|
165
263
|
------------
|
166
264
|
|
167
|
-
|
265
|
+
**Thank you for taking the time to help improve Mango.**
|
266
|
+
|
267
|
+
### Reporting Issues
|
268
|
+
|
269
|
+
Is Mango not behaving like you expect it should? Please forgive me. Submit a report over at the [Issue Tracker](http://github.com/ryansobol/mango/issues) and I'll get that sorted out.
|
270
|
+
|
271
|
+
**TIP:** You can read through existing issues and vote for the ones you'd like to see resolved first.
|
272
|
+
|
273
|
+
### Submitting Patches
|
274
|
+
|
275
|
+
Is Mango not behaving like you need? Patches are always welcomed and appreciated. [Report your issue](http://github.com/ryansobol/mango/issues) to make sure we're not duplicating any work and go to town. Alternatively, you can lend a hand on [existing issues](http://github.com/ryansobol/mango/issues).
|
276
|
+
|
277
|
+
Once you've been assigned an issue, the process for contributing your work back to the source is straight-forward.
|
278
|
+
|
279
|
+
* Fork the project.
|
280
|
+
* Make your feature addition or bug fix **with specifications**. It's important that your hard work isn't unintentionally broken in a future version.
|
281
|
+
* Please do not casually alter files in the project root. (e.g. `LICENSE`, `README.mdown`, `mango.gemspec`, etc.)
|
282
|
+
* Commit and publish your change-set.
|
283
|
+
* Send a pull request. **Remember, all specs must pass.**
|
168
284
|
|
169
|
-
|
285
|
+
**TIP:** Take a moment to get a feel for the style of coding, specifications, and in-line documentation.
|
170
286
|
|
171
|
-
|
287
|
+
Mango has a plethora of documentation to bring a Rubyist of any level up to speed. Once the development dependencies are met (please see the REQUIREMENTS section), fire up the documentation web server.
|
172
288
|
|
173
|
-
|
174
|
-
* Make your feature addition or bug fix **with specifications**. It's important that I don't break your hard work in a future version unintentionally.
|
175
|
-
* Please do not casually alter files in the project root. (e.g. LICENSE, Rakefile, README.mdown, VERSION, etc.)
|
176
|
-
* Commit your changes and publish the change-set.
|
177
|
-
* Send me a pull request. Remember, all specs must pass!
|
289
|
+
$ yard server
|
178
290
|
|
179
|
-
|
291
|
+
Then point your browser to `http://0.0.0.0:8808`
|
180
292
|
|
181
|
-
|
293
|
+
CREDITS
|
294
|
+
-------
|
182
295
|
|
183
|
-
|
296
|
+
Thanks to all of my friends and family for their invaluable support!
|