mango 0.1.1 → 0.5.0.beta1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +6 -0
- data/.yardopts +6 -0
- data/README.mdown +62 -29
- data/Rakefile +62 -0
- data/VERSION +1 -0
- data/bin/mango +5 -0
- data/doc/HISTORY.mdown +71 -0
- data/doc/ROAD-MAP.mdown +10 -0
- data/lib/mango.rb +7 -0
- data/lib/mango/application.rb +334 -0
- data/lib/mango/content_page.rb +193 -0
- data/lib/mango/dependencies.rb +125 -0
- data/lib/mango/flavored_markdown.rb +82 -0
- data/lib/mango/rack/debugger.rb +22 -0
- data/lib/mango/runner.rb +95 -0
- data/lib/mango/templates/Gemfile +4 -0
- data/lib/mango/templates/README.md +1 -0
- data/lib/mango/templates/config.ru +4 -0
- data/lib/mango/templates/content/index.md +5 -0
- data/lib/mango/templates/themes/default/public/images/particles.gif +0 -0
- data/lib/mango/templates/themes/default/public/javascripts/fireworks.js +546 -0
- data/lib/mango/templates/themes/default/public/javascripts/timer.js +5 -0
- data/lib/mango/templates/themes/default/public/robots.txt +5 -0
- data/lib/mango/templates/themes/default/public/styles/fireworks.css +55 -0
- data/lib/mango/templates/themes/default/public/styles/reset.css +54 -0
- data/lib/mango/templates/themes/default/styles/screen.sass +17 -0
- data/lib/mango/templates/themes/default/views/404.haml +21 -0
- data/lib/mango/templates/themes/default/views/layout.haml +20 -0
- data/lib/mango/templates/themes/default/views/page.haml +3 -0
- data/lib/mango/version.rb +6 -0
- data/mango.gemspec +35 -0
- data/spec/app_root/content/about/index.haml +1 -0
- data/spec/app_root/content/about/us.haml +1 -0
- data/spec/app_root/content/engines/haml.haml +7 -0
- data/spec/app_root/content/engines/markdown.markdown +7 -0
- data/spec/app_root/content/engines/md.md +7 -0
- data/spec/app_root/content/engines/mdown.mdown +7 -0
- data/spec/app_root/content/index.haml +1 -0
- data/spec/app_root/content/override.haml +1 -0
- data/spec/app_root/content/page_with_missing_view.haml +4 -0
- data/spec/app_root/content/turner+hooch.haml +1 -0
- data/spec/app_root/security_hole.haml +1 -0
- data/spec/app_root/themes/default/public/default.css +3 -0
- data/spec/app_root/themes/default/public/images/index.html +10 -0
- data/spec/app_root/themes/default/public/images/ripe-mango.jpg +0 -0
- data/spec/app_root/themes/default/public/override +10 -0
- data/spec/app_root/themes/default/public/robots.txt +2 -0
- data/spec/app_root/themes/default/public/styles/override.css +3 -0
- data/spec/app_root/themes/default/public/styles/reset.css +27 -0
- data/spec/app_root/themes/default/public/styles/subfolder/another.css +3 -0
- data/spec/app_root/themes/default/security_hole.sass +1 -0
- data/spec/app_root/themes/default/security_hole.txt +1 -0
- data/spec/app_root/themes/default/styles/override.sass +2 -0
- data/spec/app_root/themes/default/styles/screen.sass +13 -0
- data/spec/app_root/themes/default/styles/subfolder/screen.sass +12 -0
- data/spec/app_root/themes/default/views/404.haml +7 -0
- data/spec/app_root/themes/default/views/layout.haml +7 -0
- data/spec/app_root/themes/default/views/page.haml +4 -0
- data/spec/mango/application/routing_content_pages_spec.rb +357 -0
- data/spec/mango/application/routing_public_files_spec.rb +181 -0
- data/spec/mango/application/routing_style_sheets_spec.rb +286 -0
- data/spec/mango/application_spec.rb +34 -0
- data/spec/mango/content_page/finding_spec.rb +213 -0
- data/spec/mango/content_page/initializing_spec.rb +298 -0
- data/spec/mango/content_page_spec.rb +44 -0
- data/spec/mango/dependencies_spec.rb +189 -0
- data/spec/mango/flavored_markdown_spec.rb +52 -0
- data/spec/mango/rack/debugger_spec.rb +114 -0
- data/spec/mango/version_spec.rb +18 -0
- data/spec/quality_spec.rb +32 -0
- data/spec/spec.opts +3 -0
- data/spec/spec_helper.rb +18 -0
- data/spec/support/matchers/malformed_whitespace_matchers.rb +60 -0
- metadata +304 -17
@@ -0,0 +1,55 @@
|
|
1
|
+
/* fireworks styles */
|
2
|
+
|
3
|
+
#fireworks-template {
|
4
|
+
display:none;
|
5
|
+
}
|
6
|
+
|
7
|
+
#fireContainer {
|
8
|
+
position:absolute;
|
9
|
+
left:0px;
|
10
|
+
top:0px;
|
11
|
+
z-index:706;
|
12
|
+
}
|
13
|
+
|
14
|
+
.firework {
|
15
|
+
/* containing box which flies out first */
|
16
|
+
position:absolute;
|
17
|
+
left:0px;
|
18
|
+
top:0px;
|
19
|
+
font-size:1px;
|
20
|
+
width:4px;
|
21
|
+
height:4px;
|
22
|
+
border:1px solid #333;
|
23
|
+
background:#666;
|
24
|
+
}
|
25
|
+
|
26
|
+
.fireworkParticle {
|
27
|
+
/* elements that explode from the container */
|
28
|
+
position:absolute;
|
29
|
+
font-size:1px;
|
30
|
+
width:10px;
|
31
|
+
height:10px;
|
32
|
+
overflow:hidden;
|
33
|
+
}
|
34
|
+
|
35
|
+
.fireworkParticle img {
|
36
|
+
display:block;
|
37
|
+
width:100px;
|
38
|
+
}
|
39
|
+
|
40
|
+
#sound {
|
41
|
+
position:absolute;
|
42
|
+
left:-706px;
|
43
|
+
top:-706px;
|
44
|
+
}
|
45
|
+
|
46
|
+
#debug {
|
47
|
+
position:absolute;
|
48
|
+
left:8px;
|
49
|
+
top:8px;
|
50
|
+
width:220px;
|
51
|
+
height:165px;
|
52
|
+
overflow:hidden;
|
53
|
+
color:#666;
|
54
|
+
display:none;
|
55
|
+
}
|
@@ -0,0 +1,54 @@
|
|
1
|
+
@charset "UTF-8";
|
2
|
+
|
3
|
+
/* v1.0 | 20080212 */
|
4
|
+
|
5
|
+
html, body, div, span, applet, object, iframe,
|
6
|
+
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
|
7
|
+
a, abbr, acronym, address, big, cite, code,
|
8
|
+
del, dfn, em, font, img, ins, kbd, q, s, samp,
|
9
|
+
small, strike, strong, sub, sup, tt, var,
|
10
|
+
b, u, i, center,
|
11
|
+
dl, dt, dd, ol, ul, li,
|
12
|
+
fieldset, form, label, legend,
|
13
|
+
table, caption, tbody, tfoot, thead, tr, th, td {
|
14
|
+
margin: 0;
|
15
|
+
padding: 0;
|
16
|
+
border: 0;
|
17
|
+
outline: 0;
|
18
|
+
font-size: 100%;
|
19
|
+
vertical-align: baseline;
|
20
|
+
background: transparent;
|
21
|
+
}
|
22
|
+
body {
|
23
|
+
line-height: 1;
|
24
|
+
}
|
25
|
+
ol, ul {
|
26
|
+
list-style: none;
|
27
|
+
}
|
28
|
+
blockquote, q {
|
29
|
+
quotes: none;
|
30
|
+
}
|
31
|
+
blockquote:before, blockquote:after,
|
32
|
+
q:before, q:after {
|
33
|
+
content: '';
|
34
|
+
content: none;
|
35
|
+
}
|
36
|
+
|
37
|
+
/* remember to define focus styles! */
|
38
|
+
:focus {
|
39
|
+
outline: 0;
|
40
|
+
}
|
41
|
+
|
42
|
+
/* remember to highlight inserts somehow! */
|
43
|
+
ins {
|
44
|
+
text-decoration: none;
|
45
|
+
}
|
46
|
+
del {
|
47
|
+
text-decoration: line-through;
|
48
|
+
}
|
49
|
+
|
50
|
+
/* tables still need 'cellspacing="0"' in the markup */
|
51
|
+
table {
|
52
|
+
border-collapse: collapse;
|
53
|
+
border-spacing: 0;
|
54
|
+
}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
@charset "UTF-8"
|
2
|
+
|
3
|
+
body
|
4
|
+
background-color: #D05C12
|
5
|
+
font-family: "Lobster", arial, serif
|
6
|
+
margin: 0px auto
|
7
|
+
text-align: center
|
8
|
+
text-shadow: 2px 2px 5px #000
|
9
|
+
|
10
|
+
h1
|
11
|
+
color: #29B7DD
|
12
|
+
font-size: 90pt
|
13
|
+
margin: 60px 0px 100px 0px
|
14
|
+
|
15
|
+
h2
|
16
|
+
color: #FBAF0D
|
17
|
+
font-size: 240pt
|
@@ -0,0 +1,21 @@
|
|
1
|
+
!!! 5
|
2
|
+
%html
|
3
|
+
%head
|
4
|
+
%meta{ :charset => "utf-8" }
|
5
|
+
%title The page you were looking for doesn't exist (404)
|
6
|
+
:css
|
7
|
+
body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
|
8
|
+
div.dialog {
|
9
|
+
width: 25em;
|
10
|
+
padding: 0 4em;
|
11
|
+
margin: 4em auto 0 auto;
|
12
|
+
border: 1px solid #ccc;
|
13
|
+
border-right-color: #999;
|
14
|
+
border-bottom-color: #999;
|
15
|
+
}
|
16
|
+
h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
|
17
|
+
%body
|
18
|
+
/ This file lives in themes/default/views/404.haml
|
19
|
+
%div.dialog
|
20
|
+
%h1 The page you were looking for doesn't exist.
|
21
|
+
%p You may have mistyped the address or the page may have moved.
|
@@ -0,0 +1,20 @@
|
|
1
|
+
!!! 5
|
2
|
+
%html
|
3
|
+
%head
|
4
|
+
%meta{ :charset => "utf-8" }
|
5
|
+
%title= "Mango: #{@content_page.title}"
|
6
|
+
%link{ :rel => "stylesheet", :type => "text/css", :media => "screen", :href => "http://fonts.googleapis.com/css?family=Lobster" }
|
7
|
+
%link{ :rel => "stylesheet", :type => "text/css", :media => "screen", :href => "/styles/reset.css" }
|
8
|
+
%link{ :rel => "stylesheet", :type => "text/css", :media => "screen", :href => "/styles/screen.css" }
|
9
|
+
%link{ :rel => "stylesheet", :type => "text/css", :media => "screen", :href => "/styles/fireworks.css" }
|
10
|
+
%script{ :type => "text/javascript", :src => "/javascripts/fireworks.js"}
|
11
|
+
%script{ :type => "text/javascript", :src => "/javascripts/timer.js"}
|
12
|
+
%body{ :onload => "fire();" }
|
13
|
+
%div#fireworks-template
|
14
|
+
%div#fw.firework
|
15
|
+
%div#fp.fireworkParticle
|
16
|
+
%img{ :src => "/images/particles.gif" }
|
17
|
+
|
18
|
+
%div#fireContainer
|
19
|
+
|
20
|
+
= yield
|
data/mango.gemspec
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
require_relative "lib/mango/version"
|
3
|
+
|
4
|
+
Gem::Specification.new do |s|
|
5
|
+
s.name = "mango"
|
6
|
+
s.version = Mango::VERSION
|
7
|
+
s.platform = Gem::Platform::RUBY
|
8
|
+
s.author = "Ryan Sobol"
|
9
|
+
s.email = "contact@ryansobol.com"
|
10
|
+
s.homepage = "http://github.com/ryansobol/mango"
|
11
|
+
s.summary = "Mango is a dynamic, database-free, and open source website framework"
|
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
|
+
|
14
|
+
s.required_rubygems_version = ">= 1.3.7"
|
15
|
+
s.rubyforge_project = "mango"
|
16
|
+
|
17
|
+
s.add_runtime_dependency "bundler", "~> 1.0.0"
|
18
|
+
s.add_runtime_dependency "rack", "~> 1.2.1"
|
19
|
+
s.add_runtime_dependency "sinatra", "~> 1.0"
|
20
|
+
s.add_runtime_dependency "haml", "~> 3.0.18"
|
21
|
+
s.add_runtime_dependency "bluecloth", "~> 2.0.7"
|
22
|
+
s.add_runtime_dependency "thor", "~> 0.14.0"
|
23
|
+
|
24
|
+
s.add_development_dependency "rspec", "~> 1.3.0"
|
25
|
+
s.add_development_dependency "rack-test", "~> 0.5.4"
|
26
|
+
s.add_development_dependency "yard", "~> 0.5.8"
|
27
|
+
s.add_development_dependency "bluecloth", "~> 2.0.7"
|
28
|
+
s.add_development_dependency "yard-sinatra", "~> 0.5.0"
|
29
|
+
|
30
|
+
s.files = `git ls-files`.split("\n")
|
31
|
+
s.test_files = `git ls-files -- spec/*`.split("\n")
|
32
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
|
33
|
+
s.default_executable = "mango"
|
34
|
+
s.require_paths = ["lib"]
|
35
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
%p /about/index.haml
|
@@ -0,0 +1 @@
|
|
1
|
+
%p /about/us.haml
|
@@ -0,0 +1 @@
|
|
1
|
+
%p /index.haml
|
@@ -0,0 +1 @@
|
|
1
|
+
%p /override.haml
|
@@ -0,0 +1 @@
|
|
1
|
+
%p /turner+hooch.haml
|
@@ -0,0 +1 @@
|
|
1
|
+
This file should *not* be accessible to a browser.
|
Binary file
|
@@ -0,0 +1,27 @@
|
|
1
|
+
/*
|
2
|
+
html5doctor.com Reset Stylesheet
|
3
|
+
v1.4.1
|
4
|
+
2010-03-01
|
5
|
+
Author: Richard Clark - http://richclarkdesign.com
|
6
|
+
*/
|
7
|
+
|
8
|
+
html, body, div, span, object, iframe,
|
9
|
+
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
|
10
|
+
abbr, address, cite, code,
|
11
|
+
del, dfn, em, img, ins, kbd, q, samp,
|
12
|
+
small, strong, sub, sup, var,
|
13
|
+
b, i,
|
14
|
+
dl, dt, dd, ol, ul, li,
|
15
|
+
fieldset, form, label, legend,
|
16
|
+
table, caption, tbody, tfoot, thead, tr, th, td,
|
17
|
+
article, aside, canvas, details, figcaption, figure,
|
18
|
+
footer, header, hgroup, menu, nav, section, summary,
|
19
|
+
time, mark, audio, video {
|
20
|
+
margin:0;
|
21
|
+
padding:0;
|
22
|
+
border:0;
|
23
|
+
outline:0;
|
24
|
+
font-size:100%;
|
25
|
+
vertical-align:baseline;
|
26
|
+
background:transparent;
|
27
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
This file should *not* be accessible to a browser.
|
@@ -0,0 +1 @@
|
|
1
|
+
This file should *not* be accessible to a browser.
|