quick_script 0.2.2 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,3 @@
1
1
  module QuickScript
2
- VERSION = "0.2.2"
2
+ VERSION = "0.3.0"
3
3
  end
@@ -11,10 +11,16 @@ Array.prototype.pushOnce = (item) ->
11
11
  this.push(item)
12
12
  Date.from_utc = (utc) ->
13
13
  new Date(utc * 1000)
14
+ Date.prototype.to_utc = ->
15
+ Math.round(this.getTime() / 1000.0)
14
16
  String.prototype.endsWith = (suffix) ->
15
17
  this.indexOf(suffix, this.length - suffix.length) != -1
16
18
  String.prototype.includes = (str) ->
17
19
  this.indexOf(str) != -1
20
+ String.prototype.truncate = (val)->
21
+ ret = this.substring(0, val)
22
+ ret = ret + "..." if this.length > val
23
+ return ret
18
24
 
19
25
  class @SelectOpts
20
26
  constructor : ->
@@ -148,6 +148,25 @@
148
148
  else
149
149
  $(element).siblings('label').show()
150
150
 
151
+ ko.bindingHandlers.tip =
152
+ init : (element, valueAccessor) ->
153
+ opts = valueAccessor()
154
+ content = ko.utils.unwrapObservable(opts['content'])
155
+ $(element).poshytip
156
+ className: 'tip-twitter',
157
+ showTimeout: 1,
158
+ alignTo: 'target',
159
+ alignX: 'center',
160
+ offsetY: 5,
161
+ allowTipHover: false,
162
+ fade: false,
163
+ slide: false,
164
+ content: content
165
+ update : (element, valueAccessor) ->
166
+ opts = valueAccessor()
167
+ content = ko.utils.unwrapObservable(opts['content'])
168
+ $(element).poshytip('update', content)
169
+
151
170
 
152
171
  ko.absorbModel = (data, self) ->
153
172
  for prop, val of data
@@ -314,12 +333,14 @@ class @Model
314
333
  callback(resp) if callback?
315
334
  @model_state(ko.modelStates.LOADING)
316
335
  reloadFields : (fields, callback)->
317
- opts = ko.copyObject(@toJS(), @load_fields)
336
+ opts = @reloadOpts()
318
337
  opts['fields'] = fields
319
338
  @load(opts, callback)
320
339
  reload : (callback)->
321
- opts = ko.copyObject(@toJS(), @load_fields)
340
+ opts = @reloadOpts()
322
341
  @load(opts, callback)
342
+ reloadOpts : =>
343
+ {id : @id()}
323
344
  save : (fields, callback) ->
324
345
  console.log("Saving fields #{fields}")
325
346
  if (@model_state() != ko.modelStates.READY)
@@ -375,14 +396,25 @@ class @Model
375
396
  obj = {}
376
397
  for prop in flds
377
398
  if typeof(@[prop].toAPI) == 'function'
378
- obj[prop] = @[prop].toAPI()
399
+ val = @[prop].toAPI()
400
+ obj[prop] = val if val != null
379
401
  else if typeof(@[prop].toJS) == 'function'
380
402
  obj[prop] = @[prop].toJS()
381
403
  else
382
- obj[prop] = @[prop]()
404
+ val = @[prop]()
405
+ if val instanceof Object
406
+ obj[prop] = JSON.stringify(val)
407
+ else
408
+ obj[prop] = val if val != null
383
409
  obj
384
410
  toJSON : (flds)=>
385
411
  JSON.stringify(@toJS(flds))
412
+ getClass : =>
413
+ @constructor
414
+ toClone : =>
415
+ m = new(@getClass())
416
+ m.absorb(this)
417
+ return m
386
418
  absorb : (model) =>
387
419
  @reset()
388
420
  @handleData(model.toJS())
@@ -400,6 +432,16 @@ class @FileModel extends @Model
400
432
  extend : ->
401
433
  @input = {}
402
434
  @input.files = ko.observable([])
435
+ @input.file_uri = ko.observable('')
436
+ @input.files.subscribe (val)->
437
+ if val.length > 0
438
+ @input.file_uri('')
439
+ reader = new FileReader()
440
+ reader.onload = (ev)=>
441
+ console.log('input loaded')
442
+ @input.file_uri(ev.target.result)
443
+ reader.readAsDataURL(val[0])
444
+ , this
403
445
  @input.present = ko.computed ->
404
446
  @input.files().length > 0
405
447
  , this
@@ -409,8 +451,9 @@ class @FileModel extends @Model
409
451
  @input.filename = ko.computed ->
410
452
  if @input.present() then @input.file().name else ""
411
453
  , this
412
- @input.isImage = ->
413
- if @input.present() then @input.file().type.match('image.*') else false
454
+ @input.is_image = ko.computed ->
455
+ if @input.present() then @input.file().type.match('image.*') else false
456
+ , this
414
457
  @input.clear = -> @input.files([])
415
458
  reset : ->
416
459
  super
@@ -0,0 +1,7 @@
1
+ /*
2
+ * Poshy Tip jQuery plugin v1.1
3
+ * http://vadikom.com/tools/poshy-tip-jquery-plugin-for-stylish-tooltips/
4
+ * Copyright 2010-2011, Vasil Dinkov, http://vadikom.com/
5
+ */
6
+
7
+ (function(e){var a=[],d=/^url\(["']?([^"'\)]*)["']?\);?$/i,c=/\.png$/i,b=e.browser.msie&&e.browser.version==6;function f(){e.each(a,function(){this.refresh(true)})}e(window).resize(f);e.Poshytip=function(h,g){this.$elm=e(h);this.opts=e.extend({},e.fn.poshytip.defaults,g);this.$tip=e(['<div class="',this.opts.className,'">','<div class="tip-inner tip-bg-image"></div>','<div class="tip-arrow tip-arrow-top tip-arrow-right tip-arrow-bottom tip-arrow-left"></div>',"</div>"].join("")).appendTo(document.body);this.$arrow=this.$tip.find("div.tip-arrow");this.$inner=this.$tip.find("div.tip-inner");this.disabled=false;this.content=null;this.init()};e.Poshytip.prototype={init:function(){a.push(this);var g=this.$elm.attr("title");this.$elm.data("title.poshytip",g!==undefined?g:null).data("poshytip",this);if(this.opts.showOn!="none"){this.$elm.bind({"mouseenter.poshytip":e.proxy(this.mouseenter,this),"mouseleave.poshytip":e.proxy(this.mouseleave,this)});switch(this.opts.showOn){case"hover":if(this.opts.alignTo=="cursor"){this.$elm.bind("mousemove.poshytip",e.proxy(this.mousemove,this))}if(this.opts.allowTipHover){this.$tip.hover(e.proxy(this.clearTimeouts,this),e.proxy(this.mouseleave,this))}break;case"focus":this.$elm.bind({"focus.poshytip":e.proxy(this.show,this),"blur.poshytip":e.proxy(this.hide,this)});break}}},mouseenter:function(g){if(this.disabled){return true}this.$elm.attr("title","");if(this.opts.showOn=="focus"){return true}this.clearTimeouts();this.showTimeout=setTimeout(e.proxy(this.show,this),this.opts.showTimeout)},mouseleave:function(g){if(this.disabled||this.asyncAnimating&&(this.$tip[0]===g.relatedTarget||jQuery.contains(this.$tip[0],g.relatedTarget))){return true}var h=this.$elm.data("title.poshytip");if(h!==null){this.$elm.attr("title",h)}if(this.opts.showOn=="focus"){return true}this.clearTimeouts();this.hideTimeout=setTimeout(e.proxy(this.hide,this),this.opts.hideTimeout)},mousemove:function(g){if(this.disabled){return true}this.eventX=g.pageX;this.eventY=g.pageY;if(this.opts.followCursor&&this.$tip.data("active")){this.calcPos();this.$tip.css({left:this.pos.l,top:this.pos.t});if(this.pos.arrow){this.$arrow[0].className="tip-arrow tip-arrow-"+this.pos.arrow}}},show:function(){if(this.disabled||this.$tip.data("active")){return}this.reset();this.update();this.display();if(this.opts.timeOnScreen){setTimeout(e.proxy(this.hide,this),this.opts.timeOnScreen)}},hide:function(){if(this.disabled||!this.$tip.data("active")){return}this.display(true)},reset:function(){this.$tip.queue([]).detach().css("visibility","hidden").data("active",false);this.$inner.find("*").poshytip("hide");if(this.opts.fade){this.$tip.css("opacity",this.opacity)}this.$arrow[0].className="tip-arrow tip-arrow-top tip-arrow-right tip-arrow-bottom tip-arrow-left";this.asyncAnimating=false},update:function(j,k){if(this.disabled){return}var i=j!==undefined;if(i){if(!k){this.opts.content=j}if(!this.$tip.data("active")){return}}else{j=this.opts.content}var h=this,g=typeof j=="function"?j.call(this.$elm[0],function(l){h.update(l)}):j=="[title]"?this.$elm.data("title.poshytip"):j;if(this.content!==g){this.$inner.empty().append(g);this.content=g}this.refresh(i)},refresh:function(h){if(this.disabled){return}if(h){if(!this.$tip.data("active")){return}var k={left:this.$tip.css("left"),top:this.$tip.css("top")}}this.$tip.css({left:0,top:0}).appendTo(document.body);if(this.opacity===undefined){this.opacity=this.$tip.css("opacity")}var l=this.$tip.css("background-image").match(d),m=this.$arrow.css("background-image").match(d);if(l){var i=c.test(l[1]);if(b&&i){this.$tip.css("background-image","none");this.$inner.css({margin:0,border:0,padding:0});l=i=false}else{this.$tip.prepend('<table border="0" cellpadding="0" cellspacing="0"><tr><td class="tip-top tip-bg-image" colspan="2"><span></span></td><td class="tip-right tip-bg-image" rowspan="2"><span></span></td></tr><tr><td class="tip-left tip-bg-image" rowspan="2"><span></span></td><td></td></tr><tr><td class="tip-bottom tip-bg-image" colspan="2"><span></span></td></tr></table>').css({border:0,padding:0,"background-image":"none","background-color":"transparent"}).find(".tip-bg-image").css("background-image",'url("'+l[1]+'")').end().find("td").eq(3).append(this.$inner)}if(i&&!e.support.opacity){this.opts.fade=false}}if(m&&!e.support.opacity){if(b&&c.test(m[1])){m=false;this.$arrow.css("background-image","none")}this.opts.fade=false}var o=this.$tip.find("table");if(b){this.$tip[0].style.width="";o.width("auto").find("td").eq(3).width("auto");var n=this.$tip.width(),j=parseInt(this.$tip.css("min-width")),g=parseInt(this.$tip.css("max-width"));if(!isNaN(j)&&n<j){n=j}else{if(!isNaN(g)&&n>g){n=g}}this.$tip.add(o).width(n).eq(0).find("td").eq(3).width("100%")}else{if(o[0]){o.width("auto").find("td").eq(3).width("auto").end().end().width(document.defaultView&&document.defaultView.getComputedStyle&&parseFloat(document.defaultView.getComputedStyle(this.$tip[0],null).width)||this.$tip.width()).find("td").eq(3).width("100%")}}this.tipOuterW=this.$tip.outerWidth();this.tipOuterH=this.$tip.outerHeight();this.calcPos();if(m&&this.pos.arrow){this.$arrow[0].className="tip-arrow tip-arrow-"+this.pos.arrow;this.$arrow.css("visibility","inherit")}if(h){this.asyncAnimating=true;var p=this;this.$tip.css(k).animate({left:this.pos.l,top:this.pos.t},200,function(){p.asyncAnimating=false})}else{this.$tip.css({left:this.pos.l,top:this.pos.t})}},display:function(h){var i=this.$tip.data("active");if(i&&!h||!i&&h){return}this.$tip.stop();if((this.opts.slide&&this.pos.arrow||this.opts.fade)&&(h&&this.opts.hideAniDuration||!h&&this.opts.showAniDuration)){var m={},l={};if(this.opts.slide&&this.pos.arrow){var k,g;if(this.pos.arrow=="bottom"||this.pos.arrow=="top"){k="top";g="bottom"}else{k="left";g="right"}var j=parseInt(this.$tip.css(k));m[k]=j+(h?0:(this.pos.arrow==g?-this.opts.slideOffset:this.opts.slideOffset));l[k]=j+(h?(this.pos.arrow==g?this.opts.slideOffset:-this.opts.slideOffset):0)+"px"}if(this.opts.fade){m.opacity=h?this.$tip.css("opacity"):0;l.opacity=h?0:this.opacity}this.$tip.css(m).animate(l,this.opts[h?"hideAniDuration":"showAniDuration"])}h?this.$tip.queue(e.proxy(this.reset,this)):this.$tip.css("visibility","inherit");this.$tip.data("active",!i)},disable:function(){this.reset();this.disabled=true},enable:function(){this.disabled=false},destroy:function(){this.reset();this.$tip.remove();delete this.$tip;this.content=null;this.$elm.unbind(".poshytip").removeData("title.poshytip").removeData("poshytip");a.splice(e.inArray(this,a),1)},clearTimeouts:function(){if(this.showTimeout){clearTimeout(this.showTimeout);this.showTimeout=0}if(this.hideTimeout){clearTimeout(this.hideTimeout);this.hideTimeout=0}},calcPos:function(){var n={l:0,t:0,arrow:""},h=e(window),k={l:h.scrollLeft(),t:h.scrollTop(),w:h.width(),h:h.height()},p,j,m,i,q,g;if(this.opts.alignTo=="cursor"){p=j=m=this.eventX;i=q=g=this.eventY}else{var o=this.$elm.offset(),l={l:o.left,t:o.top,w:this.$elm.outerWidth(),h:this.$elm.outerHeight()};p=l.l+(this.opts.alignX!="inner-right"?0:l.w);j=p+Math.floor(l.w/2);m=p+(this.opts.alignX!="inner-left"?l.w:0);i=l.t+(this.opts.alignY!="inner-bottom"?0:l.h);q=i+Math.floor(l.h/2);g=i+(this.opts.alignY!="inner-top"?l.h:0)}switch(this.opts.alignX){case"right":case"inner-left":n.l=m+this.opts.offsetX;if(n.l+this.tipOuterW>k.l+k.w){n.l=k.l+k.w-this.tipOuterW}if(this.opts.alignX=="right"||this.opts.alignY=="center"){n.arrow="left"}break;case"center":n.l=j-Math.floor(this.tipOuterW/2);if(n.l+this.tipOuterW>k.l+k.w){n.l=k.l+k.w-this.tipOuterW}else{if(n.l<k.l){n.l=k.l}}break;default:n.l=p-this.tipOuterW-this.opts.offsetX;if(n.l<k.l){n.l=k.l}if(this.opts.alignX=="left"||this.opts.alignY=="center"){n.arrow="right"}}switch(this.opts.alignY){case"bottom":case"inner-top":n.t=g+this.opts.offsetY;if(!n.arrow||this.opts.alignTo=="cursor"){n.arrow="top"}if(n.t+this.tipOuterH>k.t+k.h){n.t=i-this.tipOuterH-this.opts.offsetY;if(n.arrow=="top"){n.arrow="bottom"}}break;case"center":n.t=q-Math.floor(this.tipOuterH/2);if(n.t+this.tipOuterH>k.t+k.h){n.t=k.t+k.h-this.tipOuterH}else{if(n.t<k.t){n.t=k.t}}break;default:n.t=i-this.tipOuterH-this.opts.offsetY;if(!n.arrow||this.opts.alignTo=="cursor"){n.arrow="bottom"}if(n.t<k.t){n.t=g+this.opts.offsetY;if(n.arrow=="bottom"){n.arrow="top"}}}this.pos=n}};e.fn.poshytip=function(h){if(typeof h=="string"){var g=arguments,k=h;Array.prototype.shift.call(g);if(k=="destroy"){this.die("mouseenter.poshytip").die("focus.poshytip")}return this.each(function(){var l=e(this).data("poshytip");if(l&&l[k]){l[k].apply(l,g)}})}var i=e.extend({},e.fn.poshytip.defaults,h);if(!e("#poshytip-css-"+i.className)[0]){e(['<style id="poshytip-css-',i.className,'" type="text/css">',"div.",i.className,"{visibility:hidden;position:absolute;top:0;left:0;}","div.",i.className," table, div.",i.className," td{margin:0;font-family:inherit;font-size:inherit;font-weight:inherit;font-style:inherit;font-variant:inherit;}","div.",i.className," td.tip-bg-image span{display:block;font:1px/1px sans-serif;height:",i.bgImageFrameSize,"px;width:",i.bgImageFrameSize,"px;overflow:hidden;}","div.",i.className," td.tip-right{background-position:100% 0;}","div.",i.className," td.tip-bottom{background-position:100% 100%;}","div.",i.className," td.tip-left{background-position:0 100%;}","div.",i.className," div.tip-inner{background-position:-",i.bgImageFrameSize,"px -",i.bgImageFrameSize,"px;}","div.",i.className," div.tip-arrow{visibility:hidden;position:absolute;overflow:hidden;font:1px/1px sans-serif;}","</style>"].join("")).appendTo("head")}if(i.liveEvents&&i.showOn!="none"){var j=e.extend({},i,{liveEvents:false});switch(i.showOn){case"hover":this.live("mouseenter.poshytip",function(){var l=e(this);if(!l.data("poshytip")){l.poshytip(j).poshytip("mouseenter")}});break;case"focus":this.live("focus.poshytip",function(){var l=e(this);if(!l.data("poshytip")){l.poshytip(j).poshytip("show")}});break}return this}return this.each(function(){new e.Poshytip(this,i)})};e.fn.poshytip.defaults={content:"[title]",className:"tip-yellow",bgImageFrameSize:10,showTimeout:500,hideTimeout:100,timeOnScreen:0,showOn:"hover",liveEvents:false,alignTo:"cursor",alignX:"right",alignY:"top",offsetX:-22,offsetY:18,allowTipHover:true,followCursor:false,fade:true,slide:true,slideOffset:8,showAniDuration:300,hideAniDuration:300}})(jQuery);
@@ -3,6 +3,7 @@
3
3
  //= require ./quick_script/jquery-ui.min
4
4
  //= require ./quick_script/jquery.iframe-transport
5
5
  //= require ./quick_script/jquery.qtip.min
6
+ //= require ./quick_script/jquery.poshytip.min
6
7
  //= require ./quick_script/jquery.fileupload
7
8
  //= require ./quick_script/jquery.history
8
9
  //= require ./quick_script/knockout
@@ -14,6 +14,8 @@
14
14
  +t-2
15
15
  .t-1
16
16
  +t-1
17
+ .t-0
18
+ +t-0
17
19
  .t-upper
18
20
  +t-upper
19
21
  .t-center
@@ -26,6 +28,8 @@
26
28
  +right
27
29
  .inline, .inl
28
30
  +inline
31
+ .table-cell
32
+ +table-cell
29
33
 
30
34
  .img-shadow-dark
31
35
  +img-shadow-dark
@@ -41,6 +41,8 @@ $dark-gray: rgba(0,0,0,.75)
41
41
  letter-spacing: $val
42
42
  =inline
43
43
  display: inline-block
44
+ =table-cell
45
+ display: table-cell
44
46
  =padded
45
47
  padding: 10px
46
48
  =pad-lr
@@ -0,0 +1,59 @@
1
+ .tip-twitter {
2
+ opacity:0.8;
3
+ z-index:1000;
4
+ text-align:left;
5
+ border-radius:4px;
6
+ -moz-border-radius:4px;
7
+ -webkit-border-radius:4px;
8
+ padding:8px 8px;
9
+ max-width:200px;
10
+ color:#fff;
11
+ background-color:#000;
12
+ /**
13
+ * - If you set a background-image, border/padding/background-color will be ingnored.
14
+ * You can set any padding to .tip-inner instead if you need.
15
+ * - If you want a tiled background-image and border/padding for the tip,
16
+ * set the background-image to .tip-inner instead.
17
+ */
18
+ }
19
+ .tip-twitter .tip-inner {
20
+ font:bold 11px/14px 'Lucida Grande',sans-serif;
21
+ }
22
+
23
+ /* Configure an arrow image - the script will automatically position it on the correct side of the tip */
24
+ .tip-twitter .tip-arrow-top {
25
+ margin-top:-5px;
26
+ margin-left:-5px; /* approx. half the width to center it */
27
+ top:0;
28
+ left:50%;
29
+ width:9px;
30
+ height:5px;
31
+ background:url(tip-twitter_arrows.gif) no-repeat;
32
+ }
33
+ .tip-twitter .tip-arrow-right {
34
+ margin-top:-4px; /* approx. half the height to center it */
35
+ margin-left:0;
36
+ top:50%;
37
+ left:100%;
38
+ width:5px;
39
+ height:9px;
40
+ background:url(tip-twitter_arrows.gif) no-repeat -9px 0;
41
+ }
42
+ .tip-twitter .tip-arrow-bottom {
43
+ margin-top:0;
44
+ margin-left:-5px; /* approx. half the width to center it */
45
+ top:100%;
46
+ left:50%;
47
+ width:9px;
48
+ height:5px;
49
+ background:url(tip-twitter_arrows.gif) no-repeat -18px 0;
50
+ }
51
+ .tip-twitter .tip-arrow-left {
52
+ margin-top:-4px; /* approx. half the height to center it */
53
+ margin-left:-5px;
54
+ top:50%;
55
+ left:0;
56
+ width:5px;
57
+ height:9px;
58
+ background:url(tip-twitter_arrows.gif) no-repeat -27px 0;
59
+ }
@@ -1,4 +1,5 @@
1
1
  /* QS_VERSION=0.0.52;
2
+ *= require_tree ./quick_script/tip-twitter
2
3
  *= require ./quick_script/basics
3
4
  *= require ./quick_script/elements
4
5
  *= require ./quick_script/buttons
metadata CHANGED
@@ -1,33 +1,23 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: quick_script
3
- version: !ruby/object:Gem::Version
4
- hash: 19
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.0
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 2
9
- - 2
10
- version: 0.2.2
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Alan Graham
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2012-04-24 00:00:00 Z
12
+ date: 2012-05-05 00:00:00.000000000Z
19
13
  dependencies: []
20
-
21
14
  description: Framework for single-page web applications
22
- email:
15
+ email:
23
16
  - alan.g.graham@gmail.com
24
17
  executables: []
25
-
26
18
  extensions: []
27
-
28
19
  extra_rdoc_files: []
29
-
30
- files:
20
+ files:
31
21
  - .gitignore
32
22
  - Gemfile
33
23
  - README.md
@@ -50,6 +40,7 @@ files:
50
40
  - vendor/assets/javascripts/quick_script/jquery.history.js
51
41
  - vendor/assets/javascripts/quick_script/jquery.iframe-transport.js
52
42
  - vendor/assets/javascripts/quick_script/jquery.min.js
43
+ - vendor/assets/javascripts/quick_script/jquery.poshytip.min.js
53
44
  - vendor/assets/javascripts/quick_script/jquery.qtip.min.js
54
45
  - vendor/assets/javascripts/quick_script/knockout.js
55
46
  - vendor/assets/stylesheets/quick_script.css
@@ -57,38 +48,30 @@ files:
57
48
  - vendor/assets/stylesheets/quick_script/buttons.css
58
49
  - vendor/assets/stylesheets/quick_script/elements.css.sass
59
50
  - vendor/assets/stylesheets/quick_script/mixins.css.sass
60
- homepage: ""
51
+ - vendor/assets/stylesheets/quick_script/tip-twitter/tip-twitter.css
52
+ - vendor/assets/stylesheets/quick_script/tip-twitter/tip-twitter_arrows.gif
53
+ homepage: ''
61
54
  licenses: []
62
-
63
55
  post_install_message:
64
56
  rdoc_options: []
65
-
66
- require_paths:
57
+ require_paths:
67
58
  - lib
68
- required_ruby_version: !ruby/object:Gem::Requirement
59
+ required_ruby_version: !ruby/object:Gem::Requirement
69
60
  none: false
70
- requirements:
71
- - - ">="
72
- - !ruby/object:Gem::Version
73
- hash: 3
74
- segments:
75
- - 0
76
- version: "0"
77
- required_rubygems_version: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - ! '>='
63
+ - !ruby/object:Gem::Version
64
+ version: '0'
65
+ required_rubygems_version: !ruby/object:Gem::Requirement
78
66
  none: false
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- hash: 3
83
- segments:
84
- - 0
85
- version: "0"
67
+ requirements:
68
+ - - ! '>='
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
86
71
  requirements: []
87
-
88
72
  rubyforge_project: quick_script
89
- rubygems_version: 1.8.17
73
+ rubygems_version: 1.8.15
90
74
  signing_key:
91
75
  specification_version: 3
92
76
  summary: Web Application Framework
93
77
  test_files: []
94
-