luneta 0.0.3

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.
Files changed (62) hide show
  1. data/.gitignore +4 -0
  2. data/Gemfile +4 -0
  3. data/Rakefile +9 -0
  4. data/bin/luneta +2 -0
  5. data/lib/luneta.rb +11 -0
  6. data/lib/luneta/builder.rb +11 -0
  7. data/lib/luneta/layout.rb +13 -0
  8. data/lib/luneta/park.rb +73 -0
  9. data/lib/luneta/template.rb +13 -0
  10. data/lib/luneta/version.rb +3 -0
  11. data/luneta.gemspec +26 -0
  12. data/spec/.DS_Store +0 -0
  13. data/spec/layout_spec.rb +23 -0
  14. data/spec/luneta_spec.rb +40 -0
  15. data/spec/sample-site/.DS_Store +0 -0
  16. data/spec/sample-site/app.rb +33 -0
  17. data/spec/sample-site/config.ru +4 -0
  18. data/spec/sample-site/humans.txt +8 -0
  19. data/spec/sample-site/images/foundation/orbit/bullets.jpg +0 -0
  20. data/spec/sample-site/images/foundation/orbit/left-arrow-small.png +0 -0
  21. data/spec/sample-site/images/foundation/orbit/left-arrow.png +0 -0
  22. data/spec/sample-site/images/foundation/orbit/loading.gif +0 -0
  23. data/spec/sample-site/images/foundation/orbit/mask-black.png +0 -0
  24. data/spec/sample-site/images/foundation/orbit/pause-black.png +0 -0
  25. data/spec/sample-site/images/foundation/orbit/right-arrow-small.png +0 -0
  26. data/spec/sample-site/images/foundation/orbit/right-arrow.png +0 -0
  27. data/spec/sample-site/images/foundation/orbit/rotator-black.png +0 -0
  28. data/spec/sample-site/images/foundation/orbit/timer-black.png +0 -0
  29. data/spec/sample-site/index.html.erb +180 -0
  30. data/spec/sample-site/javascripts/app.js +38 -0
  31. data/spec/sample-site/javascripts/foundation.min.js +98 -0
  32. data/spec/sample-site/javascripts/jquery.foundation.accordion.js +34 -0
  33. data/spec/sample-site/javascripts/jquery.foundation.alerts.js +20 -0
  34. data/spec/sample-site/javascripts/jquery.foundation.buttons.js +74 -0
  35. data/spec/sample-site/javascripts/jquery.foundation.clearing.js +468 -0
  36. data/spec/sample-site/javascripts/jquery.foundation.forms.js +486 -0
  37. data/spec/sample-site/javascripts/jquery.foundation.joyride.js +639 -0
  38. data/spec/sample-site/javascripts/jquery.foundation.magellan.js +85 -0
  39. data/spec/sample-site/javascripts/jquery.foundation.mediaQueryToggle.js +27 -0
  40. data/spec/sample-site/javascripts/jquery.foundation.navigation.js +55 -0
  41. data/spec/sample-site/javascripts/jquery.foundation.orbit.js +897 -0
  42. data/spec/sample-site/javascripts/jquery.foundation.reveal.js +794 -0
  43. data/spec/sample-site/javascripts/jquery.foundation.tabs.js +43 -0
  44. data/spec/sample-site/javascripts/jquery.foundation.tooltips.js +193 -0
  45. data/spec/sample-site/javascripts/jquery.foundation.topbar.js +152 -0
  46. data/spec/sample-site/javascripts/jquery.js +9440 -0
  47. data/spec/sample-site/javascripts/jquery.placeholder.js +157 -0
  48. data/spec/sample-site/javascripts/modernizr.foundation.js +4 -0
  49. data/spec/sample-site/layout.erb +38 -0
  50. data/spec/sample-site/robots.txt +4 -0
  51. data/spec/sample-site/simple-layout.erb +10 -0
  52. data/spec/sample-site/simple-layout.rb +3 -0
  53. data/spec/sample-site/simple-test-with-params.haml +1 -0
  54. data/spec/sample-site/simple-test.erb +3 -0
  55. data/spec/sample-site/simple-test.haml +1 -0
  56. data/spec/sample-site/store.html +253 -0
  57. data/spec/sample-site/stylesheets/app.css +29 -0
  58. data/spec/sample-site/stylesheets/foundation.css +1213 -0
  59. data/spec/sample-site/stylesheets/foundation.min.css +1 -0
  60. data/spec/spec_helper.rb +10 -0
  61. data/spec/template_spec.rb +36 -0
  62. metadata +200 -0
@@ -0,0 +1,157 @@
1
+ /*! http://mths.be/placeholder v2.0.7 by @mathias */
2
+ ;(function(window, document, $) {
3
+
4
+ var isInputSupported = 'placeholder' in document.createElement('input'),
5
+ isTextareaSupported = 'placeholder' in document.createElement('textarea'),
6
+ prototype = $.fn,
7
+ valHooks = $.valHooks,
8
+ hooks,
9
+ placeholder;
10
+
11
+ if (isInputSupported && isTextareaSupported) {
12
+
13
+ placeholder = prototype.placeholder = function() {
14
+ return this;
15
+ };
16
+
17
+ placeholder.input = placeholder.textarea = true;
18
+
19
+ } else {
20
+
21
+ placeholder = prototype.placeholder = function() {
22
+ var $this = this;
23
+ $this
24
+ .filter((isInputSupported ? 'textarea' : ':input') + '[placeholder]')
25
+ .not('.placeholder')
26
+ .bind({
27
+ 'focus.placeholder': clearPlaceholder,
28
+ 'blur.placeholder': setPlaceholder
29
+ })
30
+ .data('placeholder-enabled', true)
31
+ .trigger('blur.placeholder');
32
+ return $this;
33
+ };
34
+
35
+ placeholder.input = isInputSupported;
36
+ placeholder.textarea = isTextareaSupported;
37
+
38
+ hooks = {
39
+ 'get': function(element) {
40
+ var $element = $(element);
41
+ return $element.data('placeholder-enabled') && $element.hasClass('placeholder') ? '' : element.value;
42
+ },
43
+ 'set': function(element, value) {
44
+ var $element = $(element);
45
+ if (!$element.data('placeholder-enabled')) {
46
+ return element.value = value;
47
+ }
48
+ if (value == '') {
49
+ element.value = value;
50
+ // Issue #56: Setting the placeholder causes problems if the element continues to have focus.
51
+ if (element != document.activeElement) {
52
+ // We can't use `triggerHandler` here because of dummy text/password inputs :(
53
+ setPlaceholder.call(element);
54
+ }
55
+ } else if ($element.hasClass('placeholder')) {
56
+ clearPlaceholder.call(element, true, value) || (element.value = value);
57
+ } else {
58
+ element.value = value;
59
+ }
60
+ // `set` can not return `undefined`; see http://jsapi.info/jquery/1.7.1/val#L2363
61
+ return $element;
62
+ }
63
+ };
64
+
65
+ isInputSupported || (valHooks.input = hooks);
66
+ isTextareaSupported || (valHooks.textarea = hooks);
67
+
68
+ $(function() {
69
+ // Look for forms
70
+ $(document).delegate('form', 'submit.placeholder', function() {
71
+ // Clear the placeholder values so they don't get submitted
72
+ var $inputs = $('.placeholder', this).each(clearPlaceholder);
73
+ setTimeout(function() {
74
+ $inputs.each(setPlaceholder);
75
+ }, 10);
76
+ });
77
+ });
78
+
79
+ // Clear placeholder values upon page reload
80
+ $(window).bind('beforeunload.placeholder', function() {
81
+ $('.placeholder').each(function() {
82
+ this.value = '';
83
+ });
84
+ });
85
+
86
+ }
87
+
88
+ function args(elem) {
89
+ // Return an object of element attributes
90
+ var newAttrs = {},
91
+ rinlinejQuery = /^jQuery\d+$/;
92
+ $.each(elem.attributes, function(i, attr) {
93
+ if (attr.specified && !rinlinejQuery.test(attr.name)) {
94
+ newAttrs[attr.name] = attr.value;
95
+ }
96
+ });
97
+ return newAttrs;
98
+ }
99
+
100
+ function clearPlaceholder(event, value) {
101
+ var input = this,
102
+ $input = $(input);
103
+ if (input.value == $input.attr('placeholder') && $input.hasClass('placeholder')) {
104
+ if ($input.data('placeholder-password')) {
105
+ $input = $input.hide().next().show().attr('id', $input.removeAttr('id').data('placeholder-id'));
106
+ // If `clearPlaceholder` was called from `$.valHooks.input.set`
107
+ if (event === true) {
108
+ return $input[0].value = value;
109
+ }
110
+ $input.focus();
111
+ } else {
112
+ input.value = '';
113
+ $input.removeClass('placeholder');
114
+ input == document.activeElement && input.select();
115
+ }
116
+ }
117
+ }
118
+
119
+ function setPlaceholder() {
120
+ var $replacement,
121
+ input = this,
122
+ $input = $(input),
123
+ $origInput = $input,
124
+ id = this.id;
125
+ if (input.value == '') {
126
+ if (input.type == 'password') {
127
+ if (!$input.data('placeholder-textinput')) {
128
+ try {
129
+ $replacement = $input.clone().attr({ 'type': 'text' });
130
+ } catch(e) {
131
+ $replacement = $('<input>').attr($.extend(args(this), { 'type': 'text' }));
132
+ }
133
+ $replacement
134
+ .removeAttr('name')
135
+ .data({
136
+ 'placeholder-password': true,
137
+ 'placeholder-id': id
138
+ })
139
+ .bind('focus.placeholder', clearPlaceholder);
140
+ $input
141
+ .data({
142
+ 'placeholder-textinput': $replacement,
143
+ 'placeholder-id': id
144
+ })
145
+ .before($replacement);
146
+ }
147
+ $input = $input.removeAttr('id').hide().prev().attr('id', id).show();
148
+ // Note: `$input[0] != input` now!
149
+ }
150
+ $input.addClass('placeholder');
151
+ $input[0].value = $input.attr('placeholder');
152
+ } else {
153
+ $input.removeClass('placeholder');
154
+ }
155
+ }
156
+
157
+ }(this, document, jQuery));
@@ -0,0 +1,4 @@
1
+ /* Modernizr 2.6.2 (Custom Build) | MIT & BSD
2
+ * Build: http://modernizr.com/download/#-inlinesvg-svg-svgclippaths-touch-shiv-mq-cssclasses-teststyles-prefixes-ie8compat-load
3
+ */
4
+ ;window.Modernizr=function(a,b,c){function y(a){j.cssText=a}function z(a,b){return y(m.join(a+";")+(b||""))}function A(a,b){return typeof a===b}function B(a,b){return!!~(""+a).indexOf(b)}function C(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:A(f,"function")?f.bind(d||b):f}return!1}var d="2.6.2",e={},f=!0,g=b.documentElement,h="modernizr",i=b.createElement(h),j=i.style,k,l={}.toString,m=" -webkit- -moz- -o- -ms- ".split(" "),n={svg:"http://www.w3.org/2000/svg"},o={},p={},q={},r=[],s=r.slice,t,u=function(a,c,d,e){var f,i,j,k,l=b.createElement("div"),m=b.body,n=m||b.createElement("body");if(parseInt(d,10))while(d--)j=b.createElement("div"),j.id=e?e[d]:h+(d+1),l.appendChild(j);return f=["&#173;",'<style id="s',h,'">',a,"</style>"].join(""),l.id=h,(m?l:n).innerHTML+=f,n.appendChild(l),m||(n.style.background="",n.style.overflow="hidden",k=g.style.overflow,g.style.overflow="hidden",g.appendChild(n)),i=c(l,a),m?l.parentNode.removeChild(l):(n.parentNode.removeChild(n),g.style.overflow=k),!!i},v=function(b){var c=a.matchMedia||a.msMatchMedia;if(c)return c(b).matches;var d;return u("@media "+b+" { #"+h+" { position: absolute; } }",function(b){d=(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle)["position"]=="absolute"}),d},w={}.hasOwnProperty,x;!A(w,"undefined")&&!A(w.call,"undefined")?x=function(a,b){return w.call(a,b)}:x=function(a,b){return b in a&&A(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=s.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(s.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(s.call(arguments)))};return e}),o.touch=function(){var c;return"ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch?c=!0:u(["@media (",m.join("touch-enabled),("),h,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(a){c=a.offsetTop===9}),c},o.svg=function(){return!!b.createElementNS&&!!b.createElementNS(n.svg,"svg").createSVGRect},o.inlinesvg=function(){var a=b.createElement("div");return a.innerHTML="<svg/>",(a.firstChild&&a.firstChild.namespaceURI)==n.svg},o.svgclippaths=function(){return!!b.createElementNS&&/SVGClipPath/.test(l.call(b.createElementNS(n.svg,"clipPath")))};for(var D in o)x(o,D)&&(t=D.toLowerCase(),e[t]=o[D](),r.push((e[t]?"":"no-")+t));return e.addTest=function(a,b){if(typeof a=="object")for(var d in a)x(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,typeof f!="undefined"&&f&&(g.className+=" "+(b?"":"no-")+a),e[a]=b}return e},y(""),i=k=null,function(a,b){function k(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function l(){var a=r.elements;return typeof a=="string"?a.split(" "):a}function m(a){var b=i[a[g]];return b||(b={},h++,a[g]=h,i[h]=b),b}function n(a,c,f){c||(c=b);if(j)return c.createElement(a);f||(f=m(c));var g;return f.cache[a]?g=f.cache[a].cloneNode():e.test(a)?g=(f.cache[a]=f.createElem(a)).cloneNode():g=f.createElem(a),g.canHaveChildren&&!d.test(a)?f.frag.appendChild(g):g}function o(a,c){a||(a=b);if(j)return a.createDocumentFragment();c=c||m(a);var d=c.frag.cloneNode(),e=0,f=l(),g=f.length;for(;e<g;e++)d.createElement(f[e]);return d}function p(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return r.shivMethods?n(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+l().join().replace(/\w+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(r,b.frag)}function q(a){a||(a=b);var c=m(a);return r.shivCSS&&!f&&!c.hasCSS&&(c.hasCSS=!!k(a,"article,aside,figcaption,figure,footer,header,hgroup,nav,section{display:block}mark{background:#FF0;color:#000}")),j||p(a,c),a}var c=a.html5||{},d=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,e=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,f,g="_html5shiv",h=0,i={},j;(function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",f="hidden"in a,j=a.childNodes.length==1||function(){b.createElement("a");var a=b.createDocumentFragment();return typeof a.cloneNode=="undefined"||typeof a.createDocumentFragment=="undefined"||typeof a.createElement=="undefined"}()}catch(c){f=!0,j=!0}})();var r={elements:c.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:c.shivCSS!==!1,supportsUnknownElements:j,shivMethods:c.shivMethods!==!1,type:"default",shivDocument:q,createElement:n,createDocumentFragment:o};a.html5=r,q(b)}(this,b),e._version=d,e._prefixes=m,e.mq=v,e.testStyles=u,g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+r.join(" "):""),e}(this,this.document),function(a,b,c){function d(a){return"[object Function]"==o.call(a)}function e(a){return"string"==typeof a}function f(){}function g(a){return!a||"loaded"==a||"complete"==a||"uninitialized"==a}function h(){var a=p.shift();q=1,a?a.t?m(function(){("c"==a.t?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){"img"!=a&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l=b.createElement(a),o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};1===y[c]&&(r=1,y[c]=[]),"object"==a?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),"img"!=a&&(r||2===y[c]?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i("c"==b?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),1==p.length&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&"[object Opera]"==o.call(a.opera),l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return"[object Array]"==o.call(a)},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f<d;f++)g=a[f].split("="),(e=z[g.shift()])&&(c=e(c,g));for(f=0;f<b;f++)c=x[f](c);return c}function g(a,e,f,g,h){var i=b(a),j=i.autoCallback;i.url.split(".").pop().split("?").shift(),i.bypass||(e&&(e=d(e)?e:e[a]||e[g]||e[a.split("/").pop().split("?")[0]]),i.instead?i.instead(a,e,f,g,h):(y[i.url]?i.noexec=!0:y[i.url]=1,f.load(i.url,i.forceCSS||!i.forceJS&&"css"==i.url.split(".").pop().split("?").shift()?"c":c,i.noexec,i.attrs,i.timeout),(d(e)||d(j))&&f.load(function(){k(),e&&e(i.origUrl,h,g),j&&j(i.origUrl,h,g),y[i.url]=2})))}function h(a,b){function c(a,c){if(a){if(e(a))c||(j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}),g(a,j,b,0,h);else if(Object(a)===a)for(n in m=function(){var b=0,c;for(c in a)a.hasOwnProperty(c)&&b++;return b}(),a)a.hasOwnProperty(n)&&(!c&&!--m&&(d(j)?j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}:j[n]=function(a){return function(){var b=[].slice.call(arguments);a&&a.apply(this,b),l()}}(k[n])),g(a[n],j,b,n,h))}else!c&&l()}var h=!!a.test,i=a.load||a.both,j=a.callback||f,k=j,l=a.complete||f,m,n;c(h?a.yep:a.nope,!!i),i&&c(i)}var i,j,l=this.yepnope.loader;if(e(a))g(a,0,l,0);else if(w(a))for(i=0;i<a.length;i++)j=a[i],e(j)?g(j,0,l,0):w(j)?B(j):Object(j)===j&&h(j,l);else Object(a)===a&&h(a,l)},B.addPrefix=function(a,b){z[a]=b},B.addFilter=function(a){x.push(a)},B.errorTimeout=1e4,null==b.readyState&&b.addEventListener&&(b.readyState="loading",b.addEventListener("DOMContentLoaded",A=function(){b.removeEventListener("DOMContentLoaded",A,0),b.readyState="complete"},0)),a.yepnope=k(),a.yepnope.executeStack=h,a.yepnope.injectJs=function(a,c,d,e,i,j){var k=b.createElement("script"),l,o,e=e||B.errorTimeout;k.src=a;for(o in d)k.setAttribute(o,d[o]);c=j?h:c||f,k.onreadystatechange=k.onload=function(){!l&&g(k.readyState)&&(l=1,c(),k.onload=k.onreadystatechange=null)},m(function(){l||(l=1,c(1))},e),i?k.onload():n.parentNode.insertBefore(k,n)},a.yepnope.injectCss=function(a,c,d,e,g,i){var e=b.createElement("link"),j,c=i?h:c||f;e.href=a,e.rel="stylesheet",e.type="text/css";for(j in d)e.setAttribute(j,d[j]);g||(n.parentNode.insertBefore(e,n),m(c,0))}}(this,document),Modernizr.load=function(){yepnope.apply(window,[].slice.call(arguments,0))},Modernizr.addTest("ie8compat",function(){return!window.addEventListener&&document.documentMode&&document.documentMode===7});
@@ -0,0 +1,38 @@
1
+ <!DOCTYPE html>
2
+
3
+ <!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -->
4
+ <!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]-->
5
+ <!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]-->
6
+ <!--[if IE 8]> <html class="no-js lt-ie9" lang="en"> <![endif]-->
7
+ <!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
8
+ <head>
9
+ <meta charset="utf-8" />
10
+
11
+ <!-- Set the viewport width to device width for mobile -->
12
+ <meta name="viewport" content="width=device-width" />
13
+
14
+ <title><%= title %></title>
15
+
16
+ <meta name="description" content="<%= description %>" />
17
+
18
+ <!-- Included CSS Files (Uncompressed) -->
19
+ <!--
20
+ <link rel="stylesheet" href="stylesheets/foundation.css">
21
+ -->
22
+
23
+ <!-- Included CSS Files (Compressed) -->
24
+ <link rel="stylesheet" href="stylesheets/foundation.min.css">
25
+ <link rel="stylesheet" href="stylesheets/app.css">
26
+
27
+ <script src="javascripts/modernizr.foundation.js"></script>
28
+
29
+ <!-- IE Fix for HTML5 Tags -->
30
+ <!--[if lt IE 9]>
31
+ <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
32
+ <![endif]-->
33
+
34
+ </head>
35
+ <body>
36
+ <%= yield %>
37
+ </body>
38
+ </html>
@@ -0,0 +1,4 @@
1
+ # www.robotstxt.org/
2
+ # www.google.com/support/webmasters/bin/answer.py?hl=en&answer=156449
3
+
4
+ User-agent: *
@@ -0,0 +1,10 @@
1
+ <html>
2
+ <title>Sample Layout</title>
3
+ <body>
4
+ <%= yield %>
5
+ <p>Outside the layout</p>
6
+ </body>
7
+
8
+ </html>
9
+
10
+
@@ -0,0 +1,3 @@
1
+ <%= "Simple ERB Test" %>
2
+
3
+ Test
@@ -0,0 +1,3 @@
1
+ <%= "Simple ERB Test" %>
2
+
3
+ Test
@@ -0,0 +1 @@
1
+ = "Simple HAML Test"
@@ -0,0 +1,253 @@
1
+ <!DOCTYPE html>
2
+
3
+ <!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -->
4
+ <!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]-->
5
+ <!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]-->
6
+ <!--[if IE 8]> <html class="no-js lt-ie9" lang="en"> <![endif]-->
7
+ <!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
8
+ <head>
9
+ <meta charset="utf-8" />
10
+
11
+ <!-- Set the viewport width to device width for mobile -->
12
+ <meta name="viewport" content="width=device-width" />
13
+
14
+ <title>Welcome to Foundation | Banded</title>
15
+
16
+ <!-- Included CSS Files (Uncompressed) -->
17
+ <!--
18
+ <link rel="stylesheet" href="stylesheets/foundation.css">
19
+ -->
20
+
21
+ <!-- Included CSS Files (Compressed) -->
22
+ <link rel="stylesheet" href="stylesheets/foundation.min.css">
23
+ <link rel="stylesheet" href="stylesheets/app.css">
24
+
25
+ <script src="javascripts/modernizr.foundation.js"></script>
26
+ </head>
27
+ <body>
28
+ <div class="row">
29
+ <div class="twelve columns">
30
+
31
+ <!-- Navigation -->
32
+
33
+ <div class="row">
34
+ <div class="twelve columns">
35
+
36
+ <ul class="top-bar">
37
+
38
+ <ul>
39
+ <li class="name"><h1><a href="#">Title</a></h1></li>
40
+ <li class="toggle-topbar"><a href="#"></a></li>
41
+ </ul>
42
+
43
+ <section>
44
+ <ul class="left">
45
+ <li><a href="#">Link</a></li>
46
+ <li><a href="#">Link</a></li>
47
+ <li><a href="#">Link</a></li>
48
+ </ul>
49
+
50
+ <ul class="right">
51
+ <li class="has-dropdown">
52
+ <a href="#">Link</a>
53
+
54
+ <ul class="dropdown">
55
+ <li><a href="#">Dropdown Link</a></li>
56
+ <li><a href="#">Dropdown Link</a></li>
57
+ <li><a href="#">Dropdown Link</a></li>
58
+ </ul>
59
+ </ul>
60
+ </section>
61
+
62
+ </div>
63
+ </div>
64
+
65
+ <!-- End Navigation -->
66
+
67
+ <div class="row">
68
+
69
+ <!-- Side Bar -->
70
+
71
+ <div class="four mobile-four columns">
72
+
73
+ <img src="http://placehold.it/500x500&text=Logo">
74
+
75
+ <div class="hide-for-small panel">
76
+ <h3>Header</h3>
77
+ <h5 class="subheader">Risus ligula, aliquam nec fermentum vitae, sollicitudin eget urna. Donec dignissim nibh fermentum odio ornare sagittis.
78
+ </h5>
79
+ </div>
80
+
81
+ <a href="#">
82
+ <div class="panel callout radius" align="center">
83
+ <h6>99&nbsp; items in your cart</h6>
84
+ </div>
85
+ </a>
86
+
87
+ </div>
88
+
89
+ <!-- End Side Bar -->
90
+
91
+
92
+ <!-- Thumbnails -->
93
+
94
+ <div class="eight columns">
95
+ <div class="row">
96
+
97
+ <div class="four mobile-two columns">
98
+ <img src="http://placehold.it/1000x1000&text=Thumbnail">
99
+
100
+ <div class="panel">
101
+ <h5>Item Name</h5>
102
+ <h6 class="subheader">$000.00</h6>
103
+ </div>
104
+ </div>
105
+
106
+ <div class="four mobile-two columns">
107
+ <img src="http://placehold.it/500x500&text=Thumbnail">
108
+
109
+ <div class="panel">
110
+ <h5>Item Name</h5>
111
+ <h6 class="subheader">$000.00</h6>
112
+ </div>
113
+ </div>
114
+
115
+ <div class="four mobile-two columns">
116
+ <img src="http://placehold.it/500x500&text=Thumbnail">
117
+
118
+ <div class="panel">
119
+ <h5>Item Name</h5>
120
+ <h6 class="subheader">$000.00</h6>
121
+ </div>
122
+ </div>
123
+
124
+ <div class="four mobile-two columns">
125
+ <img src="http://placehold.it/500x500&text=Thumbnail">
126
+
127
+ <div class="panel">
128
+ <h5>Item Name</h5>
129
+ <h6 class="subheader">$000.00</h6>
130
+ </div>
131
+ </div>
132
+
133
+ <div class="four mobile-two columns">
134
+ <img src="http://placehold.it/500x500&text=Thumbnail">
135
+
136
+ <div class="panel">
137
+ <h5>Item Name</h5>
138
+ <h6 class="subheader">$000.00</h6>
139
+ </div>
140
+ </div>
141
+
142
+ <div class="four mobile-two columns">
143
+ <img src="http://placehold.it/500x500&text=Thumbnail">
144
+
145
+ <div class="panel">
146
+ <h5>Item Name</h5>
147
+ <h6 class="subheader">$000.00</h6>
148
+ </div>
149
+ </div>
150
+
151
+ <!-- End Thumbnails -->
152
+
153
+
154
+ <!-- Managed By -->
155
+
156
+ <div class="twelve columns">
157
+ <div class="panel">
158
+ <div class="row">
159
+
160
+ <div class="two mobile-two columns">
161
+ <img src="http://placehold.it/300x300&text=Site Owner">
162
+ </div>
163
+
164
+ <div class="ten mobile-two columns">
165
+ <strong>This Site Is Managed By<hr/></strong>
166
+
167
+ Risus ligula, aliquam nec fermentum vitae, sollicitudin eget urna. Donec dignissim nibh fermentum odio ornare sagittis
168
+ </div>
169
+
170
+ </div>
171
+ </div>
172
+ </div>
173
+
174
+ <!-- End Managed By -->
175
+
176
+ </div>
177
+ </div>
178
+ </div>
179
+
180
+
181
+ <!-- Footer -->
182
+
183
+ <footer class="row">
184
+ <div class="twelve columns"><hr />
185
+ <div class="row">
186
+
187
+ <div class="six columns">
188
+ <p>&copy; Copyright no one at all. Go to town.</p>
189
+ </div>
190
+
191
+ <div class="six columns">
192
+ <ul class="link-list right">
193
+ <li><a href="#">Link 1</a></li>
194
+ <li><a href="#">Link 2</a></li>
195
+ <li><a href="#">Link 3</a></li>
196
+ <li><a href="#">Link 4</a></li>
197
+ </ul>
198
+ </div>
199
+
200
+ </div>
201
+ </div>
202
+ </footer>
203
+
204
+ <!-- End Footer -->
205
+
206
+ </div>
207
+ </div>
208
+
209
+ <!-- Included JS Files (Uncompressed) -->
210
+ <!--
211
+
212
+ <script src="javascripts/jquery.js"></script>
213
+
214
+ <script src="javascripts/jquery.foundation.mediaQueryToggle.js"></script>
215
+
216
+ <script src="javascripts/jquery.foundation.forms.js"></script>
217
+
218
+ <script src="javascripts/jquery.foundation.reveal.js"></script>
219
+
220
+ <script src="javascripts/jquery.foundation.orbit.js"></script>
221
+
222
+ <script src="javascripts/jquery.foundation.navigation.js"></script>
223
+
224
+ <script src="javascripts/jquery.foundation.buttons.js"></script>
225
+
226
+ <script src="javascripts/jquery.foundation.tabs.js"></script>
227
+
228
+ <script src="javascripts/jquery.foundation.tooltips.js"></script>
229
+
230
+ <script src="javascripts/jquery.foundation.accordion.js"></script>
231
+
232
+ <script src="javascripts/jquery.placeholder.js"></script>
233
+
234
+ <script src="javascripts/jquery.foundation.alerts.js"></script>
235
+
236
+ <script src="javascripts/jquery.foundation.topbar.js"></script>
237
+
238
+ <script src="javascripts/jquery.foundation.joyride.js"></script>
239
+
240
+ <script src="javascripts/jquery.foundation.clearing.js"></script>
241
+
242
+ <script src="javascripts/jquery.foundation.magellan.js"></script>
243
+
244
+ -->
245
+
246
+ <!-- Included JS Files (Compressed) -->
247
+ <script src="javascripts/jquery.js"></script>
248
+ <script src="javascripts/foundation.min.js"></script>
249
+
250
+ <!-- Initialize JS Plugins -->
251
+ <script src="javascripts/app.js"></script>
252
+ </body>
253
+ </html>