puffer 0.0.7 → 0.0.8

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/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