caliber 0.0.2 → 0.1.0

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.
data/Rakefile DELETED
@@ -1,33 +0,0 @@
1
- # encoding: UTF-8
2
- require 'rubygems'
3
- require 'bundler'
4
-
5
- begin
6
- Bundler.setup(:default, :development, :test)
7
- rescue Bundler::BundlerError => e
8
- $stderr.puts e.message
9
- $stderr.puts "Run `bundle install` to install missing gems"
10
- exit e.status_code
11
- end
12
-
13
- require 'rake'
14
- require 'rdoc/task'
15
-
16
- require 'rake/testtask'
17
-
18
- Rake::TestTask.new(:test) do |t|
19
- t.libs << 'lib'
20
- t.libs << 'test'
21
- t.pattern = 'test/**/*_test.rb'
22
- t.verbose = false
23
- end
24
-
25
- task :default => :test
26
-
27
- Rake::RDocTask.new(:rdoc) do |rdoc|
28
- rdoc.rdoc_dir = 'rdoc'
29
- rdoc.title = 'Caliber'
30
- rdoc.options << '--line-numbers' << '--inline-source'
31
- rdoc.rdoc_files.include('README.rdoc')
32
- rdoc.rdoc_files.include('lib/**/*.rb')
33
- end
@@ -1 +0,0 @@
1
- //= require_tree .
@@ -1,28 +0,0 @@
1
- function each(elems, func) {
2
- if (!elems instanceof Array) { elems = [elems]; }
3
- for (var i = elems.length; i--; ) {
4
- func(elems[i]);
5
- }
6
- }
7
-
8
- function setValOn(elems, val) {
9
- each(elems, function(elem) {
10
- elem.innerHTML = val;
11
- });
12
- }
13
-
14
- function onClick(elems, func) {
15
- each(elems, function(elem) {
16
- elem.onclick = func;
17
- });
18
- }
19
-
20
- // Enables functionality to toggle between `_path` and `_url` helper suffixes
21
- function setupRouteToggleHelperLinks() {
22
- var toggleLinks = document.querySelectorAll('#route_table [data-route-helper]');
23
- onClick(toggleLinks, function(){
24
- var helperTxt = this.getAttribute("data-route-helper");
25
- var helperElems = document.querySelectorAll('[data-route-name] span.helper');
26
- setValOn(helperElems, helperTxt);
27
- });
28
- }
@@ -1 +0,0 @@
1
- var hljs=new function(){function k(v){return v.replace(/&/gm,"&amp;").replace(/</gm,"&lt;").replace(/>/gm,"&gt;")}function t(v){return v.nodeName.toLowerCase()}function i(w,x){var v=w&&w.exec(x);return v&&v.index==0}function d(v){return Array.prototype.map.call(v.childNodes,function(w){if(w.nodeType==3){return b.useBR?w.nodeValue.replace(/\n/g,""):w.nodeValue}if(t(w)=="br"){return"\n"}return d(w)}).join("")}function r(w){var v=(w.className+" "+(w.parentNode?w.parentNode.className:"")).split(/\s+/);v=v.map(function(x){return x.replace(/^language-/,"")});return v.filter(function(x){return j(x)||x=="no-highlight"})[0]}function o(x,y){var v={};for(var w in x){v[w]=x[w]}if(y){for(var w in y){v[w]=y[w]}}return v}function u(x){var v=[];(function w(y,z){for(var A=y.firstChild;A;A=A.nextSibling){if(A.nodeType==3){z+=A.nodeValue.length}else{if(t(A)=="br"){z+=1}else{if(A.nodeType==1){v.push({event:"start",offset:z,node:A});z=w(A,z);v.push({event:"stop",offset:z,node:A})}}}}return z})(x,0);return v}function q(w,y,C){var x=0;var F="";var z=[];function B(){if(!w.length||!y.length){return w.length?w:y}if(w[0].offset!=y[0].offset){return(w[0].offset<y[0].offset)?w:y}return y[0].event=="start"?w:y}function A(H){function G(I){return" "+I.nodeName+'="'+k(I.value)+'"'}F+="<"+t(H)+Array.prototype.map.call(H.attributes,G).join("")+">"}function E(G){F+="</"+t(G)+">"}function v(G){(G.event=="start"?A:E)(G.node)}while(w.length||y.length){var D=B();F+=k(C.substr(x,D[0].offset-x));x=D[0].offset;if(D==w){z.reverse().forEach(E);do{v(D.splice(0,1)[0]);D=B()}while(D==w&&D.length&&D[0].offset==x);z.reverse().forEach(A)}else{if(D[0].event=="start"){z.push(D[0].node)}else{z.pop()}v(D.splice(0,1)[0])}}return F+k(C.substr(x))}function m(y){function v(z){return(z&&z.source)||z}function w(A,z){return RegExp(v(A),"m"+(y.cI?"i":"")+(z?"g":""))}function x(D,C){if(D.compiled){return}D.compiled=true;D.k=D.k||D.bK;if(D.k){var z={};function E(G,F){if(y.cI){F=F.toLowerCase()}F.split(" ").forEach(function(H){var I=H.split("|");z[I[0]]=[G,I[1]?Number(I[1]):1]})}if(typeof D.k=="string"){E("keyword",D.k)}else{Object.keys(D.k).forEach(function(F){E(F,D.k[F])})}D.k=z}D.lR=w(D.l||/\b[A-Za-z0-9_]+\b/,true);if(C){if(D.bK){D.b=D.bK.split(" ").join("|")}if(!D.b){D.b=/\B|\b/}D.bR=w(D.b);if(!D.e&&!D.eW){D.e=/\B|\b/}if(D.e){D.eR=w(D.e)}D.tE=v(D.e)||"";if(D.eW&&C.tE){D.tE+=(D.e?"|":"")+C.tE}}if(D.i){D.iR=w(D.i)}if(D.r===undefined){D.r=1}if(!D.c){D.c=[]}var B=[];D.c.forEach(function(F){if(F.v){F.v.forEach(function(G){B.push(o(F,G))})}else{B.push(F=="self"?D:F)}});D.c=B;D.c.forEach(function(F){x(F,D)});if(D.starts){x(D.starts,C)}var A=D.c.map(function(F){return F.bK?"\\.?\\b("+F.b+")\\b\\.?":F.b}).concat([D.tE]).concat([D.i]).map(v).filter(Boolean);D.t=A.length?w(A.join("|"),true):{exec:function(F){return null}};D.continuation={}}x(y)}function c(S,L,J,R){function v(U,V){for(var T=0;T<V.c.length;T++){if(i(V.c[T].bR,U)){return V.c[T]}}}function z(U,T){if(i(U.eR,T)){return U}if(U.eW){return z(U.parent,T)}}function A(T,U){return !J&&i(U.iR,T)}function E(V,T){var U=M.cI?T[0].toLowerCase():T[0];return V.k.hasOwnProperty(U)&&V.k[U]}function w(Z,X,W,V){var T=V?"":b.classPrefix,U='<span class="'+T,Y=W?"":"</span>";U+=Z+'">';return U+X+Y}function N(){var U=k(C);if(!I.k){return U}var T="";var X=0;I.lR.lastIndex=0;var V=I.lR.exec(U);while(V){T+=U.substr(X,V.index-X);var W=E(I,V);if(W){H+=W[1];T+=w(W[0],V[0])}else{T+=V[0]}X=I.lR.lastIndex;V=I.lR.exec(U)}return T+U.substr(X)}function F(){if(I.sL&&!f[I.sL]){return k(C)}var T=I.sL?c(I.sL,C,true,I.continuation.top):g(C);if(I.r>0){H+=T.r}if(I.subLanguageMode=="continuous"){I.continuation.top=T.top}return w(T.language,T.value,false,true)}function Q(){return I.sL!==undefined?F():N()}function P(V,U){var T=V.cN?w(V.cN,"",true):"";if(V.rB){D+=T;C=""}else{if(V.eB){D+=k(U)+T;C=""}else{D+=T;C=U}}I=Object.create(V,{parent:{value:I}})}function G(T,X){C+=T;if(X===undefined){D+=Q();return 0}var V=v(X,I);if(V){D+=Q();P(V,X);return V.rB?0:X.length}var W=z(I,X);if(W){var U=I;if(!(U.rE||U.eE)){C+=X}D+=Q();do{if(I.cN){D+="</span>"}H+=I.r;I=I.parent}while(I!=W.parent);if(U.eE){D+=k(X)}C="";if(W.starts){P(W.starts,"")}return U.rE?0:X.length}if(A(X,I)){throw new Error('Illegal lexeme "'+X+'" for mode "'+(I.cN||"<unnamed>")+'"')}C+=X;return X.length||1}var M=j(S);if(!M){throw new Error('Unknown language: "'+S+'"')}m(M);var I=R||M;var D="";for(var K=I;K!=M;K=K.parent){if(K.cN){D=w(K.cN,D,true)}}var C="";var H=0;try{var B,y,x=0;while(true){I.t.lastIndex=x;B=I.t.exec(L);if(!B){break}y=G(L.substr(x,B.index-x),B[0]);x=B.index+y}G(L.substr(x));for(var K=I;K.parent;K=K.parent){if(K.cN){D+="</span>"}}return{r:H,value:D,language:S,top:I}}catch(O){if(O.message.indexOf("Illegal")!=-1){return{r:0,value:k(L)}}else{throw O}}}function g(y,x){x=x||b.languages||Object.keys(f);var v={r:0,value:k(y)};var w=v;x.forEach(function(z){if(!j(z)){return}var A=c(z,y,false);A.language=z;if(A.r>w.r){w=A}if(A.r>v.r){w=v;v=A}});if(w.language){v.second_best=w}return v}function h(v){if(b.tabReplace){v=v.replace(/^((<[^>]+>|\t)+)/gm,function(w,z,y,x){return z.replace(/\t/g,b.tabReplace)})}if(b.useBR){v=v.replace(/\n/g,"<br>")}return v}function p(z){var y=d(z);var A=r(z);if(A=="no-highlight"){return}var v=A?c(A,y,true):g(y);var w=u(z);if(w.length){var x=document.createElementNS("http://www.w3.org/1999/xhtml","pre");x.innerHTML=v.value;v.value=q(w,u(x),y)}v.value=h(v.value);z.innerHTML=v.value;z.className+=" hljs "+(!A&&v.language||"");z.result={language:v.language,re:v.r};if(v.second_best){z.second_best={language:v.second_best.language,re:v.second_best.r}}}var b={classPrefix:"hljs-",tabReplace:null,useBR:false,languages:undefined};function s(v){b=o(b,v)}function l(){if(l.called){return}l.called=true;var v=document.querySelectorAll("pre code");Array.prototype.forEach.call(v,p)}function a(){addEventListener("DOMContentLoaded",l,false);addEventListener("load",l,false)}var f={};var n={};function e(v,x){var w=f[v]=x(this);if(w.aliases){w.aliases.forEach(function(y){n[y]=v})}}function j(v){return f[v]||f[n[v]]}this.highlight=c;this.highlightAuto=g;this.fixMarkup=h;this.highlightBlock=p;this.configure=s;this.initHighlighting=l;this.initHighlightingOnLoad=a;this.registerLanguage=e;this.getLanguage=j;this.inherit=o;this.IR="[a-zA-Z][a-zA-Z0-9_]*";this.UIR="[a-zA-Z_][a-zA-Z0-9_]*";this.NR="\\b\\d+(\\.\\d+)?";this.CNR="(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)";this.BNR="\\b(0b[01]+)";this.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~";this.BE={b:"\\\\[\\s\\S]",r:0};this.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[this.BE]};this.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[this.BE]};this.CLCM={cN:"comment",b:"//",e:"$"};this.CBLCLM={cN:"comment",b:"/\\*",e:"\\*/"};this.HCM={cN:"comment",b:"#",e:"$"};this.NM={cN:"number",b:this.NR,r:0};this.CNM={cN:"number",b:this.CNR,r:0};this.BNM={cN:"number",b:this.BNR,r:0};this.REGEXP_MODE={cN:"regexp",b:/\//,e:/\/[gim]*/,i:/\n/,c:[this.BE,{b:/\[/,e:/\]/,r:0,c:[this.BE]}]};this.TM={cN:"title",b:this.IR,r:0};this.UTM={cN:"title",b:this.UIR,r:0}}();hljs.registerLanguage("css",function(a){var b="[a-zA-Z-][a-zA-Z0-9_-]*";var c={cN:"function",b:b+"\\(",e:"\\)",c:["self",a.NM,a.ASM,a.QSM]};return{cI:true,i:"[=/|']",c:[a.CBLCLM,{cN:"id",b:"\\#[A-Za-z0-9_-]+"},{cN:"class",b:"\\.[A-Za-z0-9_-]+",r:0},{cN:"attr_selector",b:"\\[",e:"\\]",i:"$"},{cN:"pseudo",b:":(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\\\"\\']+"},{cN:"at_rule",b:"@(font-face|page)",l:"[a-z-]+",k:"font-face page"},{cN:"at_rule",b:"@",e:"[{;]",c:[{cN:"keyword",b:/\S+/},{b:/\s/,eW:true,eE:true,r:0,c:[c,a.ASM,a.QSM,a.NM]}]},{cN:"tag",b:b,r:0},{cN:"rules",b:"{",e:"}",i:"[^\\s]",r:0,c:[a.CBLCLM,{cN:"rule",b:"[^\\s]",rB:true,e:";",eW:true,c:[{cN:"attribute",b:"[A-Z\\_\\.\\-]+",e:":",eE:true,i:"[^\\s]",starts:{cN:"value",eW:true,eE:true,c:[c,a.NM,a.QSM,a.ASM,a.CBLCLM,{cN:"hexcolor",b:"#[0-9A-Fa-f]+"},{cN:"important",b:"!important"}]}}]}]}]}});
@@ -1,125 +0,0 @@
1
- /*
2
-
3
- github.com style (c) Vasily Polovnyov <vast@whiteants.net>
4
-
5
- */
6
-
7
- .hljs {
8
- display: block; padding: 0.5em;
9
- color: #333;
10
- background: #f8f8f8
11
- }
12
-
13
- .hljs-comment,
14
- .hljs-template_comment,
15
- .diff .hljs-header,
16
- .hljs-javadoc {
17
- color: #998;
18
- font-style: italic
19
- }
20
-
21
- .hljs-keyword,
22
- .css .rule .hljs-keyword,
23
- .hljs-winutils,
24
- .javascript .hljs-title,
25
- .nginx .hljs-title,
26
- .hljs-subst,
27
- .hljs-request,
28
- .hljs-status {
29
- color: #333;
30
- font-weight: bold
31
- }
32
-
33
- .hljs-number,
34
- .hljs-hexcolor,
35
- .ruby .hljs-constant {
36
- color: #099;
37
- }
38
-
39
- .hljs-string,
40
- .hljs-tag .hljs-value,
41
- .hljs-phpdoc,
42
- .tex .hljs-formula {
43
- color: #d14
44
- }
45
-
46
- .hljs-title,
47
- .hljs-id,
48
- .coffeescript .hljs-params,
49
- .scss .hljs-preprocessor {
50
- color: #900;
51
- font-weight: bold
52
- }
53
-
54
- .javascript .hljs-title,
55
- .lisp .hljs-title,
56
- .clojure .hljs-title,
57
- .hljs-subst {
58
- font-weight: normal
59
- }
60
-
61
- .hljs-class .hljs-title,
62
- .haskell .hljs-type,
63
- .vhdl .hljs-literal,
64
- .tex .hljs-command {
65
- color: #458;
66
- font-weight: bold
67
- }
68
-
69
- .hljs-tag,
70
- .hljs-tag .hljs-title,
71
- .hljs-rules .hljs-property,
72
- .django .hljs-tag .hljs-keyword {
73
- color: #000080;
74
- font-weight: normal
75
- }
76
-
77
- .hljs-attribute,
78
- .hljs-variable,
79
- .lisp .hljs-body {
80
- color: #008080
81
- }
82
-
83
- .hljs-regexp {
84
- color: #009926
85
- }
86
-
87
- .hljs-symbol,
88
- .ruby .hljs-symbol .hljs-string,
89
- .lisp .hljs-keyword,
90
- .tex .hljs-special,
91
- .hljs-prompt {
92
- color: #990073
93
- }
94
-
95
- .hljs-built_in,
96
- .lisp .hljs-title,
97
- .clojure .hljs-built_in {
98
- color: #0086b3
99
- }
100
-
101
- .hljs-preprocessor,
102
- .hljs-pragma,
103
- .hljs-pi,
104
- .hljs-doctype,
105
- .hljs-shebang,
106
- .hljs-cdata {
107
- color: #999;
108
- font-weight: bold
109
- }
110
-
111
- .hljs-deletion {
112
- background: #fdd
113
- }
114
-
115
- .hljs-addition {
116
- background: #dfd
117
- }
118
-
119
- .diff .hljs-change {
120
- background: #0086b3
121
- }
122
-
123
- .hljs-chunk {
124
- color: #aaa
125
- }
@@ -1,4 +0,0 @@
1
- module Caliber
2
- class ApplicationController < ActionController::Base
3
- end
4
- end
@@ -1,56 +0,0 @@
1
- require 'css_parser'
2
-
3
- module Caliber
4
- class CaliberController < Caliber::ApplicationController
5
- include ::CssParser
6
-
7
- layout 'caliber/application'
8
-
9
- before_filter :require_local!
10
-
11
- def index
12
- @css_selectors = []
13
-
14
- Rails.application.assets.each_file do |pathname|
15
-
16
- next unless Rails.application.assets.content_type_of(pathname) == 'text/css'
17
-
18
- #next if @css_selectors.any?
19
-
20
- parser = CssParser::Parser.new
21
-
22
- begin
23
- link = Rails.application.assets[pathname].to_s
24
- parser.add_block! link
25
-
26
- selectors = parser.to_enum(:each_selector).map do |selectors, declarations, specificity, media_types|
27
- declarations = declarations.gsub ";", ";<br>"
28
- {
29
- pathname: pathname.to_s,
30
- selector: selectors,
31
- declarations: declarations,
32
- specificity: specificity,
33
- media_types: media_types
34
- }
35
- end
36
-
37
- @css_selectors.concat selectors
38
- rescue
39
- end
40
- end
41
- end
42
-
43
- private
44
- def require_local!
45
- unless local_request?
46
- render :text => '<p>For security purposes, this information is only available to local requests.</p>', :status => :forbidden
47
- end
48
- end
49
-
50
- def local_request?
51
- Rails.application.config.consider_all_requests_local || request.local?
52
- end
53
-
54
- end
55
- end
56
-
@@ -1,251 +0,0 @@
1
- <style type="text/css">
2
- .result {
3
- width: 500px;
4
- padding: 10px;
5
- }
6
-
7
- .selector,
8
- .selector > input {
9
- font-size: 20px;
10
- font-weight: bold;
11
- }
12
-
13
- .pathname,
14
- .pathname > input {
15
- color: grey;
16
- font-size: 0.8em;
17
- }
18
-
19
- .mediatypes {
20
- color: grey;
21
- float: right;
22
- }
23
-
24
- .mediatypes input {
25
- text-align: right;
26
- }
27
-
28
- .results-list {
29
- list-style-type: none;
30
- padding: 0;
31
- float: left;
32
- }
33
-
34
- .results-list > li:hover {
35
- background-color: lightgrey;
36
- }
37
-
38
- .results-list > li {
39
- border-bottom: #C0C0C0 1px solid;
40
- }
41
-
42
- .filter {
43
- border-right: black solid 1px;
44
- float: left;
45
- }
46
-
47
- .filter input,
48
- #rule-name {
49
- border: none;
50
- background-color: none;
51
- color: black;
52
- border-bottom-width: 1px;
53
- border-bottom-style: dashed;
54
- border-bottom-color: grey;
55
- }
56
-
57
- .rule-filter {
58
- float: left;
59
- }
60
-
61
- .pathname > input {
62
- width: 350px;
63
- }
64
-
65
- .selector > input {
66
- width: 300px;
67
- }
68
-
69
- .top-header {
70
- position: fixed;
71
- top:0;
72
- width: 100%;
73
- border-bottom: black 1px solid;
74
- background-color: white;;
75
- }
76
-
77
- .content {
78
- margin-top: 70px;
79
- }
80
-
81
- .code-preview {
82
- position: absolute;
83
- bottom: 0;
84
- top: 69px;
85
- left:501px;
86
- right:0;
87
- }
88
-
89
- .results-list-container {
90
- overflow: auto;
91
- width: 500px;
92
- position: absolute;
93
- bottom:0;
94
- top:69px;
95
- left:0;
96
- }
97
-
98
- pre {
99
- padding: 0;
100
- border: 0;
101
- height: 100%
102
- }
103
-
104
- pre code {
105
- height: 100%
106
- }
107
-
108
- #rule-name {
109
- margin: 15px;
110
- width: 300px;
111
- }
112
-
113
- </style>
114
-
115
- <div class="top-header">
116
- <div class="result filter">
117
- <div class="mediatypes">
118
- <input type="text" id='mediatype' value='' placeholder='media type'>
119
- </div>
120
- <div class="selector">
121
- <input type="text" id='selector' value='' placeholder='css selector'>
122
- </div>
123
- <div class="pathname">
124
- <input type="text" id='pathname' placeholder='css file path'>
125
- </div>
126
- </div>
127
-
128
- <div class="rule-filter">
129
- <input type="text" id='rule-name' placeholder='css rule'>
130
- </div>
131
- </div>
132
-
133
- <div class="content">
134
- <div class="results-list-container">
135
- <ul class="results-list">
136
- </ul>
137
- </div>
138
- <div class="code-preview">
139
-
140
- </div>
141
- </div>
142
-
143
- <div class="template-result" style="display:none;">
144
- <li class="result">
145
- <div class="mediatypes"></div>
146
- <div class="selector"></div>
147
- <div class="pathname"></div>
148
- </li>
149
- </div>
150
-
151
- <script type="text/javascript">
152
- $(function () {
153
- var data = <%= @css_selectors.to_json.html_safe %>;
154
-
155
- window.gg = data;
156
-
157
- function debounce(fn, delay) {
158
- var timer = null;
159
- return function () {
160
- var context = this, args = arguments;
161
- clearTimeout(timer);
162
- timer = setTimeout(function () {
163
- fn.apply(context, args);
164
- }, delay);
165
- };
166
- }
167
-
168
- var filterData = function () {
169
- var filter_selector = $("#selector").val();
170
- var filter_pathname = $("#pathname").val();
171
- var filter_mediatype = $("#mediatype").val();
172
- var filter_css = $("#rule-name").val();
173
- var max_results = 200;
174
-
175
- var result = [];
176
-
177
- for (var i = 0; i < data.length; i++) {
178
- if (result.length >= max_results) {
179
- break;
180
- }
181
- var item = data[i];
182
- if (item.selector.indexOf(filter_selector) != -1 &&
183
- item.pathname.indexOf(filter_pathname) != -1 &&
184
- item.declarations.indexOf(filter_css) != -1 ) {
185
-
186
- var media_match = false;
187
- for (var b = 0; b < item.media_types.length; b++) {
188
- if (item.media_types[b].indexOf(filter_mediatype) != -1) {
189
- media_match = true;
190
- }
191
- }
192
-
193
- if (media_match || (item.media_types.length == 0 && filter_mediatype.length == 0)) {
194
- item.index_id = i;
195
- result.push(item);
196
- }
197
- }
198
- }
199
-
200
- return result;
201
- }
202
-
203
- var render = function (list) {
204
- var results_list = $('.results-list');
205
- var template = $('.template-result');
206
- template = $(template.html());
207
-
208
- results_list.html('');
209
- for (var i = 0; i < list.length; i++) {
210
- var item = list[i];
211
-
212
- var html = template.clone();
213
- html.data('index-id', item.index_id)
214
- html.find('.selector').text(item.selector);
215
- html.find('.pathname').text(item.pathname);
216
- html.find('.mediatypes').text(item.media_types.join(','));
217
-
218
- results_list.append(html);
219
- }
220
-
221
- }
222
-
223
- var update = debounce(function () {
224
- var filteredData = filterData();
225
- render(filteredData);
226
- }, 500);
227
-
228
- $('.filter').on('keyup', 'input', update);
229
- $('#rule-name').on('keyup', update);
230
-
231
- $('.results-list').on('mouseenter', 'li', function (e) {
232
-
233
- var elem = $(this);
234
- var item = data[elem.data('index-id')];
235
-
236
- var html = '<pre><code class="css">';
237
- html += item.selector + ' {\n ';
238
- html += item.declarations;
239
- html += '};';
240
- html += '</code></pre>';
241
-
242
- $('.code-preview').html(html);
243
-
244
- $('pre code').each(function (i, e) {
245
- hljs.highlightBlock(e)
246
- });
247
-
248
- });
249
- });
250
-
251
- </script>
@@ -1,22 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="UTF-8" />
5
- <title>Caliber of CSS rules</title>
6
-
7
- <%= csrf_meta_tags %>
8
-
9
- <%= javascript_include_tag 'http://code.jquery.com/jquery-1.11.0.min.js' %>
10
- <%= javascript_include_tag "caliber/application" %>
11
- <%= stylesheet_link_tag "caliber/github" %>
12
-
13
- <link href="//netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css" rel="stylesheet">
14
- <!--<script src="//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>-->
15
-
16
- </head>
17
- <body>
18
-
19
- <%= yield %>
20
-
21
- </body>
22
- </html>
data/config/routes.rb DELETED
@@ -1,4 +0,0 @@
1
- Rails.application.routes.draw do
2
- get "rails/info/css" => "caliber/caliber#index"
3
- mount Caliber::Engine => "/caliber", :as => "caliber_engine"
4
- end
@@ -1,5 +0,0 @@
1
- module Caliber
2
- class Engine < Rails::Engine
3
- isolate_namespace Caliber
4
- end
5
- end
@@ -1,3 +0,0 @@
1
- module Caliber
2
- VERSION = "0.0.2"
3
- end