puffer 0.0.32 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (117) hide show
  1. data/.gitignore +7 -0
  2. data/Gemfile +1 -26
  3. data/Gemfile.lock +66 -64
  4. data/README.md +34 -23
  5. data/Rakefile +1 -11
  6. data/VERSION +1 -1
  7. data/app/assets/javascripts/puffer/application.js +6 -1
  8. data/app/assets/javascripts/puffer/associations.js +18 -0
  9. data/app/assets/javascripts/puffer/puffer.js +7 -0
  10. data/app/assets/javascripts/puffer/right-calendar-src.js +19 -3
  11. data/app/assets/javascripts/puffer/right-dnd-src.js +591 -0
  12. data/app/assets/javascripts/puffer/right-in-edit-src.js +373 -0
  13. data/app/assets/javascripts/puffer/right-keys-src.js +87 -0
  14. data/app/assets/javascripts/puffer/{paginator.js → right-paginator-src.js} +0 -0
  15. data/app/assets/javascripts/puffer/right-slider-src.js +29 -32
  16. data/app/assets/javascripts/puffer/right-sortable-src.js +430 -0
  17. data/app/assets/javascripts/puffer/right-src.js +358 -99
  18. data/app/assets/stylesheets/puffer/puffer.css +29 -4
  19. data/app/components/base/form.html.erb +8 -14
  20. data/app/components/base_component.rb +1 -1
  21. data/app/components/boolean/form.html.erb +5 -3
  22. data/app/components/boolean/index.html.erb +6 -2
  23. data/app/components/boolean_component.rb +2 -2
  24. data/app/components/date_time/filter.html.erb +9 -0
  25. data/app/components/date_time/form.html.erb +8 -4
  26. data/app/components/date_time_component.rb +21 -5
  27. data/app/components/file/form.html.erb +8 -4
  28. data/app/components/hidden/form.html.erb +3 -1
  29. data/app/components/nested_attributes_many/form.html.erb +47 -0
  30. data/app/components/nested_attributes_many_component.rb +7 -0
  31. data/app/components/nested_attributes_one/form.html.erb +48 -0
  32. data/app/components/nested_attributes_one_component.rb +7 -0
  33. data/app/components/password/form.html.erb +8 -4
  34. data/app/components/password_component.rb +1 -1
  35. data/app/components/references_many/index.html.erb +1 -1
  36. data/app/components/references_one/choose.html.erb +1 -1
  37. data/app/components/references_one/form.html.erb +10 -9
  38. data/app/components/references_one_component.rb +0 -1
  39. data/app/components/render_component.rb +13 -0
  40. data/app/components/select/filter.html.erb +4 -2
  41. data/app/components/select/form.html.erb +8 -4
  42. data/app/components/text/form.html.erb +8 -4
  43. data/app/controllers/admin/sessions_controller.rb +1 -21
  44. data/app/controllers/puffer/base.rb +10 -3
  45. data/app/controllers/puffer/dashboard_base.rb +7 -1
  46. data/app/controllers/puffer/{sessions_base.rb → sessions/base.rb} +10 -7
  47. data/app/controllers/puffer/sessions/clearance.rb +29 -0
  48. data/app/controllers/puffer/{sessions_devise_base.rb → sessions/devise.rb} +1 -1
  49. data/app/controllers/puffer/sessions/simple.rb +28 -0
  50. data/app/controllers/puffer/tree_base.rb +1 -1
  51. data/app/models/puffer_user.rb +3 -0
  52. data/app/views/layouts/puffer.html.erb +3 -3
  53. data/app/views/puffer/base/_edit.html.erb +15 -0
  54. data/app/views/puffer/base/_index.html.erb +26 -0
  55. data/app/views/puffer/base/_show.html.erb +13 -0
  56. data/app/views/puffer/base/_table.html.erb +1 -1
  57. data/app/views/puffer/base/edit.html.erb +1 -15
  58. data/app/views/puffer/base/edit.js.erb +1 -0
  59. data/app/views/puffer/base/index.html.erb +1 -20
  60. data/app/views/puffer/base/index.js.erb +1 -0
  61. data/app/views/puffer/base/new.html.erb +1 -1
  62. data/app/views/puffer/base/show.html.erb +1 -22
  63. data/app/views/puffer/base/show.js.erb +1 -0
  64. data/app/views/puffer/base/update.js.erb +1 -0
  65. data/app/views/puffer/sessions/base/new.html.erb +11 -0
  66. data/app/views/puffer/tree_base/_record.html.erb +1 -1
  67. data/lib/puffer/component.rb +14 -47
  68. data/lib/puffer/controller/auth.rb +13 -9
  69. data/lib/puffer/controller/config.rb +18 -0
  70. data/lib/puffer/controller/mutate.rb +8 -8
  71. data/lib/puffer/engine.rb +5 -0
  72. data/lib/puffer/field.rb +5 -11
  73. data/lib/puffer/filters.rb +86 -56
  74. data/lib/puffer/helpers/component_helper.rb +24 -0
  75. data/lib/puffer/helpers/puffer_helper.rb +65 -0
  76. data/lib/puffer/helpers/puffer_tree_helper.rb +19 -0
  77. data/lib/puffer/orm_adapter/active_record.rb +40 -11
  78. data/lib/puffer/orm_adapter/base.rb +9 -0
  79. data/lib/puffer/orm_adapter/mongoid.rb +32 -9
  80. data/lib/puffer/resource/node.rb +2 -2
  81. data/lib/puffer/resource/routing.rb +30 -16
  82. data/lib/puffer/resource.rb +20 -20
  83. data/lib/puffer/version.rb +3 -0
  84. data/lib/puffer.rb +26 -5
  85. data/puffer.gemspec +34 -296
  86. data/spec/app/components/base_component_spec.rb +1 -1
  87. data/spec/app/components/boolean_component_spec.rb +2 -0
  88. data/spec/app/components/date_time_component_spec.rb +1 -0
  89. data/spec/app/components/file_component_spec.rb +1 -0
  90. data/spec/app/components/hidden_component_spec.rb +1 -0
  91. data/spec/app/components/password_component_spec.rb +2 -0
  92. data/spec/app/components/select_component_spec.rb +1 -0
  93. data/spec/app/components/string_component_spec.rb +1 -0
  94. data/spec/app/components/text_component_spec.rb +1 -0
  95. data/spec/dummy/app/controllers/admin/news_controller.rb +2 -0
  96. data/spec/dummy/app/controllers/admin/profiles_controller.rb +1 -1
  97. data/spec/dummy/app/controllers/admin/users_controller.rb +2 -0
  98. data/spec/dummy/app/controllers/orms/active_record_orm_primals_controller.rb +8 -0
  99. data/spec/dummy/app/helpers/news_helper.rb +7 -0
  100. data/spec/dummy/app/models/active_record_orm/has_many_reference.rb +5 -0
  101. data/spec/dummy/app/models/active_record_orm/has_one_reference.rb +5 -0
  102. data/spec/dummy/app/models/active_record_orm/primal.rb +4 -0
  103. data/spec/dummy/config/environments/development.rb +1 -1
  104. data/spec/dummy/db/migrate/20111120144025_create_active_record_orm_has_one_references.rb +10 -0
  105. data/spec/dummy/db/migrate/20111122203304_create_active_record_orm_has_many_references.rb +10 -0
  106. data/spec/dummy/db/schema.rb +15 -1
  107. data/spec/helpers/puffer_helper_spec.rb +1 -1
  108. data/spec/lib/fields_spec.rb +0 -9
  109. data/spec/lib/filters_spec.rb +4 -8
  110. data/spec/lib/orm_adapter/base_shared.rb +22 -0
  111. data/spec/spec_helper.rb +1 -1
  112. metadata +89 -60
  113. data/app/components/string/form.html.erb +0 -5
  114. data/app/helpers/puffer_helper.rb +0 -51
  115. data/app/helpers/puffer_tree_helper.rb +0 -15
  116. data/app/views/puffer/sessions_base/new.html.erb +0 -11
  117. data/lib/puffer/extensions/form.rb +0 -16
@@ -18,15 +18,6 @@ describe "Field" do
18
18
  field.name.should == 'name'
19
19
  end
20
20
 
21
- it "#query_column" do
22
- field = Puffer::Field.new 'user.profile.name', Post
23
- field.query_column.should == 'profiles.name'
24
- field = Puffer::Field.new 'user.email', Post
25
- field.query_column.should == 'users.email'
26
- field = Puffer::Field.new 'user.full_name', Post
27
- field.query_column.should == nil
28
- end
29
-
30
21
  it "#column" do
31
22
  field = Puffer::Field.new 'user.profile.name', Post
32
23
  field.name.should == 'name'
@@ -4,16 +4,12 @@ describe Puffer::Filters do
4
4
 
5
5
  describe 'controller filters class generation' do
6
6
 
7
- it 'should generate class with proper name' do
8
- Puffer::Filters.controller_filters(Admin::UsersController).should == Admin::UsersControllerFilters
9
- end
10
-
11
- it 'should return Puffer::Filters subclass' do
12
- Puffer::Filters.controller_filters(Admin::UsersController).superclass.should == Puffer::Filters
7
+ it 'should set proper attributes' do
8
+ Puffer::Filters.new(Admin::PostsController.filter_fields).attributes.keys.should == %w(user.email status title body puffer_search puffer_order)
13
9
  end
14
10
 
15
- it 'should set proper attributes' do
16
- Puffer::Filters.controller_filters(Admin::PostsController).new.attributes.keys.should == %w(user.email status title body puffer_search puffer_order)
11
+ it 'should set proper query' do
12
+ Puffer::Filters.new(Admin::PostsController.filter_fields).query.keys.should == []
17
13
  end
18
14
 
19
15
  end
@@ -94,4 +94,26 @@ shared_examples "an adapter" do
94
94
 
95
95
  end
96
96
 
97
+ context 'diapazones' do
98
+ Timecop.freeze Time.now do
99
+ before do
100
+ 5.times { |i|
101
+ Fabricate fabric, :datetime_field => Time.now + i.hours
102
+ }
103
+ end
104
+
105
+ it 'should return from till' do
106
+ filter(:conditions => {'datetime_field' => Puffer::Filters::Diapason.new(Time.now + 0.9.hour, Time.now + 3.1.hours)}).should == nth(1, 2, 3)
107
+ end
108
+
109
+ it 'should return from' do
110
+ filter(:conditions => {'datetime_field' => Puffer::Filters::Diapason.new(Time.now + 0.9.hour)}).should == nth(1, 2, 3, 4)
111
+ end
112
+
113
+ it 'should return till' do
114
+ filter(:conditions => {'datetime_field' => Puffer::Filters::Diapason.new(nil, Time.now + 3.1.hours)}).should == nth(0, 1, 2, 3)
115
+ end
116
+ end
117
+ end
118
+
97
119
  end
data/spec/spec_helper.rb CHANGED
@@ -6,7 +6,7 @@ require "rails/test_help"
6
6
  require "rspec/rails"
7
7
  require "ammeter/init"
8
8
 
9
- Bundler.require(:default, ENV["RAILS_ENV"])
9
+ Bundler.require :development
10
10
 
11
11
  ActionMailer::Base.delivery_method = :test
12
12
  ActionMailer::Base.perform_deliveries = true
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puffer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.32
4
+ version: 0.1.0
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: 2011-10-27 00:00:00.000000000Z
12
+ date: 2011-11-23 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &11358240 !ruby/object:Gem::Requirement
16
+ requirement: &11729560 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 3.1.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *11358240
24
+ version_requirements: *11729560
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: kaminari
27
- requirement: &11356380 !ruby/object:Gem::Requirement
27
+ requirement: &11729000 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *11356380
35
+ version_requirements: *11729000
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: orm_adapter
38
- requirement: &11355160 !ruby/object:Gem::Requirement
38
+ requirement: &11728520 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *11355160
46
+ version_requirements: *11728520
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: sqlite3
49
- requirement: &11353460 !ruby/object:Gem::Requirement
49
+ requirement: &11728040 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *11353460
57
+ version_requirements: *11728040
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: mongoid
60
- requirement: &11352400 !ruby/object:Gem::Requirement
60
+ requirement: &11727340 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *11352400
68
+ version_requirements: *11727340
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: bson_ext
71
- requirement: &11351240 !ruby/object:Gem::Requirement
71
+ requirement: &11726840 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *11351240
79
+ version_requirements: *11726840
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: devise
82
- requirement: &11349800 !ruby/object:Gem::Requirement
82
+ requirement: &11726360 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: '0'
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *11349800
90
+ version_requirements: *11726360
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: rspec-rails
93
- requirement: &11348540 !ruby/object:Gem::Requirement
93
+ requirement: &11725880 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ! '>='
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: '0'
99
99
  type: :development
100
100
  prerelease: false
101
- version_requirements: *11348540
101
+ version_requirements: *11725880
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: capybara
104
- requirement: &11347340 !ruby/object:Gem::Requirement
104
+ requirement: &11725400 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ! '>='
@@ -109,10 +109,10 @@ dependencies:
109
109
  version: '0'
110
110
  type: :development
111
111
  prerelease: false
112
- version_requirements: *11347340
112
+ version_requirements: *11725400
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: database_cleaner
115
- requirement: &11345980 !ruby/object:Gem::Requirement
115
+ requirement: &11724920 !ruby/object:Gem::Requirement
116
116
  none: false
117
117
  requirements:
118
118
  - - ! '>='
@@ -120,10 +120,10 @@ dependencies:
120
120
  version: '0'
121
121
  type: :development
122
122
  prerelease: false
123
- version_requirements: *11345980
123
+ version_requirements: *11724920
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: ammeter
126
- requirement: &11344060 !ruby/object:Gem::Requirement
126
+ requirement: &11724440 !ruby/object:Gem::Requirement
127
127
  none: false
128
128
  requirements:
129
129
  - - ! '>='
@@ -131,10 +131,10 @@ dependencies:
131
131
  version: '0'
132
132
  type: :development
133
133
  prerelease: false
134
- version_requirements: *11344060
134
+ version_requirements: *11724440
135
135
  - !ruby/object:Gem::Dependency
136
- name: guard
137
- requirement: &11342940 !ruby/object:Gem::Requirement
136
+ name: timecop
137
+ requirement: &11723960 !ruby/object:Gem::Requirement
138
138
  none: false
139
139
  requirements:
140
140
  - - ! '>='
@@ -142,10 +142,10 @@ dependencies:
142
142
  version: '0'
143
143
  type: :development
144
144
  prerelease: false
145
- version_requirements: *11342940
145
+ version_requirements: *11723960
146
146
  - !ruby/object:Gem::Dependency
147
- name: libnotify
148
- requirement: &11341300 !ruby/object:Gem::Requirement
147
+ name: guard
148
+ requirement: &11716220 !ruby/object:Gem::Requirement
149
149
  none: false
150
150
  requirements:
151
151
  - - ! '>='
@@ -153,10 +153,10 @@ dependencies:
153
153
  version: '0'
154
154
  type: :development
155
155
  prerelease: false
156
- version_requirements: *11341300
156
+ version_requirements: *11716220
157
157
  - !ruby/object:Gem::Dependency
158
- name: guard-rspec
159
- requirement: &11339980 !ruby/object:Gem::Requirement
158
+ name: libnotify
159
+ requirement: &11715740 !ruby/object:Gem::Requirement
160
160
  none: false
161
161
  requirements:
162
162
  - - ! '>='
@@ -164,10 +164,10 @@ dependencies:
164
164
  version: '0'
165
165
  type: :development
166
166
  prerelease: false
167
- version_requirements: *11339980
167
+ version_requirements: *11715740
168
168
  - !ruby/object:Gem::Dependency
169
- name: forgery
170
- requirement: &11338400 !ruby/object:Gem::Requirement
169
+ name: guard-rspec
170
+ requirement: &11715260 !ruby/object:Gem::Requirement
171
171
  none: false
172
172
  requirements:
173
173
  - - ! '>='
@@ -175,10 +175,10 @@ dependencies:
175
175
  version: '0'
176
176
  type: :development
177
177
  prerelease: false
178
- version_requirements: *11338400
178
+ version_requirements: *11715260
179
179
  - !ruby/object:Gem::Dependency
180
- name: fabrication
181
- requirement: &11334380 !ruby/object:Gem::Requirement
180
+ name: forgery
181
+ requirement: &11714780 !ruby/object:Gem::Requirement
182
182
  none: false
183
183
  requirements:
184
184
  - - ! '>='
@@ -186,10 +186,10 @@ dependencies:
186
186
  version: '0'
187
187
  type: :development
188
188
  prerelease: false
189
- version_requirements: *11334380
189
+ version_requirements: *11714780
190
190
  - !ruby/object:Gem::Dependency
191
- name: jeweler
192
- requirement: &11333160 !ruby/object:Gem::Requirement
191
+ name: fabrication
192
+ requirement: &11714300 !ruby/object:Gem::Requirement
193
193
  none: false
194
194
  requirements:
195
195
  - - ! '>='
@@ -197,10 +197,10 @@ dependencies:
197
197
  version: '0'
198
198
  type: :development
199
199
  prerelease: false
200
- version_requirements: *11333160
200
+ version_requirements: *11714300
201
201
  - !ruby/object:Gem::Dependency
202
202
  name: nested_set
203
- requirement: &11331600 !ruby/object:Gem::Requirement
203
+ requirement: &11713820 !ruby/object:Gem::Requirement
204
204
  none: false
205
205
  requirements:
206
206
  - - ! '>='
@@ -208,14 +208,15 @@ dependencies:
208
208
  version: '0'
209
209
  type: :development
210
210
  prerelease: false
211
- version_requirements: *11331600
212
- description: In Soviet Russia puffer admins you
213
- email: kinwizard@gmail.com
211
+ version_requirements: *11713820
212
+ description: Admin interface builder
213
+ email:
214
+ - kinwizard@gmail.com
214
215
  executables: []
215
216
  extensions: []
216
- extra_rdoc_files:
217
- - README.md
217
+ extra_rdoc_files: []
218
218
  files:
219
+ - .gitignore
219
220
  - .rspec
220
221
  - .rvmrc
221
222
  - Gemfile
@@ -226,13 +227,18 @@ files:
226
227
  - Rakefile
227
228
  - VERSION
228
229
  - app/assets/javascripts/puffer/application.js
229
- - app/assets/javascripts/puffer/paginator.js
230
+ - app/assets/javascripts/puffer/associations.js
230
231
  - app/assets/javascripts/puffer/puffer.js
231
232
  - app/assets/javascripts/puffer/rails.js
232
233
  - app/assets/javascripts/puffer/right-autocompleter-src.js
233
234
  - app/assets/javascripts/puffer/right-calendar-src.js
234
235
  - app/assets/javascripts/puffer/right-dialog-src.js
236
+ - app/assets/javascripts/puffer/right-dnd-src.js
237
+ - app/assets/javascripts/puffer/right-in-edit-src.js
238
+ - app/assets/javascripts/puffer/right-keys-src.js
239
+ - app/assets/javascripts/puffer/right-paginator-src.js
235
240
  - app/assets/javascripts/puffer/right-slider-src.js
241
+ - app/assets/javascripts/puffer/right-sortable-src.js
236
242
  - app/assets/javascripts/puffer/right-src.js
237
243
  - app/assets/stylesheets/puffer/application.css
238
244
  - app/assets/stylesheets/puffer/paginator.css
@@ -245,12 +251,17 @@ files:
245
251
  - app/components/boolean/form.html.erb
246
252
  - app/components/boolean/index.html.erb
247
253
  - app/components/boolean_component.rb
254
+ - app/components/date_time/filter.html.erb
248
255
  - app/components/date_time/form.html.erb
249
256
  - app/components/date_time_component.rb
250
257
  - app/components/file/form.html.erb
251
258
  - app/components/file_component.rb
252
259
  - app/components/hidden/form.html.erb
253
260
  - app/components/hidden_component.rb
261
+ - app/components/nested_attributes_many/form.html.erb
262
+ - app/components/nested_attributes_many_component.rb
263
+ - app/components/nested_attributes_one/form.html.erb
264
+ - app/components/nested_attributes_one_component.rb
254
265
  - app/components/password/form.html.erb
255
266
  - app/components/password_component.rb
256
267
  - app/components/references_many/form.html.erb
@@ -259,10 +270,10 @@ files:
259
270
  - app/components/references_one/choose.html.erb
260
271
  - app/components/references_one/form.html.erb
261
272
  - app/components/references_one_component.rb
273
+ - app/components/render_component.rb
262
274
  - app/components/select/filter.html.erb
263
275
  - app/components/select/form.html.erb
264
276
  - app/components/select_component.rb
265
- - app/components/string/form.html.erb
266
277
  - app/components/string_component.rb
267
278
  - app/components/text/form.html.erb
268
279
  - app/components/text_component.rb
@@ -272,24 +283,31 @@ files:
272
283
  - app/controllers/puffer/base.rb
273
284
  - app/controllers/puffer/dashboard_base.rb
274
285
  - app/controllers/puffer/puffer_users_base.rb
275
- - app/controllers/puffer/sessions_base.rb
276
- - app/controllers/puffer/sessions_devise_base.rb
286
+ - app/controllers/puffer/sessions/base.rb
287
+ - app/controllers/puffer/sessions/clearance.rb
288
+ - app/controllers/puffer/sessions/devise.rb
289
+ - app/controllers/puffer/sessions/simple.rb
277
290
  - app/controllers/puffer/tree_base.rb
278
- - app/helpers/puffer_helper.rb
279
- - app/helpers/puffer_tree_helper.rb
280
291
  - app/models/puffer/puffer_user.rb
281
292
  - app/models/puffer_user.rb
282
293
  - app/views/layouts/puffer.html.erb
283
294
  - app/views/layouts/puffer_base.html.erb
284
295
  - app/views/layouts/puffer_dashboard.html.erb
285
296
  - app/views/layouts/puffer_sessions.html.erb
297
+ - app/views/puffer/base/_edit.html.erb
298
+ - app/views/puffer/base/_index.html.erb
299
+ - app/views/puffer/base/_show.html.erb
286
300
  - app/views/puffer/base/_table.html.erb
287
301
  - app/views/puffer/base/edit.html.erb
302
+ - app/views/puffer/base/edit.js.erb
288
303
  - app/views/puffer/base/index.html.erb
304
+ - app/views/puffer/base/index.js.erb
289
305
  - app/views/puffer/base/new.html.erb
290
306
  - app/views/puffer/base/show.html.erb
307
+ - app/views/puffer/base/show.js.erb
308
+ - app/views/puffer/base/update.js.erb
291
309
  - app/views/puffer/dashboard_base/index.html.erb
292
- - app/views/puffer/sessions_base/new.html.erb
310
+ - app/views/puffer/sessions/base/new.html.erb
293
311
  - app/views/puffer/tree_base/_record.html.erb
294
312
  - app/views/puffer/tree_base/toggle.js.erb
295
313
  - app/views/puffer/tree_base/tree.html.erb
@@ -314,11 +332,13 @@ files:
314
332
  - lib/puffer/extensions/core.rb
315
333
  - lib/puffer/extensions/directive_processor.rb
316
334
  - lib/puffer/extensions/engine.rb
317
- - lib/puffer/extensions/form.rb
318
335
  - lib/puffer/extensions/mapper.rb
319
336
  - lib/puffer/field.rb
320
337
  - lib/puffer/field_set.rb
321
338
  - lib/puffer/filters.rb
339
+ - lib/puffer/helpers/component_helper.rb
340
+ - lib/puffer/helpers/puffer_helper.rb
341
+ - lib/puffer/helpers/puffer_tree_helper.rb
322
342
  - lib/puffer/orm_adapter/active_record.rb
323
343
  - lib/puffer/orm_adapter/base.rb
324
344
  - lib/puffer/orm_adapter/mongoid.rb
@@ -326,6 +346,7 @@ files:
326
346
  - lib/puffer/resource/node.rb
327
347
  - lib/puffer/resource/routing.rb
328
348
  - lib/puffer/resource/tree.rb
349
+ - lib/puffer/version.rb
329
350
  - puffer.gemspec
330
351
  - spec/app/components/base_component_spec.rb
331
352
  - spec/app/components/boolean_component_spec.rb
@@ -354,7 +375,10 @@ files:
354
375
  - spec/dummy/app/controllers/orms/active_record_orm_primals_controller.rb
355
376
  - spec/dummy/app/controllers/orms/mongoid_orm_primals_controller.rb
356
377
  - spec/dummy/app/helpers/application_helper.rb
378
+ - spec/dummy/app/helpers/news_helper.rb
357
379
  - spec/dummy/app/models/active_record_orm.rb
380
+ - spec/dummy/app/models/active_record_orm/has_many_reference.rb
381
+ - spec/dummy/app/models/active_record_orm/has_one_reference.rb
358
382
  - spec/dummy/app/models/active_record_orm/primal.rb
359
383
  - spec/dummy/app/models/category.rb
360
384
  - spec/dummy/app/models/friendship.rb
@@ -399,6 +423,8 @@ files:
399
423
  - spec/dummy/db/migrate/20110301072545_create_news.rb
400
424
  - spec/dummy/db/migrate/20110912114129_create_puffer_users.rb
401
425
  - spec/dummy/db/migrate/20110930183902_create_active_record_orm_primals.rb
426
+ - spec/dummy/db/migrate/20111120144025_create_active_record_orm_has_one_references.rb
427
+ - spec/dummy/db/migrate/20111122203304_create_active_record_orm_has_many_references.rb
402
428
  - spec/dummy/db/schema.rb
403
429
  - spec/dummy/db/seeds.rb
404
430
  - spec/dummy/public/404.html
@@ -431,7 +457,7 @@ files:
431
457
  - spec/lib/resource_spec.rb
432
458
  - spec/puffer_spec.rb
433
459
  - spec/spec_helper.rb
434
- homepage: http://github.com/puffer/puffer
460
+ homepage: ''
435
461
  licenses: []
436
462
  post_install_message:
437
463
  rdoc_options: []
@@ -445,17 +471,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
445
471
  version: '0'
446
472
  segments:
447
473
  - 0
448
- hash: 2358292258674130920
474
+ hash: 3241070126251260077
449
475
  required_rubygems_version: !ruby/object:Gem::Requirement
450
476
  none: false
451
477
  requirements:
452
478
  - - ! '>='
453
479
  - !ruby/object:Gem::Version
454
480
  version: '0'
481
+ segments:
482
+ - 0
483
+ hash: 3241070126251260077
455
484
  requirements: []
456
- rubyforge_project:
485
+ rubyforge_project: puffer
457
486
  rubygems_version: 1.8.6
458
487
  signing_key:
459
488
  specification_version: 3
460
- summary: Admin interface builder
489
+ summary: In Soviet Russia puffer admins you
461
490
  test_files: []
@@ -1,5 +0,0 @@
1
- <% content_for :input do %>
2
- <%= opts[:form].text_field field, field.input_options %>
3
- <% end %>
4
-
5
- <%= render :file => 'base/form' %>
@@ -1,51 +0,0 @@
1
- module PufferHelper
2
-
3
- def puffer_scopes_navigation
4
- Rails.application.routes.resources_tree.map(&:scope).uniq.each do |scope|
5
- yield scope, send("#{scope}_root_path"), scope == puffer_namespace
6
- end
7
- end
8
-
9
- def puffer_groups_navigation namespace = puffer_namespace
10
- Rails.application.routes.resources_tree.roots.select {|node| node.controller.model && node.scope == namespace}.uniq_by(&:group).each do |resource_node|
11
- path = send("#{resource_node.url_string}_path")
12
- current = resource.resource_node ? resource.root.resource_node.group == resource_node.group : false
13
-
14
- yield resource_node.group, path, current
15
- end
16
- end
17
-
18
- def puffer_resources_navigation namespace = puffer_namespace, group = configuration.group
19
- Rails.application.routes.resources_tree.roots.select {|node| node.controller.model && node.scope == namespace && node.group == group}.each do |resource_node|
20
- title = resource_node.controller.model.model_name.human
21
- path = send("#{resource_node.url_string}_path")
22
- current = resource.resource_node ? resource.root.resource_node == resource_node : false
23
-
24
- yield title, path, current
25
- end
26
- end
27
-
28
- def render_head field
29
- field.human
30
- end
31
-
32
- def render_field field, record
33
- if field.options[:render]
34
- case field.options[:render]
35
- when Symbol then
36
- res = send(field.options[:render], record)
37
- when Proc then
38
- res = field.options[:render].bind(self).call(record)
39
- else ''
40
- end
41
- else
42
- res = record.call_chain(field.to_s)
43
- end
44
- unless field.native?
45
- url = edit_polymorphic_path [resource.scope, record.call_chain(field.path)] rescue nil
46
- res = link_to res, url if url
47
- end
48
- res
49
- end
50
-
51
- end
@@ -1,15 +0,0 @@
1
- module PufferTreeHelper
2
-
3
- def puffer_tree hash, options = {}, &block
4
- content_tag :ul, options do
5
- puffer_tree_node hash, &block
6
- end if hash.present?
7
- end
8
-
9
- def puffer_tree_node hash, &block
10
- hash.keys.each do |node|
11
- block.call node, render_tree(hash[node], &block)
12
- end if hash.present?
13
- end
14
-
15
- end
@@ -1,11 +0,0 @@
1
- <%= form_for record, :url => admin_session_path, :method => :post do |f| %>
2
- <ul class="form">
3
- <% create_fields.each do |field| -%>
4
- <li><%= f.puffer_field field %></li>
5
- <% end -%>
6
- </ul>
7
-
8
- <div class="buttons">
9
- <%= f.submit 'Login' %>
10
- </div>
11
- <% end %>
@@ -1,16 +0,0 @@
1
- module Puffer
2
- module Extensions
3
- module FormBuilder
4
-
5
- def puffer_field *args
6
- field = args.first.is_a?(Puffer::Field) ? args.first : Puffer::Field.new(*args)
7
- field.resource = object.class
8
- template = instance_variable_get :@template
9
- field.render template.controller, :form, :form => self, :record => object
10
- end
11
-
12
- end
13
- end
14
- end
15
-
16
- ActionView::Helpers::FormBuilder.send :include, Puffer::Extensions::FormBuilder