lecter 0.1.6 → 0.2.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.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/.all-contributorsrc +26 -0
  3. data/.circleci/config.yml +86 -0
  4. data/.github/ISSUE_TEMPLATE/bug_report.md +27 -0
  5. data/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  6. data/.github/PULL_REQUEST_TEMPLATE.md +16 -0
  7. data/.gitignore +1 -0
  8. data/.rubocop.yml +25 -0
  9. data/CHANGELOG.md +20 -0
  10. data/CONTRIBUTING.md +35 -0
  11. data/Gemfile +3 -2
  12. data/Gemfile.lock +37 -69
  13. data/LICENSE.txt +1 -1
  14. data/README.md +162 -54
  15. data/Rakefile +5 -3
  16. data/app/controllers/lecter/diagnosis_controller.rb +28 -49
  17. data/app/views/layouts/lecter.html.erb +258 -0
  18. data/app/views/lecter/diagnosis/new.html.erb +61 -0
  19. data/app/views/lecter/diagnosis/show.html.erb +54 -0
  20. data/bin/console +1 -0
  21. data/bin/rails +2 -0
  22. data/config/locales/en.yml +4 -3
  23. data/config/locales/ru.yml +4 -3
  24. data/config/routes.rb +5 -1
  25. data/lecter.gemspec +9 -5
  26. data/lib/lecter/engine.rb +2 -0
  27. data/lib/lecter/formatter_headers.rb +26 -0
  28. data/lib/lecter/formatter_payload.rb +35 -0
  29. data/lib/lecter/html_generator.rb +66 -0
  30. data/lib/lecter/html_row.rb +42 -0
  31. data/lib/lecter/rack.rb +30 -36
  32. data/lib/lecter/railtie.rb +9 -0
  33. data/lib/lecter/requester.rb +63 -0
  34. data/lib/lecter/trace_point.rb +30 -0
  35. data/lib/lecter/version.rb +3 -1
  36. data/lib/lecter.rb +15 -11
  37. metadata +45 -19
  38. data/.travis.yml +0 -7
  39. data/app/assets/javascripts/lecter.js +0 -2
  40. data/app/assets/stylesheets/lecter.css +0 -261
  41. data/app/views/layouts/lecter.slim +0 -14
  42. data/app/views/lecter/diagnosis/new.erb +0 -20
  43. data/app/views/lecter/diagnosis/show.slim +0 -52
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lecter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Neodelf
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-07-29 00:00:00.000000000 Z
11
+ date: 2022-02-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '10.0'
33
+ version: '13.0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '10.0'
40
+ version: '13.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -53,13 +53,13 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: slim-rails
56
+ name: rubocop
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
- type: :runtime
62
+ type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
@@ -80,28 +80,48 @@ dependencies:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
- description: Write a longer description or delete this line.
83
+ - !ruby/object:Gem::Dependency
84
+ name: simplecov
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '='
88
+ - !ruby/object:Gem::Version
89
+ version: 0.17.1
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '='
95
+ - !ruby/object:Gem::Version
96
+ version: 0.17.1
97
+ description: The main purpose of that gem is helping developers to understand which
98
+ code executes by request.<br>
84
99
  email:
85
100
  - neodelf@gmail.com
86
101
  executables: []
87
102
  extensions: []
88
103
  extra_rdoc_files: []
89
104
  files:
105
+ - ".all-contributorsrc"
106
+ - ".circleci/config.yml"
107
+ - ".github/ISSUE_TEMPLATE/bug_report.md"
108
+ - ".github/ISSUE_TEMPLATE/feature_request.md"
109
+ - ".github/PULL_REQUEST_TEMPLATE.md"
90
110
  - ".gitignore"
91
111
  - ".rspec"
92
- - ".travis.yml"
112
+ - ".rubocop.yml"
113
+ - CHANGELOG.md
93
114
  - CODE_OF_CONDUCT.md
115
+ - CONTRIBUTING.md
94
116
  - Gemfile
95
117
  - Gemfile.lock
96
118
  - LICENSE.txt
97
119
  - README.md
98
120
  - Rakefile
99
- - app/assets/javascripts/lecter.js
100
- - app/assets/stylesheets/lecter.css
101
121
  - app/controllers/lecter/diagnosis_controller.rb
102
- - app/views/layouts/lecter.slim
103
- - app/views/lecter/diagnosis/new.erb
104
- - app/views/lecter/diagnosis/show.slim
122
+ - app/views/layouts/lecter.html.erb
123
+ - app/views/lecter/diagnosis/new.html.erb
124
+ - app/views/lecter/diagnosis/show.html.erb
105
125
  - bin/console
106
126
  - bin/rails
107
127
  - bin/setup
@@ -111,7 +131,14 @@ files:
111
131
  - lecter.gemspec
112
132
  - lib/lecter.rb
113
133
  - lib/lecter/engine.rb
134
+ - lib/lecter/formatter_headers.rb
135
+ - lib/lecter/formatter_payload.rb
136
+ - lib/lecter/html_generator.rb
137
+ - lib/lecter/html_row.rb
114
138
  - lib/lecter/rack.rb
139
+ - lib/lecter/railtie.rb
140
+ - lib/lecter/requester.rb
141
+ - lib/lecter/trace_point.rb
115
142
  - lib/lecter/version.rb
116
143
  homepage: https://github.com/neodelf/lecter
117
144
  licenses:
@@ -119,7 +146,7 @@ licenses:
119
146
  metadata:
120
147
  allowed_push_host: https://rubygems.org
121
148
  homepage_uri: https://github.com/neodelf/lecter
122
- post_install_message:
149
+ post_install_message:
123
150
  rdoc_options: []
124
151
  require_paths:
125
152
  - lib
@@ -134,9 +161,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
134
161
  - !ruby/object:Gem::Version
135
162
  version: '0'
136
163
  requirements: []
137
- rubyforge_project:
138
- rubygems_version: 2.7.9
139
- signing_key:
164
+ rubygems_version: 3.0.8
165
+ signing_key:
140
166
  specification_version: 4
141
- summary: Write a short summary, because RubyGems requires one.
167
+ summary: Show executable code by request.
142
168
  test_files: []
data/.travis.yml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- sudo: false
3
- language: ruby
4
- cache: bundler
5
- rvm:
6
- - 2.5.5
7
- before_install: gem install bundler -v 2.0.2
@@ -1,2 +0,0 @@
1
- /*! highlight.js v9.15.8 | BSD3 License | git.io/hljslicense */
2
- !function(e){var n="object"==typeof window&&window||"object"==typeof self&&self;"undefined"!=typeof exports?e(exports):n&&(n.hljs=e({}),"function"==typeof define&&define.amd&&define([],function(){return n.hljs}))}(function(a){var f=[],u=Object.keys,N={},c={},n=/^(no-?highlight|plain|text)$/i,s=/\blang(?:uage)?-([\w-]+)\b/i,t=/((^(<[^>]+>|\t|)+|(?:\n)))/gm,r={case_insensitive:"cI",lexemes:"l",contains:"c",keywords:"k",subLanguage:"sL",className:"cN",begin:"b",beginKeywords:"bK",end:"e",endsWithParent:"eW",illegal:"i",excludeBegin:"eB",excludeEnd:"eE",returnBegin:"rB",returnEnd:"rE",relevance:"r",variants:"v",IDENT_RE:"IR",UNDERSCORE_IDENT_RE:"UIR",NUMBER_RE:"NR",C_NUMBER_RE:"CNR",BINARY_NUMBER_RE:"BNR",RE_STARTERS_RE:"RSR",BACKSLASH_ESCAPE:"BE",APOS_STRING_MODE:"ASM",QUOTE_STRING_MODE:"QSM",PHRASAL_WORDS_MODE:"PWM",C_LINE_COMMENT_MODE:"CLCM",C_BLOCK_COMMENT_MODE:"CBCM",HASH_COMMENT_MODE:"HCM",NUMBER_MODE:"NM",C_NUMBER_MODE:"CNM",BINARY_NUMBER_MODE:"BNM",CSS_NUMBER_MODE:"CSSNM",REGEXP_MODE:"RM",TITLE_MODE:"TM",UNDERSCORE_TITLE_MODE:"UTM",COMMENT:"C",beginRe:"bR",endRe:"eR",illegalRe:"iR",lexemesRe:"lR",terminators:"t",terminator_end:"tE"},b="</span>",h={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0};function _(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function E(e){return e.nodeName.toLowerCase()}function v(e,n){var t=e&&e.exec(n);return t&&0===t.index}function l(e){return n.test(e)}function g(e){var n,t={},r=Array.prototype.slice.call(arguments,1);for(n in e)t[n]=e[n];return r.forEach(function(e){for(n in e)t[n]=e[n]}),t}function R(e){var a=[];return function e(n,t){for(var r=n.firstChild;r;r=r.nextSibling)3===r.nodeType?t+=r.nodeValue.length:1===r.nodeType&&(a.push({event:"start",offset:t,node:r}),t=e(r,t),E(r).match(/br|hr|img|input/)||a.push({event:"stop",offset:t,node:r}));return t}(e,0),a}function i(e){if(r&&!e.langApiRestored){for(var n in e.langApiRestored=!0,r)e[n]&&(e[r[n]]=e[n]);(e.c||[]).concat(e.v||[]).forEach(i)}}function m(o){function s(e){return e&&e.source||e}function c(e,n){return new RegExp(s(e),"m"+(o.cI?"i":"")+(n?"g":""))}!function n(t,e){if(!t.compiled){if(t.compiled=!0,t.k=t.k||t.bK,t.k){function r(t,e){o.cI&&(e=e.toLowerCase()),e.split(" ").forEach(function(e){var n=e.split("|");a[n[0]]=[t,n[1]?Number(n[1]):1]})}var a={};"string"==typeof t.k?r("keyword",t.k):u(t.k).forEach(function(e){r(e,t.k[e])}),t.k=a}t.lR=c(t.l||/\w+/,!0),e&&(t.bK&&(t.b="\\b("+t.bK.split(" ").join("|")+")\\b"),t.b||(t.b=/\B|\b/),t.bR=c(t.b),t.endSameAsBegin&&(t.e=t.b),t.e||t.eW||(t.e=/\B|\b/),t.e&&(t.eR=c(t.e)),t.tE=s(t.e)||"",t.eW&&e.tE&&(t.tE+=(t.e?"|":"")+e.tE)),t.i&&(t.iR=c(t.i)),null==t.r&&(t.r=1),t.c||(t.c=[]),t.c=Array.prototype.concat.apply([],t.c.map(function(e){return function(n){return n.v&&!n.cached_variants&&(n.cached_variants=n.v.map(function(e){return g(n,{v:null},e)})),n.cached_variants||n.eW&&[g(n)]||[n]}("self"===e?t:e)})),t.c.forEach(function(e){n(e,t)}),t.starts&&n(t.starts,e);var i=t.c.map(function(e){return e.bK?"\\.?(?:"+e.b+")\\.?":e.b}).concat([t.tE,t.i]).map(s).filter(Boolean);t.t=i.length?c(function(e,n){for(var t=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./,r=0,a="",i=0;i<e.length;i++){var o=r,c=s(e[i]);for(0<i&&(a+=n);0<c.length;){var u=t.exec(c);if(null==u){a+=c;break}a+=c.substring(0,u.index),c=c.substring(u.index+u[0].length),"\\"==u[0][0]&&u[1]?a+="\\"+String(Number(u[1])+o):(a+=u[0],"("==u[0]&&r++)}}return a}(i,"|"),!0):{exec:function(){return null}}}}(o)}function C(e,n,i,t){function c(e,n,t,r){var a='<span class="'+(r?"":h.classPrefix);return e?(a+=e+'">')+n+(t?"":b):n}function o(){E+=null!=l.sL?function(){var e="string"==typeof l.sL;if(e&&!N[l.sL])return _(g);var n=e?C(l.sL,g,!0,f[l.sL]):O(g,l.sL.length?l.sL:void 0);return 0<l.r&&(R+=n.r),e&&(f[l.sL]=n.top),c(n.language,n.value,!1,!0)}():function(){var e,n,t,r,a,i,o;if(!l.k)return _(g);for(r="",n=0,l.lR.lastIndex=0,t=l.lR.exec(g);t;)r+=_(g.substring(n,t.index)),a=l,i=t,void 0,o=s.cI?i[0].toLowerCase():i[0],(e=a.k.hasOwnProperty(o)&&a.k[o])?(R+=e[1],r+=c(e[0],_(t[0]))):r+=_(t[0]),n=l.lR.lastIndex,t=l.lR.exec(g);return r+_(g.substr(n))}(),g=""}function u(e){E+=e.cN?c(e.cN,"",!0):"",l=Object.create(e,{parent:{value:l}})}function r(e,n){if(g+=e,null==n)return o(),0;var t=function(e,n){var t,r,a;for(t=0,r=n.c.length;t<r;t++)if(v(n.c[t].bR,e))return n.c[t].endSameAsBegin&&(n.c[t].eR=(a=n.c[t].bR.exec(e)[0],new RegExp(a.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"),"m"))),n.c[t]}(n,l);if(t)return t.skip?g+=n:(t.eB&&(g+=n),o(),t.rB||t.eB||(g=n)),u(t),t.rB?0:n.length;var r=function e(n,t){if(v(n.eR,t)){for(;n.endsParent&&n.parent;)n=n.parent;return n}if(n.eW)return e(n.parent,t)}(l,n);if(r){var a=l;for(a.skip?g+=n:(a.rE||a.eE||(g+=n),o(),a.eE&&(g=n));l.cN&&(E+=b),l.skip||l.sL||(R+=l.r),(l=l.parent)!==r.parent;);return r.starts&&(r.endSameAsBegin&&(r.starts.eR=r.eR),u(r.starts)),a.rE?0:n.length}if(function(e,n){return!i&&v(n.iR,e)}(n,l))throw new Error('Illegal lexeme "'+n+'" for mode "'+(l.cN||"<unnamed>")+'"');return g+=n,n.length||1}var s=B(e);if(!s)throw new Error('Unknown language: "'+e+'"');m(s);var a,l=t||s,f={},E="";for(a=l;a!==s;a=a.parent)a.cN&&(E=c(a.cN,"",!0)+E);var g="",R=0;try{for(var d,p,M=0;l.t.lastIndex=M,d=l.t.exec(n);)p=r(n.substring(M,d.index),d[0]),M=d.index+p;for(r(n.substr(M)),a=l;a.parent;a=a.parent)a.cN&&(E+=b);return{r:R,value:E,language:e,top:l}}catch(e){if(e.message&&-1!==e.message.indexOf("Illegal"))return{r:0,value:_(n)};throw e}}function O(t,e){e=e||h.languages||u(N);var r={r:0,value:_(t)},a=r;return e.filter(B).filter(M).forEach(function(e){var n=C(e,t,!1);n.language=e,n.r>a.r&&(a=n),n.r>r.r&&(a=r,r=n)}),a.language&&(r.second_best=a),r}function d(e){return h.tabReplace||h.useBR?e.replace(t,function(e,n){return h.useBR&&"\n"===e?"<br>":h.tabReplace?n.replace(/\t/g,h.tabReplace):""}):e}function o(e){var n,t,r,a,i,o=function(e){var n,t,r,a,i=e.className+" ";if(i+=e.parentNode?e.parentNode.className:"",t=s.exec(i))return B(t[1])?t[1]:"no-highlight";for(n=0,r=(i=i.split(/\s+/)).length;n<r;n++)if(l(a=i[n])||B(a))return a}(e);l(o)||(h.useBR?(n=document.createElementNS("http://www.w3.org/1999/xhtml","div")).innerHTML=e.innerHTML.replace(/\n/g,"").replace(/<br[ \/]*>/g,"\n"):n=e,i=n.textContent,r=o?C(o,i,!0):O(i),(t=R(n)).length&&((a=document.createElementNS("http://www.w3.org/1999/xhtml","div")).innerHTML=r.value,r.value=function(e,n,t){var r=0,a="",i=[];function o(){return e.length&&n.length?e[0].offset!==n[0].offset?e[0].offset<n[0].offset?e:n:"start"===n[0].event?e:n:e.length?e:n}function c(e){a+="<"+E(e)+f.map.call(e.attributes,function(e){return" "+e.nodeName+'="'+_(e.value).replace('"',"&quot;")+'"'}).join("")+">"}function u(e){a+="</"+E(e)+">"}function s(e){("start"===e.event?c:u)(e.node)}for(;e.length||n.length;){var l=o();if(a+=_(t.substring(r,l[0].offset)),r=l[0].offset,l===e){for(i.reverse().forEach(u);s(l.splice(0,1)[0]),(l=o())===e&&l.length&&l[0].offset===r;);i.reverse().forEach(c)}else"start"===l[0].event?i.push(l[0].node):i.pop(),s(l.splice(0,1)[0])}return a+_(t.substr(r))}(t,R(a),i)),r.value=d(r.value),e.innerHTML=r.value,e.className=function(e,n,t){var r=n?c[n]:t,a=[e.trim()];return e.match(/\bhljs\b/)||a.push("hljs"),-1===e.indexOf(r)&&a.push(r),a.join(" ").trim()}(e.className,o,r.language),e.result={language:r.language,re:r.r},r.second_best&&(e.second_best={language:r.second_best.language,re:r.second_best.r}))}function p(){if(!p.called){p.called=!0;var e=document.querySelectorAll("pre code");f.forEach.call(e,o)}}function B(e){return e=(e||"").toLowerCase(),N[e]||N[c[e]]}function M(e){var n=B(e);return n&&!n.disableAutodetect}return a.highlight=C,a.highlightAuto=O,a.fixMarkup=d,a.highlightBlock=o,a.configure=function(e){h=g(h,e)},a.initHighlighting=p,a.initHighlightingOnLoad=function(){addEventListener("DOMContentLoaded",p,!1),addEventListener("load",p,!1)},a.registerLanguage=function(n,e){var t=N[n]=e(a);i(t),t.aliases&&t.aliases.forEach(function(e){c[e]=n})},a.listLanguages=function(){return u(N)},a.getLanguage=B,a.autoDetection=M,a.inherit=g,a.IR=a.IDENT_RE="[a-zA-Z]\\w*",a.UIR=a.UNDERSCORE_IDENT_RE="[a-zA-Z_]\\w*",a.NR=a.NUMBER_RE="\\b\\d+(\\.\\d+)?",a.CNR=a.C_NUMBER_RE="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",a.BNR=a.BINARY_NUMBER_RE="\\b(0b[01]+)",a.RSR=a.RE_STARTERS_RE="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",a.BE=a.BACKSLASH_ESCAPE={b:"\\\\[\\s\\S]",r:0},a.ASM=a.APOS_STRING_MODE={cN:"string",b:"'",e:"'",i:"\\n",c:[a.BE]},a.QSM=a.QUOTE_STRING_MODE={cN:"string",b:'"',e:'"',i:"\\n",c:[a.BE]},a.PWM=a.PHRASAL_WORDS_MODE={b:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},a.C=a.COMMENT=function(e,n,t){var r=a.inherit({cN:"comment",b:e,e:n,c:[]},t||{});return r.c.push(a.PWM),r.c.push({cN:"doctag",b:"(?:TODO|FIXME|NOTE|BUG|XXX):",r:0}),r},a.CLCM=a.C_LINE_COMMENT_MODE=a.C("//","$"),a.CBCM=a.C_BLOCK_COMMENT_MODE=a.C("/\\*","\\*/"),a.HCM=a.HASH_COMMENT_MODE=a.C("#","$"),a.NM=a.NUMBER_MODE={cN:"number",b:a.NR,r:0},a.CNM=a.C_NUMBER_MODE={cN:"number",b:a.CNR,r:0},a.BNM=a.BINARY_NUMBER_MODE={cN:"number",b:a.BNR,r:0},a.CSSNM=a.CSS_NUMBER_MODE={cN:"number",b:a.NR+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",r:0},a.RM=a.REGEXP_MODE={cN:"regexp",b:/\//,e:/\/[gimuy]*/,i:/\n/,c:[a.BE,{b:/\[/,e:/\]/,r:0,c:[a.BE]}]},a.TM=a.TITLE_MODE={cN:"title",b:a.IR,r:0},a.UTM=a.UNDERSCORE_TITLE_MODE={cN:"title",b:a.UIR,r:0},a.METHOD_GUARD={b:"\\.\\s*"+a.UIR,r:0},a});hljs.registerLanguage("ruby",function(e){var b="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?",r={keyword:"and then defined module in return redo if BEGIN retry end for self when next until do begin unless END rescue else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor",literal:"true false nil"},c={cN:"doctag",b:"@[A-Za-z]+"},a={b:"#<",e:">"},s=[e.C("#","$",{c:[c]}),e.C("^\\=begin","^\\=end",{c:[c],r:10}),e.C("^__END__","\\n$")],n={cN:"subst",b:"#\\{",e:"}",k:r},t={cN:"string",c:[e.BE,n],v:[{b:/'/,e:/'/},{b:/"/,e:/"/},{b:/`/,e:/`/},{b:"%[qQwWx]?\\(",e:"\\)"},{b:"%[qQwWx]?\\[",e:"\\]"},{b:"%[qQwWx]?{",e:"}"},{b:"%[qQwWx]?<",e:">"},{b:"%[qQwWx]?/",e:"/"},{b:"%[qQwWx]?%",e:"%"},{b:"%[qQwWx]?-",e:"-"},{b:"%[qQwWx]?\\|",e:"\\|"},{b:/\B\?(\\\d{1,3}|\\x[A-Fa-f0-9]{1,2}|\\u[A-Fa-f0-9]{4}|\\?\S)\b/},{b:/<<(-?)\w+$/,e:/^\s*\w+$/}]},i={cN:"params",b:"\\(",e:"\\)",endsParent:!0,k:r},d=[t,a,{cN:"class",bK:"class module",e:"$|;",i:/=/,c:[e.inherit(e.TM,{b:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"}),{b:"<\\s*",c:[{b:"("+e.IR+"::)?"+e.IR}]}].concat(s)},{cN:"function",bK:"def",e:"$|;",c:[e.inherit(e.TM,{b:b}),i].concat(s)},{b:e.IR+"::"},{cN:"symbol",b:e.UIR+"(\\!|\\?)?:",r:0},{cN:"symbol",b:":(?!\\s)",c:[t,{b:b}],r:0},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{b:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{cN:"params",b:/\|/,e:/\|/,k:r},{b:"("+e.RSR+"|unless)\\s*",k:"unless",c:[a,{cN:"regexp",c:[e.BE,n],i:/\n/,v:[{b:"/",e:"/[a-z]*"},{b:"%r{",e:"}[a-z]*"},{b:"%r\\(",e:"\\)[a-z]*"},{b:"%r!",e:"![a-z]*"},{b:"%r\\[",e:"\\][a-z]*"}]}].concat(s),r:0}].concat(s);n.c=d;var l=[{b:/^\s*=>/,starts:{e:"$",c:i.c=d}},{cN:"meta",b:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+>|(\\w+-)?\\d+\\.\\d+\\.\\d(p\\d+)?[^>]+>)",starts:{e:"$",c:d}}];return{aliases:["rb","gemspec","podspec","thor","irb"],k:r,i:/\/\*/,c:s.concat(l).concat(d)}});
@@ -1,261 +0,0 @@
1
- /*
2
-
3
- Railscasts-like style (c) Visoft, Inc. (Damien White)
4
-
5
- */
6
-
7
- .hljs {
8
- display: block;
9
- overflow-x: auto;
10
- padding: 0.5em;
11
- background: #232323;
12
- color: #e6e1dc;
13
- }
14
-
15
- .hljs-comment,
16
- .hljs-quote {
17
- color: #bc9458;
18
- font-style: italic;
19
- }
20
-
21
- .hljs-keyword,
22
- .hljs-selector-tag {
23
- color: #c26230;
24
- }
25
-
26
- .hljs-string,
27
- .hljs-number,
28
- .hljs-regexp,
29
- .hljs-variable,
30
- .hljs-template-variable {
31
- color: #a5c261;
32
- }
33
-
34
- .hljs-subst {
35
- color: #519f50;
36
- }
37
-
38
- .hljs-tag,
39
- .hljs-name {
40
- color: #e8bf6a;
41
- }
42
-
43
- .hljs-type {
44
- color: #da4939;
45
- }
46
-
47
-
48
- .hljs-symbol,
49
- .hljs-bullet,
50
- .hljs-built_in,
51
- .hljs-builtin-name,
52
- .hljs-attr,
53
- .hljs-link {
54
- color: #6d9cbe;
55
- }
56
-
57
- .hljs-params {
58
- color: #d0d0ff;
59
- }
60
-
61
- .hljs-attribute {
62
- color: #cda869;
63
- }
64
-
65
- .hljs-meta {
66
- color: #9b859d;
67
- }
68
-
69
- .hljs-title,
70
- .hljs-section {
71
- color: #ffc66d;
72
- }
73
-
74
- .hljs-addition {
75
- background-color: #144212;
76
- color: #e6e1dc;
77
- display: inline-block;
78
- width: 100%;
79
- }
80
-
81
- .hljs-deletion {
82
- background-color: #600;
83
- color: #e6e1dc;
84
- display: inline-block;
85
- width: 100%;
86
- }
87
-
88
- .hljs-selector-class {
89
- color: #9b703f;
90
- }
91
-
92
- .hljs-selector-id {
93
- color: #8b98ab;
94
- }
95
-
96
- .hljs-emphasis {
97
- font-style: italic;
98
- }
99
-
100
- .hljs-strong {
101
- font-weight: bold;
102
- }
103
-
104
- .hljs-link {
105
- text-decoration: underline;
106
- }
107
-
108
- /* diagnosis/show.slim */
109
-
110
-
111
- .arrow-right {
112
- width: 0;
113
- height: 0;
114
- border-top: 5px solid transparent;
115
- border-bottom: 5px solid transparent;
116
- border-left: 5px solid black;
117
- float: left;
118
- margin: 7px;
119
- }
120
-
121
- .down {
122
- border-left: 5px solid transparent;
123
- border-right: 5px solid transparent;
124
- border-top: 5px solid black;
125
- margin: 10px 7px 0 5px;
126
- }
127
-
128
- .ui-accordion .ui-accordion-header {
129
- font-size: 78%;
130
- }
131
-
132
- .sidebar {
133
- float: left;
134
- }
135
-
136
- .sidebar > .sidebar-wrapper {
137
- width: 235px;
138
- position: fixed;
139
- margin: 49px 33px 0 0;
140
- overflow-y: scroll;
141
- top: 82px;
142
- bottom: 40px;
143
- }
144
-
145
- .sidebar-wrapper > ul {
146
- list-style-type: none;
147
- height: calc(100% - 40px);
148
- }
149
-
150
- .sidebar-wrapper > ul > li {
151
- margin-bottom: 3px;
152
- }
153
-
154
- .sidebar-wrapper > ul > li > a {
155
- text-decoration: none;
156
- color: inherit;
157
- display: block;
158
- font-size: 13px;
159
- text-inline: 1.5;
160
- }
161
-
162
- .sidebar-wrapper > ul > li > a:hover {
163
- color: #7d7d7d;
164
- }
165
-
166
- .right {
167
- float: left;
168
- padding-left: 10px;
169
- width: 70%;
170
- margin-left: 297px;
171
- }
172
-
173
- .listing {
174
- display: none;
175
- padding: 1em 2.2em;
176
- overflow: auto;
177
- border-bottom-right-radius: 4px;
178
- border: 0.5px solid;
179
- border-top-width: 0;
180
- border-bottom-left-radius: 4px;
181
- background: #efefef;
182
- }
183
-
184
- .filename {
185
- cursor: pointer;
186
- position: relative;
187
- margin: 2px 0 0 0;
188
- padding: .5em .5em .5em .7em;
189
- border: solid 0.1px;
190
- background: #efefef;
191
- }
192
-
193
- /* layouts/lecter.slim */
194
-
195
- body {
196
- font-family: "Helvetica Neue", "Helvetica", Arial, "Open Sans", sans-serif;
197
- font-size: 15px;
198
- line-height: 1.6;
199
- -webkit-font-smoothing: antialiased;
200
- }
201
-
202
- .body-wrapper {
203
- overflow: hidden;
204
- *zoom: 1;
205
- margin-top: 50px;
206
- margin-bottom: 50px;
207
- display: block;
208
- max-width: 955px;
209
- margin: 0 auto;
210
- padding: 0 20px;
211
- }
212
-
213
- .nav {
214
- font-weight: 500;
215
- background: #0b4e22;
216
- border-bottom: 1px solid #cccccc;
217
- }
218
-
219
- .nav-inner {
220
- display: block;
221
- max-width: 955px;
222
- margin: 0 auto;
223
- padding: 1px 20px;
224
- }
225
-
226
- .nav-inner > ul {
227
- list-style-type: none;
228
- }
229
-
230
- .nav-inner > ul > li > a {
231
- text-decoration: none;
232
- font-weight: 600;
233
- color: white;
234
- letter-spacing: 0.4px;
235
- }
236
-
237
- .ul {
238
- -webkit-justify-content: space-between;
239
- justify-content: space-between;
240
- list-style-type: none;
241
- margin: 0;
242
- padding: 8px 2px 8px;
243
- display: -webkit-flex;
244
- display: flex;
245
- }
246
-
247
- .li {
248
- -webkit-flex: 0 1 auto;
249
- flex: 0 1 auto;
250
- display: list-item;
251
- text-align: -webkit-match-parent;
252
- list-style-type: none;
253
- }
254
-
255
- .nav-inner > li > a {
256
- text-decoration: none;
257
- font-weight: 400;
258
- color: white;
259
- letter-spacing: 0.4px;
260
- }
261
-
@@ -1,14 +0,0 @@
1
- html
2
- head
3
- title
4
- = yield(:title)
5
- = stylesheet_link_tag 'lecter'
6
- = javascript_include_tag 'lecter'
7
- body
8
- .nav
9
- .nav-inner
10
- ul
11
- li
12
- = link_to t('.new_diagnosis'), new_diagnosis_path
13
- .body-wrapper
14
- = yield
@@ -1,20 +0,0 @@
1
- <%= content_for :title, t('.title') %>
2
-
3
- <h1><%= t('.title') %></h1>
4
-
5
- <%= form_tag diagnosis_path do %>
6
- <% flash.each do |key, value| %>
7
- <%= value %>
8
- <% end %>
9
- <% %i[endpoint params].each do |attr| %>
10
- <p>
11
- <%= label_tag t(".#{attr}") %>
12
- <%= text_field_tag attr %>
13
- </p>
14
- <% end %>
15
- <p>
16
- <%= label_tag t('.method') %>
17
- <%= select_tag :method, options_for_select(%w[GET POST PUT PATCH DELETE], 'GET') %>
18
- </p>
19
- <%= submit_tag t('.create') %>
20
- <% end %>
@@ -1,52 +0,0 @@
1
- = javascript_include_tag 'highlight.pack.js', '//code.jquery.com/jquery-1.12.4.js', '//code.jquery.com/ui/1.12.1/jquery-ui.js'
2
- = stylesheet_link_tag 'railscasts'
3
-
4
- = content_for :title, t('.title')
5
-
6
- .sidebar
7
- .sidebar-wrapper
8
- ul
9
- - @lines.each_with_index do |item, item_index|
10
- li = link_to item.keys.first.split('/').last, "#anchor#{item_index}"
11
- .right
12
- h4
13
- = t('.response_status', status: @response_status)
14
- - @lines.each_with_index do |item, item_index|
15
- .filename id="anchor#{item_index}"
16
- - file = item.keys.first
17
- .arrow-right
18
- .filename-title
19
- = file.remove(Rails.root.to_s)
20
- - lines = item.values.split(' ').flatten.map(&:to_i)
21
- - previous_row_is_empty = false
22
- .listing
23
- - file_context = File.open(Rails.root.join(file), 'r').read.split("\n")
24
- - html_rows = []
25
- - file_context.each_with_index do |row, index_row|
26
- - include = lines.include?(index_row + 1)
27
- - if include || lines.reduce(false) { |memo, line| memo || index_row.in?(line - 5..line + 4) }
28
- - previous_row_is_empty = false
29
- - html_row = "#{index_row + 1} #{'-> ' + lines.each_with_index.select { |_, index| lines[index] == index_row + 1 }.map { |_, index| index + 1 }.join(', ') if include} #{row}\n"
30
- - html_rows << content_tag(:code, html_row, style: "#{include ? 'background-color: #4a4a4a;' : nil}")
31
- - elsif !previous_row_is_empty
32
- - previous_row_is_empty = true
33
- - html_rows << "...\n"
34
- pre
35
- code
36
- - html_rows.each do |html_row|
37
- = html_row
38
-
39
- javascript:
40
- $(document).ready(function(){
41
- hljs.initHighlighting();
42
-
43
- $('.filename').on('click', function(){
44
- $(this).find('.arrow-right').toggleClass('down')
45
- $(this).next().slideToggle();
46
- });
47
-
48
- $('.sidebar-wrapper > ul > li > a').on('click', function(){
49
- var anchor = $(this).first().attr('href').split('#').pop();
50
- $('.filename#'+anchor).click();
51
- });
52
- })