o2webappizer 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +2 -0
- data/README.md +4 -9
- data/bin/o2webappizer +1 -1
- data/lib/o2webappizer.rb +1 -0
- data/lib/o2webappizer/app_builder.rb +167 -0
- data/lib/o2webappizer/generators/app_generator.rb +29 -0
- data/lib/o2webappizer/version.rb +1 -1
- data/templates/{dot_gitignore → .gitignore.tt} +4 -5
- data/templates/.ruby-version.tt +1 -0
- data/templates/Gemfile.tt +101 -0
- data/templates/README.md.tt +33 -0
- data/templates/app/assets/javascripts/app.js.coffee +7 -0
- data/templates/app/assets/javascripts/application.js.coffee +27 -0
- data/templates/app/assets/stylesheets/application.sass +20 -0
- data/templates/app/controllers/application_controller.rb +9 -0
- data/templates/app/controllers/cms/authenticate.rb.tt +38 -0
- data/templates/app/helpers/application_helper.rb +2 -0
- data/templates/app/helpers/spree/frontend_helper_decorator.rb +12 -0
- data/templates/app/mailers/application_mailer.rb +3 -0
- data/templates/app/views/layouts/application.html.erb.tt +27 -0
- data/templates/app/views/layouts/mailer.html.erb +1 -0
- data/templates/app/views/layouts/mailer.text.erb +1 -0
- data/templates/app/views/spree/layouts/spree_application.html.erb +37 -0
- data/templates/app/views/spree/shared/_head.html.erb +14 -0
- data/templates/app/views/spree/shared/_main_nav_bar.html.erb +18 -0
- data/templates/config/database.yml.tt +99 -0
- data/templates/config/initializers/assets.rb.tt +19 -0
- data/templates/config/initializers/devise.rb.tt +1 -0
- data/templates/config/initializers/lazyload.rb +3 -0
- data/templates/config/initializers/rails_admin.rb +101 -0
- data/templates/config/initializers/rails_admin_cms.rb +17 -0
- data/templates/config/initializers/rich.rb +142 -0
- data/templates/config/initializers/simple_form.rb +165 -0
- data/templates/config/initializers/simple_form_bootstrap.rb +149 -0
- data/templates/config/initializers/spree.rb +55 -0
- data/templates/config/locales/en.yml +7 -0
- data/templates/config/locales/routes.en.yml +3 -0
- data/templates/config/locales/simple_form.en.yml +31 -0
- data/templates/config/routes.rb.tt +68 -0
- data/templates/config/secrets.yml.tt +28 -0
- data/templates/public/404.html +67 -0
- data/templates/public/422.html +67 -0
- data/templates/public/500.html +66 -0
- data/templates/public/favicon.ico +0 -0
- data/templates/public/images/full/missing.png +0 -0
- data/templates/public/images/huge/missing.png +0 -0
- data/templates/public/images/large/missing.png +0 -0
- data/templates/public/images/loading.gif +0 -0
- data/templates/public/images/medium/missing.png +0 -0
- data/templates/public/images/mini/missing.png +0 -0
- data/templates/public/images/original/missing.png +0 -0
- data/templates/public/images/rich_thumb/missing.png +0 -0
- data/templates/public/images/small/missing.png +0 -0
- data/templates/public/images/thumb/missing.png +0 -0
- data/templates/public/robots.txt.tt +15 -0
- data/templates/vendor/assets/javascripts/jquery.lazyload.js +242 -0
- data/templates/vendor/assets/javascripts/modernizr.js +3 -0
- data/templates/vendor/assets/javascripts/spree/backend/all.js +11 -0
- data/templates/vendor/assets/javascripts/spree/frontend/all.js +13 -0
- data/templates/vendor/assets/stylesheets/nprogress-variables.sass +3 -0
- data/templates/vendor/assets/stylesheets/spree/backend/all.css +10 -0
- data/templates/vendor/assets/stylesheets/spree/frontend/all.css +12 -0
- metadata +58 -3
@@ -0,0 +1,242 @@
|
|
1
|
+
/*!
|
2
|
+
* Lazy Load - jQuery plugin for lazy loading images
|
3
|
+
*
|
4
|
+
* Copyright (c) 2007-2015 Mika Tuupola
|
5
|
+
*
|
6
|
+
* Licensed under the MIT license:
|
7
|
+
* http://www.opensource.org/licenses/mit-license.php
|
8
|
+
*
|
9
|
+
* Project home:
|
10
|
+
* http://www.appelsiini.net/projects/lazyload
|
11
|
+
*
|
12
|
+
* Version: 1.9.7
|
13
|
+
*
|
14
|
+
*/
|
15
|
+
|
16
|
+
(function($, window, document, undefined) {
|
17
|
+
var $window = $(window);
|
18
|
+
|
19
|
+
$.fn.lazyload = function(options) {
|
20
|
+
var elements = this;
|
21
|
+
var $container;
|
22
|
+
var settings = {
|
23
|
+
threshold : 0,
|
24
|
+
failure_limit : 0,
|
25
|
+
event : "scroll",
|
26
|
+
effect : "show",
|
27
|
+
container : window,
|
28
|
+
data_attribute : "original",
|
29
|
+
skip_invisible : false,
|
30
|
+
appear : null,
|
31
|
+
load : null,
|
32
|
+
placeholder : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC"
|
33
|
+
};
|
34
|
+
|
35
|
+
function update() {
|
36
|
+
var counter = 0;
|
37
|
+
|
38
|
+
elements.each(function() {
|
39
|
+
var $this = $(this);
|
40
|
+
if (settings.skip_invisible && !$this.is(":visible")) {
|
41
|
+
return;
|
42
|
+
}
|
43
|
+
if ($.abovethetop(this, settings) ||
|
44
|
+
$.leftofbegin(this, settings)) {
|
45
|
+
/* Nothing. */
|
46
|
+
} else if (!$.belowthefold(this, settings) &&
|
47
|
+
!$.rightoffold(this, settings)) {
|
48
|
+
$this.trigger("appear");
|
49
|
+
/* if we found an image we'll load, reset the counter */
|
50
|
+
counter = 0;
|
51
|
+
} else {
|
52
|
+
if (++counter > settings.failure_limit) {
|
53
|
+
return false;
|
54
|
+
}
|
55
|
+
}
|
56
|
+
});
|
57
|
+
|
58
|
+
}
|
59
|
+
|
60
|
+
if(options) {
|
61
|
+
/* Maintain BC for a couple of versions. */
|
62
|
+
if (undefined !== options.failurelimit) {
|
63
|
+
options.failure_limit = options.failurelimit;
|
64
|
+
delete options.failurelimit;
|
65
|
+
}
|
66
|
+
if (undefined !== options.effectspeed) {
|
67
|
+
options.effect_speed = options.effectspeed;
|
68
|
+
delete options.effectspeed;
|
69
|
+
}
|
70
|
+
|
71
|
+
$.extend(settings, options);
|
72
|
+
}
|
73
|
+
|
74
|
+
/* Cache container as jQuery as object. */
|
75
|
+
$container = (settings.container === undefined ||
|
76
|
+
settings.container === window) ? $window : $(settings.container);
|
77
|
+
|
78
|
+
/* Fire one scroll event per scroll. Not one scroll event per image. */
|
79
|
+
if (0 === settings.event.indexOf("scroll")) {
|
80
|
+
$container.bind(settings.event, function() {
|
81
|
+
return update();
|
82
|
+
});
|
83
|
+
}
|
84
|
+
|
85
|
+
this.each(function() {
|
86
|
+
var self = this;
|
87
|
+
var $self = $(self);
|
88
|
+
|
89
|
+
self.loaded = false;
|
90
|
+
|
91
|
+
/* If no src attribute given use data:uri. */
|
92
|
+
if ($self.attr("src") === undefined || $self.attr("src") === false) {
|
93
|
+
if ($self.is("img")) {
|
94
|
+
$self.attr("src", settings.placeholder);
|
95
|
+
}
|
96
|
+
}
|
97
|
+
|
98
|
+
/* When appear is triggered load original image. */
|
99
|
+
$self.one("appear", function() {
|
100
|
+
if (!this.loaded) {
|
101
|
+
if (settings.appear) {
|
102
|
+
var elements_left = elements.length;
|
103
|
+
settings.appear.call(self, elements_left, settings);
|
104
|
+
}
|
105
|
+
$("<img />")
|
106
|
+
.bind("load", function() {
|
107
|
+
|
108
|
+
var original = $self.attr("data-" + settings.data_attribute);
|
109
|
+
$self.hide();
|
110
|
+
if ($self.is("img")) {
|
111
|
+
$self.attr("src", original);
|
112
|
+
} else {
|
113
|
+
$self.css("background-image", "url('" + original + "')");
|
114
|
+
}
|
115
|
+
$self[settings.effect](settings.effect_speed);
|
116
|
+
|
117
|
+
self.loaded = true;
|
118
|
+
|
119
|
+
/* Remove image from array so it is not looped next time. */
|
120
|
+
var temp = $.grep(elements, function(element) {
|
121
|
+
return !element.loaded;
|
122
|
+
});
|
123
|
+
elements = $(temp);
|
124
|
+
|
125
|
+
if (settings.load) {
|
126
|
+
var elements_left = elements.length;
|
127
|
+
settings.load.call(self, elements_left, settings);
|
128
|
+
}
|
129
|
+
})
|
130
|
+
.attr("src", $self.attr("data-" + settings.data_attribute));
|
131
|
+
}
|
132
|
+
});
|
133
|
+
|
134
|
+
/* When wanted event is triggered load original image */
|
135
|
+
/* by triggering appear. */
|
136
|
+
if (0 !== settings.event.indexOf("scroll")) {
|
137
|
+
$self.bind(settings.event, function() {
|
138
|
+
if (!self.loaded) {
|
139
|
+
$self.trigger("appear");
|
140
|
+
}
|
141
|
+
});
|
142
|
+
}
|
143
|
+
});
|
144
|
+
|
145
|
+
/* Check if something appears when window is resized. */
|
146
|
+
$window.bind("resize", function() {
|
147
|
+
update();
|
148
|
+
});
|
149
|
+
|
150
|
+
/* With IOS5 force loading images when navigating with back button. */
|
151
|
+
/* Non optimal workaround. */
|
152
|
+
if ((/(?:iphone|ipod|ipad).*os 5/gi).test(navigator.appVersion)) {
|
153
|
+
$window.bind("pageshow", function(event) {
|
154
|
+
if (event.originalEvent && event.originalEvent.persisted) {
|
155
|
+
elements.each(function() {
|
156
|
+
$(this).trigger("appear");
|
157
|
+
});
|
158
|
+
}
|
159
|
+
});
|
160
|
+
}
|
161
|
+
|
162
|
+
/* Force initial check if images should appear. */
|
163
|
+
$(document).ready(function() {
|
164
|
+
update();
|
165
|
+
});
|
166
|
+
|
167
|
+
return this;
|
168
|
+
};
|
169
|
+
|
170
|
+
/* Convenience methods in jQuery namespace. */
|
171
|
+
/* Use as $.belowthefold(element, {threshold : 100, container : window}) */
|
172
|
+
|
173
|
+
$.belowthefold = function(element, settings) {
|
174
|
+
var fold;
|
175
|
+
|
176
|
+
if (settings.container === undefined || settings.container === window) {
|
177
|
+
fold = (window.innerHeight ? window.innerHeight : $window.height()) + $window.scrollTop();
|
178
|
+
} else {
|
179
|
+
fold = $(settings.container).offset().top + $(settings.container).height();
|
180
|
+
}
|
181
|
+
|
182
|
+
return fold <= $(element).offset().top - settings.threshold;
|
183
|
+
};
|
184
|
+
|
185
|
+
$.rightoffold = function(element, settings) {
|
186
|
+
var fold;
|
187
|
+
|
188
|
+
if (settings.container === undefined || settings.container === window) {
|
189
|
+
fold = $window.width() + $window.scrollLeft();
|
190
|
+
} else {
|
191
|
+
fold = $(settings.container).offset().left + $(settings.container).width();
|
192
|
+
}
|
193
|
+
|
194
|
+
return fold <= $(element).offset().left - settings.threshold;
|
195
|
+
};
|
196
|
+
|
197
|
+
$.abovethetop = function(element, settings) {
|
198
|
+
var fold;
|
199
|
+
|
200
|
+
if (settings.container === undefined || settings.container === window) {
|
201
|
+
fold = $window.scrollTop();
|
202
|
+
} else {
|
203
|
+
fold = $(settings.container).offset().top;
|
204
|
+
}
|
205
|
+
|
206
|
+
return fold >= $(element).offset().top + settings.threshold + $(element).height();
|
207
|
+
};
|
208
|
+
|
209
|
+
$.leftofbegin = function(element, settings) {
|
210
|
+
var fold;
|
211
|
+
|
212
|
+
if (settings.container === undefined || settings.container === window) {
|
213
|
+
fold = $window.scrollLeft();
|
214
|
+
} else {
|
215
|
+
fold = $(settings.container).offset().left;
|
216
|
+
}
|
217
|
+
|
218
|
+
return fold >= $(element).offset().left + settings.threshold + $(element).width();
|
219
|
+
};
|
220
|
+
|
221
|
+
$.inviewport = function(element, settings) {
|
222
|
+
return !$.rightoffold(element, settings) && !$.leftofbegin(element, settings) &&
|
223
|
+
!$.belowthefold(element, settings) && !$.abovethetop(element, settings);
|
224
|
+
};
|
225
|
+
|
226
|
+
/* Custom selectors for your convenience. */
|
227
|
+
/* Use as $("img:below-the-fold").something() or */
|
228
|
+
/* $("img").filter(":below-the-fold").something() which is faster */
|
229
|
+
|
230
|
+
$.extend($.expr[":"], {
|
231
|
+
"below-the-fold" : function(a) { return $.belowthefold(a, {threshold : 0}); },
|
232
|
+
"above-the-top" : function(a) { return !$.belowthefold(a, {threshold : 0}); },
|
233
|
+
"right-of-screen": function(a) { return $.rightoffold(a, {threshold : 0}); },
|
234
|
+
"left-of-screen" : function(a) { return !$.rightoffold(a, {threshold : 0}); },
|
235
|
+
"in-viewport" : function(a) { return $.inviewport(a, {threshold : 0}); },
|
236
|
+
/* Maintain BC for couple of versions. */
|
237
|
+
"above-the-fold" : function(a) { return !$.belowthefold(a, {threshold : 0}); },
|
238
|
+
"right-of-fold" : function(a) { return $.rightoffold(a, {threshold : 0}); },
|
239
|
+
"left-of-fold" : function(a) { return !$.rightoffold(a, {threshold : 0}); }
|
240
|
+
});
|
241
|
+
|
242
|
+
})(jQuery, window, document);
|
@@ -0,0 +1,3 @@
|
|
1
|
+
/*! modernizr 3.2.0 (Custom Build) | MIT *
|
2
|
+
* http://modernizr.com/download/?-boxshadow-checked-csscolumns-csstransforms-csstransforms3d-csstransitions-generatedcontent-placeholder-smil-svg-touchevents-domprefixes-prefixed-prefixes-printshiv-testallprops-testprop-teststyles !*/
|
3
|
+
!function(e,t,n){function r(e,t){return typeof e===t}function o(){var e,t,n,o,i,a,s;for(var u in g)if(g.hasOwnProperty(u)){if(e=[],t=g[u],t.name&&(e.push(t.name.toLowerCase()),t.options&&t.options.aliases&&t.options.aliases.length))for(n=0;n<t.options.aliases.length;n++)e.push(t.options.aliases[n].toLowerCase());for(o=r(t.fn,"function")?t.fn():t.fn,i=0;i<e.length;i++)a=e[i],s=a.split("."),1===s.length?Modernizr[s[0]]=o:(!Modernizr[s[0]]||Modernizr[s[0]]instanceof Boolean||(Modernizr[s[0]]=new Boolean(Modernizr[s[0]])),Modernizr[s[0]][s[1]]=o),x.push((o?"":"no-")+s.join("-"))}}function i(e){return e.replace(/([a-z])-([a-z])/g,function(e,t,n){return t+n.toUpperCase()}).replace(/^-/,"")}function a(){return"function"!=typeof t.createElement?t.createElement(arguments[0]):C?t.createElementNS.call(t,"http://www.w3.org/2000/svg",arguments[0]):t.createElement.apply(t,arguments)}function s(e,t){return!!~(""+e).indexOf(t)}function u(){var e=t.body;return e||(e=a(C?"svg":"body"),e.fake=!0),e}function l(e,n,r,o){var i,s,l,c,f="modernizr",d=a("div"),p=u();if(parseInt(r,10))for(;r--;)l=a("div"),l.id=o?o[r]:f+(r+1),d.appendChild(l);return i=a("style"),i.type="text/css",i.id="s"+f,(p.fake?p:d).appendChild(i),p.appendChild(d),i.styleSheet?i.styleSheet.cssText=e:i.appendChild(t.createTextNode(e)),d.id=f,p.fake&&(p.style.background="",p.style.overflow="hidden",c=w.style.overflow,w.style.overflow="hidden",w.appendChild(p)),s=n(d,e),p.fake?(p.parentNode.removeChild(p),w.style.overflow=c,w.offsetHeight):d.parentNode.removeChild(d),!!s}function c(e,t){return function(){return e.apply(t,arguments)}}function f(e,t,n){var o;for(var i in e)if(e[i]in t)return n===!1?e[i]:(o=t[e[i]],r(o,"function")?c(o,n||t):o);return!1}function d(e){return e.replace(/([A-Z])/g,function(e,t){return"-"+t.toLowerCase()}).replace(/^ms-/,"-ms-")}function p(t,r){var o=t.length;if("CSS"in e&&"supports"in e.CSS){for(;o--;)if(e.CSS.supports(d(t[o]),r))return!0;return!1}if("CSSSupportsRule"in e){for(var i=[];o--;)i.push("("+d(t[o])+":"+r+")");return i=i.join(" or "),l("@supports ("+i+") { #modernizr { position: absolute; } }",function(e){return"absolute"==getComputedStyle(e,null).position})}return n}function m(e,t,o,u){function l(){f&&(delete P.style,delete P.modElem)}if(u=r(u,"undefined")?!1:u,!r(o,"undefined")){var c=p(e,o);if(!r(c,"undefined"))return c}for(var f,d,m,h,v,g=["modernizr","tspan"];!P.style;)f=!0,P.modElem=a(g.shift()),P.style=P.modElem.style;for(m=e.length,d=0;m>d;d++)if(h=e[d],v=P.style[h],s(h,"-")&&(h=i(h)),P.style[h]!==n){if(u||r(o,"undefined"))return l(),"pfx"==t?h:!0;try{P.style[h]=o}catch(y){}if(P.style[h]!=v)return l(),"pfx"==t?h:!0}return l(),!1}function h(e,t,n,o,i){var a=e.charAt(0).toUpperCase()+e.slice(1),s=(e+" "+N.join(a+" ")+a).split(" ");return r(t,"string")||r(t,"undefined")?m(s,t,o,i):(s=(e+" "+E.join(a+" ")+a).split(" "),f(s,t,n))}function v(e,t,r){return h(e,n,n,t,r)}var g=[],y={_version:"3.2.0",_config:{classPrefix:"",enableClasses:!0,enableJSClass:!0,usePrefixes:!0},_q:[],on:function(e,t){var n=this;setTimeout(function(){t(n[e])},0)},addTest:function(e,t,n){g.push({name:e,fn:t,options:n})},addAsyncTest:function(e){g.push({name:null,fn:e})}},Modernizr=function(){};Modernizr.prototype=y,Modernizr=new Modernizr,Modernizr.addTest("svg",!!t.createElementNS&&!!t.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect);var S=y._config.usePrefixes?" -webkit- -moz- -o- -ms- ".split(" "):[];y._prefixes=S;var x=[],b="Moz O ms Webkit",E=y._config.usePrefixes?b.toLowerCase().split(" "):[];y._domPrefixes=E;var w=t.documentElement,C="svg"===w.nodeName.toLowerCase();C||!function(e,t){function n(e,t){var n=e.createElement("p"),r=e.getElementsByTagName("head")[0]||e.documentElement;return n.innerHTML="x<style>"+t+"</style>",r.insertBefore(n.lastChild,r.firstChild)}function r(){var e=C.elements;return"string"==typeof e?e.split(" "):e}function o(e,t){var n=C.elements;"string"!=typeof n&&(n=n.join(" ")),"string"!=typeof e&&(e=e.join(" ")),C.elements=n+" "+e,l(t)}function i(e){var t=w[e[b]];return t||(t={},E++,e[b]=E,w[E]=t),t}function a(e,n,r){if(n||(n=t),v)return n.createElement(e);r||(r=i(n));var o;return o=r.cache[e]?r.cache[e].cloneNode():x.test(e)?(r.cache[e]=r.createElem(e)).cloneNode():r.createElem(e),!o.canHaveChildren||S.test(e)||o.tagUrn?o:r.frag.appendChild(o)}function s(e,n){if(e||(e=t),v)return e.createDocumentFragment();n=n||i(e);for(var o=n.frag.cloneNode(),a=0,s=r(),u=s.length;u>a;a++)o.createElement(s[a]);return o}function u(e,t){t.cache||(t.cache={},t.createElem=e.createElement,t.createFrag=e.createDocumentFragment,t.frag=t.createFrag()),e.createElement=function(n){return C.shivMethods?a(n,e,t):t.createElem(n)},e.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+r().join().replace(/[\w\-:]+/g,function(e){return t.createElem(e),t.frag.createElement(e),'c("'+e+'")'})+");return n}")(C,t.frag)}function l(e){e||(e=t);var r=i(e);return!C.shivCSS||h||r.hasCSS||(r.hasCSS=!!n(e,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),v||u(e,r),e}function c(e){for(var t,n=e.getElementsByTagName("*"),o=n.length,i=RegExp("^(?:"+r().join("|")+")$","i"),a=[];o--;)t=n[o],i.test(t.nodeName)&&a.push(t.applyElement(f(t)));return a}function f(e){for(var t,n=e.attributes,r=n.length,o=e.ownerDocument.createElement(k+":"+e.nodeName);r--;)t=n[r],t.specified&&o.setAttribute(t.nodeName,t.nodeValue);return o.style.cssText=e.style.cssText,o}function d(e){for(var t,n=e.split("{"),o=n.length,i=RegExp("(^|[\\s,>+~])("+r().join("|")+")(?=[[\\s,>+~#.:]|$)","gi"),a="$1"+k+"\\:$2";o--;)t=n[o]=n[o].split("}"),t[t.length-1]=t[t.length-1].replace(i,a),n[o]=t.join("}");return n.join("{")}function p(e){for(var t=e.length;t--;)e[t].removeNode()}function m(e){function t(){clearTimeout(a._removeSheetTimer),r&&r.removeNode(!0),r=null}var r,o,a=i(e),s=e.namespaces,u=e.parentWindow;return!_||e.printShived?e:("undefined"==typeof s[k]&&s.add(k),u.attachEvent("onbeforeprint",function(){t();for(var i,a,s,u=e.styleSheets,l=[],f=u.length,p=Array(f);f--;)p[f]=u[f];for(;s=p.pop();)if(!s.disabled&&T.test(s.media)){try{i=s.imports,a=i.length}catch(m){a=0}for(f=0;a>f;f++)p.push(i[f]);try{l.push(s.cssText)}catch(m){}}l=d(l.reverse().join("")),o=c(e),r=n(e,l)}),u.attachEvent("onafterprint",function(){p(o),clearTimeout(a._removeSheetTimer),a._removeSheetTimer=setTimeout(t,500)}),e.printShived=!0,e)}var h,v,g="3.7.3",y=e.html5||{},S=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,x=/^(?: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,b="_html5shiv",E=0,w={};!function(){try{var e=t.createElement("a");e.innerHTML="<xyz></xyz>",h="hidden"in e,v=1==e.childNodes.length||function(){t.createElement("a");var e=t.createDocumentFragment();return"undefined"==typeof e.cloneNode||"undefined"==typeof e.createDocumentFragment||"undefined"==typeof e.createElement}()}catch(n){h=!0,v=!0}}();var C={elements:y.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:g,shivCSS:y.shivCSS!==!1,supportsUnknownElements:v,shivMethods:y.shivMethods!==!1,type:"default",shivDocument:l,createElement:a,createDocumentFragment:s,addElements:o};e.html5=C,l(t);var T=/^$|\b(?:all|print)\b/,k="html5shiv",_=!v&&function(){var n=t.documentElement;return!("undefined"==typeof t.namespaces||"undefined"==typeof t.parentWindow||"undefined"==typeof n.applyElement||"undefined"==typeof n.removeNode||"undefined"==typeof e.attachEvent)}();C.type+=" print",C.shivPrint=m,m(t),"object"==typeof module&&module.exports&&(module.exports=C)}("undefined"!=typeof e?e:this,t),Modernizr.addTest("placeholder","placeholder"in a("input")&&"placeholder"in a("textarea"));var T="CSS"in e&&"supports"in e.CSS,k="supportsCSS"in e;Modernizr.addTest("supports",T||k);var _={}.toString;Modernizr.addTest("smil",function(){return!!t.createElementNS&&/SVGAnimate/.test(_.call(t.createElementNS("http://www.w3.org/2000/svg","animate")))});var N=y._config.usePrefixes?b.split(" "):[];y._cssomPrefixes=N;var z=function(t){var r,o=S.length,i=e.CSSRule;if("undefined"==typeof i)return n;if(!t)return!1;if(t=t.replace(/^@/,""),r=t.replace(/-/g,"_").toUpperCase()+"_RULE",r in i)return"@"+t;for(var a=0;o>a;a++){var s=S[a],u=s.toUpperCase()+"_"+r;if(u in i)return"@-"+s.toLowerCase()+"-"+t}return!1};y.atRule=z;var j=y.testStyles=l;Modernizr.addTest("touchevents",function(){var n;if("ontouchstart"in e||e.DocumentTouch&&t instanceof DocumentTouch)n=!0;else{var r=["@media (",S.join("touch-enabled),("),"heartz",")","{#modernizr{top:9px;position:absolute}}"].join("");j(r,function(e){n=9===e.offsetTop})}return n}),Modernizr.addTest("checked",function(){return j("#modernizr {position:absolute} #modernizr input {margin-left:10px} #modernizr :checked {margin-left:20px;display:block}",function(e){var t=a("input");return t.setAttribute("type","checkbox"),t.setAttribute("checked","checked"),e.appendChild(t),20===t.offsetLeft})}),j('#modernizr{font:0/0 a}#modernizr:after{content:":)";visibility:hidden;font:7px/1 a}',function(e){Modernizr.addTest("generatedcontent",e.offsetHeight>=7)});var A={elem:a("modernizr")};Modernizr._q.push(function(){delete A.elem});var P={style:A.elem.style};Modernizr._q.unshift(function(){delete P.style});y.testProp=function(e,t,r){return m([e],n,t,r)};y.testAllProps=h;y.prefixed=function(e,t,n){return 0===e.indexOf("@")?z(e):(-1!=e.indexOf("-")&&(e=i(e)),t?h(e,t,n):h(e,"pfx"))};y.testAllProps=v,Modernizr.addTest("boxshadow",v("boxShadow","1px 1px",!0)),function(){Modernizr.addTest("csscolumns",function(){var e=!1,t=v("columnCount");try{(e=!!t)&&(e=new Boolean(e))}catch(n){}return e});for(var e,t,n=["Width","Span","Fill","Gap","Rule","RuleColor","RuleStyle","RuleWidth","BreakBefore","BreakAfter","BreakInside"],r=0;r<n.length;r++)e=n[r].toLowerCase(),t=v("column"+n[r]),("breakbefore"===e||"breakafter"===e||"breakinside"==e)&&(t=t||v(n[r])),Modernizr.addTest("csscolumns."+e,t)}(),Modernizr.addTest("csstransforms",function(){return-1===navigator.userAgent.indexOf("Android 2.")&&v("transform","scale(1)",!0)}),Modernizr.addTest("csstransforms3d",function(){var e=!!v("perspective","1px",!0),t=Modernizr._config.usePrefixes;if(e&&(!t||"webkitPerspective"in w.style)){var n,r="#modernizr{width:0;height:0}";Modernizr.supports?n="@supports (perspective: 1px)":(n="@media (transform-3d)",t&&(n+=",(-webkit-transform-3d)")),n+="{#modernizr{width:7px;height:18px;margin:0;padding:0;border:0}}",j(r+n,function(t){e=7===t.offsetWidth&&18===t.offsetHeight})}return e}),Modernizr.addTest("csstransitions",v("transition","all",!0)),o(),delete y.addTest,delete y.addAsyncTest;for(var F=0;F<Modernizr._q.length;F++)Modernizr._q[F]();e.Modernizr=Modernizr}(window,document);
|
@@ -0,0 +1,11 @@
|
|
1
|
+
// This is a manifest file that'll be compiled into including all the files listed below.
|
2
|
+
// Add new JavaScript/Coffee code in separate files in this directory and they'll automatically
|
3
|
+
// be included in the compiled file accessible from http://example.com/assets/application.js
|
4
|
+
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
5
|
+
// the compiled file.
|
6
|
+
//
|
7
|
+
//= require jquery
|
8
|
+
//= require jquery_ujs
|
9
|
+
//= require spree/backend
|
10
|
+
|
11
|
+
//= require_tree .
|
@@ -0,0 +1,13 @@
|
|
1
|
+
// This is a manifest file that'll be compiled into including all the files listed below.
|
2
|
+
// Add new JavaScript/Coffee code in separate files in this directory and they'll automatically
|
3
|
+
// be included in the compiled file accessible from http://example.com/assets/application.js
|
4
|
+
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
5
|
+
// the compiled file.
|
6
|
+
//
|
7
|
+
//= require jquery
|
8
|
+
//= require jquery_ujs
|
9
|
+
//= require spree/frontend
|
10
|
+
|
11
|
+
//= require application
|
12
|
+
|
13
|
+
//= require_tree .
|
@@ -0,0 +1,10 @@
|
|
1
|
+
/*
|
2
|
+
* This is a manifest file that'll automatically include all the stylesheets available in this directory
|
3
|
+
* and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
|
4
|
+
* the top of the compiled file, but it's generally better to create a new file per style scope.
|
5
|
+
*
|
6
|
+
*= require spree/backend
|
7
|
+
|
8
|
+
*= require_self
|
9
|
+
*= require_tree .
|
10
|
+
*/
|
@@ -0,0 +1,12 @@
|
|
1
|
+
/*
|
2
|
+
* This is a manifest file that'll automatically include all the stylesheets available in this directory
|
3
|
+
* and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
|
4
|
+
* the top of the compiled file, but it's generally better to create a new file per style scope.
|
5
|
+
*
|
6
|
+
*= require spree/frontend
|
7
|
+
|
8
|
+
*= require application
|
9
|
+
|
10
|
+
*= require_self
|
11
|
+
*= require_tree .
|
12
|
+
*/
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: o2webappizer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Patrice Lebel
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-01-
|
11
|
+
date: 2016-01-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -86,7 +86,61 @@ files:
|
|
86
86
|
- lib/o2webappizer/generators/app_generator.rb
|
87
87
|
- lib/o2webappizer/version.rb
|
88
88
|
- o2webappizer.gemspec
|
89
|
-
- templates
|
89
|
+
- templates/.gitignore.tt
|
90
|
+
- templates/.ruby-version.tt
|
91
|
+
- templates/Gemfile.tt
|
92
|
+
- templates/README.md.tt
|
93
|
+
- templates/app/assets/javascripts/app.js.coffee
|
94
|
+
- templates/app/assets/javascripts/application.js.coffee
|
95
|
+
- templates/app/assets/stylesheets/application.sass
|
96
|
+
- templates/app/controllers/application_controller.rb
|
97
|
+
- templates/app/controllers/cms/authenticate.rb.tt
|
98
|
+
- templates/app/helpers/application_helper.rb
|
99
|
+
- templates/app/helpers/spree/frontend_helper_decorator.rb
|
100
|
+
- templates/app/mailers/application_mailer.rb
|
101
|
+
- templates/app/views/layouts/application.html.erb.tt
|
102
|
+
- templates/app/views/layouts/mailer.html.erb
|
103
|
+
- templates/app/views/layouts/mailer.text.erb
|
104
|
+
- templates/app/views/spree/layouts/spree_application.html.erb
|
105
|
+
- templates/app/views/spree/shared/_head.html.erb
|
106
|
+
- templates/app/views/spree/shared/_main_nav_bar.html.erb
|
107
|
+
- templates/config/database.yml.tt
|
108
|
+
- templates/config/initializers/assets.rb.tt
|
109
|
+
- templates/config/initializers/devise.rb.tt
|
110
|
+
- templates/config/initializers/lazyload.rb
|
111
|
+
- templates/config/initializers/rails_admin.rb
|
112
|
+
- templates/config/initializers/rails_admin_cms.rb
|
113
|
+
- templates/config/initializers/rich.rb
|
114
|
+
- templates/config/initializers/simple_form.rb
|
115
|
+
- templates/config/initializers/simple_form_bootstrap.rb
|
116
|
+
- templates/config/initializers/spree.rb
|
117
|
+
- templates/config/locales/en.yml
|
118
|
+
- templates/config/locales/routes.en.yml
|
119
|
+
- templates/config/locales/simple_form.en.yml
|
120
|
+
- templates/config/routes.rb.tt
|
121
|
+
- templates/config/secrets.yml.tt
|
122
|
+
- templates/public/404.html
|
123
|
+
- templates/public/422.html
|
124
|
+
- templates/public/500.html
|
125
|
+
- templates/public/favicon.ico
|
126
|
+
- templates/public/images/full/missing.png
|
127
|
+
- templates/public/images/huge/missing.png
|
128
|
+
- templates/public/images/large/missing.png
|
129
|
+
- templates/public/images/loading.gif
|
130
|
+
- templates/public/images/medium/missing.png
|
131
|
+
- templates/public/images/mini/missing.png
|
132
|
+
- templates/public/images/original/missing.png
|
133
|
+
- templates/public/images/rich_thumb/missing.png
|
134
|
+
- templates/public/images/small/missing.png
|
135
|
+
- templates/public/images/thumb/missing.png
|
136
|
+
- templates/public/robots.txt.tt
|
137
|
+
- templates/vendor/assets/javascripts/jquery.lazyload.js
|
138
|
+
- templates/vendor/assets/javascripts/modernizr.js
|
139
|
+
- templates/vendor/assets/javascripts/spree/backend/all.js
|
140
|
+
- templates/vendor/assets/javascripts/spree/frontend/all.js
|
141
|
+
- templates/vendor/assets/stylesheets/nprogress-variables.sass
|
142
|
+
- templates/vendor/assets/stylesheets/spree/backend/all.css
|
143
|
+
- templates/vendor/assets/stylesheets/spree/frontend/all.css
|
90
144
|
homepage: https://github.com/o2web/o2webappizer
|
91
145
|
licenses:
|
92
146
|
- MIT
|
@@ -112,3 +166,4 @@ signing_key:
|
|
112
166
|
specification_version: 4
|
113
167
|
summary: Project Boilerplate Builder used by O2Web
|
114
168
|
test_files: []
|
169
|
+
has_rdoc:
|