mango 0.5.0.beta5 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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!
|