rails-rateit 0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +17 -0
- data/Gemfile +4 -0
- data/LICENSE +22 -0
- data/README.md +36 -0
- data/Rakefile +2 -0
- data/example/content/antenna-black.png +0 -0
- data/example/content/antenna-red.png +0 -0
- data/example/content/antenna-yellow.png +0 -0
- data/example/content/antenna.css +16 -0
- data/example/content/bigstars.css +34 -0
- data/example/content/star-black32.png +0 -0
- data/example/content/star-gold32.png +0 -0
- data/example/content/star-red32.png +0 -0
- data/example/content/star-white32.png +0 -0
- data/example/content/star_2.gif +0 -0
- data/example/content/star_3.gif +0 -0
- data/example/content/star_4.gif +0 -0
- data/example/example.htm +576 -0
- data/example/rateit.aspx +9 -0
- data/example/sh/shBrushCSharp.js +65 -0
- data/example/sh/shBrushCss.js +91 -0
- data/example/sh/shBrushJScript.js +52 -0
- data/example/sh/shBrushXml.js +69 -0
- data/example/sh/shCore.css +226 -0
- data/example/sh/shCore.js +17 -0
- data/example/sh/shCoreDefault.css +328 -0
- data/lib/generators/rateit/install/install_generator.rb +18 -0
- data/lib/rails-rateit.rb +17 -0
- data/lib/rateit/version.rb +3 -0
- data/lib/rateit/view_helpers/action_view.rb +14 -0
- data/rails-rateit.gemspec +17 -0
- data/vendor/assets/images/delete.gif +0 -0
- data/vendor/assets/images/star.gif +0 -0
- data/vendor/assets/javascripts/jquery.rateit.js +250 -0
- data/vendor/assets/stylesheets/rateit.css.erb +90 -0
- metadata +80 -0
@@ -0,0 +1,17 @@
|
|
1
|
+
/**
|
2
|
+
* SyntaxHighlighter
|
3
|
+
* http://alexgorbatchev.com/SyntaxHighlighter
|
4
|
+
*
|
5
|
+
* SyntaxHighlighter is donationware. If you are using it, please donate.
|
6
|
+
* http://alexgorbatchev.com/SyntaxHighlighter/donate.html
|
7
|
+
*
|
8
|
+
* @version
|
9
|
+
* 3.0.83 (July 02 2010)
|
10
|
+
*
|
11
|
+
* @copyright
|
12
|
+
* Copyright (C) 2004-2010 Alex Gorbatchev.
|
13
|
+
*
|
14
|
+
* @license
|
15
|
+
* Dual licensed under the MIT and GPL licenses.
|
16
|
+
*/
|
17
|
+
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('K M;I(M)1S 2U("2a\'t 4k M 4K 2g 3l 4G 4H");(6(){6 r(f,e){I(!M.1R(f))1S 3m("3s 15 4R");K a=f.1w;f=M(f.1m,t(f)+(e||""));I(a)f.1w={1m:a.1m,19:a.19?a.19.1a(0):N};H f}6 t(f){H(f.1J?"g":"")+(f.4s?"i":"")+(f.4p?"m":"")+(f.4v?"x":"")+(f.3n?"y":"")}6 B(f,e,a,b){K c=u.L,d,h,g;v=R;5K{O(;c--;){g=u[c];I(a&g.3r&&(!g.2p||g.2p.W(b))){g.2q.12=e;I((h=g.2q.X(f))&&h.P===e){d={3k:g.2b.W(b,h,a),1C:h};1N}}}}5v(i){1S i}5q{v=11}H d}6 p(f,e,a){I(3b.Z.1i)H f.1i(e,a);O(a=a||0;a<f.L;a++)I(f[a]===e)H a;H-1}M=6(f,e){K a=[],b=M.1B,c=0,d,h;I(M.1R(f)){I(e!==1d)1S 3m("2a\'t 5r 5I 5F 5B 5C 15 5E 5p");H r(f)}I(v)1S 2U("2a\'t W 3l M 59 5m 5g 5x 5i");e=e||"";O(d={2N:11,19:[],2K:6(g){H e.1i(g)>-1},3d:6(g){e+=g}};c<f.L;)I(h=B(f,c,b,d)){a.U(h.3k);c+=h.1C[0].L||1}Y I(h=n.X.W(z[b],f.1a(c))){a.U(h[0]);c+=h[0].L}Y{h=f.3a(c);I(h==="[")b=M.2I;Y I(h==="]")b=M.1B;a.U(h);c++}a=15(a.1K(""),n.Q.W(e,w,""));a.1w={1m:f,19:d.2N?d.19:N};H a};M.3v="1.5.0";M.2I=1;M.1B=2;K C=/\\$(?:(\\d\\d?|[$&`\'])|{([$\\w]+)})/g,w=/[^5h]+|([\\s\\S])(?=[\\s\\S]*\\1)/g,A=/^(?:[?*+]|{\\d+(?:,\\d*)?})\\??/,v=11,u=[],n={X:15.Z.X,1A:15.Z.1A,1C:1r.Z.1C,Q:1r.Z.Q,1e:1r.Z.1e},x=n.X.W(/()??/,"")[1]===1d,D=6(){K f=/^/g;n.1A.W(f,"");H!f.12}(),y=6(){K f=/x/g;n.Q.W("x",f,"");H!f.12}(),E=15.Z.3n!==1d,z={};z[M.2I]=/^(?:\\\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[\\29-26-f]{2}|u[\\29-26-f]{4}|c[A-3o-z]|[\\s\\S]))/;z[M.1B]=/^(?:\\\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9]\\d*|x[\\29-26-f]{2}|u[\\29-26-f]{4}|c[A-3o-z]|[\\s\\S])|\\(\\?[:=!]|[?*+]\\?|{\\d+(?:,\\d*)?}\\??)/;M.1h=6(f,e,a,b){u.U({2q:r(f,"g"+(E?"y":"")),2b:e,3r:a||M.1B,2p:b||N})};M.2n=6(f,e){K a=f+"/"+(e||"");H M.2n[a]||(M.2n[a]=M(f,e))};M.3c=6(f){H r(f,"g")};M.5l=6(f){H f.Q(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g,"\\\\$&")};M.5e=6(f,e,a,b){e=r(e,"g"+(b&&E?"y":""));e.12=a=a||0;f=e.X(f);H b?f&&f.P===a?f:N:f};M.3q=6(){M.1h=6(){1S 2U("2a\'t 55 1h 54 3q")}};M.1R=6(f){H 53.Z.1q.W(f)==="[2m 15]"};M.3p=6(f,e,a,b){O(K c=r(e,"g"),d=-1,h;h=c.X(f);){a.W(b,h,++d,f,c);c.12===h.P&&c.12++}I(e.1J)e.12=0};M.57=6(f,e){H 6 a(b,c){K d=e[c].1I?e[c]:{1I:e[c]},h=r(d.1I,"g"),g=[],i;O(i=0;i<b.L;i++)M.3p(b[i],h,6(k){g.U(d.3j?k[d.3j]||"":k[0])});H c===e.L-1||!g.L?g:a(g,c+1)}([f],0)};15.Z.1p=6(f,e){H J.X(e[0])};15.Z.W=6(f,e){H J.X(e)};15.Z.X=6(f){K e=n.X.1p(J,14),a;I(e){I(!x&&e.L>1&&p(e,"")>-1){a=15(J.1m,n.Q.W(t(J),"g",""));n.Q.W(f.1a(e.P),a,6(){O(K c=1;c<14.L-2;c++)I(14[c]===1d)e[c]=1d})}I(J.1w&&J.1w.19)O(K b=1;b<e.L;b++)I(a=J.1w.19[b-1])e[a]=e[b];!D&&J.1J&&!e[0].L&&J.12>e.P&&J.12--}H e};I(!D)15.Z.1A=6(f){(f=n.X.W(J,f))&&J.1J&&!f[0].L&&J.12>f.P&&J.12--;H!!f};1r.Z.1C=6(f){M.1R(f)||(f=15(f));I(f.1J){K e=n.1C.1p(J,14);f.12=0;H e}H f.X(J)};1r.Z.Q=6(f,e){K a=M.1R(f),b,c;I(a&&1j e.58()==="3f"&&e.1i("${")===-1&&y)H n.Q.1p(J,14);I(a){I(f.1w)b=f.1w.19}Y f+="";I(1j e==="6")c=n.Q.W(J,f,6(){I(b){14[0]=1f 1r(14[0]);O(K d=0;d<b.L;d++)I(b[d])14[0][b[d]]=14[d+1]}I(a&&f.1J)f.12=14[14.L-2]+14[0].L;H e.1p(N,14)});Y{c=J+"";c=n.Q.W(c,f,6(){K d=14;H n.Q.W(e,C,6(h,g,i){I(g)5b(g){24"$":H"$";24"&":H d[0];24"`":H d[d.L-1].1a(0,d[d.L-2]);24"\'":H d[d.L-1].1a(d[d.L-2]+d[0].L);5a:i="";g=+g;I(!g)H h;O(;g>d.L-3;){i=1r.Z.1a.W(g,-1)+i;g=1Q.3i(g/10)}H(g?d[g]||"":"$")+i}Y{g=+i;I(g<=d.L-3)H d[g];g=b?p(b,i):-1;H g>-1?d[g+1]:h}})})}I(a&&f.1J)f.12=0;H c};1r.Z.1e=6(f,e){I(!M.1R(f))H n.1e.1p(J,14);K a=J+"",b=[],c=0,d,h;I(e===1d||+e<0)e=5D;Y{e=1Q.3i(+e);I(!e)H[]}O(f=M.3c(f);d=f.X(a);){I(f.12>c){b.U(a.1a(c,d.P));d.L>1&&d.P<a.L&&3b.Z.U.1p(b,d.1a(1));h=d[0].L;c=f.12;I(b.L>=e)1N}f.12===d.P&&f.12++}I(c===a.L){I(!n.1A.W(f,"")||h)b.U("")}Y b.U(a.1a(c));H b.L>e?b.1a(0,e):b};M.1h(/\\(\\?#[^)]*\\)/,6(f){H n.1A.W(A,f.2S.1a(f.P+f[0].L))?"":"(?:)"});M.1h(/\\((?!\\?)/,6(){J.19.U(N);H"("});M.1h(/\\(\\?<([$\\w]+)>/,6(f){J.19.U(f[1]);J.2N=R;H"("});M.1h(/\\\\k<([\\w$]+)>/,6(f){K e=p(J.19,f[1]);H e>-1?"\\\\"+(e+1)+(3R(f.2S.3a(f.P+f[0].L))?"":"(?:)"):f[0]});M.1h(/\\[\\^?]/,6(f){H f[0]==="[]"?"\\\\b\\\\B":"[\\\\s\\\\S]"});M.1h(/^\\(\\?([5A]+)\\)/,6(f){J.3d(f[1]);H""});M.1h(/(?:\\s+|#.*)+/,6(f){H n.1A.W(A,f.2S.1a(f.P+f[0].L))?"":"(?:)"},M.1B,6(){H J.2K("x")});M.1h(/\\./,6(){H"[\\\\s\\\\S]"},M.1B,6(){H J.2K("s")})})();1j 2e!="1d"&&(2e.M=M);K 1v=6(){6 r(a,b){a.1l.1i(b)!=-1||(a.1l+=" "+b)}6 t(a){H a.1i("3e")==0?a:"3e"+a}6 B(a){H e.1Y.2A[t(a)]}6 p(a,b,c){I(a==N)H N;K d=c!=R?a.3G:[a.2G],h={"#":"1c",".":"1l"}[b.1o(0,1)]||"3h",g,i;g=h!="3h"?b.1o(1):b.5u();I((a[h]||"").1i(g)!=-1)H a;O(a=0;d&&a<d.L&&i==N;a++)i=p(d[a],b,c);H i}6 C(a,b){K c={},d;O(d 2g a)c[d]=a[d];O(d 2g b)c[d]=b[d];H c}6 w(a,b,c,d){6 h(g){g=g||1P.5y;I(!g.1F){g.1F=g.52;g.3N=6(){J.5w=11}}c.W(d||1P,g)}a.3g?a.3g("4U"+b,h):a.4y(b,h,11)}6 A(a,b){K c=e.1Y.2j,d=N;I(c==N){c={};O(K h 2g e.1U){K g=e.1U[h];d=g.4x;I(d!=N){g.1V=h.4w();O(g=0;g<d.L;g++)c[d[g]]=h}}e.1Y.2j=c}d=e.1U[c[a]];d==N&&b!=11&&1P.1X(e.13.1x.1X+(e.13.1x.3E+a));H d}6 v(a,b){O(K c=a.1e("\\n"),d=0;d<c.L;d++)c[d]=b(c[d],d);H c.1K("\\n")}6 u(a,b){I(a==N||a.L==0||a=="\\n")H a;a=a.Q(/</g,"&1y;");a=a.Q(/ {2,}/g,6(c){O(K d="",h=0;h<c.L-1;h++)d+=e.13.1W;H d+" "});I(b!=N)a=v(a,6(c){I(c.L==0)H"";K d="";c=c.Q(/^(&2s;| )+/,6(h){d=h;H""});I(c.L==0)H d;H d+\'<17 1g="\'+b+\'">\'+c+"</17>"});H a}6 n(a,b){a.1e("\\n");O(K c="",d=0;d<50;d++)c+=" ";H a=v(a,6(h){I(h.1i("\\t")==-1)H h;O(K g=0;(g=h.1i("\\t"))!=-1;)h=h.1o(0,g)+c.1o(0,b-g%b)+h.1o(g+1,h.L);H h})}6 x(a){H a.Q(/^\\s+|\\s+$/g,"")}6 D(a,b){I(a.P<b.P)H-1;Y I(a.P>b.P)H 1;Y I(a.L<b.L)H-1;Y I(a.L>b.L)H 1;H 0}6 y(a,b){6 c(k){H k[0]}O(K d=N,h=[],g=b.2D?b.2D:c;(d=b.1I.X(a))!=N;){K i=g(d,b);I(1j i=="3f")i=[1f e.2L(i,d.P,b.23)];h=h.1O(i)}H h}6 E(a){K b=/(.*)((&1G;|&1y;).*)/;H a.Q(e.3A.3M,6(c){K d="",h=N;I(h=b.X(c)){c=h[1];d=h[2]}H\'<a 2h="\'+c+\'">\'+c+"</a>"+d})}6 z(){O(K a=1E.36("1k"),b=[],c=0;c<a.L;c++)a[c].3s=="20"&&b.U(a[c]);H b}6 f(a){a=a.1F;K b=p(a,".20",R);a=p(a,".3O",R);K c=1E.4i("3t");I(!(!a||!b||p(a,"3t"))){B(b.1c);r(b,"1m");O(K d=a.3G,h=[],g=0;g<d.L;g++)h.U(d[g].4z||d[g].4A);h=h.1K("\\r");c.39(1E.4D(h));a.39(c);c.2C();c.4C();w(c,"4u",6(){c.2G.4E(c);b.1l=b.1l.Q("1m","")})}}I(1j 3F!="1d"&&1j M=="1d")M=3F("M").M;K e={2v:{"1g-27":"","2i-1s":1,"2z-1s-2t":11,1M:N,1t:N,"42-45":R,"43-22":4,1u:R,16:R,"3V-17":R,2l:11,"41-40":R,2k:11,"1z-1k":11},13:{1W:"&2s;",2M:R,46:11,44:11,34:"4n",1x:{21:"4o 1m",2P:"?",1X:"1v\\n\\n",3E:"4r\'t 4t 1D O: ",4g:"4m 4B\'t 51 O 1z-1k 4F: ",37:\'<!4T 1z 4S "-//4V//3H 4W 1.0 4Z//4Y" "1Z://2y.3L.3K/4X/3I/3H/3I-4P.4J"><1z 4I="1Z://2y.3L.3K/4L/5L"><3J><4N 1Z-4M="5G-5M" 6K="2O/1z; 6J=6I-8" /><1t>6L 1v</1t></3J><3B 1L="25-6M:6Q,6P,6O,6N-6F;6y-2f:#6x;2f:#6w;25-22:6v;2O-3D:3C;"><T 1L="2O-3D:3C;3w-32:1.6z;"><T 1L="25-22:6A-6E;">1v</T><T 1L="25-22:.6C;3w-6B:6R;"><T>3v 3.0.76 (72 73 3x)</T><T><a 2h="1Z://3u.2w/1v" 1F="38" 1L="2f:#3y">1Z://3u.2w/1v</a></T><T>70 17 6U 71.</T><T>6T 6X-3x 6Y 6D.</T></T><T>6t 61 60 J 1k, 5Z <a 2h="6u://2y.62.2w/63-66/65?64=5X-5W&5P=5O" 1L="2f:#3y">5R</a> 5V <2R/>5U 5T 5S!</T></T></3B></1z>\'}},1Y:{2j:N,2A:{}},1U:{},3A:{6n:/\\/\\*[\\s\\S]*?\\*\\//2c,6m:/\\/\\/.*$/2c,6l:/#.*$/2c,6k:/"([^\\\\"\\n]|\\\\.)*"/g,6o:/\'([^\\\\\'\\n]|\\\\.)*\'/g,6p:1f M(\'"([^\\\\\\\\"]|\\\\\\\\.)*"\',"3z"),6s:1f M("\'([^\\\\\\\\\']|\\\\\\\\.)*\'","3z"),6q:/(&1y;|<)!--[\\s\\S]*?--(&1G;|>)/2c,3M:/\\w+:\\/\\/[\\w-.\\/?%&=:@;]*/g,6a:{18:/(&1y;|<)\\?=?/g,1b:/\\?(&1G;|>)/g},69:{18:/(&1y;|<)%=?/g,1b:/%(&1G;|>)/g},6d:{18:/(&1y;|<)\\s*1k.*?(&1G;|>)/2T,1b:/(&1y;|<)\\/\\s*1k\\s*(&1G;|>)/2T}},16:{1H:6(a){6 b(i,k){H e.16.2o(i,k,e.13.1x[k])}O(K c=\'<T 1g="16">\',d=e.16.2x,h=d.2X,g=0;g<h.L;g++)c+=(d[h[g]].1H||b)(a,h[g]);c+="</T>";H c},2o:6(a,b,c){H\'<2W><a 2h="#" 1g="6e 6h\'+b+" "+b+\'">\'+c+"</a></2W>"},2b:6(a){K b=a.1F,c=b.1l||"";b=B(p(b,".20",R).1c);K d=6(h){H(h=15(h+"6f(\\\\w+)").X(c))?h[1]:N}("6g");b&&d&&e.16.2x[d].2B(b);a.3N()},2x:{2X:["21","2P"],21:{1H:6(a){I(a.V("2l")!=R)H"";K b=a.V("1t");H e.16.2o(a,"21",b?b:e.13.1x.21)},2B:6(a){a=1E.6j(t(a.1c));a.1l=a.1l.Q("47","")}},2P:{2B:6(){K a="68=0";a+=", 18="+(31.30-33)/2+", 32="+(31.2Z-2Y)/2+", 30=33, 2Z=2Y";a=a.Q(/^,/,"");a=1P.6Z("","38",a);a.2C();K b=a.1E;b.6W(e.13.1x.37);b.6V();a.2C()}}}},35:6(a,b){K c;I(b)c=[b];Y{c=1E.36(e.13.34);O(K d=[],h=0;h<c.L;h++)d.U(c[h]);c=d}c=c;d=[];I(e.13.2M)c=c.1O(z());I(c.L===0)H d;O(h=0;h<c.L;h++){O(K g=c[h],i=a,k=c[h].1l,j=3W 0,l={},m=1f M("^\\\\[(?<2V>(.*?))\\\\]$"),s=1f M("(?<27>[\\\\w-]+)\\\\s*:\\\\s*(?<1T>[\\\\w-%#]+|\\\\[.*?\\\\]|\\".*?\\"|\'.*?\')\\\\s*;?","g");(j=s.X(k))!=N;){K o=j.1T.Q(/^[\'"]|[\'"]$/g,"");I(o!=N&&m.1A(o)){o=m.X(o);o=o.2V.L>0?o.2V.1e(/\\s*,\\s*/):[]}l[j.27]=o}g={1F:g,1n:C(i,l)};g.1n.1D!=N&&d.U(g)}H d},1M:6(a,b){K c=J.35(a,b),d=N,h=e.13;I(c.L!==0)O(K g=0;g<c.L;g++){b=c[g];K i=b.1F,k=b.1n,j=k.1D,l;I(j!=N){I(k["1z-1k"]=="R"||e.2v["1z-1k"]==R){d=1f e.4l(j);j="4O"}Y I(d=A(j))d=1f d;Y 6H;l=i.3X;I(h.2M){l=l;K m=x(l),s=11;I(m.1i("<![6G[")==0){m=m.4h(9);s=R}K o=m.L;I(m.1i("]]\\>")==o-3){m=m.4h(0,o-3);s=R}l=s?m:l}I((i.1t||"")!="")k.1t=i.1t;k.1D=j;d.2Q(k);b=d.2F(l);I((i.1c||"")!="")b.1c=i.1c;i.2G.74(b,i)}}},2E:6(a){w(1P,"4k",6(){e.1M(a)})}};e.2E=e.2E;e.1M=e.1M;e.2L=6(a,b,c){J.1T=a;J.P=b;J.L=a.L;J.23=c;J.1V=N};e.2L.Z.1q=6(){H J.1T};e.4l=6(a){6 b(j,l){O(K m=0;m<j.L;m++)j[m].P+=l}K c=A(a),d,h=1f e.1U.5Y,g=J,i="2F 1H 2Q".1e(" ");I(c!=N){d=1f c;O(K k=0;k<i.L;k++)(6(){K j=i[k];g[j]=6(){H h[j].1p(h,14)}})();d.28==N?1P.1X(e.13.1x.1X+(e.13.1x.4g+a)):h.2J.U({1I:d.28.17,2D:6(j){O(K l=j.17,m=[],s=d.2J,o=j.P+j.18.L,F=d.28,q,G=0;G<s.L;G++){q=y(l,s[G]);b(q,o);m=m.1O(q)}I(F.18!=N&&j.18!=N){q=y(j.18,F.18);b(q,j.P);m=m.1O(q)}I(F.1b!=N&&j.1b!=N){q=y(j.1b,F.1b);b(q,j.P+j[0].5Q(j.1b));m=m.1O(q)}O(j=0;j<m.L;j++)m[j].1V=c.1V;H m}})}};e.4j=6(){};e.4j.Z={V:6(a,b){K c=J.1n[a];c=c==N?b:c;K d={"R":R,"11":11}[c];H d==N?c:d},3Y:6(a){H 1E.4i(a)},4c:6(a,b){K c=[];I(a!=N)O(K d=0;d<a.L;d++)I(1j a[d]=="2m")c=c.1O(y(b,a[d]));H J.4e(c.6b(D))},4e:6(a){O(K b=0;b<a.L;b++)I(a[b]!==N)O(K c=a[b],d=c.P+c.L,h=b+1;h<a.L&&a[b]!==N;h++){K g=a[h];I(g!==N)I(g.P>d)1N;Y I(g.P==c.P&&g.L>c.L)a[b]=N;Y I(g.P>=c.P&&g.P<d)a[h]=N}H a},4d:6(a){K b=[],c=2u(J.V("2i-1s"));v(a,6(d,h){b.U(h+c)});H b},3U:6(a){K b=J.V("1M",[]);I(1j b!="2m"&&b.U==N)b=[b];a:{a=a.1q();K c=3W 0;O(c=c=1Q.6c(c||0,0);c<b.L;c++)I(b[c]==a){b=c;1N a}b=-1}H b!=-1},2r:6(a,b,c){a=["1s","6i"+b,"P"+a,"6r"+(b%2==0?1:2).1q()];J.3U(b)&&a.U("67");b==0&&a.U("1N");H\'<T 1g="\'+a.1K(" ")+\'">\'+c+"</T>"},3Q:6(a,b){K c="",d=a.1e("\\n").L,h=2u(J.V("2i-1s")),g=J.V("2z-1s-2t");I(g==R)g=(h+d-1).1q().L;Y I(3R(g)==R)g=0;O(K i=0;i<d;i++){K k=b?b[i]:h+i,j;I(k==0)j=e.13.1W;Y{j=g;O(K l=k.1q();l.L<j;)l="0"+l;j=l}a=j;c+=J.2r(i,k,a)}H c},49:6(a,b){a=x(a);K c=a.1e("\\n");J.V("2z-1s-2t");K d=2u(J.V("2i-1s"));a="";O(K h=J.V("1D"),g=0;g<c.L;g++){K i=c[g],k=/^(&2s;|\\s)+/.X(i),j=N,l=b?b[g]:d+g;I(k!=N){j=k[0].1q();i=i.1o(j.L);j=j.Q(" ",e.13.1W)}i=x(i);I(i.L==0)i=e.13.1W;a+=J.2r(g,l,(j!=N?\'<17 1g="\'+h+\' 5N">\'+j+"</17>":"")+i)}H a},4f:6(a){H a?"<4a>"+a+"</4a>":""},4b:6(a,b){6 c(l){H(l=l?l.1V||g:g)?l+" ":""}O(K d=0,h="",g=J.V("1D",""),i=0;i<b.L;i++){K k=b[i],j;I(!(k===N||k.L===0)){j=c(k);h+=u(a.1o(d,k.P-d),j+"48")+u(k.1T,j+k.23);d=k.P+k.L+(k.75||0)}}h+=u(a.1o(d),c()+"48");H h},1H:6(a){K b="",c=["20"],d;I(J.V("2k")==R)J.1n.16=J.1n.1u=11;1l="20";J.V("2l")==R&&c.U("47");I((1u=J.V("1u"))==11)c.U("6S");c.U(J.V("1g-27"));c.U(J.V("1D"));a=a.Q(/^[ ]*[\\n]+|[\\n]*[ ]*$/g,"").Q(/\\r/g," ");b=J.V("43-22");I(J.V("42-45")==R)a=n(a,b);Y{O(K h="",g=0;g<b;g++)h+=" ";a=a.Q(/\\t/g,h)}a=a;a:{b=a=a;h=/<2R\\s*\\/?>|&1y;2R\\s*\\/?&1G;/2T;I(e.13.46==R)b=b.Q(h,"\\n");I(e.13.44==R)b=b.Q(h,"");b=b.1e("\\n");h=/^\\s*/;g=4Q;O(K i=0;i<b.L&&g>0;i++){K k=b[i];I(x(k).L!=0){k=h.X(k);I(k==N){a=a;1N a}g=1Q.4q(k[0].L,g)}}I(g>0)O(i=0;i<b.L;i++)b[i]=b[i].1o(g);a=b.1K("\\n")}I(1u)d=J.4d(a);b=J.4c(J.2J,a);b=J.4b(a,b);b=J.49(b,d);I(J.V("41-40"))b=E(b);1j 2H!="1d"&&2H.3S&&2H.3S.1C(/5s/)&&c.U("5t");H b=\'<T 1c="\'+t(J.1c)+\'" 1g="\'+c.1K(" ")+\'">\'+(J.V("16")?e.16.1H(J):"")+\'<3Z 5z="0" 5H="0" 5J="0">\'+J.4f(J.V("1t"))+"<3T><3P>"+(1u?\'<2d 1g="1u">\'+J.3Q(a)+"</2d>":"")+\'<2d 1g="17"><T 1g="3O">\'+b+"</T></2d></3P></3T></3Z></T>"},2F:6(a){I(a===N)a="";J.17=a;K b=J.3Y("T");b.3X=J.1H(a);J.V("16")&&w(p(b,".16"),"5c",e.16.2b);J.V("3V-17")&&w(p(b,".17"),"56",f);H b},2Q:6(a){J.1c=""+1Q.5d(1Q.5n()*5k).1q();e.1Y.2A[t(J.1c)]=J;J.1n=C(e.2v,a||{});I(J.V("2k")==R)J.1n.16=J.1n.1u=11},5j:6(a){a=a.Q(/^\\s+|\\s+$/g,"").Q(/\\s+/g,"|");H"\\\\b(?:"+a+")\\\\b"},5f:6(a){J.28={18:{1I:a.18,23:"1k"},1b:{1I:a.1b,23:"1k"},17:1f M("(?<18>"+a.18.1m+")(?<17>.*?)(?<1b>"+a.1b.1m+")","5o")}}};H e}();1j 2e!="1d"&&(2e.1v=1v);',62,441,'||||||function|||||||||||||||||||||||||||||||||||||return|if|this|var|length|XRegExp|null|for|index|replace|true||div|push|getParam|call|exec|else|prototype||false|lastIndex|config|arguments|RegExp|toolbar|code|left|captureNames|slice|right|id|undefined|split|new|class|addToken|indexOf|typeof|script|className|source|params|substr|apply|toString|String|line|title|gutter|SyntaxHighlighter|_xregexp|strings|lt|html|test|OUTSIDE_CLASS|match|brush|document|target|gt|getHtml|regex|global|join|style|highlight|break|concat|window|Math|isRegExp|throw|value|brushes|brushName|space|alert|vars|http|syntaxhighlighter|expandSource|size|css|case|font|Fa|name|htmlScript|dA|can|handler|gm|td|exports|color|in|href|first|discoveredBrushes|light|collapse|object|cache|getButtonHtml|trigger|pattern|getLineHtml|nbsp|numbers|parseInt|defaults|com|items|www|pad|highlighters|execute|focus|func|all|getDiv|parentNode|navigator|INSIDE_CLASS|regexList|hasFlag|Match|useScriptTags|hasNamedCapture|text|help|init|br|input|gi|Error|values|span|list|250|height|width|screen|top|500|tagName|findElements|getElementsByTagName|aboutDialog|_blank|appendChild|charAt|Array|copyAsGlobal|setFlag|highlighter_|string|attachEvent|nodeName|floor|backref|output|the|TypeError|sticky|Za|iterate|freezeTokens|scope|type|textarea|alexgorbatchev|version|margin|2010|005896|gs|regexLib|body|center|align|noBrush|require|childNodes|DTD|xhtml1|head|org|w3|url|preventDefault|container|tr|getLineNumbersHtml|isNaN|userAgent|tbody|isLineHighlighted|quick|void|innerHTML|create|table|links|auto|smart|tab|stripBrs|tabs|bloggerMode|collapsed|plain|getCodeLinesHtml|caption|getMatchesHtml|findMatches|figureOutLineNumbers|removeNestedMatches|getTitleHtml|brushNotHtmlScript|substring|createElement|Highlighter|load|HtmlScript|Brush|pre|expand|multiline|min|Can|ignoreCase|find|blur|extended|toLowerCase|aliases|addEventListener|innerText|textContent|wasn|select|createTextNode|removeChild|option|same|frame|xmlns|dtd|twice|1999|equiv|meta|htmlscript|transitional|1E3|expected|PUBLIC|DOCTYPE|on|W3C|XHTML|TR|EN|Transitional||configured|srcElement|Object|after|run|dblclick|matchChain|valueOf|constructor|default|switch|click|round|execAt|forHtmlScript|token|gimy|functions|getKeywords|1E6|escape|within|random|sgi|another|finally|supply|MSIE|ie|toUpperCase|catch|returnValue|definition|event|border|imsx|constructing|one|Infinity|from|when|Content|cellpadding|flags|cellspacing|try|xhtml|Type|spaces|2930402|hosted_button_id|lastIndexOf|donate|active|development|keep|to|xclick|_s|Xml|please|like|you|paypal|cgi|cmd|webscr|bin|highlighted|scrollbars|aspScriptTags|phpScriptTags|sort|max|scriptScriptTags|toolbar_item|_|command|command_|number|getElementById|doubleQuotedString|singleLinePerlComments|singleLineCComments|multiLineCComments|singleQuotedString|multiLineDoubleQuotedString|xmlComments|alt|multiLineSingleQuotedString|If|https|1em|000|fff|background|5em|xx|bottom|75em|Gorbatchev|large|serif|CDATA|continue|utf|charset|content|About|family|sans|Helvetica|Arial|Geneva|3em|nogutter|Copyright|syntax|close|write|2004|Alex|open|JavaScript|highlighter|July|02|replaceChild|offset|83'.split('|'),0,{}))
|
@@ -0,0 +1,328 @@
|
|
1
|
+
/**
|
2
|
+
* SyntaxHighlighter
|
3
|
+
* http://alexgorbatchev.com/SyntaxHighlighter
|
4
|
+
*
|
5
|
+
* SyntaxHighlighter is donationware. If you are using it, please donate.
|
6
|
+
* http://alexgorbatchev.com/SyntaxHighlighter/donate.html
|
7
|
+
*
|
8
|
+
* @version
|
9
|
+
* 3.0.83 (July 02 2010)
|
10
|
+
*
|
11
|
+
* @copyright
|
12
|
+
* Copyright (C) 2004-2010 Alex Gorbatchev.
|
13
|
+
*
|
14
|
+
* @license
|
15
|
+
* Dual licensed under the MIT and GPL licenses.
|
16
|
+
*/
|
17
|
+
.syntaxhighlighter a,
|
18
|
+
.syntaxhighlighter div,
|
19
|
+
.syntaxhighlighter code,
|
20
|
+
.syntaxhighlighter table,
|
21
|
+
.syntaxhighlighter table td,
|
22
|
+
.syntaxhighlighter table tr,
|
23
|
+
.syntaxhighlighter table tbody,
|
24
|
+
.syntaxhighlighter table thead,
|
25
|
+
.syntaxhighlighter table caption,
|
26
|
+
.syntaxhighlighter textarea {
|
27
|
+
-moz-border-radius: 0 0 0 0 !important;
|
28
|
+
-webkit-border-radius: 0 0 0 0 !important;
|
29
|
+
background: none !important;
|
30
|
+
border: 0 !important;
|
31
|
+
bottom: auto !important;
|
32
|
+
float: none !important;
|
33
|
+
height: auto !important;
|
34
|
+
left: auto !important;
|
35
|
+
line-height: 1.1em !important;
|
36
|
+
margin: 0 !important;
|
37
|
+
outline: 0 !important;
|
38
|
+
overflow: visible !important;
|
39
|
+
padding: 0 !important;
|
40
|
+
position: static !important;
|
41
|
+
right: auto !important;
|
42
|
+
text-align: left !important;
|
43
|
+
top: auto !important;
|
44
|
+
vertical-align: baseline !important;
|
45
|
+
width: auto !important;
|
46
|
+
box-sizing: content-box !important;
|
47
|
+
font-family: "Consolas", "Bitstream Vera Sans Mono", "Courier New", Courier, monospace !important;
|
48
|
+
font-weight: normal !important;
|
49
|
+
font-style: normal !important;
|
50
|
+
font-size: 1em !important;
|
51
|
+
min-height: inherit !important;
|
52
|
+
min-height: auto !important;
|
53
|
+
}
|
54
|
+
|
55
|
+
.syntaxhighlighter {
|
56
|
+
width: 100% !important;
|
57
|
+
margin: 1em 0 1em 0 !important;
|
58
|
+
position: relative !important;
|
59
|
+
overflow: auto !important;
|
60
|
+
font-size: 1em !important;
|
61
|
+
}
|
62
|
+
.syntaxhighlighter.source {
|
63
|
+
overflow: hidden !important;
|
64
|
+
}
|
65
|
+
.syntaxhighlighter .bold {
|
66
|
+
font-weight: bold !important;
|
67
|
+
}
|
68
|
+
.syntaxhighlighter .italic {
|
69
|
+
font-style: italic !important;
|
70
|
+
}
|
71
|
+
.syntaxhighlighter .line {
|
72
|
+
white-space: pre !important;
|
73
|
+
}
|
74
|
+
.syntaxhighlighter table {
|
75
|
+
width: 100% !important;
|
76
|
+
}
|
77
|
+
.syntaxhighlighter table caption {
|
78
|
+
text-align: left !important;
|
79
|
+
padding: .5em 0 0.5em 1em !important;
|
80
|
+
}
|
81
|
+
.syntaxhighlighter table td.code {
|
82
|
+
width: 100% !important;
|
83
|
+
}
|
84
|
+
.syntaxhighlighter table td.code .container {
|
85
|
+
position: relative !important;
|
86
|
+
}
|
87
|
+
.syntaxhighlighter table td.code .container textarea {
|
88
|
+
box-sizing: border-box !important;
|
89
|
+
position: absolute !important;
|
90
|
+
left: 0 !important;
|
91
|
+
top: 0 !important;
|
92
|
+
width: 100% !important;
|
93
|
+
height: 100% !important;
|
94
|
+
border: none !important;
|
95
|
+
background: white !important;
|
96
|
+
padding-left: 1em !important;
|
97
|
+
overflow: hidden !important;
|
98
|
+
white-space: pre !important;
|
99
|
+
}
|
100
|
+
.syntaxhighlighter table td.gutter .line {
|
101
|
+
text-align: right !important;
|
102
|
+
padding: 0 0.5em 0 1em !important;
|
103
|
+
}
|
104
|
+
.syntaxhighlighter table td.code .line {
|
105
|
+
padding: 0 1em !important;
|
106
|
+
}
|
107
|
+
.syntaxhighlighter.nogutter td.code .container textarea, .syntaxhighlighter.nogutter td.code .line {
|
108
|
+
padding-left: 0em !important;
|
109
|
+
}
|
110
|
+
.syntaxhighlighter.show {
|
111
|
+
display: block !important;
|
112
|
+
}
|
113
|
+
.syntaxhighlighter.collapsed table {
|
114
|
+
display: none !important;
|
115
|
+
}
|
116
|
+
.syntaxhighlighter.collapsed .toolbar {
|
117
|
+
padding: 0.1em 0.8em 0em 0.8em !important;
|
118
|
+
font-size: 1em !important;
|
119
|
+
position: static !important;
|
120
|
+
width: auto !important;
|
121
|
+
height: auto !important;
|
122
|
+
}
|
123
|
+
.syntaxhighlighter.collapsed .toolbar span {
|
124
|
+
display: inline !important;
|
125
|
+
margin-right: 1em !important;
|
126
|
+
}
|
127
|
+
.syntaxhighlighter.collapsed .toolbar span a {
|
128
|
+
padding: 0 !important;
|
129
|
+
display: none !important;
|
130
|
+
}
|
131
|
+
.syntaxhighlighter.collapsed .toolbar span a.expandSource {
|
132
|
+
display: inline !important;
|
133
|
+
}
|
134
|
+
.syntaxhighlighter .toolbar {
|
135
|
+
position: absolute !important;
|
136
|
+
right: 1px !important;
|
137
|
+
top: 1px !important;
|
138
|
+
width: 11px !important;
|
139
|
+
height: 11px !important;
|
140
|
+
font-size: 10px !important;
|
141
|
+
z-index: 10 !important;
|
142
|
+
}
|
143
|
+
.syntaxhighlighter .toolbar span.title {
|
144
|
+
display: inline !important;
|
145
|
+
}
|
146
|
+
.syntaxhighlighter .toolbar a {
|
147
|
+
display: block !important;
|
148
|
+
text-align: center !important;
|
149
|
+
text-decoration: none !important;
|
150
|
+
padding-top: 1px !important;
|
151
|
+
}
|
152
|
+
.syntaxhighlighter .toolbar a.expandSource {
|
153
|
+
display: none !important;
|
154
|
+
}
|
155
|
+
.syntaxhighlighter.ie {
|
156
|
+
font-size: .9em !important;
|
157
|
+
padding: 1px 0 1px 0 !important;
|
158
|
+
}
|
159
|
+
.syntaxhighlighter.ie .toolbar {
|
160
|
+
line-height: 8px !important;
|
161
|
+
}
|
162
|
+
.syntaxhighlighter.ie .toolbar a {
|
163
|
+
padding-top: 0px !important;
|
164
|
+
}
|
165
|
+
.syntaxhighlighter.printing .line.alt1 .content,
|
166
|
+
.syntaxhighlighter.printing .line.alt2 .content,
|
167
|
+
.syntaxhighlighter.printing .line.highlighted .number,
|
168
|
+
.syntaxhighlighter.printing .line.highlighted.alt1 .content,
|
169
|
+
.syntaxhighlighter.printing .line.highlighted.alt2 .content {
|
170
|
+
background: none !important;
|
171
|
+
}
|
172
|
+
.syntaxhighlighter.printing .line .number {
|
173
|
+
color: #bbbbbb !important;
|
174
|
+
}
|
175
|
+
.syntaxhighlighter.printing .line .content {
|
176
|
+
color: black !important;
|
177
|
+
}
|
178
|
+
.syntaxhighlighter.printing .toolbar {
|
179
|
+
display: none !important;
|
180
|
+
}
|
181
|
+
.syntaxhighlighter.printing a {
|
182
|
+
text-decoration: none !important;
|
183
|
+
}
|
184
|
+
.syntaxhighlighter.printing .plain, .syntaxhighlighter.printing .plain a {
|
185
|
+
color: black !important;
|
186
|
+
}
|
187
|
+
.syntaxhighlighter.printing .comments, .syntaxhighlighter.printing .comments a {
|
188
|
+
color: #008200 !important;
|
189
|
+
}
|
190
|
+
.syntaxhighlighter.printing .string, .syntaxhighlighter.printing .string a {
|
191
|
+
color: blue !important;
|
192
|
+
}
|
193
|
+
.syntaxhighlighter.printing .keyword {
|
194
|
+
color: #006699 !important;
|
195
|
+
font-weight: bold !important;
|
196
|
+
}
|
197
|
+
.syntaxhighlighter.printing .preprocessor {
|
198
|
+
color: gray !important;
|
199
|
+
}
|
200
|
+
.syntaxhighlighter.printing .variable {
|
201
|
+
color: #aa7700 !important;
|
202
|
+
}
|
203
|
+
.syntaxhighlighter.printing .value {
|
204
|
+
color: #009900 !important;
|
205
|
+
}
|
206
|
+
.syntaxhighlighter.printing .functions {
|
207
|
+
color: #ff1493 !important;
|
208
|
+
}
|
209
|
+
.syntaxhighlighter.printing .constants {
|
210
|
+
color: #0066cc !important;
|
211
|
+
}
|
212
|
+
.syntaxhighlighter.printing .script {
|
213
|
+
font-weight: bold !important;
|
214
|
+
}
|
215
|
+
.syntaxhighlighter.printing .color1, .syntaxhighlighter.printing .color1 a {
|
216
|
+
color: gray !important;
|
217
|
+
}
|
218
|
+
.syntaxhighlighter.printing .color2, .syntaxhighlighter.printing .color2 a {
|
219
|
+
color: #ff1493 !important;
|
220
|
+
}
|
221
|
+
.syntaxhighlighter.printing .color3, .syntaxhighlighter.printing .color3 a {
|
222
|
+
color: red !important;
|
223
|
+
}
|
224
|
+
.syntaxhighlighter.printing .break, .syntaxhighlighter.printing .break a {
|
225
|
+
color: black !important;
|
226
|
+
}
|
227
|
+
|
228
|
+
.syntaxhighlighter {
|
229
|
+
background-color: white !important;
|
230
|
+
}
|
231
|
+
.syntaxhighlighter .line.alt1 {
|
232
|
+
background-color: white !important;
|
233
|
+
}
|
234
|
+
.syntaxhighlighter .line.alt2 {
|
235
|
+
background-color: white !important;
|
236
|
+
}
|
237
|
+
.syntaxhighlighter .line.highlighted.alt1, .syntaxhighlighter .line.highlighted.alt2 {
|
238
|
+
background-color: #e0e0e0 !important;
|
239
|
+
}
|
240
|
+
.syntaxhighlighter .line.highlighted.number {
|
241
|
+
color: black !important;
|
242
|
+
}
|
243
|
+
.syntaxhighlighter table caption {
|
244
|
+
color: black !important;
|
245
|
+
}
|
246
|
+
.syntaxhighlighter .gutter {
|
247
|
+
color: #afafaf !important;
|
248
|
+
}
|
249
|
+
.syntaxhighlighter .gutter .line {
|
250
|
+
border-right: 3px solid #6ce26c !important;
|
251
|
+
}
|
252
|
+
.syntaxhighlighter .gutter .line.highlighted {
|
253
|
+
background-color: #6ce26c !important;
|
254
|
+
color: white !important;
|
255
|
+
}
|
256
|
+
.syntaxhighlighter.printing .line .content {
|
257
|
+
border: none !important;
|
258
|
+
}
|
259
|
+
.syntaxhighlighter.collapsed {
|
260
|
+
overflow: visible !important;
|
261
|
+
}
|
262
|
+
.syntaxhighlighter.collapsed .toolbar {
|
263
|
+
color: blue !important;
|
264
|
+
background: white !important;
|
265
|
+
border: 1px solid #6ce26c !important;
|
266
|
+
}
|
267
|
+
.syntaxhighlighter.collapsed .toolbar a {
|
268
|
+
color: blue !important;
|
269
|
+
}
|
270
|
+
.syntaxhighlighter.collapsed .toolbar a:hover {
|
271
|
+
color: red !important;
|
272
|
+
}
|
273
|
+
.syntaxhighlighter .toolbar {
|
274
|
+
color: white !important;
|
275
|
+
background: #6ce26c !important;
|
276
|
+
border: none !important;
|
277
|
+
}
|
278
|
+
.syntaxhighlighter .toolbar a {
|
279
|
+
color: white !important;
|
280
|
+
}
|
281
|
+
.syntaxhighlighter .toolbar a:hover {
|
282
|
+
color: black !important;
|
283
|
+
}
|
284
|
+
.syntaxhighlighter .plain, .syntaxhighlighter .plain a {
|
285
|
+
color: black !important;
|
286
|
+
}
|
287
|
+
.syntaxhighlighter .comments, .syntaxhighlighter .comments a {
|
288
|
+
color: #008200 !important;
|
289
|
+
}
|
290
|
+
.syntaxhighlighter .string, .syntaxhighlighter .string a {
|
291
|
+
color: blue !important;
|
292
|
+
}
|
293
|
+
.syntaxhighlighter .keyword {
|
294
|
+
color: #006699 !important;
|
295
|
+
}
|
296
|
+
.syntaxhighlighter .preprocessor {
|
297
|
+
color: gray !important;
|
298
|
+
}
|
299
|
+
.syntaxhighlighter .variable {
|
300
|
+
color: #aa7700 !important;
|
301
|
+
}
|
302
|
+
.syntaxhighlighter .value {
|
303
|
+
color: #009900 !important;
|
304
|
+
}
|
305
|
+
.syntaxhighlighter .functions {
|
306
|
+
color: #ff1493 !important;
|
307
|
+
}
|
308
|
+
.syntaxhighlighter .constants {
|
309
|
+
color: #0066cc !important;
|
310
|
+
}
|
311
|
+
.syntaxhighlighter .script {
|
312
|
+
font-weight: bold !important;
|
313
|
+
color: #006699 !important;
|
314
|
+
background-color: none !important;
|
315
|
+
}
|
316
|
+
.syntaxhighlighter .color1, .syntaxhighlighter .color1 a {
|
317
|
+
color: gray !important;
|
318
|
+
}
|
319
|
+
.syntaxhighlighter .color2, .syntaxhighlighter .color2 a {
|
320
|
+
color: #ff1493 !important;
|
321
|
+
}
|
322
|
+
.syntaxhighlighter .color3, .syntaxhighlighter .color3 a {
|
323
|
+
color: red !important;
|
324
|
+
}
|
325
|
+
|
326
|
+
.syntaxhighlighter .keyword {
|
327
|
+
font-weight: bold !important;
|
328
|
+
}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'rails'
|
2
|
+
|
3
|
+
module Rateit
|
4
|
+
module Generators
|
5
|
+
class InstallGenerator < ::Rails::Generators::Base
|
6
|
+
|
7
|
+
desc "This generator installs the jQuery RateIt plugin"
|
8
|
+
|
9
|
+
def inject_javascript
|
10
|
+
inject_into_file "app/assets/javascripts/application.js", "//= require jquery.rateit\n", :after => "//= require jquery\n"
|
11
|
+
end
|
12
|
+
|
13
|
+
def inject_stylesheet
|
14
|
+
inject_into_file "app/assets/stylesheets/application.css", "*= require rateit\n", :after => "/*\n"
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
data/lib/rails-rateit.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
require "rateit/version"
|
2
|
+
|
3
|
+
module Rateit
|
4
|
+
module Rails
|
5
|
+
class Engine < ::Rails::Engine
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
class Railtie < ::Rails::Railtie
|
10
|
+
initializer "rateit.action_view" do |app|
|
11
|
+
ActiveSupport.on_load :action_view do
|
12
|
+
require 'rateit/view_helpers/action_view'
|
13
|
+
include Rateit::ViewHelpers::ActionView
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module Rateit
|
2
|
+
module ViewHelpers
|
3
|
+
module ActionView
|
4
|
+
def rateit_tag(options = {})
|
5
|
+
tag_options = {:class => "rateit"}
|
6
|
+
options.each do |name, value|
|
7
|
+
tag_options["data-rateit-#{name}"] = value
|
8
|
+
end
|
9
|
+
|
10
|
+
tag(:div, tag_options)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
require File.expand_path('../lib/rateit/version', __FILE__)
|
3
|
+
|
4
|
+
Gem::Specification.new do |gem|
|
5
|
+
gem.authors = ["Ouvrages"]
|
6
|
+
gem.email = ["contact@ouvrages-web.fr"]
|
7
|
+
gem.description = %q{Rails wrapper for the jQuery RateIt plugin}
|
8
|
+
gem.summary = %q{Rails assets pipeline compatible version of the jQuery RateIt plugin}
|
9
|
+
gem.homepage = ""
|
10
|
+
|
11
|
+
gem.files = `git ls-files`.split($\)
|
12
|
+
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
13
|
+
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
14
|
+
gem.name = "rails-rateit"
|
15
|
+
gem.require_paths = ["lib"]
|
16
|
+
gem.version = Rateit::VERSION
|
17
|
+
end
|
Binary file
|
Binary file
|
@@ -0,0 +1,250 @@
|
|
1
|
+
/*
|
2
|
+
RateIt
|
3
|
+
version 1.0.4
|
4
|
+
03/31/2012
|
5
|
+
http://rateit.codeplex.com
|
6
|
+
Twitter: @gjunge
|
7
|
+
|
8
|
+
*/
|
9
|
+
(function ($) {
|
10
|
+
$.fn.rateit = function (p1, p2) {
|
11
|
+
//quick way out.
|
12
|
+
var options = {}; var mode = 'init';
|
13
|
+
var capitaliseFirstLetter = function (string) {
|
14
|
+
return string.charAt(0).toUpperCase() + string.substr(1);
|
15
|
+
};
|
16
|
+
|
17
|
+
if (this.length == 0) return this;
|
18
|
+
|
19
|
+
|
20
|
+
var tp1 = $.type(p1);
|
21
|
+
if (tp1 == 'object' || p1 === undefined || p1 == null) {
|
22
|
+
options = $.extend({}, $.fn.rateit.defaults, p1); //wants to init new rateit plugin(s).
|
23
|
+
}
|
24
|
+
else if (tp1 == 'string' && p2 === undefined) {
|
25
|
+
return this.data('rateit' + capitaliseFirstLetter(p1)); //wants to get a value.
|
26
|
+
}
|
27
|
+
else if (tp1 == 'string') {
|
28
|
+
mode = 'setvalue'
|
29
|
+
}
|
30
|
+
|
31
|
+
return this.each(function () {
|
32
|
+
var item = $(this);
|
33
|
+
|
34
|
+
//shorten all the item.data('rateit-XXX'), will save space in closure compiler, will be like item.data('XXX') will become x('XXX')
|
35
|
+
var itemdata = function (key, value) {
|
36
|
+
arguments[0] = 'rateit' + capitaliseFirstLetter(key);
|
37
|
+
return item.data.apply(item, arguments); ////Fix for WI: 523
|
38
|
+
};
|
39
|
+
|
40
|
+
//add the rate it class.
|
41
|
+
if (!item.hasClass('rateit')) item.addClass('rateit');
|
42
|
+
|
43
|
+
var ltr = item.css('direction') != 'rtl';
|
44
|
+
|
45
|
+
// set value mode
|
46
|
+
if (mode == 'setvalue') {
|
47
|
+
if (!itemdata('init')) throw 'Can\'t set value before init';
|
48
|
+
|
49
|
+
|
50
|
+
//if readonly now and it wasn't readonly, remove the eventhandlers.
|
51
|
+
if (p1 == 'readonly' && !itemdata('readonly')) {
|
52
|
+
item.find('.rateit-range').unbind();
|
53
|
+
itemdata('wired', false);
|
54
|
+
}
|
55
|
+
|
56
|
+
if (itemdata('backingfld')) {
|
57
|
+
//if we have a backing field, check which fields we should update.
|
58
|
+
//In case of input[type=range], although we did read its attributes even in browsers that don't support it (using fld.attr())
|
59
|
+
//we only update it in browser that support it (&& fld[0].min only works in supporting browsers), not only does it save us from checking if it is range input type, it also is unnecessary.
|
60
|
+
var fld = $(itemdata('backingfld'));
|
61
|
+
if (p1 == 'value') fld.val(p2);
|
62
|
+
if (p1 == 'min' && fld[0].min) fld[0].min = p2;
|
63
|
+
if (p1 == 'max' && fld[0].max) fld[0].max = p2;
|
64
|
+
if (p1 == 'step' && fld[0].step) fld[0].step = p2;
|
65
|
+
}
|
66
|
+
|
67
|
+
itemdata(p1, p2);
|
68
|
+
}
|
69
|
+
|
70
|
+
//init rateit plugin
|
71
|
+
if (!itemdata('init')) {
|
72
|
+
|
73
|
+
//get our values, either from the data-* html5 attribute or from the options.
|
74
|
+
itemdata('min', itemdata('min') || options.min);
|
75
|
+
itemdata('max', itemdata('max') || options.max);
|
76
|
+
itemdata('step', itemdata('step') || options.step);
|
77
|
+
itemdata('readonly', itemdata('readonly') !== undefined ? itemdata('readonly') : options.readonly);
|
78
|
+
itemdata('resetable', itemdata('resetable') !== undefined ? itemdata('resetable') : options.resetable);
|
79
|
+
itemdata('backingfld', itemdata('backingfld') || options.backingfld);
|
80
|
+
itemdata('starwidth', itemdata('starwidth') || options.starwidth);
|
81
|
+
itemdata('starheight', itemdata('starheight') || options.starheight);
|
82
|
+
itemdata('value', itemdata('value') || options.min);
|
83
|
+
itemdata('ispreset', itemdata('ispreset') !== undefined ? itemdata('ispreset') : options.ispreset);
|
84
|
+
//are we LTR or RTL?
|
85
|
+
|
86
|
+
if (itemdata('backingfld')) {
|
87
|
+
//if we have a backing field, hide it, and get its value, and override defaults if range.
|
88
|
+
var fld = $(itemdata('backingfld'));
|
89
|
+
itemdata('value', fld.hide().val());
|
90
|
+
|
91
|
+
if (fld[0].nodeName == 'INPUT') {
|
92
|
+
if (fld[0].type == 'range' || fld[0].type == 'text') { //in browsers not support the range type, it defaults to text
|
93
|
+
|
94
|
+
itemdata('min', parseInt(fld.attr('min')) || itemdata('min')); //if we would have done fld[0].min it wouldn't have worked in browsers not supporting the range type.
|
95
|
+
itemdata('max', parseInt(fld.attr('max')) || itemdata('max'));
|
96
|
+
itemdata('step', parseInt(fld.attr('step')) || itemdata('step'));
|
97
|
+
}
|
98
|
+
}
|
99
|
+
if (fld[0].nodeName == 'SELECT' && fld[0].options.length > 1) {
|
100
|
+
itemdata('min', Number(fld[0].options[0].value));
|
101
|
+
itemdata('max', Number(fld[0].options[fld[0].length - 1].value));
|
102
|
+
itemdata('step', Number(fld[0].options[1].value) - Number(fld[0].options[0].value));
|
103
|
+
}
|
104
|
+
}
|
105
|
+
|
106
|
+
//Create the necessary tags.
|
107
|
+
item.append('<div class="rateit-reset"></div><div class="rateit-range"><div class="rateit-selected" style="height:' + itemdata('starheight') + 'px"></div><div class="rateit-hover" style="height:' + itemdata('starheight') + 'px"></div></div>');
|
108
|
+
|
109
|
+
//if we are in RTL mode, we have to change the float of the "reset button"
|
110
|
+
if (!ltr) {
|
111
|
+
item.find('.rateit-reset').css('float', 'right');
|
112
|
+
item.find('.rateit-selected').addClass('rateit-selected-rtl');
|
113
|
+
item.find('.rateit-hover').addClass('rateit-hover-rtl');
|
114
|
+
}
|
115
|
+
itemdata('init', true);
|
116
|
+
}
|
117
|
+
|
118
|
+
|
119
|
+
//set the range element to fit all the stars.
|
120
|
+
var range = item.find('.rateit-range');
|
121
|
+
range.width(itemdata('starwidth') * (itemdata('max') - itemdata('min'))).height(itemdata('starheight'));
|
122
|
+
|
123
|
+
//add/remove the preset class
|
124
|
+
var presetclass = 'rateit-preset' + ((ltr) ? '' : '-rtl');
|
125
|
+
if (itemdata('ispreset'))
|
126
|
+
item.find('.rateit-selected').addClass(presetclass);
|
127
|
+
else
|
128
|
+
item.find('.rateit-selected').removeClass(presetclass);
|
129
|
+
|
130
|
+
//set the value if we have it.
|
131
|
+
if (itemdata('value')) {
|
132
|
+
var score = (itemdata('value') - itemdata('min')) * itemdata('starwidth');
|
133
|
+
item.find('.rateit-selected').width(score);
|
134
|
+
}
|
135
|
+
|
136
|
+
var resetbtn = item.find('.rateit-reset');
|
137
|
+
|
138
|
+
var calcRawScore = function (element, event) {
|
139
|
+
var pageX = (event.changedTouches) ? event.changedTouches[0].pageX : event.pageX;
|
140
|
+
|
141
|
+
var offsetx = pageX - $(element).offset().left;
|
142
|
+
if (!ltr) offsetx = range.width() - offsetx;
|
143
|
+
if (offsetx > range.width()) offsetx = range.width();
|
144
|
+
if (offsetx < 0) offsetx = 0;
|
145
|
+
|
146
|
+
return score = Math.ceil(offsetx / itemdata('starwidth') * (1 / itemdata('step')));
|
147
|
+
};
|
148
|
+
|
149
|
+
|
150
|
+
//
|
151
|
+
|
152
|
+
if (!itemdata('readonly')) {
|
153
|
+
//if we are not read only, add all the events
|
154
|
+
|
155
|
+
//if we have a reset button, set the event handler.
|
156
|
+
if (itemdata('resetable')) {
|
157
|
+
resetbtn.click(function () {
|
158
|
+
itemdata('value', itemdata('min'));
|
159
|
+
range.find('.rateit-hover').hide().width(0);
|
160
|
+
range.find('.rateit-selected').width(0).show();
|
161
|
+
if (itemdata('backingfld')) $(itemdata('backingfld')).val(itemdata('min'));
|
162
|
+
item.trigger('reset');
|
163
|
+
});
|
164
|
+
|
165
|
+
}
|
166
|
+
else {
|
167
|
+
resetbtn.hide();
|
168
|
+
}
|
169
|
+
|
170
|
+
|
171
|
+
|
172
|
+
//when the mouse goes over the range div, we set the "hover" stars.
|
173
|
+
if (!itemdata('wired')) {
|
174
|
+
range.bind('touchmove touchend', touchHandler); //bind touch events
|
175
|
+
range.mousemove(function (e) {
|
176
|
+
var score = calcRawScore(this, e);
|
177
|
+
var w = score * itemdata('starwidth') * itemdata('step');
|
178
|
+
var h = range.find('.rateit-hover');
|
179
|
+
if (h.data('width') != w) {
|
180
|
+
range.find('.rateit-selected').hide();
|
181
|
+
h.width(w).show().data('width', w);
|
182
|
+
var data = [(score * itemdata('step')) + itemdata('min')];
|
183
|
+
item.trigger('hover', data).trigger('over', data);
|
184
|
+
}
|
185
|
+
});
|
186
|
+
//when the mouse leaves the range, we have to hide the hover stars, and show the current value.
|
187
|
+
range.mouseleave(function (e) {
|
188
|
+
range.find('.rateit-hover').hide().width(0).data('width', '');
|
189
|
+
item.trigger('hover', [null]).trigger('over', [null]);
|
190
|
+
range.find('.rateit-selected').show();
|
191
|
+
});
|
192
|
+
//when we click on the range, we have to set the value, hide the hover.
|
193
|
+
range.mouseup(function (e) {
|
194
|
+
var score = calcRawScore(this, e);
|
195
|
+
|
196
|
+
var newvalue = (score * itemdata('step')) + itemdata('min');
|
197
|
+
itemdata('value', newvalue);
|
198
|
+
if (itemdata('backingfld')) {
|
199
|
+
$(itemdata('backingfld')).val(newvalue);
|
200
|
+
}
|
201
|
+
if (itemdata('ispreset')) { //if it was a preset value, unset that.
|
202
|
+
range.find('.rateit-selected').removeClass(presetclass);
|
203
|
+
itemdata('ispreset', false);
|
204
|
+
}
|
205
|
+
range.find('.rateit-hover').hide();
|
206
|
+
range.find('.rateit-selected').width(score * itemdata('starwidth') * itemdata('step')).show();
|
207
|
+
item.trigger('hover', [null]).trigger('over', [null]).trigger('rated', [newvalue]);
|
208
|
+
});
|
209
|
+
|
210
|
+
itemdata('wired', true);
|
211
|
+
}
|
212
|
+
if (itemdata('resetable')) {
|
213
|
+
resetbtn.show();
|
214
|
+
}
|
215
|
+
}
|
216
|
+
else {
|
217
|
+
resetbtn.hide();
|
218
|
+
}
|
219
|
+
});
|
220
|
+
};
|
221
|
+
|
222
|
+
//touch converter http://ross.posterous.com/2008/08/19/iphone-touch-events-in-javascript/
|
223
|
+
function touchHandler(event) {
|
224
|
+
|
225
|
+
var touches = event.originalEvent.changedTouches,
|
226
|
+
first = touches[0],
|
227
|
+
type = "";
|
228
|
+
switch (event.type) {
|
229
|
+
case "touchmove": type = "mousemove"; break;
|
230
|
+
case "touchend": type = "mouseup"; break;
|
231
|
+
default: return;
|
232
|
+
}
|
233
|
+
|
234
|
+
var simulatedEvent = document.createEvent("MouseEvent");
|
235
|
+
simulatedEvent.initMouseEvent(type, true, true, window, 1,
|
236
|
+
first.screenX, first.screenY,
|
237
|
+
first.clientX, first.clientY, false,
|
238
|
+
false, false, false, 0/*left*/, null);
|
239
|
+
|
240
|
+
first.target.dispatchEvent(simulatedEvent);
|
241
|
+
event.preventDefault();
|
242
|
+
};
|
243
|
+
|
244
|
+
//some default values.
|
245
|
+
$.fn.rateit.defaults = { min: 0, max: 5, step: 0.5, starwidth: 16, starheight: 16, readonly: false, resetable: true, ispreset: false };
|
246
|
+
|
247
|
+
//invoke it on all div.rateit elements. This could be removed if not wanted.
|
248
|
+
$(function () { $('div.rateit').rateit(); });
|
249
|
+
|
250
|
+
})(jQuery);
|