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/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
|