puffer 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. data/VERSION +1 -1
  2. data/app/cells/puffer/base/additional.html.erb +13 -5
  3. data/app/helpers/puffer_helper.rb +6 -1
  4. data/app/views/layouts/puffer.html.erb +5 -3
  5. data/app/views/puffer/_form.html.erb +1 -1
  6. data/app/views/puffer/associated/one.js.erb +9 -0
  7. data/app/views/puffer/edit.html.erb +1 -1
  8. data/app/views/puffer/index.html.erb +7 -7
  9. data/app/views/puffer/new.html.erb +1 -1
  10. data/app/views/puffer/show.html.erb +4 -4
  11. data/lib/generators/puffer/install/templates/puffer/javascripts/application.js +10 -0
  12. data/lib/generators/puffer/install/templates/puffer/javascripts/rails-src.js +36 -378
  13. data/lib/generators/puffer/install/templates/puffer/javascripts/right-autocompleter-src.js +621 -0
  14. data/lib/generators/puffer/install/templates/puffer/javascripts/right-autocompleter.js +18 -0
  15. data/lib/generators/puffer/install/templates/puffer/javascripts/right-autocompleter.js.gz +0 -0
  16. data/lib/generators/puffer/install/templates/puffer/stylesheets/puffer.css +107 -6
  17. data/lib/puffer/base.rb +4 -3
  18. data/lib/puffer/controller/actions.rb +4 -70
  19. data/lib/puffer/controller/dsl.rb +23 -5
  20. data/lib/puffer/controller/generated.rb +65 -0
  21. data/lib/puffer/extensions/activerecord.rb +3 -3
  22. data/lib/puffer/extensions/core.rb +14 -0
  23. data/lib/puffer/extensions/mapper.rb +20 -0
  24. data/lib/puffer/fields.rb +11 -2
  25. data/lib/puffer/fields/field.rb +24 -1
  26. data/lib/puffer/inputs.rb +1 -3
  27. data/lib/puffer/inputs/association.rb +27 -1
  28. data/lib/puffer/inputs/base.rb +12 -4
  29. data/lib/puffer/inputs/boolean.rb +1 -1
  30. data/lib/puffer/inputs/date_time.rb +1 -1
  31. data/lib/puffer/resource.rb +1 -1
  32. data/lib/puffer/resource/routing.rb +2 -2
  33. data/lib/puffer/resource/scoping.rb +5 -1
  34. data/puffer.gemspec +15 -5
  35. data/spec/dummy/app/controllers/admin/profiles_controller.rb +2 -2
  36. data/spec/dummy/app/views/admin/users/index.html.erb +3 -1
  37. data/spec/dummy/config/database.yml +1 -1
  38. data/spec/dummy/public/puffer/javascripts/application.js +10 -0
  39. data/spec/dummy/public/puffer/javascripts/rails-src.js +36 -378
  40. data/spec/dummy/public/puffer/javascripts/right-autocompleter-src.js +621 -0
  41. data/spec/dummy/public/puffer/javascripts/right-autocompleter.js +18 -0
  42. data/spec/dummy/public/puffer/javascripts/right-autocompleter.js.gz +0 -0
  43. data/spec/dummy/public/puffer/stylesheets/puffer.css +107 -6
  44. data/spec/lib/extensions/core_spec.rb +29 -0
  45. data/spec/lib/resource/routing_spec.rb +11 -11
  46. metadata +28 -18
  47. data/lib/generators/puffer/install/templates/puffer/javascripts/rails.js +0 -14
  48. data/spec/dummy/public/puffer/javascripts/rails.js +0 -14
@@ -0,0 +1,18 @@
1
+ /**
2
+ * RightJS-UI: Autocompleter
3
+ * http://rightjs.org/ui/autocompleter
4
+ *
5
+ * Copyright (C) 2010 Nikolay Nemshilov
6
+ */
7
+ var Autocompleter=RightJS.Autocompleter=function(h,c){function l(a,b,d,e){if(c.Fx)if(d===undefined){d=a.options.fxName;if(e===undefined){e={duration:a.options.fxDuration,onFinish:c(a.fire).bind(a,b)};if(b==="hide")e.duration=(c.Fx.Durations[e.duration]||e.duration)/2}}if(!c.Fx||!d)a.fire(b);return a.$super(d,e)}function m(a,b,d){var e=(this.reAnchor||(this.reAnchor=new c.Element("div",{"class":"rui-re-anchor"})).insert(this)).insertTo(a,"after").position(),f=a.dimensions(),i=parseInt(a.getStyle("borderTopWidth")),
8
+ j=parseInt(a.getStyle("borderLeftWidth")),q=parseInt(a.getStyle("borderRightWidth")),r=parseInt(a.getStyle("borderBottomWidth"));a=f.top-e.y+i;e=f.left-e.x+j;j=f.width-j-q;f=f.height-i-r;this.setStyle("visibility:hidden").show(null);if(b==="right")e+=j-this.size().x;else a+=f;this.moveTo(e,a);if(d)b==="left"||b==="right"?this.setHeight(f):this.setWidth(j);this.setStyle("visibility:visible").hide(null)}var g=c,n=c.$,s=c.$w,t=c.Xhr,o=c.RegExp,u=c.isArray,p=new c.Class(c.Element,{initialize:function(a){this.$super("div",
9
+ {"class":"rui-spinner"});this.dots=[];for(var b=0;b<(a||4);b++)this.dots.push(new c.Element("div"));this.dots[0].addClass("glowing");this.insert(this.dots);c(this.shift).bind(this).periodical(300)},shift:function(){if(this.visible()){var a=this.dots.pop();this.dots.unshift(a);this.insert(a,"top")}}}),k=new (function(a,b){if(!b){b=a;a="DIV"}var d=new c.Class(c.Element.Wrappers[a]||c.Element,{initialize:function(e,f){this.key=e;var i=[{"class":"rui-"+e}];this instanceof c.Input||this instanceof c.Form||
10
+ i.unshift(a);this.$super.apply(this,i);if(c.isString(f))f=c.$(f);if(f instanceof c.Element){this._=f._;if("$listeners"in f)f.$listeners=f.$listeners;f={}}this.setOptions(f,this);return c.Wrapper.Cache[c.$uid(this._)]=this},setOptions:function(e,f){f=f||this;c.Options.setOptions.call(this,c.Object.merge(e,eval("("+(f.get("data-"+this.key)||"{}")+")")));return this}});d=new c.Class(d,b);c.Observer.createShortcuts(d.prototype,d.EVENTS||[]);return d})("UL",{include:{show:function(a,b){this.constructor.current=
11
+ this;return l(this,"show",a,b)},hide:function(a,b){this.constructor.current=null;return l(this,"show",a,b)},showAt:function(a,b,d){this.hide(null).shownAt=a=c.$(a);m.call(this,a,b,d);return this.show()},toggleAt:function(a,b,d){return this.hidden()?this.showAt(a,b,d):this.hide()}},extend:{version:"2.2.0",EVENTS:s("show hide update load select done"),Options:{url:h.location.href,param:"search",method:"get",minLength:1,threshold:200,cache:true,local:null,fxName:"slide",fxDuration:"short",spinner:"native",
12
+ cssRule:"input[data-autocompleter]"}},initialize:function(a,b){this.input=n(a);this.$super("autocompleter",b).addClass("rui-dd-menu").onMousedown(this.clicked);this.input.autocompleter=this},destroy:function(){delete this.input.autocompleter;return this},prev:function(){return this.pick("prev")},next:function(){return this.pick("next")},done:function(a){if(a=a||this.first("li.current")){a.radioClass("current");this.input.setValue(g(a.html()).stripTags());this.fire("done")}return this.hide()},setOptions:function(a){this.$super(a,
13
+ this.input);a=this.options;g(a.url).includes("%{search}")||(a.url+=(g(a.url).includes("?")?"&":"?")+a.param+"=%{search}")},pick:function(a){var b=this.children(),d=b.first("hasClass","current"),e=b.indexOf(d);if(a=="prev")d=e<1?b.last():b[e<0?0:e-1];else if(a=="next")d=e<0||e==b.length-1?b.first():b[e+1];return this.fire("select",{item:d.radioClass("current")})},clicked:function(a){this.done(a.stop().find("li"))},keypressed:function(){if(this.input.value().length>=this.options.minLength){this.timeout&&
14
+ this.timeout.cancel();this.timeout=g(this.trigger).bind(this).delay(this.options.threshold)}else return this.hide()},trigger:function(){this.timeout=null;this.cache=this.cache||{};var a=this.input.value(),b=this.options;if(a.length<b.minLength)return this.hide();if(this.cache[a])this.suggest(this.cache[a],a);else if(u(b.local))this.suggest(this.findLocal(a),a);else this.request=t.load(b.url.replace("%{search}",encodeURIComponent(a)),{method:b.method,spinner:this.getSpinner(),onComplete:g(function(d){this.fire("load").suggest(d.text,
15
+ a)}).bind(this)})},suggest:function(a,b){if(this.options.cache)this.cache[b]=a;if(g(a).blank())this.hide();else{this.update(a.replace(/<ul[^>]*>|<\/ul>/im,""));this.fire("update");if(!this._connected||this.hidden()){this.showAt(this.input,"bottom","resize");this._connected=true}}return this},findLocal:function(a){var b=new o("("+o.escape(a)+")","ig");return g(this.options.local).map(function(d){if(d.match(b))return"<li>"+d.replace(b,"<strong>$1</strong>")+"</li>"}).compact().join("")},getSpinner:function(){var a=
16
+ this.options,b=a.spinner;if(b=="native"){b=a.spinner=(new p(3)).insertTo(this);b.addClass("rui-autocompleter-spinner")}b instanceof p&&m.call(b,this.input,"right","resize");return b}});n(h).on({focus:function(a){if((a=a.target)&&a instanceof c.Element&&(a.autocompleter||a.match(k.Options.cssRule)))a.autocompleter||new k(a)},blur:function(a){(a=a.target?a.target.autocompleter:null)&&a.visible()&&a.hide()},keydown:function(a){var b=a.target?a.target.autocompleter:null;if(b&&b.visible()){var d={27:"hide",
17
+ 38:"prev",40:"next",13:"done"}[a.keyCode];if(d){a.stop();b[d]()}}},keyup:function(a){var b=a.target?a.target.autocompleter:null;b&&!g([9,27,37,38,39,40,13]).include(a.keyCode)&&b.keypressed(a)}});(function(){var a=h.createElement("style"),b=h.createTextNode(" *.rui-dd-menu, *.rui-dd-menu li{margin:0;padding:0;border:none;background:none;list-style:none;font-weight:normal;float:none} *.rui-dd-menu{display:none;position:absolute;z-index:9999;background:white;border:1px solid #BBB;border-radius:.2em;-moz-border-radius:.2em;-webkit-border-radius:.2em;box-shadow:#DDD .2em .2em .4em;-moz-box-shadow:#DDD .2em .2em .4em;-webkit-box-shadow:#DDD .2em .2em .4em} *.rui-dd-menu li{padding:.2em .4em;border-top:none;border-bottom:none;cursor:pointer} *.rui-dd-menu li.current{background:#DDD} *.rui-dd-menu li:hover{background:#EEE}dl.rui-dd-menu dt{padding:.3em .5em;cursor:default;font-weight:bold;font-style:italic;color:#444;background:#EEE}dl.rui-dd-menu dd li{padding-left:1.5em}div.rui-spinner,div.rui-spinner div{margin:0;padding:0;border:none;background:none;list-style:none;font-weight:normal;float:none;display:inline-block; *display:inline; *zoom:1;border-radius:.12em;-moz-border-radius:.12em;-webkit-border-radius:.12em}div.rui-spinner{text-align:center;white-space:nowrap;background:#EEE;border:1px solid #DDD;height:1.2em;padding:0 .2em}div.rui-spinner div{width:.4em;height:70%;background:#BBB;margin-left:1px}div.rui-spinner div:first-child{margin-left:0}div.rui-spinner div.glowing{background:#777}div.rui-re-anchor{margin:0;padding:0;background:none;border:none;float:none;display:inline;position:absolute;z-index:9999}.rui-autocompleter{border-top-color:#DDD !important;border-top-left-radius:0 !important;border-top-right-radius:0 !important;-moz-border-radius-topleft:0 !important;-moz-border-radius-topright:0 !important;-webkit-border-top-left-radius:0 !important;-webkit-border-top-right-radius:0 !important}.rui-autocompleter-spinner{border:none !important;background:none !important;position:absolute;z-index:9999}.rui-autocompleter-spinner div{margin-top:.2em !important; *margin-top:0.1em !important}");
18
+ a.type="text/css";if(a.styleSheet)a.styleSheet.cssText=b.nodeValue;else a.appendChild(b);h.getElementsByTagName("head")[0].appendChild(a)})();return k}(document,RightJS);
@@ -88,7 +88,7 @@ h1
88
88
  *display: inline;
89
89
  zoom: 1;
90
90
  color: #ddd;
91
- padding: 3px 12px;
91
+ padding: 7px 12px;
92
92
  font-size: 11pt;
93
93
  text-decoration: none;
94
94
  text-shadow: #304759 -1px -1px 0;
@@ -120,6 +120,16 @@ h1
120
120
  border-bottom-right-radius: 3px;
121
121
  }
122
122
 
123
+ .sidebar .navigation li .additional dt
124
+ {
125
+ margin-bottom: 2px;
126
+ }
127
+
128
+ .sidebar .navigation li .additional dd
129
+ {
130
+ margin-bottom: 8px;
131
+ }
132
+
123
133
  .columns
124
134
  {
125
135
  width: 100%;
@@ -170,7 +180,7 @@ h1
170
180
  border-top-left-radius: 5px;
171
181
  border-bottom-left-radius: 5px;
172
182
  background: #fff;
173
- padding: 15px;
183
+ padding: 30px;
174
184
  }
175
185
 
176
186
  .list_table
@@ -186,6 +196,11 @@ h1
186
196
  -webkit-border-radius: 5px;
187
197
  }
188
198
 
199
+ .list_table *
200
+ {
201
+ font-size: 8pt;
202
+ }
203
+
189
204
  .list_table tr
190
205
  {
191
206
  vertical-align: top;
@@ -258,6 +273,40 @@ h1
258
273
  background: #f4f4f4;
259
274
  }
260
275
 
276
+ label, input, textarea
277
+ {
278
+ font-family: Helvetica, Arial, sans-serif;
279
+ }
280
+
281
+ input[type=text], input[type=password], textarea
282
+ {
283
+ border: #ccc solid 1px;
284
+ font-size: 11pt;
285
+ padding: 3px 0;
286
+ border-radius: 3px;
287
+ }
288
+
289
+ input[type=text]:focus, input[type=password]:focus, textarea:focus
290
+ {
291
+ border: #536C80 solid 1px;
292
+ }
293
+
294
+ input[type=submit]
295
+ {
296
+ border: 0;
297
+ border-radius: 3px;
298
+ background: #536C80;
299
+ color: #ddd;
300
+ text-shadow: -1px -1px 0 #304759;
301
+ padding: 3px 10px;
302
+ font-size: 11pt;
303
+ }
304
+
305
+ #search
306
+ {
307
+ width: 120px;
308
+ }
309
+
261
310
  .form
262
311
  {
263
312
  margin-bottom: 30px;
@@ -269,21 +318,73 @@ h1
269
318
  margin-bottom: 8px;
270
319
  }
271
320
 
321
+ .form li .label
322
+ {
323
+ margin-bottom: 3px;
324
+ }
325
+
326
+ .form li .label *
327
+ {
328
+ display: inline;
329
+ }
330
+
272
331
  .form li label
273
332
  {
274
- display: block;
275
- font-size: 11pt;
333
+ font-size: 10pt;
276
334
  font-weight: bold;
277
335
  }
278
336
 
279
337
  .form li input[type=text], .form li input[type=password], .form li textarea
280
338
  {
281
- border: #ccc solid 1px;
282
339
  width: 100%;
283
- font-size: 12pt;
284
340
  }
285
341
 
286
342
  .form li textarea
287
343
  {
288
344
  height: 60px;
289
345
  }
346
+
347
+ .field_error
348
+ {
349
+ color: #C83E3E;
350
+ }
351
+
352
+ .association
353
+ {
354
+ position: relative;
355
+ }
356
+
357
+ .association input[disabled]
358
+ {
359
+ text-indent: 25px;
360
+ }
361
+
362
+ .association .association_clear
363
+ {
364
+ position: absolute;
365
+ top: 4px;
366
+ left: 9px;
367
+ cursor: pointer;
368
+ display: none;
369
+ }
370
+
371
+ .association .association_clear:hover
372
+ {
373
+ color: #b00;
374
+ text-shadow: 1px 1px 2px #555;
375
+ }
376
+
377
+ .association input[disabled] ~ .association_clear
378
+ {
379
+ display: block;
380
+ }
381
+
382
+ .association .rui-autocompleter li .description
383
+ {
384
+ display: none;
385
+ }
386
+
387
+ .association .rui-autocompleter li:hover .description
388
+ {
389
+ display: block;
390
+ }
@@ -0,0 +1,29 @@
1
+ require 'spec_helper'
2
+
3
+ describe Array do
4
+
5
+ describe "#to_includes" do
6
+
7
+ it "should pass 1 test" do
8
+ [].to_includes.should == []
9
+ end
10
+
11
+ it "should pass 2 test" do
12
+ ["foo"].to_includes.should == [:foo]
13
+ end
14
+
15
+ it "should pass 3 test" do
16
+ ["foo.bar", "baz", "foo"].to_includes.should == [{:foo => :bar}, :baz, :foo]
17
+ end
18
+
19
+ it "should pass 4 test" do
20
+ ["foo.bar.baz", "foo.bar.hola", "foo.hello"].to_includes.should == [{:foo => {:bar => :baz}}, {:foo => {:bar => :hola}}, {:foo => :hello}]
21
+ end
22
+
23
+ it "should pass 5 test" do
24
+ ["foo.bar.baz", "foo.bar.hola"].to_includes.should == [{:foo => {:bar => :baz}}, {:foo => {:bar => :hola}}]
25
+ end
26
+
27
+ end
28
+
29
+ end
@@ -11,9 +11,9 @@ describe Puffer::Resource do
11
11
  get admin_category_path(@category)
12
12
  resource = Puffer::Resource.new request.params.merge(:controller => 'admin/categories', :action => 'show'), request
13
13
 
14
- resource.index_path.should == admin_categories_path
15
- resource.path.should == admin_category_path(@category)
16
- resource.path(@mock_category).should == admin_category_path(@mock_category)
14
+ resource.collection_path.should == admin_categories_path
15
+ resource.member_path.should == admin_category_path(@category)
16
+ resource.member_path(@mock_category).should == admin_category_path(@mock_category)
17
17
  resource.new_path.should == new_admin_category_path
18
18
  resource.edit_path.should == edit_admin_category_path(@category)
19
19
  resource.edit_path(@mock_category).should == edit_admin_category_path(@mock_category)
@@ -27,9 +27,9 @@ describe Puffer::Resource do
27
27
  get admin_post_category_path(@post, @category)
28
28
  resource = Puffer::Resource.new request.params.merge(:controller => 'admin/categories', :action => 'show'), request
29
29
 
30
- resource.index_path.should == admin_post_categories_path(@post)
31
- resource.path.should == admin_post_category_path(@post, @category)
32
- resource.path(@mock_category).should == admin_post_category_path(@post, @mock_category)
30
+ resource.collection_path.should == admin_post_categories_path(@post)
31
+ resource.member_path.should == admin_post_category_path(@post, @category)
32
+ resource.member_path(@mock_category).should == admin_post_category_path(@post, @mock_category)
33
33
  resource.new_path.should == new_admin_post_category_path(@post)
34
34
  resource.edit_path.should == edit_admin_post_category_path(@post, @category)
35
35
  resource.edit_path(@mock_category).should == edit_admin_post_category_path(@post, @mock_category)
@@ -42,8 +42,8 @@ describe Puffer::Resource do
42
42
  get admin_user_profile_path(@user)
43
43
  resource = Puffer::Resource.new request.params.merge(:controller => 'admin/profiles', :action => 'show'), request
44
44
 
45
- resource.index_path.should == admin_user_profile_path(@user)
46
- resource.path.should == admin_user_profile_path(@user)
45
+ resource.collection_path.should == admin_user_profile_path(@user)
46
+ resource.member_path.should == admin_user_profile_path(@user)
47
47
  resource.new_path.should == new_admin_user_profile_path(@user)
48
48
  resource.edit_path.should == edit_admin_user_profile_path(@user)
49
49
  end
@@ -56,9 +56,9 @@ describe Puffer::Resource do
56
56
  get admin_user_profile_tag_path(@user, @tag)
57
57
  resource = Puffer::Resource.new request.params.merge(:controller => 'admin/tags', :action => 'show'), request
58
58
 
59
- resource.index_path.should == admin_user_profile_tags_path(@user)
60
- resource.path.should == admin_user_profile_tag_path(@user, @tag)
61
- resource.path(@mock_tag).should == admin_user_profile_tag_path(@user, @mock_tag)
59
+ resource.collection_path.should == admin_user_profile_tags_path(@user)
60
+ resource.member_path.should == admin_user_profile_tag_path(@user, @tag)
61
+ resource.member_path(@mock_tag).should == admin_user_profile_tag_path(@user, @mock_tag)
62
62
  resource.new_path.should == new_admin_user_profile_tag_path(@user)
63
63
  resource.edit_path.should == edit_admin_user_profile_tag_path(@user, @tag)
64
64
  resource.edit_path(@mock_tag).should == edit_admin_user_profile_tag_path(@user, @mock_tag)
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puffer
3
3
  version: !ruby/object:Gem::Version
4
- hash: 17
4
+ hash: 15
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 7
10
- version: 0.0.7
9
+ - 8
10
+ version: 0.0.8
11
11
  platform: ruby
12
12
  authors:
13
13
  - pyromaniac
@@ -15,10 +15,11 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-01-28 00:00:00 +03:00
18
+ date: 2011-02-02 00:00:00 +03:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
+ type: :runtime
22
23
  version_requirements: &id001 !ruby/object:Gem::Requirement
23
24
  none: false
24
25
  requirements:
@@ -33,8 +34,8 @@ dependencies:
33
34
  requirement: *id001
34
35
  prerelease: false
35
36
  name: rails
36
- type: :runtime
37
37
  - !ruby/object:Gem::Dependency
38
+ type: :runtime
38
39
  version_requirements: &id002 !ruby/object:Gem::Requirement
39
40
  none: false
40
41
  requirements:
@@ -50,8 +51,8 @@ dependencies:
50
51
  requirement: *id002
51
52
  prerelease: false
52
53
  name: will_paginate
53
- type: :runtime
54
54
  - !ruby/object:Gem::Dependency
55
+ type: :runtime
55
56
  version_requirements: &id003 !ruby/object:Gem::Requirement
56
57
  none: false
57
58
  requirements:
@@ -66,8 +67,8 @@ dependencies:
66
67
  requirement: *id003
67
68
  prerelease: false
68
69
  name: cells
69
- type: :runtime
70
70
  - !ruby/object:Gem::Dependency
71
+ type: :development
71
72
  version_requirements: &id004 !ruby/object:Gem::Requirement
72
73
  none: false
73
74
  requirements:
@@ -82,8 +83,8 @@ dependencies:
82
83
  requirement: *id004
83
84
  prerelease: false
84
85
  name: capybara
85
- type: :development
86
86
  - !ruby/object:Gem::Dependency
87
+ type: :development
87
88
  version_requirements: &id005 !ruby/object:Gem::Requirement
88
89
  none: false
89
90
  requirements:
@@ -96,8 +97,8 @@ dependencies:
96
97
  requirement: *id005
97
98
  prerelease: false
98
99
  name: sqlite3-ruby
99
- type: :development
100
100
  - !ruby/object:Gem::Dependency
101
+ type: :development
101
102
  version_requirements: &id006 !ruby/object:Gem::Requirement
102
103
  none: false
103
104
  requirements:
@@ -110,8 +111,8 @@ dependencies:
110
111
  requirement: *id006
111
112
  prerelease: false
112
113
  name: rspec-rails
113
- type: :development
114
114
  - !ruby/object:Gem::Dependency
115
+ type: :development
115
116
  version_requirements: &id007 !ruby/object:Gem::Requirement
116
117
  none: false
117
118
  requirements:
@@ -124,8 +125,8 @@ dependencies:
124
125
  requirement: *id007
125
126
  prerelease: false
126
127
  name: autotest
127
- type: :development
128
128
  - !ruby/object:Gem::Dependency
129
+ type: :development
129
130
  version_requirements: &id008 !ruby/object:Gem::Requirement
130
131
  none: false
131
132
  requirements:
@@ -138,8 +139,8 @@ dependencies:
138
139
  requirement: *id008
139
140
  prerelease: false
140
141
  name: forgery
141
- type: :development
142
142
  - !ruby/object:Gem::Dependency
143
+ type: :development
143
144
  version_requirements: &id009 !ruby/object:Gem::Requirement
144
145
  none: false
145
146
  requirements:
@@ -152,8 +153,8 @@ dependencies:
152
153
  requirement: *id009
153
154
  prerelease: false
154
155
  name: fabrication
155
- type: :development
156
156
  - !ruby/object:Gem::Dependency
157
+ type: :development
157
158
  version_requirements: &id010 !ruby/object:Gem::Requirement
158
159
  none: false
159
160
  requirements:
@@ -166,8 +167,8 @@ dependencies:
166
167
  requirement: *id010
167
168
  prerelease: false
168
169
  name: jeweler
169
- type: :development
170
170
  - !ruby/object:Gem::Dependency
171
+ type: :development
171
172
  version_requirements: &id011 !ruby/object:Gem::Requirement
172
173
  none: false
173
174
  requirements:
@@ -180,7 +181,6 @@ dependencies:
180
181
  requirement: *id011
181
182
  prerelease: false
182
183
  name: mongrel
183
- type: :development
184
184
  description: In Soviet Russia puffer admins you
185
185
  email: kinwizard@gmail.com
186
186
  executables: []
@@ -208,6 +208,7 @@ files:
208
208
  - app/views/puffer/associated/_many.html.erb
209
209
  - app/views/puffer/associated/_one.html.erb
210
210
  - app/views/puffer/associated/many.rjs
211
+ - app/views/puffer/associated/one.js.erb
211
212
  - app/views/puffer/associated/one.rjs
212
213
  - app/views/puffer/association/_many.html.erb
213
214
  - app/views/puffer/association/_one.html.erb
@@ -224,8 +225,11 @@ files:
224
225
  - lib/generators/puffer/install/USAGE
225
226
  - lib/generators/puffer/install/install_generator.rb
226
227
  - lib/generators/puffer/install/templates/puffer.rb
228
+ - lib/generators/puffer/install/templates/puffer/javascripts/application.js
227
229
  - lib/generators/puffer/install/templates/puffer/javascripts/rails-src.js
228
- - lib/generators/puffer/install/templates/puffer/javascripts/rails.js
230
+ - lib/generators/puffer/install/templates/puffer/javascripts/right-autocompleter-src.js
231
+ - lib/generators/puffer/install/templates/puffer/javascripts/right-autocompleter.js
232
+ - lib/generators/puffer/install/templates/puffer/javascripts/right-autocompleter.js.gz
229
233
  - lib/generators/puffer/install/templates/puffer/javascripts/right-calendar-src.js
230
234
  - lib/generators/puffer/install/templates/puffer/javascripts/right-calendar.js
231
235
  - lib/generators/puffer/install/templates/puffer/javascripts/right-calendar.js.gz
@@ -251,6 +255,7 @@ files:
251
255
  - lib/puffer/controller/actions.rb
252
256
  - lib/puffer/controller/config.rb
253
257
  - lib/puffer/controller/dsl.rb
258
+ - lib/puffer/controller/generated.rb
254
259
  - lib/puffer/controller/helpers.rb
255
260
  - lib/puffer/controller/mutate.rb
256
261
  - lib/puffer/engine.rb
@@ -328,8 +333,11 @@ files:
328
333
  - spec/dummy/public/javascripts/effects.js
329
334
  - spec/dummy/public/javascripts/prototype.js
330
335
  - spec/dummy/public/javascripts/rails.js
336
+ - spec/dummy/public/puffer/javascripts/application.js
331
337
  - spec/dummy/public/puffer/javascripts/rails-src.js
332
- - spec/dummy/public/puffer/javascripts/rails.js
338
+ - spec/dummy/public/puffer/javascripts/right-autocompleter-src.js
339
+ - spec/dummy/public/puffer/javascripts/right-autocompleter.js
340
+ - spec/dummy/public/puffer/javascripts/right-autocompleter.js.gz
333
341
  - spec/dummy/public/puffer/javascripts/right-calendar-src.js
334
342
  - spec/dummy/public/puffer/javascripts/right-calendar.js
335
343
  - spec/dummy/public/puffer/javascripts/right-calendar.js.gz
@@ -358,6 +366,7 @@ files:
358
366
  - spec/fabricators/tags_fabricator.rb
359
367
  - spec/fabricators/users_fabricator.rb
360
368
  - spec/integration/navigation_spec.rb
369
+ - spec/lib/extensions/core_spec.rb
361
370
  - spec/lib/fields_spec.rb
362
371
  - spec/lib/params_spec.rb
363
372
  - spec/lib/render_fallback_spec.rb
@@ -395,7 +404,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
395
404
  requirements: []
396
405
 
397
406
  rubyforge_project:
398
- rubygems_version: 1.4.1
407
+ rubygems_version: 1.4.2
399
408
  signing_key:
400
409
  specification_version: 3
401
410
  summary: Admin interface builder
@@ -443,6 +452,7 @@ test_files:
443
452
  - spec/fabricators/tags_fabricator.rb
444
453
  - spec/fabricators/users_fabricator.rb
445
454
  - spec/integration/navigation_spec.rb
455
+ - spec/lib/extensions/core_spec.rb
446
456
  - spec/lib/fields_spec.rb
447
457
  - spec/lib/params_spec.rb
448
458
  - spec/lib/render_fallback_spec.rb