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/lib/mango/application.rb
CHANGED
@@ -118,6 +118,10 @@ module Mango
|
|
118
118
|
use Mango::Rack::Debugger
|
119
119
|
end
|
120
120
|
|
121
|
+
# For static files that don't have an extension, send the file as HTML content
|
122
|
+
#
|
123
|
+
mime_type "", "text/html"
|
124
|
+
|
121
125
|
# Renders the `404.haml` template found within `settings.views` and sends it with 404 HTTP
|
122
126
|
# response.
|
123
127
|
#
|
data/lib/mango/content_page.rb
CHANGED
@@ -172,7 +172,7 @@ module Mango
|
|
172
172
|
# @return [Symbol] The view template's base file name.
|
173
173
|
#
|
174
174
|
def view
|
175
|
-
File.basename(attributes["view"], '.*').to_sym
|
175
|
+
File.basename(attributes["view"].to_s, '.*').to_sym
|
176
176
|
end
|
177
177
|
|
178
178
|
# Adds syntactic suger for reading attributes.
|
data/lib/mango/dependencies.rb
CHANGED
@@ -36,13 +36,13 @@ module Mango
|
|
36
36
|
# @see Mango::Dependencies.create_warning_for
|
37
37
|
# @see Mango::Dependencies.warn_at_exit
|
38
38
|
class Dependencies
|
39
|
-
SUPPORTED_RUBY_VERSIONS = ["1.9.
|
39
|
+
SUPPORTED_RUBY_VERSIONS = ["1.9.2"]
|
40
40
|
|
41
41
|
# bluecloth is a hidden yard dependency for markdown support
|
42
42
|
DEVELOPMENT_GEMS = {
|
43
43
|
:"rack-test" => "0.5.6",
|
44
44
|
:rspec => "2.0.1",
|
45
|
-
:yard => "0.
|
45
|
+
:yard => "0.6.1",
|
46
46
|
:"yard-sinatra" => "0.5.1",
|
47
47
|
:bluecloth => "2.0.9"
|
48
48
|
}
|
data/lib/mango/runner.rb
CHANGED
@@ -7,16 +7,16 @@ module Mango
|
|
7
7
|
|
8
8
|
add_runtime_options!
|
9
9
|
|
10
|
-
source_root File.
|
10
|
+
source_root File.expand_path("templates", File.dirname(__FILE__))
|
11
11
|
|
12
|
-
desc "create /path/to/your/app",
|
13
|
-
"Creates a new Mango application with a default directory structure and configuration at the path you specify."
|
12
|
+
desc "create /path/to/your/app", "Creates a new Mango application at the specified path"
|
14
13
|
def create(destination)
|
15
14
|
self.destination_root = destination
|
16
|
-
|
17
|
-
copy_file("
|
18
|
-
copy_file("
|
19
|
-
copy_file("
|
15
|
+
|
16
|
+
copy_file(".gitignore")
|
17
|
+
copy_file("config.ru")
|
18
|
+
copy_file("Gemfile")
|
19
|
+
copy_file("README.md")
|
20
20
|
|
21
21
|
build_content_path
|
22
22
|
build_themes_path
|
@@ -29,7 +29,8 @@ module Mango
|
|
29
29
|
def build_content_path
|
30
30
|
content_root = File.join(self.destination_root, "content")
|
31
31
|
empty_directory(content_root)
|
32
|
-
|
32
|
+
|
33
|
+
copy_file("content/index.md")
|
33
34
|
end
|
34
35
|
|
35
36
|
def build_themes_path
|
@@ -51,8 +52,9 @@ module Mango
|
|
51
52
|
def build_public_path(destination)
|
52
53
|
public_root = File.join(destination, "public")
|
53
54
|
empty_directory(public_root)
|
54
|
-
|
55
|
-
|
55
|
+
|
56
|
+
create_file("themes/default/public/favicon.ico")
|
57
|
+
copy_file("themes/default/public/robots.txt")
|
56
58
|
|
57
59
|
build_public_images_path public_root
|
58
60
|
build_public_javascripts_path public_root
|
@@ -62,35 +64,40 @@ module Mango
|
|
62
64
|
def build_public_images_path(destination)
|
63
65
|
public_images_root = File.join(destination, "images")
|
64
66
|
empty_directory(public_images_root)
|
65
|
-
|
67
|
+
|
68
|
+
copy_file("themes/default/public/images/particles.gif")
|
66
69
|
end
|
67
70
|
|
68
71
|
def build_public_javascripts_path(destination)
|
69
72
|
public_javascripts_root = File.join(destination, "javascripts")
|
70
73
|
empty_directory(public_javascripts_root)
|
71
|
-
|
72
|
-
copy_file("themes/default/public/javascripts/
|
74
|
+
|
75
|
+
copy_file("themes/default/public/javascripts/fireworks.js")
|
76
|
+
copy_file("themes/default/public/javascripts/timer.js")
|
73
77
|
end
|
74
78
|
|
75
79
|
def build_public_styles_path(destination)
|
76
80
|
public_styles_root = File.join(destination, "styles")
|
77
81
|
empty_directory(public_styles_root)
|
78
|
-
|
79
|
-
copy_file("themes/default/public/styles/
|
82
|
+
|
83
|
+
copy_file("themes/default/public/styles/fireworks.css")
|
84
|
+
copy_file("themes/default/public/styles/reset.css")
|
80
85
|
end
|
81
86
|
|
82
87
|
def build_styles_path(destination)
|
83
88
|
styles_root = File.join(destination, "styles")
|
84
89
|
empty_directory(styles_root)
|
85
|
-
|
90
|
+
|
91
|
+
copy_file("themes/default/styles/screen.sass")
|
86
92
|
end
|
87
93
|
|
88
94
|
def build_views_path(destination)
|
89
95
|
views_root = File.join(destination, "views")
|
90
96
|
empty_directory(views_root)
|
91
|
-
|
92
|
-
copy_file("themes/default/views/
|
93
|
-
copy_file("themes/default/views/
|
97
|
+
|
98
|
+
copy_file("themes/default/views/404.haml")
|
99
|
+
copy_file("themes/default/views/layout.haml")
|
100
|
+
copy_file("themes/default/views/page.haml")
|
94
101
|
end
|
95
102
|
end
|
96
103
|
end
|
data/lib/mango/templates/Gemfile
CHANGED
data/lib/mango/version.rb
CHANGED
data/mango.gemspec
CHANGED
@@ -8,23 +8,23 @@ Gem::Specification.new do |s|
|
|
8
8
|
s.author = "Ryan Sobol"
|
9
9
|
s.email = "contact@ryansobol.com"
|
10
10
|
s.homepage = "http://github.com/ryansobol/mango"
|
11
|
-
s.summary = "Mango is a dynamic, database-free, and open source website framework"
|
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
|
|
14
|
-
s.required_ruby_version = "~> 1.9.
|
14
|
+
s.required_ruby_version = "~> 1.9.2"
|
15
15
|
s.required_rubygems_version = "~> 1.3.7"
|
16
16
|
s.rubyforge_project = "mango"
|
17
17
|
|
18
18
|
s.add_runtime_dependency "bundler", "~> 1.0.3"
|
19
19
|
s.add_runtime_dependency "rack", "~> 1.2.1"
|
20
|
-
s.add_runtime_dependency "sinatra", "~> 1.
|
20
|
+
s.add_runtime_dependency "sinatra", "~> 1.1.0"
|
21
21
|
s.add_runtime_dependency "haml", "~> 3.0.22"
|
22
22
|
s.add_runtime_dependency "bluecloth", "~> 2.0.9"
|
23
23
|
s.add_runtime_dependency "thor", "~> 0.14.3"
|
24
24
|
|
25
25
|
s.add_development_dependency "rspec", "~> 2.0.1"
|
26
26
|
s.add_development_dependency "rack-test", "~> 0.5.6"
|
27
|
-
s.add_development_dependency "yard", "~> 0.
|
27
|
+
s.add_development_dependency "yard", "~> 0.6.1"
|
28
28
|
s.add_development_dependency "bluecloth", "~> 2.0.9"
|
29
29
|
s.add_development_dependency "yard-sinatra", "~> 0.5.1"
|
30
30
|
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -21,7 +21,7 @@ describe Mango::Application do
|
|
21
21
|
end
|
22
22
|
|
23
23
|
it "sends the correct Content-Type header" do
|
24
|
-
last_response["Content-Type"] == "text/html"
|
24
|
+
last_response["Content-Type"].should == "text/html;charset=utf-8"
|
25
25
|
end
|
26
26
|
|
27
27
|
it "sends the correct body content" do
|
@@ -55,7 +55,7 @@ describe Mango::Application do
|
|
55
55
|
end
|
56
56
|
|
57
57
|
it "sends the correct Content-Type header" do
|
58
|
-
last_response["Content-Type"] == "text/html"
|
58
|
+
last_response["Content-Type"].should == "text/html;charset=utf-8"
|
59
59
|
end
|
60
60
|
|
61
61
|
it "sends the correct body content" do
|
@@ -89,7 +89,7 @@ describe Mango::Application do
|
|
89
89
|
end
|
90
90
|
|
91
91
|
it "sends the correct Content-Type header" do
|
92
|
-
last_response["Content-Type"] == "text/html"
|
92
|
+
last_response["Content-Type"].should == "text/html;charset=utf-8"
|
93
93
|
end
|
94
94
|
|
95
95
|
it "sends the correct body content" do
|
@@ -123,7 +123,7 @@ describe Mango::Application do
|
|
123
123
|
end
|
124
124
|
|
125
125
|
it "sends the correct Content-Type header" do
|
126
|
-
last_response["Content-Type"] == "text/html"
|
126
|
+
last_response["Content-Type"].should == "text/html;charset=utf-8"
|
127
127
|
end
|
128
128
|
|
129
129
|
it "sends the correct body content" do
|
@@ -157,7 +157,7 @@ describe Mango::Application do
|
|
157
157
|
end
|
158
158
|
|
159
159
|
it "sends the correct Content-Type header" do
|
160
|
-
last_response["Content-Type"] == "text/html"
|
160
|
+
last_response["Content-Type"].should == "text/html;charset=utf-8"
|
161
161
|
end
|
162
162
|
|
163
163
|
it "sends the correct body content" do
|
@@ -191,7 +191,7 @@ describe Mango::Application do
|
|
191
191
|
end
|
192
192
|
|
193
193
|
it "sends the correct Content-Type header" do
|
194
|
-
last_response["Content-Type"] == "text/html"
|
194
|
+
last_response["Content-Type"].should == "text/html;charset=utf-8"
|
195
195
|
end
|
196
196
|
|
197
197
|
it "sends the correct body content" do
|
@@ -225,7 +225,7 @@ describe Mango::Application do
|
|
225
225
|
end
|
226
226
|
|
227
227
|
it "sends the correct Content-Type header" do
|
228
|
-
last_response["Content-Type"] == "text/html"
|
228
|
+
last_response["Content-Type"].should == "text/html;charset=utf-8"
|
229
229
|
end
|
230
230
|
|
231
231
|
it "sends the correct body content" do
|
@@ -259,7 +259,7 @@ describe Mango::Application do
|
|
259
259
|
end
|
260
260
|
|
261
261
|
it "sends the correct Content-Type header" do
|
262
|
-
last_response["Content-Type"] == "text/html"
|
262
|
+
last_response["Content-Type"].should == "text/html;charset=utf-8"
|
263
263
|
end
|
264
264
|
|
265
265
|
it "sends the correct body content" do
|
@@ -293,7 +293,7 @@ describe Mango::Application do
|
|
293
293
|
end
|
294
294
|
|
295
295
|
it "sends the correct Content-Type header" do
|
296
|
-
last_response["Content-Type"] == "text/html"
|
296
|
+
last_response["Content-Type"].should == "text/html;charset=utf-8"
|
297
297
|
end
|
298
298
|
|
299
299
|
it "sends the correct body content" do
|
@@ -316,7 +316,7 @@ describe Mango::Application do
|
|
316
316
|
|
317
317
|
describe "GET /page_with_missing_view" do
|
318
318
|
it "raises RuntimeError" do
|
319
|
-
path =
|
319
|
+
path = FIXTURE_ROOT + "themes/default/views/missing_view_template.haml"
|
320
320
|
lambda {
|
321
321
|
get "/page_with_missing_view"
|
322
322
|
}.should raise_exception(RuntimeError, "Unable to find a view template file -- #{path}")
|
@@ -335,7 +335,7 @@ describe Mango::Application do
|
|
335
335
|
end
|
336
336
|
|
337
337
|
it "sends the correct Content-Type header" do
|
338
|
-
last_response["Content-Type"] == "text/html"
|
338
|
+
last_response["Content-Type"].should == "text/html;charset=utf-8"
|
339
339
|
end
|
340
340
|
|
341
341
|
it "sends the correct body content" do
|
@@ -21,7 +21,7 @@ describe Mango::Application do
|
|
21
21
|
end
|
22
22
|
|
23
23
|
it "sends the correct Content-Type header" do
|
24
|
-
last_response["Content-Type"] == "text/plain"
|
24
|
+
last_response["Content-Type"].should == "text/plain;charset=utf-8"
|
25
25
|
end
|
26
26
|
|
27
27
|
it "sends the correct body content" do
|
@@ -44,7 +44,7 @@ Disallow: /cgi-bin/
|
|
44
44
|
end
|
45
45
|
|
46
46
|
it "sends the correct Content-Type header" do
|
47
|
-
last_response["Content-Type"] == "text/html"
|
47
|
+
last_response["Content-Type"].should == "text/html;charset=utf-8"
|
48
48
|
end
|
49
49
|
|
50
50
|
it "sends the correct body content" do
|
@@ -95,7 +95,7 @@ Disallow: /cgi-bin/
|
|
95
95
|
end
|
96
96
|
|
97
97
|
it "sends the correct Content-Type header" do
|
98
|
-
last_response["Content-Type"] == "text/html"
|
98
|
+
last_response["Content-Type"].should == "text/html;charset=utf-8"
|
99
99
|
end
|
100
100
|
|
101
101
|
it "sends the correct body content" do
|
@@ -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"] == "image/jpeg"
|
118
|
+
last_response["Content-Type"].should == "image/jpeg;charset=utf-8"
|
119
119
|
end
|
120
120
|
|
121
121
|
it "sends the correct body content" do
|
@@ -136,7 +136,7 @@ Disallow: /cgi-bin/
|
|
136
136
|
end
|
137
137
|
|
138
138
|
it "sends the correct Content-Type header" do
|
139
|
-
last_response["Content-Type"] == "text/html"
|
139
|
+
last_response["Content-Type"].should == "text/html;charset=utf-8"
|
140
140
|
end
|
141
141
|
|
142
142
|
it "sends the correct body content" do
|
@@ -168,7 +168,7 @@ Disallow: /cgi-bin/
|
|
168
168
|
end
|
169
169
|
|
170
170
|
it "sends the correct Content-Type header" do
|
171
|
-
last_response["Content-Type"] == "text/html"
|
171
|
+
last_response["Content-Type"].should == "text/html;charset=utf-8"
|
172
172
|
end
|
173
173
|
|
174
174
|
it "sends the correct body content" do
|
@@ -199,7 +199,7 @@ Disallow: /cgi-bin/
|
|
199
199
|
end
|
200
200
|
|
201
201
|
it "sends the correct Content-Type header" do
|
202
|
-
last_response["Content-Type"] == "text/html"
|
202
|
+
last_response["Content-Type"].should == "text/html;charset=utf-8"
|
203
203
|
end
|
204
204
|
|
205
205
|
it "sends the correct body content" do
|