mango 0.5.3 → 0.5.4
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/.yardopts +1 -0
- data/CHANGES.mdown +67 -27
- data/Gemfile +1 -12
- data/Gemfile.lock +38 -27
- data/README.mdown +25 -24
- data/Rakefile +13 -2
- data/lib/mango/dependencies.rb +39 -67
- data/lib/mango/templates/Gemfile +1 -1
- data/lib/mango/version.rb +1 -1
- data/mango.gemspec +11 -11
- data/spec/lib/application/routing_public_files_spec.rb +1 -1
- data/spec/lib/application/routing_style_sheets_spec.rb +0 -2
- data/spec/lib/content_page/initializing_spec.rb +2 -2
- data/spec/lib/dependencies_spec.rb +47 -84
- data/spec/lib/runner_spec.rb +1 -1
- data/spec/lib/version_spec.rb +1 -1
- metadata +24 -24
data/.yardopts
CHANGED
data/CHANGES.mdown
CHANGED
|
@@ -1,27 +1,62 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
# CHANGES
|
|
2
|
+
|
|
3
|
+
## v0.5.4 / 2011-04-24
|
|
4
|
+
|
|
5
|
+
[Full changes](https://github.com/ryansobol/mango/compare/v0.5.3...v0.5.4)
|
|
6
|
+
|
|
7
|
+
## Bugs
|
|
8
|
+
|
|
9
|
+
* Prevent gem building when unclean working directory [GH#9](https://github.com/ryansobol/mango/issues/9)
|
|
10
|
+
|
|
11
|
+
### Dependencies
|
|
12
|
+
|
|
13
|
+
* Update gem dependencies [GH#10](https://github.com/ryansobol/mango/issues/10)
|
|
14
|
+
* Add [Bundler](http://gembundler.com/) ~> 1.0.7 to Gemfile
|
|
15
|
+
* Update [Rack](http://rack.rubyforge.org/) to ~> 1.2.2
|
|
16
|
+
* Update [Sinatra](http://www.sinatrarb.com/) to ~> 1.1.4
|
|
17
|
+
* Update [Haml](http://haml-lang.com/) (and [Sass](http://sass-lang.com/)) to ~> 3.0.25
|
|
18
|
+
* Update [BlueCloth](http://deveiate.org/projects/BlueCloth) to ~> 2.1.0
|
|
19
|
+
* Update [Thor](https://github.com/wycats/thor) to ~> 0.14.6
|
|
20
|
+
* Update [RSpec](http://rspec.info/) to ~> 2.5.0
|
|
21
|
+
* Update [Rack::Test](https://github.com/brynary/rack-test) to ~> 0.5.7
|
|
22
|
+
* Update [YARD](http://yardoc.org/) to ~> 0.6.8
|
|
23
|
+
* Use gemspec for Gemfile [GH#8](https://github.com/ryansobol/mango/issues/8)
|
|
24
|
+
* Modernize `Mango::Dependencies` [GH#17](https://github.com/ryansobol/mango/issues/17)
|
|
25
|
+
|
|
26
|
+
### Documentation
|
|
27
|
+
|
|
28
|
+
* Update [RubyGems](https://rubygems.org/) to >= 1.3.7 in README.mdown [GH#12](https://github.com/ryansobol/mango/issues/12)
|
|
29
|
+
* Update all GitHub URLS to https [GH#15](https://github.com/ryansobol/mango/issues/15)
|
|
30
|
+
* Update CHANGES.mdown format [GH#13](https://github.com/ryansobol/mango/issues/13)
|
|
31
|
+
|
|
32
|
+
## v0.5.3 / 2011-04-15
|
|
33
|
+
|
|
34
|
+
[Full changes](https://github.com/ryansobol/mango/compare/v0.5.2...v0.5.3)
|
|
3
35
|
|
|
4
36
|
### Bugs
|
|
5
37
|
|
|
6
38
|
* Fixed "no such file to load -- lib/mango/rack/static_assets_cache" bug
|
|
7
39
|
|
|
8
|
-
|
|
9
|
-
|
|
40
|
+
## v0.5.2 / 2011-04-15
|
|
41
|
+
|
|
42
|
+
[Full changes](https://github.com/ryansobol/mango/compare/v0.5.1...v0.5.2)
|
|
10
43
|
|
|
11
44
|
### Dependencies
|
|
12
45
|
|
|
13
46
|
* Updated [RubyGems](https://rubygems.org/) dependency to >= 1.3.7
|
|
14
47
|
|
|
15
|
-
|
|
16
|
-
|
|
48
|
+
## v0.5.1 / 2010-11-01
|
|
49
|
+
|
|
50
|
+
[Full changes](https://github.com/ryansobol/mango/compare/v0.5.0...v0.5.1)
|
|
17
51
|
|
|
18
52
|
### Dependencies
|
|
19
53
|
|
|
20
54
|
* Updated [Bundler](http://gembundler.com/) dependency to ~> 1.0.0 to improve Heroku compatibility
|
|
21
55
|
* Updated README.mdown to better present the Semantic Versioning of dependencies (documentation change only)
|
|
22
56
|
|
|
23
|
-
|
|
24
|
-
|
|
57
|
+
## v0.5.0 / 2010-10-31
|
|
58
|
+
|
|
59
|
+
[Full changes](https://github.com/ryansobol/mango/compare/v0.4.0...v0.5.0)
|
|
25
60
|
|
|
26
61
|
### Features
|
|
27
62
|
|
|
@@ -42,18 +77,19 @@ Mango release 0.5.0 (October 31, 2010)
|
|
|
42
77
|
* Updated [Haml](http://haml-lang.com/) to 3.0.22
|
|
43
78
|
* Updated [Sass](http://sass-lang.com/) to 3.0.22 (bundled with Haml)
|
|
44
79
|
* Updated [BlueCloth](http://deveiate.org/projects/BlueCloth) to 2.0.9
|
|
45
|
-
* Updated [Rack::Test](
|
|
80
|
+
* Updated [Rack::Test](https://github.com/brynary/rack-test) to 0.5.6
|
|
46
81
|
* Updated [RSpec](http://rspec.info/) to 2.0.1
|
|
47
82
|
* Updated [YARD](http://yardoc.org/) to 0.6.1
|
|
48
|
-
* Updated [YARD::Sinatra](
|
|
83
|
+
* Updated [YARD::Sinatra](https://github.com/rkh/yard-sinatra) to 0.5.1
|
|
49
84
|
|
|
50
85
|
### Bugs
|
|
51
86
|
|
|
52
87
|
* The NOT_FOUND handler no longer renders the 404 template within a layout template.
|
|
53
88
|
* Improved install-time and run-time error messages for Ruby 1.8 environments
|
|
54
89
|
|
|
55
|
-
|
|
56
|
-
|
|
90
|
+
## v0.4.0 / 2010-08-30
|
|
91
|
+
|
|
92
|
+
[Full changes](https://github.com/ryansobol/mango/compare/v0.3.0...v0.4.0)
|
|
57
93
|
|
|
58
94
|
### Features
|
|
59
95
|
|
|
@@ -66,56 +102,60 @@ Mango release 0.4.0 (August 30, 2010)
|
|
|
66
102
|
### Dependencies
|
|
67
103
|
|
|
68
104
|
* Updated [Haml](http://haml-lang.com/) to 3.0.18
|
|
69
|
-
* Updated [YARD::Sinatra](
|
|
105
|
+
* Updated [YARD::Sinatra](https://github.com/rkh/yard-sinatra) to 0.5.0
|
|
70
106
|
* Added [BlueCloth](http://deveiate.org/projects/BlueCloth) 2.0.7 as a required dependency
|
|
71
107
|
|
|
72
|
-
|
|
73
|
-
|
|
108
|
+
## v0.3.0 / 2010-06-25
|
|
109
|
+
|
|
110
|
+
[Full changes](https://github.com/ryansobol/mango/compare/v0.2.1...v0.3.0)
|
|
74
111
|
|
|
75
112
|
### Features
|
|
76
113
|
|
|
77
114
|
* Added a route handler that renders [Sass](http://sass-lang.com/) templates to CSS!
|
|
78
115
|
* Refactored tests for better spec coverage of route handling
|
|
79
|
-
* Massive rewrite of internal documentation thanks to the [YARD::Sinatra (modified)](
|
|
116
|
+
* Massive rewrite of internal documentation thanks to the [YARD::Sinatra (modified)](https://github.com/ryansobol/yard-sinatra)
|
|
80
117
|
* Uploaded developer documentation to [http://yardoc.org/docs/ryansobol-mango](http://yardoc.org/docs/ryansobol-mango)
|
|
81
118
|
|
|
82
119
|
### Dependencies
|
|
83
120
|
|
|
84
121
|
* Updated [Haml](http://haml-lang.com/) to 3.0.13
|
|
85
|
-
* Added [YARD::Sinatra](
|
|
122
|
+
* Added [YARD::Sinatra](https://github.com/rkh/yard-sinatra) 0.4.0.1 [(modified)](https://github.com/ryansobol/yard-sinatra)
|
|
86
123
|
|
|
87
124
|
### Bugs
|
|
88
125
|
|
|
89
126
|
* Fixed Regex when parsing LoadError messages on missing development dependencies
|
|
90
127
|
* Fixed rspec gem name detection when requiring spec/rake/spectask in the Rakefile
|
|
91
128
|
|
|
92
|
-
|
|
93
|
-
|
|
129
|
+
## v0.2.1 / 2010-06-23
|
|
130
|
+
|
|
131
|
+
[Full changes](https://github.com/ryansobol/mango/compare/v0.2.0...v0.2.1)
|
|
94
132
|
|
|
95
133
|
* Refactored the application to reduce its code size and increase its maintainability
|
|
96
134
|
* Improved the application's documentation and tests with additional HTTP routing examples
|
|
97
135
|
|
|
98
|
-
|
|
99
|
-
|
|
136
|
+
## v0.2.0 / 2010-06-19
|
|
137
|
+
|
|
138
|
+
[Full changes](https://github.com/ryansobol/mango/compare/v0.1.1...v0.2.0)
|
|
100
139
|
|
|
101
140
|
* Mango tries to route HTTP requests to static files first
|
|
102
141
|
* Then it tries to route HTTP requests to Haml content pages
|
|
103
142
|
* Finally, it routes unknown HTTP requests to a customizable 404 page
|
|
104
143
|
|
|
105
|
-
|
|
106
|
-
|
|
144
|
+
## v0.1.1 / 2010-06-15
|
|
145
|
+
|
|
146
|
+
[Full changes](https://github.com/ryansobol/mango/compare/v0.1.0...v0.1.1)
|
|
107
147
|
|
|
108
148
|
* Reserved the 'mango' namespace on RubyGems.org!
|
|
109
149
|
|
|
110
|
-
|
|
111
|
-
|
|
150
|
+
## v0.1.0 / 2010-06-15
|
|
151
|
+
|
|
152
|
+
[Full changes](https://github.com/ryansobol/mango/commits/v0.1.0)
|
|
112
153
|
|
|
113
154
|
* Mango tries to route HTTP requests to Haml content pages first
|
|
114
155
|
* Then it routes unknown HTTP requests to a customizable 404 page
|
|
115
156
|
* Wraps content pages within a customizable Haml template and layout
|
|
116
157
|
* Supports any Rack-based application server (e.g. Phusion Passenger, thin, mongrel, webrick, etc.)
|
|
117
158
|
|
|
118
|
-
|
|
119
|
-
=====================================
|
|
159
|
+
## v0.0.1 / 2010-06-12
|
|
120
160
|
|
|
121
161
|
* First commit of the project
|
data/Gemfile
CHANGED
|
@@ -1,15 +1,4 @@
|
|
|
1
1
|
# encoding: UTF-8
|
|
2
2
|
source "http://rubygems.org"
|
|
3
3
|
|
|
4
|
-
|
|
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
|
-
|
|
4
|
+
gemspec
|
data/Gemfile.lock
CHANGED
|
@@ -1,28 +1,37 @@
|
|
|
1
|
+
PATH
|
|
2
|
+
remote: .
|
|
3
|
+
specs:
|
|
4
|
+
mango (0.5.4)
|
|
5
|
+
bluecloth (~> 2.1.0)
|
|
6
|
+
bundler (~> 1.0.7)
|
|
7
|
+
haml (~> 3.0.25)
|
|
8
|
+
rack (~> 1.2.2)
|
|
9
|
+
sinatra (~> 1.1.4)
|
|
10
|
+
thor (~> 0.14.6)
|
|
11
|
+
|
|
1
12
|
GEM
|
|
2
13
|
remote: http://rubygems.org/
|
|
3
14
|
specs:
|
|
4
|
-
bluecloth (2.0
|
|
15
|
+
bluecloth (2.1.0)
|
|
5
16
|
diff-lcs (1.1.2)
|
|
6
|
-
haml (3.0.
|
|
7
|
-
rack (1.2.
|
|
8
|
-
rack-test (0.5.
|
|
17
|
+
haml (3.0.25)
|
|
18
|
+
rack (1.2.2)
|
|
19
|
+
rack-test (0.5.7)
|
|
9
20
|
rack (>= 1.0)
|
|
10
|
-
rspec (2.0
|
|
11
|
-
rspec-core (~> 2.0
|
|
12
|
-
rspec-expectations (~> 2.0
|
|
13
|
-
rspec-mocks (~> 2.0
|
|
14
|
-
rspec-core (2.
|
|
15
|
-
rspec-expectations (2.0
|
|
16
|
-
diff-lcs (
|
|
17
|
-
rspec-mocks (2.0
|
|
18
|
-
|
|
19
|
-
rspec-expectations (~> 2.0.1)
|
|
20
|
-
sinatra (1.1.0)
|
|
21
|
+
rspec (2.5.0)
|
|
22
|
+
rspec-core (~> 2.5.0)
|
|
23
|
+
rspec-expectations (~> 2.5.0)
|
|
24
|
+
rspec-mocks (~> 2.5.0)
|
|
25
|
+
rspec-core (2.5.1)
|
|
26
|
+
rspec-expectations (2.5.0)
|
|
27
|
+
diff-lcs (~> 1.1.2)
|
|
28
|
+
rspec-mocks (2.5.0)
|
|
29
|
+
sinatra (1.1.4)
|
|
21
30
|
rack (~> 1.1)
|
|
22
|
-
tilt (
|
|
23
|
-
thor (0.14.
|
|
24
|
-
tilt (1.
|
|
25
|
-
yard (0.6.
|
|
31
|
+
tilt (>= 1.2.2, < 2.0)
|
|
32
|
+
thor (0.14.6)
|
|
33
|
+
tilt (1.2.2)
|
|
34
|
+
yard (0.6.8)
|
|
26
35
|
yard-sinatra (0.5.1)
|
|
27
36
|
yard (~> 0.6.0)
|
|
28
37
|
|
|
@@ -30,12 +39,14 @@ PLATFORMS
|
|
|
30
39
|
ruby
|
|
31
40
|
|
|
32
41
|
DEPENDENCIES
|
|
33
|
-
bluecloth (~> 2.0
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
42
|
+
bluecloth (~> 2.1.0)
|
|
43
|
+
bundler (~> 1.0.7)
|
|
44
|
+
haml (~> 3.0.25)
|
|
45
|
+
mango!
|
|
46
|
+
rack (~> 1.2.2)
|
|
47
|
+
rack-test (~> 0.5.7)
|
|
48
|
+
rspec (~> 2.5.0)
|
|
49
|
+
sinatra (~> 1.1.4)
|
|
50
|
+
thor (~> 0.14.6)
|
|
51
|
+
yard (~> 0.6.8)
|
|
41
52
|
yard-sinatra (~> 0.5.1)
|
data/README.mdown
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
Mango release 0.5.
|
|
1
|
+
Mango release 0.5.4 (April 24, 2011)
|
|
2
2
|
====================================
|
|
3
3
|
|
|
4
4
|
Copyright (c) 2010 Ryan Sobol. Licensed under the MIT license. Please see the {file:LICENSE} for more information.
|
|
5
5
|
|
|
6
6
|
* **Demo Application** : [http://mango-fireworks.heroku.com/](http://mango-fireworks.heroku.com/)
|
|
7
|
-
* **Source Code**: [
|
|
7
|
+
* **Source Code**: [https://github.com/ryansobol/mango](https://github.com/ryansobol/mango)
|
|
8
8
|
* **Documentation**: [http://rubydoc.info/github/ryansobol/mango/master/frames](http://rubydoc.info/github/ryansobol/mango/master/frames)
|
|
9
|
-
* **Issue Tracker**: [
|
|
9
|
+
* **Issue Tracker**: [https://github.com/ryansobol/mango/issues](https://github.com/ryansobol/mango/issues)
|
|
10
10
|
* **Wiki**: [http://wiki.github.com/ryansobol/mango](http://wiki.github.com/ryansobol/mango)
|
|
11
11
|
|
|
12
12
|
SYNOPSIS
|
|
@@ -37,14 +37,14 @@ Mango separates a website's theme from it's content. This makes it *easy to cha
|
|
|
37
37
|
* CSS
|
|
38
38
|
* JavaScript
|
|
39
39
|
|
|
40
|
-
with [more](
|
|
40
|
+
with [more](https://github.com/sinatra/sinatra/blob/1.1.0/CHANGES#L12) on the way.
|
|
41
41
|
|
|
42
42
|
### Easy to publish
|
|
43
43
|
|
|
44
44
|
Mango applications are dead-simple to publish. Mango was designed to support a wide variety of publishing tools like:
|
|
45
45
|
|
|
46
46
|
* Single target, drag-and-drop secure FTP uploading
|
|
47
|
-
* Multiple target, automated deploying with [Capistrano](
|
|
47
|
+
* Multiple target, automated deploying with [Capistrano](https://github.com/capistrano/capistrano)
|
|
48
48
|
* Cutting-edge cloud deploying with [Git](http://git-scm.com/) and [Heroku](http://heroku.com/)
|
|
49
49
|
|
|
50
50
|
### Easy to collaborate
|
|
@@ -71,22 +71,23 @@ REQUIREMENTS
|
|
|
71
71
|
### Required dependencies
|
|
72
72
|
|
|
73
73
|
* [Ruby](http://www.ruby-lang.org/) ~> 1.9.2 ([RVM](http://rvm.beginrescueend.com/) recommended)
|
|
74
|
-
* [RubyGems](https://rubygems.org/)
|
|
75
|
-
* [Bundler](http://gembundler.com/) ~> 1.0.
|
|
76
|
-
* [Rack](http://rack.rubyforge.org/) ~> 1.2.
|
|
77
|
-
* [Sinatra](http://www.sinatrarb.com/) ~> 1.1.
|
|
78
|
-
* [Haml](http://haml-lang.com/) ~> 3.0.
|
|
79
|
-
* [Sass](http://sass-lang.com/) ~> 3.0.
|
|
80
|
-
* [BlueCloth](http://deveiate.org/projects/BlueCloth) ~> 2.0
|
|
74
|
+
* [RubyGems](https://rubygems.org/) >= 1.3.7 (bundled with Ruby)
|
|
75
|
+
* [Bundler](http://gembundler.com/) ~> 1.0.7
|
|
76
|
+
* [Rack](http://rack.rubyforge.org/) ~> 1.2.2
|
|
77
|
+
* [Sinatra](http://www.sinatrarb.com/) ~> 1.1.4
|
|
78
|
+
* [Haml](http://haml-lang.com/) ~> 3.0.25
|
|
79
|
+
* [Sass](http://sass-lang.com/) ~> 3.0.25 (bundled with Haml)
|
|
80
|
+
* [BlueCloth](http://deveiate.org/projects/BlueCloth) ~> 2.1.0
|
|
81
|
+
* [Thor](https://github.com/wycats/thor) ~> 0.14.6
|
|
81
82
|
|
|
82
83
|
### Optional development dependencies
|
|
83
84
|
|
|
84
85
|
* [Rake](http://rake.rubyforge.org/) ~> 0.8.7 (bundled with Ruby)
|
|
85
|
-
* [Rack::Test](
|
|
86
|
-
* [RSpec](http://rspec.info/) ~> 2.0
|
|
87
|
-
* [YARD](http://yardoc.org/) ~> 0.6.
|
|
88
|
-
* [YARD::Sinatra](
|
|
89
|
-
* [BlueCloth](http://deveiate.org/projects/BlueCloth) ~> 2.0
|
|
86
|
+
* [Rack::Test](https://github.com/brynary/rack-test) ~> 0.5.7
|
|
87
|
+
* [RSpec](http://rspec.info/) ~> 2.5.0
|
|
88
|
+
* [YARD](http://yardoc.org/) ~> 0.6.8
|
|
89
|
+
* [YARD::Sinatra](https://github.com/rkh/yard-sinatra) ~> 0.5.1
|
|
90
|
+
* [BlueCloth](http://deveiate.org/projects/BlueCloth) ~> 2.1.0
|
|
90
91
|
|
|
91
92
|
INSTALLING
|
|
92
93
|
----------
|
|
@@ -116,7 +117,7 @@ Simply edit the gem version in your application's `Gemfile` and re-install with
|
|
|
116
117
|
$ cat Gemfile
|
|
117
118
|
# encoding: UTF-8
|
|
118
119
|
source "http://rubygems.org"
|
|
119
|
-
gem "mango", "~> 0.5.
|
|
120
|
+
gem "mango", "~> 0.5.4"
|
|
120
121
|
$ bundle install
|
|
121
122
|
|
|
122
123
|
**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.
|
|
@@ -201,23 +202,23 @@ Now that the newly generated Mango application is running, here's how the applic
|
|
|
201
202
|
WRITING
|
|
202
203
|
-------
|
|
203
204
|
|
|
204
|
-
Coming soon. [Patches are welcomed](
|
|
205
|
+
Coming soon. [Patches are welcomed](https://github.com/ryansobol/mango/issues#issue/2).
|
|
205
206
|
|
|
206
207
|
THEMING
|
|
207
208
|
-------
|
|
208
209
|
|
|
209
|
-
Coming soon. [Patches are welcomed](
|
|
210
|
+
Coming soon. [Patches are welcomed](https://github.com/ryansobol/mango/issues#issue/3).
|
|
210
211
|
|
|
211
212
|
PUBLISHING
|
|
212
213
|
----------
|
|
213
214
|
|
|
214
215
|
### Deploying to a single target with secure FTP uploads
|
|
215
216
|
|
|
216
|
-
Coming soon. [Patches are welcomed](
|
|
217
|
+
Coming soon. [Patches are welcomed](https://github.com/ryansobol/mango/issues#issue/4).
|
|
217
218
|
|
|
218
219
|
### Deploying to multiple targets with Capistrano
|
|
219
220
|
|
|
220
|
-
Coming soon. [Patches are welcomed](
|
|
221
|
+
Coming soon. [Patches are welcomed](https://github.com/ryansobol/mango/issues#issue/5).
|
|
221
222
|
|
|
222
223
|
### Deploying to the cloud with Heroku
|
|
223
224
|
|
|
@@ -267,13 +268,13 @@ CONTRIBUTING
|
|
|
267
268
|
|
|
268
269
|
### Reporting Issues
|
|
269
270
|
|
|
270
|
-
Is Mango not behaving like you expect it should? Please forgive me. Submit a report over at the [Issue Tracker](
|
|
271
|
+
Is Mango not behaving like you expect it should? Please forgive me. Submit a report over at the [Issue Tracker](https://github.com/ryansobol/mango/issues) and I'll get that sorted out.
|
|
271
272
|
|
|
272
273
|
**TIP:** You can read through existing issues and vote for the ones you'd like to see resolved first.
|
|
273
274
|
|
|
274
275
|
### Submitting Patches
|
|
275
276
|
|
|
276
|
-
Is Mango not behaving like you need? Patches are always welcomed and appreciated. [Report your issue](
|
|
277
|
+
Is Mango not behaving like you need? Patches are always welcomed and appreciated. [Report your issue](https://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](https://github.com/ryansobol/mango/issues).
|
|
277
278
|
|
|
278
279
|
Once you've been assigned an issue, the process for contributing your work back to the source is straight-forward.
|
|
279
280
|
|
data/Rakefile
CHANGED
|
@@ -31,16 +31,27 @@ end
|
|
|
31
31
|
namespace :gem do
|
|
32
32
|
desc "Builds a gem from the current project's Gem::Specification"
|
|
33
33
|
task :build do
|
|
34
|
+
puts "==> Building RubyGem"
|
|
35
|
+
|
|
36
|
+
if `git status` !~ /working directory clean/
|
|
37
|
+
abort " Cannot build RubyGem because the working directory is not clean."
|
|
38
|
+
end
|
|
39
|
+
|
|
34
40
|
system "gem build mango.gemspec"
|
|
35
41
|
end
|
|
36
42
|
|
|
37
43
|
desc "Removes the gem file for the current project"
|
|
38
44
|
task :clean do
|
|
39
|
-
|
|
45
|
+
puts "==> Cleaning up RubyGem build"
|
|
46
|
+
jeweler do |gem_file|
|
|
47
|
+
rm gem_file, :verbose => false
|
|
48
|
+
puts " Removed #{gem_file}"
|
|
49
|
+
end
|
|
40
50
|
end
|
|
41
51
|
|
|
42
52
|
desc "Pushes the current gem to RubyGems.org"
|
|
43
53
|
task :push do
|
|
54
|
+
puts "==> Pushing RubyGem"
|
|
44
55
|
jeweler { |gem_file| system "gem push #{gem_file}"}
|
|
45
56
|
end
|
|
46
57
|
|
|
@@ -56,7 +67,7 @@ namespace :gem do
|
|
|
56
67
|
if File.exists?(file)
|
|
57
68
|
yield file
|
|
58
69
|
else
|
|
59
|
-
puts "
|
|
70
|
+
puts " RubyGem #{file.inspect} does not exist"
|
|
60
71
|
end
|
|
61
72
|
end
|
|
62
73
|
end
|
data/lib/mango/dependencies.rb
CHANGED
|
@@ -1,31 +1,22 @@
|
|
|
1
1
|
# encoding: UTF-8
|
|
2
2
|
|
|
3
3
|
module Mango
|
|
4
|
-
# `Mango::Dependencies` is a
|
|
5
|
-
# parse-time dependency checking and simple, elegant run-time dependency warning.
|
|
4
|
+
# `Mango::Dependencies` is a module that performs two types of depedency checking:
|
|
6
5
|
#
|
|
7
|
-
#
|
|
8
|
-
#
|
|
9
|
-
# is not always a better version.
|
|
6
|
+
# * Strict parse-time version checking of Ruby
|
|
7
|
+
# * Lenient run-time handling of missing development RubyGems
|
|
10
8
|
#
|
|
11
9
|
# `Mango::Dependencies` automatically enforces a strict parse-time check for the
|
|
12
|
-
# `SUPPORTED_RUBY_VERSIONS` on both application and development processes for the
|
|
13
|
-
# library. (i.e. `bin/mango`, `rake`, `spec`, `rackup`, etc) Because of this,
|
|
14
|
-
#
|
|
10
|
+
# `SUPPORTED_RUBY_VERSIONS` on both application and development processes for the Mango
|
|
11
|
+
# library. (i.e. `bin/mango`, `rake`, `spec`, `rackup`, etc) Because of this,
|
|
12
|
+
# `Mango::Dependencies` is syntactically compatible with Ruby 1.8.7 or higher.
|
|
15
13
|
#
|
|
16
|
-
#
|
|
17
|
-
#
|
|
18
|
-
#
|
|
19
|
-
# necessary development gems are located in the `$LOAD_PATH` on their system.
|
|
20
|
-
#
|
|
21
|
-
# When a gem is required, but a `LoadError` is raised, and rescued, `Mango::Dependencies` can be
|
|
22
|
-
# incorporated into the process to warn a developer of missing development features. Even with a
|
|
23
|
-
# few methods -- `.create_warning_for` and `.warn_at_exit` -- users are automatically warned, in
|
|
24
|
-
# this case at the moment of termination, about gems that could not found be in the `$LOAD_PATH`.
|
|
25
|
-
# Using `Mango::Dependencies` is **not** a mandatory inclusion for all gem requirements, merely a
|
|
26
|
-
# guide to help developers quickly see obstacles in their path.
|
|
14
|
+
# `Mango::Dependencies` is also a lenient, run-time handler used in the `Rakefile` to build
|
|
15
|
+
# developer-friendly warnings from rescued `LoadError` exceptions raised by missing
|
|
16
|
+
# development RubyGem dependencies.
|
|
27
17
|
#
|
|
28
18
|
# @example Simple usage with the YARD gem
|
|
19
|
+
# Mango::Dependencies.warn_at_exit
|
|
29
20
|
# begin
|
|
30
21
|
# require "yard"
|
|
31
22
|
# YARD::Rake::YardocTask.new(:yard)
|
|
@@ -35,66 +26,65 @@ module Mango
|
|
|
35
26
|
#
|
|
36
27
|
# @see Mango::Dependencies.create_warning_for
|
|
37
28
|
# @see Mango::Dependencies.warn_at_exit
|
|
38
|
-
|
|
29
|
+
module Dependencies
|
|
39
30
|
SUPPORTED_RUBY_VERSIONS = ["1.9.2"]
|
|
40
31
|
|
|
41
|
-
# bluecloth is a hidden yard dependency for markdown support
|
|
42
|
-
DEVELOPMENT_GEMS = {
|
|
43
|
-
:"rack-test" => "0.5.6",
|
|
44
|
-
:rspec => "2.0.1",
|
|
45
|
-
:yard => "0.6.1",
|
|
46
|
-
:"yard-sinatra" => "0.5.1",
|
|
47
|
-
:bluecloth => "2.0.9"
|
|
48
|
-
}
|
|
49
|
-
|
|
50
32
|
FILE_NAME_TO_GEM_NAME = {
|
|
51
33
|
:"rack/test" => :"rack-test",
|
|
52
|
-
:"rspec/core/rake_task" => :rspec,
|
|
34
|
+
:"rspec/core/rake_task" => :"rspec-core",
|
|
53
35
|
:"yard/sinatra" => :"yard-sinatra"
|
|
54
36
|
}
|
|
55
37
|
|
|
38
|
+
# Checks that the version of the current Ruby process matches the one of the
|
|
39
|
+
# `SUPPORTED_RUBY_VERSIONS`. This method is automatically invoked at the first time this class
|
|
40
|
+
# is required, ensuring the correct Ruby version at parse-time.
|
|
41
|
+
#
|
|
42
|
+
# @param [String] ruby_version Useful for automated specifications. Defaults to `RUBY_VERSION`.
|
|
43
|
+
# @raise [SystemExit] Raised, with a message, when the process is using an incorrect version of Ruby.
|
|
44
|
+
def self.check_ruby_version(ruby_version = RUBY_VERSION)
|
|
45
|
+
unless SUPPORTED_RUBY_VERSIONS.include?(ruby_version)
|
|
46
|
+
abort <<-ERROR
|
|
47
|
+
This library supports Ruby #{SUPPORTED_RUBY_VERSIONS.join(" or ")}, but you're using #{ruby_version}.
|
|
48
|
+
I recommend using Ruby Version Manager to install, manage and work with multiple Ruby environments.
|
|
49
|
+
http://rvm.beginrescueend.com/
|
|
50
|
+
ERROR
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
check_ruby_version
|
|
54
|
+
|
|
56
55
|
# Empties the warnings cache. This method is called when the class is required.
|
|
57
56
|
def self.destroy_warnings
|
|
58
57
|
@@warnings_cache = []
|
|
59
58
|
end
|
|
60
59
|
destroy_warnings
|
|
61
60
|
|
|
62
|
-
# Creates and caches a warning from a `LoadError` exception.
|
|
63
|
-
# known development gem dependencies.
|
|
61
|
+
# Creates and caches a warning from a `LoadError` exception.
|
|
64
62
|
#
|
|
65
63
|
# @param [LoadError] error A rescued exception
|
|
66
|
-
# @raise [RuntimeError] Raised when the `LoadError` argument is an unknown development gem.
|
|
67
64
|
def self.create_warning_for(error)
|
|
68
65
|
pattern = %r{no such file to load -- ([\w\-\\/]*)}
|
|
69
66
|
error.message.match(pattern) do |match_data|
|
|
70
67
|
file_name = match_data[1].to_sym
|
|
71
|
-
gem_name = if
|
|
72
|
-
file_name
|
|
73
|
-
elsif FILE_NAME_TO_GEM_NAME.has_key?(file_name)
|
|
68
|
+
gem_name = if FILE_NAME_TO_GEM_NAME.has_key?(file_name)
|
|
74
69
|
FILE_NAME_TO_GEM_NAME[file_name]
|
|
75
70
|
else
|
|
76
|
-
|
|
71
|
+
file_name
|
|
77
72
|
end
|
|
78
73
|
|
|
79
|
-
@@warnings_cache <<
|
|
74
|
+
@@warnings_cache << gem_name
|
|
80
75
|
end
|
|
81
76
|
end
|
|
82
77
|
|
|
83
78
|
# Displays a warning message to the user on the standard output channel if there are warnings
|
|
84
79
|
# to render.
|
|
85
|
-
#
|
|
86
|
-
# @example Sample warning message
|
|
87
|
-
# The following development gem dependencies could not be found. Without them, some available development features are missing:
|
|
88
|
-
# jeweler --version "1.4.0"
|
|
89
|
-
# rspec --version "2.0.1"
|
|
90
|
-
# yard --version "0.5.3"
|
|
91
|
-
# bluecloth --version "2.0.9"
|
|
92
80
|
def self.render_warnings
|
|
93
81
|
unless @@warnings_cache.empty?
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
82
|
+
puts <<-EOS
|
|
83
|
+
|
|
84
|
+
Could not require the following RubyGems: #{@@warnings_cache.join(", ")}
|
|
85
|
+
Please run "bundle install" to access all development features.
|
|
86
|
+
|
|
87
|
+
EOS
|
|
98
88
|
end
|
|
99
89
|
end
|
|
100
90
|
|
|
@@ -102,23 +92,5 @@ module Mango
|
|
|
102
92
|
def self.warn_at_exit
|
|
103
93
|
at_exit { render_warnings }
|
|
104
94
|
end
|
|
105
|
-
|
|
106
|
-
private
|
|
107
|
-
|
|
108
|
-
# Checks that the version of the current Ruby process matches the one of the
|
|
109
|
-
# `SUPPORTED_RUBY_VERSIONS`. This method is automatically invoked at the first time this class
|
|
110
|
-
# is required, ensuring the correct Ruby version at parse-time.
|
|
111
|
-
#
|
|
112
|
-
# @param [String] ruby_version Useful for automated specifications. Defaults to `RUBY_VERSION`.
|
|
113
|
-
# @raise [SystemExit] Raised, with a message, when the process is using an incorrect version of Ruby.
|
|
114
|
-
def self.check_ruby_version(ruby_version = RUBY_VERSION)
|
|
115
|
-
unless SUPPORTED_RUBY_VERSIONS.include?(ruby_version)
|
|
116
|
-
abort <<-ERROR
|
|
117
|
-
This library supports Ruby #{SUPPORTED_RUBY_VERSIONS.join(" or ")}, but you're using #{ruby_version}.
|
|
118
|
-
Please visit http://www.ruby-lang.org/ or http://rvm.beginrescueend.com/ for installation instructions.
|
|
119
|
-
ERROR
|
|
120
|
-
end
|
|
121
|
-
end
|
|
122
|
-
check_ruby_version
|
|
123
95
|
end
|
|
124
96
|
end
|
data/lib/mango/templates/Gemfile
CHANGED
data/lib/mango/version.rb
CHANGED
data/mango.gemspec
CHANGED
|
@@ -7,7 +7,7 @@ Gem::Specification.new do |s|
|
|
|
7
7
|
s.platform = Gem::Platform::RUBY
|
|
8
8
|
s.author = "Ryan Sobol"
|
|
9
9
|
s.email = "contact@ryansobol.com"
|
|
10
|
-
s.homepage = "
|
|
10
|
+
s.homepage = "https://github.com/ryansobol/mango"
|
|
11
11
|
s.summary = "Mango is a dynamic, database-free, and open source website framework."
|
|
12
12
|
s.description = "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."
|
|
13
13
|
|
|
@@ -15,17 +15,17 @@ Gem::Specification.new do |s|
|
|
|
15
15
|
s.required_rubygems_version = ">= 1.3.7"
|
|
16
16
|
s.rubyforge_project = "mango"
|
|
17
17
|
|
|
18
|
-
s.add_runtime_dependency "bundler", "~> 1.0.
|
|
19
|
-
s.add_runtime_dependency "rack", "~> 1.2.
|
|
20
|
-
s.add_runtime_dependency "sinatra", "~> 1.1.
|
|
21
|
-
s.add_runtime_dependency "haml", "~> 3.0.
|
|
22
|
-
s.add_runtime_dependency "bluecloth", "~> 2.0
|
|
23
|
-
s.add_runtime_dependency "thor", "~> 0.14.
|
|
18
|
+
s.add_runtime_dependency "bundler", "~> 1.0.7"
|
|
19
|
+
s.add_runtime_dependency "rack", "~> 1.2.2"
|
|
20
|
+
s.add_runtime_dependency "sinatra", "~> 1.1.4"
|
|
21
|
+
s.add_runtime_dependency "haml", "~> 3.0.25"
|
|
22
|
+
s.add_runtime_dependency "bluecloth", "~> 2.1.0"
|
|
23
|
+
s.add_runtime_dependency "thor", "~> 0.14.6"
|
|
24
24
|
|
|
25
|
-
s.add_development_dependency "rspec", "~> 2.0
|
|
26
|
-
s.add_development_dependency "rack-test", "~> 0.5.
|
|
27
|
-
s.add_development_dependency "yard", "~> 0.6.
|
|
28
|
-
s.add_development_dependency "bluecloth", "~> 2.0
|
|
25
|
+
s.add_development_dependency "rspec", "~> 2.5.0"
|
|
26
|
+
s.add_development_dependency "rack-test", "~> 0.5.7"
|
|
27
|
+
s.add_development_dependency "yard", "~> 0.6.8"
|
|
28
|
+
s.add_development_dependency "bluecloth", "~> 2.1.0"
|
|
29
29
|
s.add_development_dependency "yard-sinatra", "~> 0.5.1"
|
|
30
30
|
|
|
31
31
|
s.files = `git ls-files`.split("\n")
|
|
@@ -115,7 +115,7 @@ Disallow: /cgi-bin/
|
|
|
115
115
|
end
|
|
116
116
|
|
|
117
117
|
it "sends the correct Content-Type header" do
|
|
118
|
-
last_response["Content-Type"].should == "image/jpeg
|
|
118
|
+
last_response["Content-Type"].should == "image/jpeg"
|
|
119
119
|
end
|
|
120
120
|
|
|
121
121
|
it "sends the correct body content" do
|
|
@@ -26,7 +26,6 @@ describe Mango::Application do
|
|
|
26
26
|
|
|
27
27
|
it "sends the correct body content" do
|
|
28
28
|
last_response.body.should == <<-EXPECTED
|
|
29
|
-
@charset "UTF-8";
|
|
30
29
|
.content-navigation {
|
|
31
30
|
border-color: #3bbfce;
|
|
32
31
|
color: #2ca2af; }
|
|
@@ -56,7 +55,6 @@ describe Mango::Application do
|
|
|
56
55
|
|
|
57
56
|
it "sends the correct body content" do
|
|
58
57
|
last_response.body.should == <<-EXPECTED
|
|
59
|
-
@charset "UTF-8";
|
|
60
58
|
table.hl {
|
|
61
59
|
margin: 2em 0; }
|
|
62
60
|
table.hl td.ln {
|
|
@@ -275,7 +275,7 @@ EOS
|
|
|
275
275
|
it "seasons the rendered markup with Mango::FlavoredMarkdown" do
|
|
276
276
|
data = <<-EOS
|
|
277
277
|
Mango is like a drug.
|
|
278
|
-
You must have
|
|
278
|
+
You must have more and more and more of the Mango
|
|
279
279
|
until there is no Mango left.
|
|
280
280
|
Not even for Mango!
|
|
281
281
|
EOS
|
|
@@ -284,7 +284,7 @@ Not even for Mango!
|
|
|
284
284
|
|
|
285
285
|
expected = <<-EOS
|
|
286
286
|
<p>Mango is like a drug.<br/>
|
|
287
|
-
You must have
|
|
287
|
+
You must have more and more and more of the Mango<br/>
|
|
288
288
|
until there is no Mango left.<br/>
|
|
289
289
|
Not even for Mango!</p>
|
|
290
290
|
EOS
|
|
@@ -10,22 +10,10 @@ describe Mango::Dependencies do
|
|
|
10
10
|
Mango::Dependencies::SUPPORTED_RUBY_VERSIONS.should == ["1.9.2"]
|
|
11
11
|
end
|
|
12
12
|
|
|
13
|
-
it "development gem names and versions should be correct" do
|
|
14
|
-
expected = {
|
|
15
|
-
:"rack-test" => "0.5.6",
|
|
16
|
-
:rspec => "2.0.1",
|
|
17
|
-
:yard => "0.6.1",
|
|
18
|
-
:"yard-sinatra" => "0.5.1",
|
|
19
|
-
:bluecloth => "2.0.9"
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
Mango::Dependencies::DEVELOPMENT_GEMS.should == expected
|
|
23
|
-
end
|
|
24
|
-
|
|
25
13
|
it "file name to gem name look-up table should be correct" do
|
|
26
14
|
expected = {
|
|
27
15
|
:"rack/test" => :"rack-test",
|
|
28
|
-
:"rspec/core/rake_task" => :rspec,
|
|
16
|
+
:"rspec/core/rake_task" => :"rspec-core",
|
|
29
17
|
:"yard/sinatra" => :"yard-sinatra"
|
|
30
18
|
}
|
|
31
19
|
Mango::Dependencies::FILE_NAME_TO_GEM_NAME.should == expected
|
|
@@ -38,7 +26,7 @@ describe Mango::Dependencies do
|
|
|
38
26
|
|
|
39
27
|
#################################################################################################
|
|
40
28
|
|
|
41
|
-
describe ".check_ruby_version
|
|
29
|
+
describe ".check_ruby_version" do
|
|
42
30
|
before(:each) do
|
|
43
31
|
$stderr = StringIO.new
|
|
44
32
|
end
|
|
@@ -50,129 +38,104 @@ describe Mango::Dependencies do
|
|
|
50
38
|
def expected_message(version)
|
|
51
39
|
@expected_message = <<-ERROR
|
|
52
40
|
This library supports Ruby 1.9.2, but you're using #{version}.
|
|
53
|
-
|
|
41
|
+
I recommend using Ruby Version Manager to install, manage and work with multiple Ruby environments.
|
|
42
|
+
http://rvm.beginrescueend.com/
|
|
54
43
|
ERROR
|
|
55
44
|
end
|
|
56
45
|
|
|
57
46
|
it "aborts for ruby 1.8.6" do
|
|
58
47
|
version = "1.8.6"
|
|
59
48
|
lambda {
|
|
60
|
-
Mango::Dependencies.
|
|
49
|
+
Mango::Dependencies.check_ruby_version(version)
|
|
61
50
|
}.should raise_exception(SystemExit, expected_message(version))
|
|
62
51
|
end
|
|
63
52
|
|
|
64
53
|
it "aborts for ruby 1.8.7" do
|
|
65
54
|
version = "1.8.7"
|
|
66
55
|
lambda {
|
|
67
|
-
Mango::Dependencies.
|
|
56
|
+
Mango::Dependencies.check_ruby_version(version)
|
|
68
57
|
}.should raise_exception(SystemExit, expected_message(version))
|
|
69
58
|
end
|
|
70
59
|
|
|
71
60
|
it "aborts for ruby 1.9.0" do
|
|
72
61
|
version = "1.9.0"
|
|
73
62
|
lambda {
|
|
74
|
-
Mango::Dependencies.
|
|
63
|
+
Mango::Dependencies.check_ruby_version(version)
|
|
75
64
|
}.should raise_exception(SystemExit, expected_message(version))
|
|
76
65
|
end
|
|
77
66
|
|
|
78
67
|
it "aborts for ruby 1.9.1" do
|
|
79
68
|
version = "1.9.1"
|
|
80
69
|
lambda {
|
|
81
|
-
Mango::Dependencies.
|
|
70
|
+
Mango::Dependencies.check_ruby_version(version)
|
|
82
71
|
}.should raise_exception(SystemExit, expected_message(version))
|
|
83
72
|
end
|
|
84
73
|
|
|
85
74
|
it "doesn't abort for ruby 1.9.2" do
|
|
86
75
|
version = "1.9.2"
|
|
87
76
|
lambda {
|
|
88
|
-
Mango::Dependencies.
|
|
77
|
+
Mango::Dependencies.check_ruby_version(version)
|
|
89
78
|
}.should_not raise_exception(SystemExit, expected_message(version))
|
|
90
79
|
end
|
|
91
80
|
end
|
|
92
81
|
|
|
93
82
|
#################################################################################################
|
|
94
83
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
Mango::Dependencies.destroy_warnings
|
|
103
|
-
Mango::Dependencies.class_variable_get(:@@warnings_cache).should be_empty
|
|
84
|
+
context "given three load errors" do
|
|
85
|
+
before(:each) do
|
|
86
|
+
["rspec/core/rake_task", "yard", "bluecloth"].each do |file|
|
|
87
|
+
load_error = LoadError.new("no such file to load -- #{file}")
|
|
88
|
+
Mango::Dependencies.create_warning_for(load_error)
|
|
89
|
+
end
|
|
104
90
|
end
|
|
105
|
-
end
|
|
106
|
-
|
|
107
|
-
#################################################################################################
|
|
108
91
|
|
|
109
|
-
describe ".create_warning_for" do
|
|
110
92
|
after(:each) do
|
|
111
93
|
Mango::Dependencies.destroy_warnings
|
|
112
94
|
end
|
|
113
95
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
96
|
+
describe ".destroy_warnings" do
|
|
97
|
+
it "empties the warnings cache" do
|
|
98
|
+
Mango::Dependencies.class_variable_get(:@@warnings_cache).should_not be_empty
|
|
99
|
+
Mango::Dependencies.destroy_warnings
|
|
100
|
+
Mango::Dependencies.class_variable_get(:@@warnings_cache).should be_empty
|
|
101
|
+
end
|
|
117
102
|
end
|
|
118
103
|
|
|
119
|
-
|
|
120
|
-
Mango::Dependencies::DEVELOPMENT_GEMS.each_key do |file_name|
|
|
121
|
-
gem_name = if Mango::Dependencies::FILE_NAME_TO_GEM_NAME.has_key?(file_name)
|
|
122
|
-
Mango::Dependencies::FILE_NAME_TO_GEM_NAME[file_name]
|
|
123
|
-
else
|
|
124
|
-
file_name
|
|
125
|
-
end
|
|
126
|
-
load_error = LoadError.new("no such file to load -- #{gem_name}")
|
|
127
|
-
Mango::Dependencies.create_warning_for(load_error)
|
|
128
|
-
end
|
|
104
|
+
###############################################################################################
|
|
129
105
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
"rspec
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
"bluecloth --version '2.0.9'"
|
|
136
|
-
]
|
|
137
|
-
Mango::Dependencies.class_variable_get(:@@warnings_cache).should == expected
|
|
106
|
+
describe ".create_warning_for" do
|
|
107
|
+
it "creates and caches three warnings" do
|
|
108
|
+
expected = [:"rspec-core", :yard, :bluecloth]
|
|
109
|
+
Mango::Dependencies.class_variable_get(:@@warnings_cache).should == expected
|
|
110
|
+
end
|
|
138
111
|
end
|
|
139
112
|
|
|
140
|
-
|
|
141
|
-
lambda {
|
|
142
|
-
Mango::Dependencies.create_warning_for(LoadError.new("no such file to load -- _fakegem"))
|
|
143
|
-
}.should raise_exception(RuntimeError, "Cannot create a dependency warning for unknown development gem -- _fakegem")
|
|
144
|
-
end
|
|
145
|
-
end
|
|
113
|
+
###############################################################################################
|
|
146
114
|
|
|
147
|
-
|
|
115
|
+
describe ".render_warnings" do
|
|
116
|
+
before(:each) do
|
|
117
|
+
$stdout = StringIO.new
|
|
118
|
+
end
|
|
148
119
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
end
|
|
120
|
+
after(:each) do
|
|
121
|
+
$stdout = STDOUT
|
|
122
|
+
end
|
|
153
123
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
124
|
+
it "displays a warning message to the user on the standard output channel" do
|
|
125
|
+
Mango::Dependencies.render_warnings
|
|
126
|
+
$stdout.string.should == <<-MESSAGE
|
|
157
127
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
Mango::Dependencies.create_warning_for(LoadError.new("no such file to load -- yard"))
|
|
161
|
-
Mango::Dependencies.create_warning_for(LoadError.new("no such file to load -- bluecloth"))
|
|
162
|
-
Mango::Dependencies.render_warnings
|
|
163
|
-
$stdout.string.should == <<-MESSAGE
|
|
128
|
+
Could not require the following RubyGems: rspec-core, yard, bluecloth
|
|
129
|
+
Please run "bundle install" to access all development features.
|
|
164
130
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
yard --version '0.6.1'
|
|
168
|
-
bluecloth --version '2.0.9'
|
|
169
|
-
MESSAGE
|
|
170
|
-
end
|
|
131
|
+
MESSAGE
|
|
132
|
+
end
|
|
171
133
|
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
134
|
+
it "doesn't display a warning message to the user if there are no warnings in the cache" do
|
|
135
|
+
Mango::Dependencies.destroy_warnings
|
|
136
|
+
Mango::Dependencies.render_warnings
|
|
137
|
+
$stdout.string.should be_empty
|
|
138
|
+
end
|
|
176
139
|
end
|
|
177
140
|
end
|
|
178
141
|
|
data/spec/lib/runner_spec.rb
CHANGED
data/spec/lib/version_spec.rb
CHANGED
metadata
CHANGED
|
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
|
5
5
|
segments:
|
|
6
6
|
- 0
|
|
7
7
|
- 5
|
|
8
|
-
-
|
|
9
|
-
version: 0.5.
|
|
8
|
+
- 4
|
|
9
|
+
version: 0.5.4
|
|
10
10
|
platform: ruby
|
|
11
11
|
authors:
|
|
12
12
|
- Ryan Sobol
|
|
@@ -14,7 +14,7 @@ autorequire:
|
|
|
14
14
|
bindir: bin
|
|
15
15
|
cert_chain: []
|
|
16
16
|
|
|
17
|
-
date: 2011-04-
|
|
17
|
+
date: 2011-04-24 00:00:00 -07:00
|
|
18
18
|
default_executable: mango
|
|
19
19
|
dependencies:
|
|
20
20
|
- !ruby/object:Gem::Dependency
|
|
@@ -28,8 +28,8 @@ dependencies:
|
|
|
28
28
|
segments:
|
|
29
29
|
- 1
|
|
30
30
|
- 0
|
|
31
|
-
-
|
|
32
|
-
version: 1.0.
|
|
31
|
+
- 7
|
|
32
|
+
version: 1.0.7
|
|
33
33
|
type: :runtime
|
|
34
34
|
version_requirements: *id001
|
|
35
35
|
- !ruby/object:Gem::Dependency
|
|
@@ -43,8 +43,8 @@ dependencies:
|
|
|
43
43
|
segments:
|
|
44
44
|
- 1
|
|
45
45
|
- 2
|
|
46
|
-
-
|
|
47
|
-
version: 1.2.
|
|
46
|
+
- 2
|
|
47
|
+
version: 1.2.2
|
|
48
48
|
type: :runtime
|
|
49
49
|
version_requirements: *id002
|
|
50
50
|
- !ruby/object:Gem::Dependency
|
|
@@ -58,8 +58,8 @@ dependencies:
|
|
|
58
58
|
segments:
|
|
59
59
|
- 1
|
|
60
60
|
- 1
|
|
61
|
-
-
|
|
62
|
-
version: 1.1.
|
|
61
|
+
- 4
|
|
62
|
+
version: 1.1.4
|
|
63
63
|
type: :runtime
|
|
64
64
|
version_requirements: *id003
|
|
65
65
|
- !ruby/object:Gem::Dependency
|
|
@@ -73,8 +73,8 @@ dependencies:
|
|
|
73
73
|
segments:
|
|
74
74
|
- 3
|
|
75
75
|
- 0
|
|
76
|
-
-
|
|
77
|
-
version: 3.0.
|
|
76
|
+
- 25
|
|
77
|
+
version: 3.0.25
|
|
78
78
|
type: :runtime
|
|
79
79
|
version_requirements: *id004
|
|
80
80
|
- !ruby/object:Gem::Dependency
|
|
@@ -87,9 +87,9 @@ dependencies:
|
|
|
87
87
|
- !ruby/object:Gem::Version
|
|
88
88
|
segments:
|
|
89
89
|
- 2
|
|
90
|
+
- 1
|
|
90
91
|
- 0
|
|
91
|
-
|
|
92
|
-
version: 2.0.9
|
|
92
|
+
version: 2.1.0
|
|
93
93
|
type: :runtime
|
|
94
94
|
version_requirements: *id005
|
|
95
95
|
- !ruby/object:Gem::Dependency
|
|
@@ -103,8 +103,8 @@ dependencies:
|
|
|
103
103
|
segments:
|
|
104
104
|
- 0
|
|
105
105
|
- 14
|
|
106
|
-
-
|
|
107
|
-
version: 0.14.
|
|
106
|
+
- 6
|
|
107
|
+
version: 0.14.6
|
|
108
108
|
type: :runtime
|
|
109
109
|
version_requirements: *id006
|
|
110
110
|
- !ruby/object:Gem::Dependency
|
|
@@ -117,9 +117,9 @@ dependencies:
|
|
|
117
117
|
- !ruby/object:Gem::Version
|
|
118
118
|
segments:
|
|
119
119
|
- 2
|
|
120
|
+
- 5
|
|
120
121
|
- 0
|
|
121
|
-
|
|
122
|
-
version: 2.0.1
|
|
122
|
+
version: 2.5.0
|
|
123
123
|
type: :development
|
|
124
124
|
version_requirements: *id007
|
|
125
125
|
- !ruby/object:Gem::Dependency
|
|
@@ -133,8 +133,8 @@ dependencies:
|
|
|
133
133
|
segments:
|
|
134
134
|
- 0
|
|
135
135
|
- 5
|
|
136
|
-
-
|
|
137
|
-
version: 0.5.
|
|
136
|
+
- 7
|
|
137
|
+
version: 0.5.7
|
|
138
138
|
type: :development
|
|
139
139
|
version_requirements: *id008
|
|
140
140
|
- !ruby/object:Gem::Dependency
|
|
@@ -148,8 +148,8 @@ dependencies:
|
|
|
148
148
|
segments:
|
|
149
149
|
- 0
|
|
150
150
|
- 6
|
|
151
|
-
-
|
|
152
|
-
version: 0.6.
|
|
151
|
+
- 8
|
|
152
|
+
version: 0.6.8
|
|
153
153
|
type: :development
|
|
154
154
|
version_requirements: *id009
|
|
155
155
|
- !ruby/object:Gem::Dependency
|
|
@@ -162,9 +162,9 @@ dependencies:
|
|
|
162
162
|
- !ruby/object:Gem::Version
|
|
163
163
|
segments:
|
|
164
164
|
- 2
|
|
165
|
+
- 1
|
|
165
166
|
- 0
|
|
166
|
-
|
|
167
|
-
version: 2.0.9
|
|
167
|
+
version: 2.1.0
|
|
168
168
|
type: :development
|
|
169
169
|
version_requirements: *id010
|
|
170
170
|
- !ruby/object:Gem::Dependency
|
|
@@ -269,7 +269,7 @@ files:
|
|
|
269
269
|
- spec/spec_helper.rb
|
|
270
270
|
- spec/support/matchers/malformed_whitespace_matchers.rb
|
|
271
271
|
has_rdoc: true
|
|
272
|
-
homepage:
|
|
272
|
+
homepage: https://github.com/ryansobol/mango
|
|
273
273
|
licenses: []
|
|
274
274
|
|
|
275
275
|
post_install_message:
|