code_zauker 0.0.4 → 0.0.5

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 (48) hide show
  1. data/.gitignore +1 -0
  2. data/BUGS.org +0 -0
  3. data/LICENSE.txt +0 -0
  4. data/Rakefile +0 -0
  5. data/bin/czsearch +5 -0
  6. data/bin/webgui +1 -0
  7. data/code_zauker.gemspec +3 -2
  8. data/devel.org +0 -0
  9. data/doc/CodeZauker.html +3 -3
  10. data/doc/CodeZauker/FileScanner.html +2 -2
  11. data/doc/CodeZauker/Util.html +2 -2
  12. data/doc/Grep.html +2 -2
  13. data/doc/_index.html +3 -3
  14. data/doc/class_list.html +0 -0
  15. data/doc/css/common.css +0 -0
  16. data/doc/css/full_list.css +0 -0
  17. data/doc/css/style.css +0 -0
  18. data/doc/file_list.html +0 -0
  19. data/doc/frames.html +1 -1
  20. data/doc/index.html +3 -3
  21. data/doc/js/app.js +0 -0
  22. data/doc/js/full_list.js +0 -0
  23. data/doc/js/jquery.js +0 -0
  24. data/doc/method_list.html +0 -0
  25. data/doc/top-level-namespace.html +2 -2
  26. data/etc/redis.conf +2 -1
  27. data/htdocs/CodeZauker.gif +0 -0
  28. data/htdocs/Gioorgi.gif +0 -0
  29. data/htdocs/css/bootstrap-responsive.css +686 -0
  30. data/htdocs/css/bootstrap-responsive.min.css +12 -0
  31. data/htdocs/css/bootstrap.css +3990 -0
  32. data/htdocs/css/bootstrap.min.css +689 -0
  33. data/htdocs/img/glyphicons-halflings-white.png +0 -0
  34. data/htdocs/img/glyphicons-halflings.png +0 -0
  35. data/htdocs/js/bootstrap.js +1726 -0
  36. data/htdocs/js/bootstrap.min.js +6 -0
  37. data/lib/code_zauker.rb +0 -0
  38. data/lib/code_zauker/constants.rb +0 -0
  39. data/lib/code_zauker/grep.rb +0 -0
  40. data/lib/code_zauker/version.rb +1 -1
  41. data/lib/code_zauker/webgui.rb +47 -0
  42. data/readme.org +9 -8
  43. data/templates/search.erb +58 -0
  44. data/templates/show_results.erb +67 -0
  45. data/test/fixture/TEST_LICENSE.txt +0 -0
  46. data/test/fixture/testArchive.zip +0 -0
  47. data/test/test_pdf_indexing.rb +0 -0
  48. metadata +38 -12
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Bootstrap.js by @fat & @mdo
3
+ * Copyright 2012 Twitter, Inc.
4
+ * http://www.apache.org/licenses/LICENSE-2.0.txt
5
+ */
6
+ !function(a){a(function(){"use strict",a.support.transition=function(){var b=document.body||document.documentElement,c=b.style,d=c.transition!==undefined||c.WebkitTransition!==undefined||c.MozTransition!==undefined||c.MsTransition!==undefined||c.OTransition!==undefined;return d&&{end:function(){var b="TransitionEnd";return a.browser.webkit?b="webkitTransitionEnd":a.browser.mozilla?b="transitionend":a.browser.opera&&(b="oTransitionEnd"),b}()}}()})}(window.jQuery),!function(a){"use strict";var b='[data-dismiss="alert"]',c=function(c){a(c).on("click",b,this.close)};c.prototype={constructor:c,close:function(b){function f(){e.trigger("closed").remove()}var c=a(this),d=c.attr("data-target"),e;d||(d=c.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),e=a(d),e.trigger("close"),b&&b.preventDefault(),e.length||(e=c.hasClass("alert")?c:c.parent()),e.trigger("close").removeClass("in"),a.support.transition&&e.hasClass("fade")?e.on(a.support.transition.end,f):f()}},a.fn.alert=function(b){return this.each(function(){var d=a(this),e=d.data("alert");e||d.data("alert",e=new c(this)),typeof b=="string"&&e[b].call(d)})},a.fn.alert.Constructor=c,a(function(){a("body").on("click.alert.data-api",b,c.prototype.close)})}(window.jQuery),!function(a){"use strict";var b=function(b,c){this.$element=a(b),this.options=a.extend({},a.fn.button.defaults,c)};b.prototype={constructor:b,setState:function(a){var b="disabled",c=this.$element,d=c.data(),e=c.is("input")?"val":"html";a+="Text",d.resetText||c.data("resetText",c[e]()),c[e](d[a]||this.options[a]),setTimeout(function(){a=="loadingText"?c.addClass(b).attr(b,b):c.removeClass(b).removeAttr(b)},0)},toggle:function(){var a=this.$element.parent('[data-toggle="buttons-radio"]');a&&a.find(".active").removeClass("active"),this.$element.toggleClass("active")}},a.fn.button=function(c){return this.each(function(){var d=a(this),e=d.data("button"),f=typeof c=="object"&&c;e||d.data("button",e=new b(this,f)),c=="toggle"?e.toggle():c&&e.setState(c)})},a.fn.button.defaults={loadingText:"loading..."},a.fn.button.Constructor=b,a(function(){a("body").on("click.button.data-api","[data-toggle^=button]",function(b){var c=a(b.target);c.hasClass("btn")||(c=c.closest(".btn")),c.button("toggle")})})}(window.jQuery),!function(a){"use strict";var b=function(b,c){this.$element=a(b),this.options=a.extend({},a.fn.carousel.defaults,c),this.options.slide&&this.slide(this.options.slide),this.options.pause=="hover"&&this.$element.on("mouseenter",a.proxy(this.pause,this)).on("mouseleave",a.proxy(this.cycle,this))};b.prototype={cycle:function(){return this.interval=setInterval(a.proxy(this.next,this),this.options.interval),this},to:function(b){var c=this.$element.find(".active"),d=c.parent().children(),e=d.index(c),f=this;if(b>d.length-1||b<0)return;return this.sliding?this.$element.one("slid",function(){f.to(b)}):e==b?this.pause().cycle():this.slide(b>e?"next":"prev",a(d[b]))},pause:function(){return clearInterval(this.interval),this.interval=null,this},next:function(){if(this.sliding)return;return this.slide("next")},prev:function(){if(this.sliding)return;return this.slide("prev")},slide:function(b,c){var d=this.$element.find(".active"),e=c||d[b](),f=this.interval,g=b=="next"?"left":"right",h=b=="next"?"first":"last",i=this;this.sliding=!0,f&&this.pause(),e=e.length?e:this.$element.find(".item")[h]();if(e.hasClass("active"))return;return!a.support.transition&&this.$element.hasClass("slide")?(this.$element.trigger("slide"),d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid")):(e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),this.$element.trigger("slide"),this.$element.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid")},0)})),f&&this.cycle(),this}},a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("carousel"),f=typeof c=="object"&&c;e||d.data("carousel",e=new b(this,f)),typeof c=="number"?e.to(c):typeof c=="string"||(c=f.slide)?e[c]():e.cycle()})},a.fn.carousel.defaults={interval:5e3,pause:"hover"},a.fn.carousel.Constructor=b,a(function(){a("body").on("click.carousel.data-api","[data-slide]",function(b){var c=a(this),d,e=a(c.attr("data-target")||(d=c.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,"")),f=!e.data("modal")&&a.extend({},e.data(),c.data());e.carousel(f),b.preventDefault()})})}(window.jQuery),!function(a){"use strict";var b=function(b,c){this.$element=a(b),this.options=a.extend({},a.fn.collapse.defaults,c),this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.prototype={constructor:b,dimension:function(){var a=this.$element.hasClass("width");return a?"width":"height"},show:function(){var b=this.dimension(),c=a.camelCase(["scroll",b].join("-")),d=this.$parent&&this.$parent.find(".in"),e;d&&d.length&&(e=d.data("collapse"),d.collapse("hide"),e||d.data("collapse",null)),this.$element[b](0),this.transition("addClass","show","shown"),this.$element[b](this.$element[0][c])},hide:function(){var a=this.dimension();this.reset(this.$element[a]()),this.transition("removeClass","hide","hidden"),this.$element[a](0)},reset:function(a){var b=this.dimension();return this.$element.removeClass("collapse")[b](a||"auto")[0].offsetWidth,this.$element[a?"addClass":"removeClass"]("collapse"),this},transition:function(b,c,d){var e=this,f=function(){c=="show"&&e.reset(),e.$element.trigger(d)};this.$element.trigger(c)[b]("in"),a.support.transition&&this.$element.hasClass("collapse")?this.$element.one(a.support.transition.end,f):f()},toggle:function(){this[this.$element.hasClass("in")?"hide":"show"]()}},a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("collapse"),f=typeof c=="object"&&c;e||d.data("collapse",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.collapse.defaults={toggle:!0},a.fn.collapse.Constructor=b,a(function(){a("body").on("click.collapse.data-api","[data-toggle=collapse]",function(b){var c=a(this),d,e=c.attr("data-target")||b.preventDefault()||(d=c.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""),f=a(e).data("collapse")?"toggle":c.data();a(e).collapse(f)})})}(window.jQuery),!function(a){function d(){a(b).parent().removeClass("open")}"use strict";var b='[data-toggle="dropdown"]',c=function(b){var c=a(b).on("click.dropdown.data-api",this.toggle);a("html").on("click.dropdown.data-api",function(){c.parent().removeClass("open")})};c.prototype={constructor:c,toggle:function(b){var c=a(this),e=c.attr("data-target"),f,g;return e||(e=c.attr("href"),e=e&&e.replace(/.*(?=#[^\s]*$)/,"")),f=a(e),f.length||(f=c.parent()),g=f.hasClass("open"),d(),!g&&f.toggleClass("open"),!1}},a.fn.dropdown=function(b){return this.each(function(){var d=a(this),e=d.data("dropdown");e||d.data("dropdown",e=new c(this)),typeof b=="string"&&e[b].call(d)})},a.fn.dropdown.Constructor=c,a(function(){a("html").on("click.dropdown.data-api",d),a("body").on("click.dropdown.data-api",b,c.prototype.toggle)})}(window.jQuery),!function(a){function c(){var b=this,c=setTimeout(function(){b.$element.off(a.support.transition.end),d.call(b)},500);this.$element.one(a.support.transition.end,function(){clearTimeout(c),d.call(b)})}function d(a){this.$element.hide().trigger("hidden"),e.call(this)}function e(b){var c=this,d=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var e=a.support.transition&&d;this.$backdrop=a('<div class="modal-backdrop '+d+'" />').appendTo(document.body),this.options.backdrop!="static"&&this.$backdrop.click(a.proxy(this.hide,this)),e&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),e?this.$backdrop.one(a.support.transition.end,b):b()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(a.support.transition.end,a.proxy(f,this)):f.call(this)):b&&b()}function f(){this.$backdrop.remove(),this.$backdrop=null}function g(){var b=this;this.isShown&&this.options.keyboard?a(document).on("keyup.dismiss.modal",function(a){a.which==27&&b.hide()}):this.isShown||a(document).off("keyup.dismiss.modal")}"use strict";var b=function(b,c){this.options=c,this.$element=a(b).delegate('[data-dismiss="modal"]',"click.dismiss.modal",a.proxy(this.hide,this))};b.prototype={constructor:b,toggle:function(){return this[this.isShown?"hide":"show"]()},show:function(){var b=this;if(this.isShown)return;a("body").addClass("modal-open"),this.isShown=!0,this.$element.trigger("show"),g.call(this),e.call(this,function(){var c=a.support.transition&&b.$element.hasClass("fade");!b.$element.parent().length&&b.$element.appendTo(document.body),b.$element.show(),c&&b.$element[0].offsetWidth,b.$element.addClass("in"),c?b.$element.one(a.support.transition.end,function(){b.$element.trigger("shown")}):b.$element.trigger("shown")})},hide:function(b){b&&b.preventDefault();if(!this.isShown)return;var e=this;this.isShown=!1,a("body").removeClass("modal-open"),g.call(this),this.$element.trigger("hide").removeClass("in"),a.support.transition&&this.$element.hasClass("fade")?c.call(this):d.call(this)}},a.fn.modal=function(c){return this.each(function(){var d=a(this),e=d.data("modal"),f=a.extend({},a.fn.modal.defaults,d.data(),typeof c=="object"&&c);e||d.data("modal",e=new b(this,f)),typeof c=="string"?e[c]():f.show&&e.show()})},a.fn.modal.defaults={backdrop:!0,keyboard:!0,show:!0},a.fn.modal.Constructor=b,a(function(){a("body").on("click.modal.data-api",'[data-toggle="modal"]',function(b){var c=a(this),d,e=a(c.attr("data-target")||(d=c.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,"")),f=e.data("modal")?"toggle":a.extend({},e.data(),c.data());b.preventDefault(),e.modal(f)})})}(window.jQuery),!function(a){"use strict";var b=function(a,b){this.init("tooltip",a,b)};b.prototype={constructor:b,init:function(b,c,d){var e,f;this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.enabled=!0,this.options.trigger!="manual"&&(e=this.options.trigger=="hover"?"mouseenter":"focus",f=this.options.trigger=="hover"?"mouseleave":"blur",this.$element.on(e,this.options.selector,a.proxy(this.enter,this)),this.$element.on(f,this.options.selector,a.proxy(this.leave,this))),this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},getOptions:function(b){return b=a.extend({},a.fn[this.type].defaults,b,this.$element.data()),b.delay&&typeof b.delay=="number"&&(b.delay={show:b.delay,hide:b.delay}),b},enter:function(b){var c=a(b.currentTarget)[this.type](this._options).data(this.type);!c.options.delay||!c.options.delay.show?c.show():(c.hoverState="in",setTimeout(function(){c.hoverState=="in"&&c.show()},c.options.delay.show))},leave:function(b){var c=a(b.currentTarget)[this.type](this._options).data(this.type);!c.options.delay||!c.options.delay.hide?c.hide():(c.hoverState="out",setTimeout(function(){c.hoverState=="out"&&c.hide()},c.options.delay.hide))},show:function(){var a,b,c,d,e,f,g;if(this.hasContent()&&this.enabled){a=this.tip(),this.setContent(),this.options.animation&&a.addClass("fade"),f=typeof this.options.placement=="function"?this.options.placement.call(this,a[0],this.$element[0]):this.options.placement,b=/in/.test(f),a.remove().css({top:0,left:0,display:"block"}).appendTo(b?this.$element:document.body),c=this.getPosition(b),d=a[0].offsetWidth,e=a[0].offsetHeight;switch(b?f.split(" ")[1]:f){case"bottom":g={top:c.top+c.height,left:c.left+c.width/2-d/2};break;case"top":g={top:c.top-e,left:c.left+c.width/2-d/2};break;case"left":g={top:c.top+c.height/2-e/2,left:c.left-d};break;case"right":g={top:c.top+c.height/2-e/2,left:c.left+c.width}}a.css(g).addClass(f).addClass("in")}},setContent:function(){var a=this.tip();a.find(".tooltip-inner").html(this.getTitle()),a.removeClass("fade in top bottom left right")},hide:function(){function d(){var b=setTimeout(function(){c.off(a.support.transition.end).remove()},500);c.one(a.support.transition.end,function(){clearTimeout(b),c.remove()})}var b=this,c=this.tip();c.removeClass("in"),a.support.transition&&this.$tip.hasClass("fade")?d():c.remove()},fixTitle:function(){var a=this.$element;(a.attr("title")||typeof a.attr("data-original-title")!="string")&&a.attr("data-original-title",a.attr("title")||"").removeAttr("title")},hasContent:function(){return this.getTitle()},getPosition:function(b){return a.extend({},b?{top:0,left:0}:this.$element.offset(),{width:this.$element[0].offsetWidth,height:this.$element[0].offsetHeight})},getTitle:function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||(typeof c.title=="function"?c.title.call(b[0]):c.title),a=(a||"").toString().replace(/(^\s*|\s*$)/,""),a},tip:function(){return this.$tip=this.$tip||a(this.options.template)},validate:function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled},toggle:function(){this[this.tip().hasClass("in")?"hide":"show"]()}},a.fn.tooltip=function(c){return this.each(function(){var d=a(this),e=d.data("tooltip"),f=typeof c=="object"&&c;e||d.data("tooltip",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.tooltip.Constructor=b,a.fn.tooltip.defaults={animation:!0,delay:0,selector:!1,placement:"top",trigger:"hover",title:"",template:'<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'}}(window.jQuery),!function(a){"use strict";var b=function(a,b){this.init("popover",a,b)};b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype,{constructor:b,setContent:function(){var b=this.tip(),c=this.getTitle(),d=this.getContent();b.find(".popover-title")[a.type(c)=="object"?"append":"html"](c),b.find(".popover-content > *")[a.type(d)=="object"?"append":"html"](d),b.removeClass("fade top bottom left right in")},hasContent:function(){return this.getTitle()||this.getContent()},getContent:function(){var a,b=this.$element,c=this.options;return a=b.attr("data-content")||(typeof c.content=="function"?c.content.call(b[0]):c.content),a=a.toString().replace(/(^\s*|\s*$)/,""),a},tip:function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip}}),a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("popover"),f=typeof c=="object"&&c;e||d.data("popover",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.popover.Constructor=b,a.fn.popover.defaults=a.extend({},a.fn.tooltip.defaults,{placement:"right",content:"",template:'<div class="popover"><div class="arrow"></div><div class="popover-inner"><h3 class="popover-title"></h3><div class="popover-content"><p></p></div></div></div>'})}(window.jQuery),!function(a){function b(b,c){var d=a.proxy(this.process,this),e=a(b).is("body")?a(window):a(b),f;this.options=a.extend({},a.fn.scrollspy.defaults,c),this.$scrollElement=e.on("scroll.scroll.data-api",d),this.selector=(this.options.target||(f=a(b).attr("href"))&&f.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.$body=a("body").on("click.scroll.data-api",this.selector,d),this.refresh(),this.process()}"use strict",b.prototype={constructor:b,refresh:function(){this.targets=this.$body.find(this.selector).map(function(){var b=a(this).attr("href");return/^#\w/.test(b)&&a(b).length?b:null}),this.offsets=a.map(this.targets,function(b){return a(b).position().top})},process:function(){var a=this.$scrollElement.scrollTop()+this.options.offset,b=this.offsets,c=this.targets,d=this.activeTarget,e;for(e=b.length;e--;)d!=c[e]&&a>=b[e]&&(!b[e+1]||a<=b[e+1])&&this.activate(c[e])},activate:function(a){var b;this.activeTarget=a,this.$body.find(this.selector).parent(".active").removeClass("active"),b=this.$body.find(this.selector+'[href="'+a+'"]').parent("li").addClass("active"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active")}},a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("scrollspy"),f=typeof c=="object"&&c;e||d.data("scrollspy",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.defaults={offset:10},a(function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(window.jQuery),!function(a){"use strict";var b=function(b){this.element=a(b)};b.prototype={constructor:b,show:function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.attr("data-target"),e,f;d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,""));if(b.parent("li").hasClass("active"))return;e=c.find(".active a").last()[0],b.trigger({type:"show",relatedTarget:e}),f=a(d),this.activate(b.parent("li"),c),this.activate(f,f.parent(),function(){b.trigger({type:"shown",relatedTarget:e})})},activate:function(b,c,d){function g(){e.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),f?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var e=c.find("> .active"),f=d&&a.support.transition&&e.hasClass("fade");f?e.one(a.support.transition.end,g):g(),e.removeClass("in")}},a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("tab");e||d.data("tab",e=new b(this)),typeof c=="string"&&e[c]()})},a.fn.tab.Constructor=b,a(function(){a("body").on("click.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})})}(window.jQuery),!function(a){"use strict";var b=function(b,c){this.$element=a(b),this.options=a.extend({},a.fn.typeahead.defaults,c),this.matcher=this.options.matcher||this.matcher,this.sorter=this.options.sorter||this.sorter,this.highlighter=this.options.highlighter||this.highlighter,this.$menu=a(this.options.menu).appendTo("body"),this.source=this.options.source,this.shown=!1,this.listen()};b.prototype={constructor:b,select:function(){var a=this.$menu.find(".active").attr("data-value");return this.$element.val(a),this.$element.change(),this.hide()},show:function(){var b=a.extend({},this.$element.offset(),{height:this.$element[0].offsetHeight});return this.$menu.css({top:b.top+b.height,left:b.left}),this.$menu.show(),this.shown=!0,this},hide:function(){return this.$menu.hide(),this.shown=!1,this},lookup:function(b){var c=this,d,e;return this.query=this.$element.val(),this.query?(d=a.grep(this.source,function(a){if(c.matcher(a))return a}),d=this.sorter(d),d.length?this.render(d.slice(0,this.options.items)).show():this.shown?this.hide():this):this.shown?this.hide():this},matcher:function(a){return~a.toLowerCase().indexOf(this.query.toLowerCase())},sorter:function(a){var b=[],c=[],d=[],e;while(e=a.shift())e.toLowerCase().indexOf(this.query.toLowerCase())?~e.indexOf(this.query)?c.push(e):d.push(e):b.push(e);return b.concat(c,d)},highlighter:function(a){return a.replace(new RegExp("("+this.query+")","ig"),function(a,b){return"<strong>"+b+"</strong>"})},render:function(b){var c=this;return b=a(b).map(function(b,d){return b=a(c.options.item).attr("data-value",d),b.find("a").html(c.highlighter(d)),b[0]}),b.first().addClass("active"),this.$menu.html(b),this},next:function(b){var c=this.$menu.find(".active").removeClass("active"),d=c.next();d.length||(d=a(this.$menu.find("li")[0])),d.addClass("active")},prev:function(a){var b=this.$menu.find(".active").removeClass("active"),c=b.prev();c.length||(c=this.$menu.find("li").last()),c.addClass("active")},listen:function(){this.$element.on("blur",a.proxy(this.blur,this)).on("keypress",a.proxy(this.keypress,this)).on("keyup",a.proxy(this.keyup,this)),(a.browser.webkit||a.browser.msie)&&this.$element.on("keydown",a.proxy(this.keypress,this)),this.$menu.on("click",a.proxy(this.click,this)).on("mouseenter","li",a.proxy(this.mouseenter,this))},keyup:function(a){switch(a.keyCode){case 40:case 38:break;case 9:case 13:if(!this.shown)return;this.select();break;case 27:if(!this.shown)return;this.hide();break;default:this.lookup()}a.stopPropagation(),a.preventDefault()},keypress:function(a){if(!this.shown)return;switch(a.keyCode){case 9:case 13:case 27:a.preventDefault();break;case 38:a.preventDefault(),this.prev();break;case 40:a.preventDefault(),this.next()}a.stopPropagation()},blur:function(a){var b=this;setTimeout(function(){b.hide()},150)},click:function(a){a.stopPropagation(),a.preventDefault(),this.select()},mouseenter:function(b){this.$menu.find(".active").removeClass("active"),a(b.currentTarget).addClass("active")}},a.fn.typeahead=function(c){return this.each(function(){var d=a(this),e=d.data("typeahead"),f=typeof c=="object"&&c;e||d.data("typeahead",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.typeahead.defaults={source:[],items:8,menu:'<ul class="typeahead dropdown-menu"></ul>',item:'<li><a href="#"></a></li>'},a.fn.typeahead.Constructor=b,a(function(){a("body").on("focus.typeahead.data-api",'[data-provide="typeahead"]',function(b){var c=a(this);if(c.data("typeahead"))return;b.preventDefault(),c.typeahead(c.data())})})}(window.jQuery);
File without changes
File without changes
File without changes
@@ -1,3 +1,3 @@
1
1
  module CodeZauker
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
@@ -0,0 +1,47 @@
1
+ #!/usr/bin/env ruby
2
+ require 'sinatra'
3
+ require "code_zauker/version"
4
+ require "code_zauker"
5
+ require "erb"
6
+
7
+ # See http://www.sinatrarb.com/intro
8
+ get '/' do
9
+ # Show the search box...
10
+ erb :search
11
+ end
12
+
13
+ get '/search' do
14
+ # Process the search and show the results...
15
+ fs=CodeZauker::FileScanner.new()
16
+ files=fs.isearch(params[:q])
17
+ erb :show_results, :locals => {:files => files, :q => params[:q] }
18
+ end
19
+
20
+ configure do
21
+ staticDir=File.dirname(__FILE__)+ '/../../htdocs'
22
+ templateDir=settings.root + '/../../templates'
23
+ puts "Static files: #{staticDir}"
24
+ puts "Templates: #{templateDir}"
25
+ set :public_folder, staticDir
26
+ set :views, templateDir
27
+
28
+ end
29
+
30
+ # INLINE Template Follows: unused at the moment
31
+ __END__
32
+
33
+ @@ indexUnused
34
+ <html>
35
+ <head>
36
+ <title> CodeZauker v<%= CodeZauker::VERSION %> </title>
37
+ </head>
38
+ <body>
39
+ <div align="left" style="background:url(/CodeZauker.gif) no-repeat; width:489; height:110;" title="CodeZauker">
40
+ Code Zauker
41
+ </div>
42
+ <form method="get" action="/search">
43
+ <input type="text" name="q" />
44
+ </form>
45
+ </body>
46
+
47
+ </html>
data/readme.org CHANGED
@@ -15,14 +15,15 @@ For a sample redis configuration see the etc/ directory of the project
15
15
 
16
16
 
17
17
  * Release History
18
- | Version | Date | Summary |
19
- |---------+-------------+------------------------------------------------------|
20
- | 0.0.4 | 12 Feb 2012 | PDF Searching |
21
- | 0.0.3 | 03 Feb 2012 | Added Case insensitive search.UTF-8 trigram database |
22
- | 0.0.2 | 29 Jan 2012 | Removed dependency on unix find for czindexer. |
23
- | 0.0.1 | 26 Jan 2012 | First RubyGems Release (for testing purpose only) |
24
- | | | |
25
- | | | |
18
+ | Version | Date | Summary |
19
+ |---------+-------------+---------------------------------------------------------------|
20
+ | 0.0.5 | 09 Apr 2012 | Added Sinatra-based web search page, featuring bootrstrap css |
21
+ | 0.0.4 | 12 Feb 2012 | PDF Searching |
22
+ | 0.0.3 | 03 Feb 2012 | Added Case insensitive search.UTF-8 trigram database |
23
+ | 0.0.2 | 29 Jan 2012 | Removed dependency on unix find for czindexer. |
24
+ | 0.0.1 | 26 Jan 2012 | First RubyGems Release (for testing purpose only) |
25
+ | | | |
26
+ | | | |
26
27
 
27
28
 
28
29
  * DEVELOPING
@@ -0,0 +1,58 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title> CodeZauker v<%= CodeZauker::VERSION %> </title>
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+ <link href="/css/bootstrap.css" rel="stylesheet">
8
+ <link href="/css/bootstrap-responsive.css" rel="stylesheet">
9
+ </head>
10
+ <body>
11
+
12
+
13
+
14
+ <div class="container">
15
+ <div class="row">
16
+ <div class="span12"><p/></div>
17
+ <div class="span12"><p/></div>
18
+ <h1></h1>
19
+ <div class="thumbnail span12">
20
+ <!-- width:489; height:110; -->
21
+ <img src="/CodeZauker.gif" alt="CodeZauker">
22
+ <h5><%= CodeZauker::VERSION %></h5>
23
+ </div>
24
+ <form method="get" action="/search" class="">
25
+ <p class="span4 offset4">
26
+ <input type="text" name="q" class="search-query " />
27
+ </p>
28
+ <!-- span class="help-inline">Input must be at least 3-letter long</span-->
29
+ <p class="span4 offset5">
30
+ <input class="btn btn-primary btn-large" value="Search" name="btnK" type="submit" />
31
+ <br />
32
+ </p>
33
+ </form>
34
+ </div>
35
+
36
+
37
+
38
+ </div>
39
+ <!-- Le javascript
40
+ ================================================== -->
41
+ <!-- Placed at the end of the document so the pages load faster -->
42
+ <script src="/js/jquery.js"></script>
43
+ <script src="/js/bootstrap-transition.js"></script>
44
+ <script src="/js/bootstrap-alert.js"></script>
45
+ <script src="/js/bootstrap-modal.js"></script>
46
+ <script src="/js/bootstrap-dropdown.js"></script>
47
+ <script src="/js/bootstrap-scrollspy.js"></script>
48
+ <script src="/js/bootstrap-tab.js"></script>
49
+ <script src="/js/bootstrap-tooltip.js"></script>
50
+ <script src="/js/bootstrap-popover.js"></script>
51
+ <script src="/js/bootstrap-button.js"></script>
52
+ <script src="/js/bootstrap-collapse.js"></script>
53
+ <script src="/js/bootstrap-carousel.js"></script>
54
+ <script src="/js/bootstrap-typeahead.js"></script>
55
+ </body>
56
+
57
+ </html>
58
+
@@ -0,0 +1,67 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title> CodeZauker v<%= CodeZauker::VERSION %> Results on <%= q %></title>
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+ <link href="/css/bootstrap.css" rel="stylesheet">
8
+ <link href="/css/bootstrap-responsive.css" rel="stylesheet">
9
+ </head>
10
+ <body>
11
+ <div class="container">
12
+ <div class="row">
13
+ <h2>Search term:</h2>
14
+ <p class="span8 offset2">
15
+ <form method="get" action="/search">
16
+ <input type="text" name="q" value="<%=q%>" />
17
+ <!-- DOES NOT WORK YET
18
+ <ul class="nav">
19
+ <li class="dropdown">
20
+ <a href="#"
21
+ class="dropdown-toggle"
22
+ data-toggle="dropdown">
23
+ Account
24
+ <b class="caret"></b>
25
+ </a>
26
+ <ul class="dropdown-menu">
27
+ ...
28
+ </ul>
29
+ </li>
30
+ </ul>
31
+ -->
32
+
33
+ </form>
34
+ </p>
35
+ <span class="badge badge-success"> <%=files.length%> Results</span>
36
+ <ol>
37
+ <%
38
+ files.each do |f|
39
+ %>
40
+ <li><%=f%>
41
+ <%
42
+ end
43
+ %>
44
+ </ol>
45
+ </div>
46
+ </div>
47
+ <!-- Le javascript
48
+ ================================================== -->
49
+ <!-- Placed at the end of the document so the pages load faster -->
50
+ <script src="/js/jquery.js"></script>
51
+ <script src="/js/bootstrap-transition.js"></script>
52
+ <script src="/js/bootstrap-alert.js"></script>
53
+ <script src="/js/bootstrap-modal.js"></script>
54
+ <script src="/js/bootstrap-dropdown.js"></script>
55
+ <script src="/js/bootstrap-scrollspy.js"></script>
56
+ <script src="/js/bootstrap-tab.js"></script>
57
+ <script src="/js/bootstrap-tooltip.js"></script>
58
+ <script src="/js/bootstrap-popover.js"></script>
59
+ <script src="/js/bootstrap-button.js"></script>
60
+ <script src="/js/bootstrap-collapse.js"></script>
61
+ <script src="/js/bootstrap-carousel.js"></script>
62
+ <script src="/js/bootstrap-typeahead.js"></script>
63
+
64
+ </body>
65
+
66
+ </html>
67
+
File without changes
File without changes
File without changes
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: code_zauker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-02-12 00:00:00.000000000 Z
12
+ date: 2012-04-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: yard
16
- requirement: &85208010 !ruby/object:Gem::Requirement
16
+ requirement: &73314420 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0.7'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *85208010
24
+ version_requirements: *73314420
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rubyzip
27
- requirement: &85207750 !ruby/object:Gem::Requirement
27
+ requirement: &73314170 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0.9'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *85207750
35
+ version_requirements: *73314170
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: hiredis
38
- requirement: &85207460 !ruby/object:Gem::Requirement
38
+ requirement: &73313940 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0.3'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *85207460
46
+ version_requirements: *73313940
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: redis
49
- requirement: &85207140 !ruby/object:Gem::Requirement
49
+ requirement: &73313690 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '2.2'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *85207140
57
+ version_requirements: *73313690
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: pdf-reader
60
- requirement: &85195530 !ruby/object:Gem::Requirement
60
+ requirement: &73313440 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,7 +65,18 @@ dependencies:
65
65
  version: 1.0.0
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *85195530
68
+ version_requirements: *73313440
69
+ - !ruby/object:Gem::Dependency
70
+ name: sinatra
71
+ requirement: &73313150 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ~>
75
+ - !ruby/object:Gem::Version
76
+ version: '1.3'
77
+ type: :runtime
78
+ prerelease: false
79
+ version_requirements: *73313150
69
80
  description: Code Zauker is based from ideas taken by old Google Code Search and uses
70
81
  Redis as a basic platform
71
82
  email:
@@ -74,6 +85,7 @@ executables:
74
85
  - czindexer
75
86
  - czsearch
76
87
  - startRedis
88
+ - webgui
77
89
  extensions: []
78
90
  extra_rdoc_files: []
79
91
  files:
@@ -85,6 +97,7 @@ files:
85
97
  - bin/czindexer
86
98
  - bin/czsearch
87
99
  - bin/startRedis
100
+ - bin/webgui
88
101
  - code_zauker.gemspec
89
102
  - devel.org
90
103
  - doc/CodeZauker.html
@@ -105,11 +118,24 @@ files:
105
118
  - doc/method_list.html
106
119
  - doc/top-level-namespace.html
107
120
  - etc/redis.conf
121
+ - htdocs/CodeZauker.gif
122
+ - htdocs/Gioorgi.gif
123
+ - htdocs/css/bootstrap-responsive.css
124
+ - htdocs/css/bootstrap-responsive.min.css
125
+ - htdocs/css/bootstrap.css
126
+ - htdocs/css/bootstrap.min.css
127
+ - htdocs/img/glyphicons-halflings-white.png
128
+ - htdocs/img/glyphicons-halflings.png
129
+ - htdocs/js/bootstrap.js
130
+ - htdocs/js/bootstrap.min.js
108
131
  - lib/code_zauker.rb
109
132
  - lib/code_zauker/constants.rb
110
133
  - lib/code_zauker/grep.rb
111
134
  - lib/code_zauker/version.rb
135
+ - lib/code_zauker/webgui.rb
112
136
  - readme.org
137
+ - templates/search.erb
138
+ - templates/show_results.erb
113
139
  - test/fixture/TEST_LICENSE.txt
114
140
  - test/fixture/foolish.txt
115
141
  - test/fixture/kurukku.txt