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
data/lib/puffer.rb CHANGED
@@ -10,7 +10,6 @@ require 'puffer/orm_adapter/mongoid' if defined?(Mongoid::Document::OrmAdapter)
10
10
  require 'puffer/extensions/controller'
11
11
  require 'puffer/extensions/core'
12
12
  require 'puffer/extensions/mapper'
13
- require 'puffer/extensions/form'
14
13
  require 'puffer/extensions/directive_processor'
15
14
  require 'puffer/extensions/engine'
16
15
  require 'puffer/engine'
@@ -33,6 +32,9 @@ module Puffer
33
32
  autoload :Base, 'puffer/component'
34
33
  end
35
34
 
35
+ # module Sessions
36
+ # end
37
+
36
38
  # Puffer has two types of mappings. If maps <tt>field.type</tt> to component
37
39
  # class and also maps field attributes to <tt>field.type</tt>
38
40
  mattr_accessor :_component_mappings
@@ -59,8 +61,6 @@ module Puffer
59
61
  raise ComponentMissing, "Missing `#{type}` component for `#{field}` field. Please use Puffer.map_component binding or specify field type manually"
60
62
  end
61
63
 
62
- map_component :belongs_to, :has_one, :to => :ReferencesOneComponent
63
- map_component :has_many, :has_and_belongs_to_many, :to => :ReferencesManyComponent
64
64
  map_component :date, :time, :datetime, :date_time, :timestamp, :to => :DateTimeComponent
65
65
  map_component :integer, :float, :decimal, :big_decimal, :to => :StringComponent
66
66
  map_component :"mongoid/fields/serializable/object", :"bson/object_id", :symbol, :array, :hash, :set, :range, :to => :StringComponent
@@ -98,14 +98,35 @@ module Puffer
98
98
  end
99
99
  end
100
100
 
101
+ append_custom_field_type :nested_attributes_one do |field|
102
+ field.reflection && field.reflection.macro == :has_one && !field.reflection.through? && field.model.instance_methods.include?(:"#{field}_attributes=")
103
+ end
104
+ append_custom_field_type :nested_attributes_one do |field|
105
+ field.reflection && field.reflection.macro == :embeds_one && field.model.instance_methods.include?(:"#{field}_attributes=")
106
+ end
107
+
108
+ append_custom_field_type :nested_attributes_many do |field|
109
+ field.reflection && field.reflection.macro == :has_many && !field.reflection.through? && field.model.instance_methods.include?(:"#{field}_attributes=")
110
+ end
111
+ append_custom_field_type :nested_attributes_many do |field|
112
+ field.reflection && field.reflection.macro == :embeds_many && field.model.instance_methods.include?(:"#{field}_attributes=")
113
+ end
114
+
115
+ append_custom_field_type :references_one do |field|
116
+ field.reflection && [:has_one, :belongs_to, :embedded_in].include?(field.reflection.macro)
117
+ end
118
+ append_custom_field_type :references_many do |field|
119
+ field.reflection && [:has_many, :has_and_belongs_to_many].include?(field.reflection.macro)
120
+ end
121
+
101
122
  append_custom_field_type :select do |field|
102
123
  field.options.key? :select
103
124
  end
104
125
  append_custom_field_type :password do |field|
105
126
  field.name =~ /password/
106
127
  end
107
- append_custom_field_type(proc {|type| type.reflection.macro}) do |field|
108
- field.reflection
128
+ append_custom_field_type :render do |field|
129
+ field.options.key? :render
109
130
  end
110
131
 
111
132
  end
data/puffer.gemspec CHANGED
@@ -1,303 +1,41 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
1
  # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "puffer/version"
5
4
 
6
5
  Gem::Specification.new do |s|
7
- s.name = %q{puffer}
8
- s.version = "0.0.32"
6
+ s.name = "puffer"
7
+ s.version = Puffer::VERSION
8
+ s.authors = ["pyromaniac"]
9
+ s.email = ["kinwizard@gmail.com"]
10
+ s.homepage = ""
11
+ s.summary = %q{In Soviet Russia puffer admins you}
12
+ s.description = %q{Admin interface builder}
9
13
 
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = [%q{pyromaniac}]
12
- s.date = %q{2011-10-27}
13
- s.description = %q{In Soviet Russia puffer admins you}
14
- s.email = %q{kinwizard@gmail.com}
15
- s.extra_rdoc_files = [
16
- "README.md"
17
- ]
18
- s.files = [
19
- ".rspec",
20
- ".rvmrc",
21
- "Gemfile",
22
- "Gemfile.lock",
23
- "Guardfile",
24
- "MIT-LICENSE",
25
- "README.md",
26
- "Rakefile",
27
- "VERSION",
28
- "app/assets/javascripts/puffer/application.js",
29
- "app/assets/javascripts/puffer/paginator.js",
30
- "app/assets/javascripts/puffer/puffer.js",
31
- "app/assets/javascripts/puffer/rails.js",
32
- "app/assets/javascripts/puffer/right-autocompleter-src.js",
33
- "app/assets/javascripts/puffer/right-calendar-src.js",
34
- "app/assets/javascripts/puffer/right-dialog-src.js",
35
- "app/assets/javascripts/puffer/right-slider-src.js",
36
- "app/assets/javascripts/puffer/right-src.js",
37
- "app/assets/stylesheets/puffer/application.css",
38
- "app/assets/stylesheets/puffer/paginator.css",
39
- "app/assets/stylesheets/puffer/puffer.css",
40
- "app/assets/stylesheets/puffer/puffer_tree.css",
41
- "app/assets/stylesheets/puffer/reset.css",
42
- "app/assets/stylesheets/puffer/right.css",
43
- "app/components/base/form.html.erb",
44
- "app/components/base_component.rb",
45
- "app/components/boolean/form.html.erb",
46
- "app/components/boolean/index.html.erb",
47
- "app/components/boolean_component.rb",
48
- "app/components/date_time/form.html.erb",
49
- "app/components/date_time_component.rb",
50
- "app/components/file/form.html.erb",
51
- "app/components/file_component.rb",
52
- "app/components/hidden/form.html.erb",
53
- "app/components/hidden_component.rb",
54
- "app/components/password/form.html.erb",
55
- "app/components/password_component.rb",
56
- "app/components/references_many/form.html.erb",
57
- "app/components/references_many/index.html.erb",
58
- "app/components/references_many_component.rb",
59
- "app/components/references_one/choose.html.erb",
60
- "app/components/references_one/form.html.erb",
61
- "app/components/references_one_component.rb",
62
- "app/components/select/filter.html.erb",
63
- "app/components/select/form.html.erb",
64
- "app/components/select_component.rb",
65
- "app/components/string/form.html.erb",
66
- "app/components/string_component.rb",
67
- "app/components/text/form.html.erb",
68
- "app/components/text_component.rb",
69
- "app/controllers/admin/dashboard_controller.rb",
70
- "app/controllers/admin/puffer_users_controller.rb",
71
- "app/controllers/admin/sessions_controller.rb",
72
- "app/controllers/puffer/base.rb",
73
- "app/controllers/puffer/dashboard_base.rb",
74
- "app/controllers/puffer/puffer_users_base.rb",
75
- "app/controllers/puffer/sessions_base.rb",
76
- "app/controllers/puffer/sessions_devise_base.rb",
77
- "app/controllers/puffer/tree_base.rb",
78
- "app/helpers/puffer_helper.rb",
79
- "app/helpers/puffer_tree_helper.rb",
80
- "app/models/puffer/puffer_user.rb",
81
- "app/models/puffer_user.rb",
82
- "app/views/layouts/puffer.html.erb",
83
- "app/views/layouts/puffer_base.html.erb",
84
- "app/views/layouts/puffer_dashboard.html.erb",
85
- "app/views/layouts/puffer_sessions.html.erb",
86
- "app/views/puffer/base/_table.html.erb",
87
- "app/views/puffer/base/edit.html.erb",
88
- "app/views/puffer/base/index.html.erb",
89
- "app/views/puffer/base/new.html.erb",
90
- "app/views/puffer/base/show.html.erb",
91
- "app/views/puffer/dashboard_base/index.html.erb",
92
- "app/views/puffer/sessions_base/new.html.erb",
93
- "app/views/puffer/tree_base/_record.html.erb",
94
- "app/views/puffer/tree_base/toggle.js.erb",
95
- "app/views/puffer/tree_base/tree.html.erb",
96
- "config/locales/puffer.yml",
97
- "config/routes.rb",
98
- "db/migrate/20110912095647_create_puffer_users.rb",
99
- "lib/generators/puffer/component/USAGE",
100
- "lib/generators/puffer/component/component_generator.rb",
101
- "lib/generators/puffer/component/templates/component.rb",
102
- "lib/generators/puffer/controller/USAGE",
103
- "lib/generators/puffer/controller/controller_generator.rb",
104
- "lib/generators/puffer/controller/templates/controller.rb",
105
- "lib/puffer.rb",
106
- "lib/puffer/component.rb",
107
- "lib/puffer/controller/actions.rb",
108
- "lib/puffer/controller/auth.rb",
109
- "lib/puffer/controller/config.rb",
110
- "lib/puffer/controller/dsl.rb",
111
- "lib/puffer/controller/mutate.rb",
112
- "lib/puffer/engine.rb",
113
- "lib/puffer/extensions/controller.rb",
114
- "lib/puffer/extensions/core.rb",
115
- "lib/puffer/extensions/directive_processor.rb",
116
- "lib/puffer/extensions/engine.rb",
117
- "lib/puffer/extensions/form.rb",
118
- "lib/puffer/extensions/mapper.rb",
119
- "lib/puffer/field.rb",
120
- "lib/puffer/field_set.rb",
121
- "lib/puffer/filters.rb",
122
- "lib/puffer/orm_adapter/active_record.rb",
123
- "lib/puffer/orm_adapter/base.rb",
124
- "lib/puffer/orm_adapter/mongoid.rb",
125
- "lib/puffer/resource.rb",
126
- "lib/puffer/resource/node.rb",
127
- "lib/puffer/resource/routing.rb",
128
- "lib/puffer/resource/tree.rb",
129
- "puffer.gemspec",
130
- "spec/app/components/base_component_spec.rb",
131
- "spec/app/components/boolean_component_spec.rb",
132
- "spec/app/components/date_time_component_spec.rb",
133
- "spec/app/components/file_component_spec.rb",
134
- "spec/app/components/hidden_component_spec.rb",
135
- "spec/app/components/password_component_spec.rb",
136
- "spec/app/components/references_many_component_spec.rb",
137
- "spec/app/components/references_one_component_spec.rb",
138
- "spec/app/components/select_component_spec.rb",
139
- "spec/app/components/string_component_spec.rb",
140
- "spec/app/components/text_component_spec.rb",
141
- "spec/dummy/.rvmrc",
142
- "spec/dummy/Rakefile",
143
- "spec/dummy/app/assets/images/rails.png",
144
- "spec/dummy/app/assets/javascripts/application.js",
145
- "spec/dummy/app/assets/stylesheets/application.css",
146
- "spec/dummy/app/controllers/admin/categories_controller.rb",
147
- "spec/dummy/app/controllers/admin/news_controller.rb",
148
- "spec/dummy/app/controllers/admin/posts_controller.rb",
149
- "spec/dummy/app/controllers/admin/profiles_controller.rb",
150
- "spec/dummy/app/controllers/admin/tagged_posts_controller.rb",
151
- "spec/dummy/app/controllers/admin/tags_controller.rb",
152
- "spec/dummy/app/controllers/admin/users_controller.rb",
153
- "spec/dummy/app/controllers/application_controller.rb",
154
- "spec/dummy/app/controllers/orms/active_record_orm_primals_controller.rb",
155
- "spec/dummy/app/controllers/orms/mongoid_orm_primals_controller.rb",
156
- "spec/dummy/app/helpers/application_helper.rb",
157
- "spec/dummy/app/models/active_record_orm.rb",
158
- "spec/dummy/app/models/active_record_orm/primal.rb",
159
- "spec/dummy/app/models/category.rb",
160
- "spec/dummy/app/models/friendship.rb",
161
- "spec/dummy/app/models/mongoid_orm.rb",
162
- "spec/dummy/app/models/mongoid_orm/primal.rb",
163
- "spec/dummy/app/models/news.rb",
164
- "spec/dummy/app/models/post.rb",
165
- "spec/dummy/app/models/post_category.rb",
166
- "spec/dummy/app/models/profile.rb",
167
- "spec/dummy/app/models/tag.rb",
168
- "spec/dummy/app/models/tagged_post.rb",
169
- "spec/dummy/app/models/tagging.rb",
170
- "spec/dummy/app/models/user.rb",
171
- "spec/dummy/app/views/layouts/application.html.erb",
172
- "spec/dummy/config.ru",
173
- "spec/dummy/config/application.rb",
174
- "spec/dummy/config/boot.rb",
175
- "spec/dummy/config/database.yml",
176
- "spec/dummy/config/environment.rb",
177
- "spec/dummy/config/environments/development.rb",
178
- "spec/dummy/config/environments/production.rb",
179
- "spec/dummy/config/environments/test.rb",
180
- "spec/dummy/config/initializers/backtrace_silencers.rb",
181
- "spec/dummy/config/initializers/devise.rb",
182
- "spec/dummy/config/initializers/inflections.rb",
183
- "spec/dummy/config/initializers/mime_types.rb",
184
- "spec/dummy/config/initializers/secret_token.rb",
185
- "spec/dummy/config/initializers/session_store.rb",
186
- "spec/dummy/config/initializers/wrap_parameters.rb",
187
- "spec/dummy/config/locales/devise.en.yml",
188
- "spec/dummy/config/locales/en.yml",
189
- "spec/dummy/config/mongoid.yml",
190
- "spec/dummy/config/routes.rb",
191
- "spec/dummy/db/migrate/20100930132559_create_users.rb",
192
- "spec/dummy/db/migrate/20100930132656_create_posts.rb",
193
- "spec/dummy/db/migrate/20100930132726_create_categories.rb",
194
- "spec/dummy/db/migrate/20100930132837_create_post_categories.rb",
195
- "spec/dummy/db/migrate/20100930133425_create_admin_profiles.rb",
196
- "spec/dummy/db/migrate/20101011155830_create_tags.rb",
197
- "spec/dummy/db/migrate/20101011160326_create_taggings.rb",
198
- "spec/dummy/db/migrate/20110107082706_create_friendships.rb",
199
- "spec/dummy/db/migrate/20110301072545_create_news.rb",
200
- "spec/dummy/db/migrate/20110912114129_create_puffer_users.rb",
201
- "spec/dummy/db/migrate/20110930183902_create_active_record_orm_primals.rb",
202
- "spec/dummy/db/schema.rb",
203
- "spec/dummy/db/seeds.rb",
204
- "spec/dummy/public/404.html",
205
- "spec/dummy/public/422.html",
206
- "spec/dummy/public/500.html",
207
- "spec/dummy/public/favicon.ico",
208
- "spec/dummy/public/robots.txt",
209
- "spec/dummy/script/rails",
210
- "spec/fabricators/active_record_orm/primal.rb",
211
- "spec/fabricators/categories_fabricator.rb",
212
- "spec/fabricators/mongoid_orm/primal.rb",
213
- "spec/fabricators/news_fabricator.rb",
214
- "spec/fabricators/posts_fabricator.rb",
215
- "spec/fabricators/profiles_fabricator.rb",
216
- "spec/fabricators/tags_fabricator.rb",
217
- "spec/fabricators/users_fabricator.rb",
218
- "spec/generators/puffer/component/component_generator_spec.rb",
219
- "spec/generators/puffer/controller/controller_generator_spec.rb",
220
- "spec/helpers/puffer_helper_spec.rb",
221
- "spec/integration/navigation_spec.rb",
222
- "spec/lib/component_spec.rb",
223
- "spec/lib/extensions/core_spec.rb",
224
- "spec/lib/fields_spec.rb",
225
- "spec/lib/filters_spec.rb",
226
- "spec/lib/orm_adapter/active_record_spec.rb",
227
- "spec/lib/orm_adapter/base_shared.rb",
228
- "spec/lib/orm_adapter/mongoid_spec.rb",
229
- "spec/lib/resource/routing_spec.rb",
230
- "spec/lib/resource/tree_spec.rb",
231
- "spec/lib/resource_spec.rb",
232
- "spec/puffer_spec.rb",
233
- "spec/spec_helper.rb"
234
- ]
235
- s.homepage = %q{http://github.com/puffer/puffer}
236
- s.require_paths = [%q{lib}]
237
- s.rubygems_version = %q{1.8.6}
238
- s.summary = %q{Admin interface builder}
14
+ s.rubyforge_project = "puffer"
239
15
 
240
- if s.respond_to? :specification_version then
241
- s.specification_version = 3
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
+ s.require_paths = ["lib"]
242
20
 
243
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
244
- s.add_runtime_dependency(%q<rails>, ["~> 3.1.0"])
245
- s.add_runtime_dependency(%q<kaminari>, [">= 0"])
246
- s.add_runtime_dependency(%q<orm_adapter>, [">= 0"])
247
- s.add_development_dependency(%q<sqlite3>, [">= 0"])
248
- s.add_development_dependency(%q<mongoid>, [">= 0"])
249
- s.add_development_dependency(%q<bson_ext>, [">= 0"])
250
- s.add_development_dependency(%q<devise>, [">= 0"])
251
- s.add_development_dependency(%q<rspec-rails>, [">= 0"])
252
- s.add_development_dependency(%q<capybara>, [">= 0"])
253
- s.add_development_dependency(%q<database_cleaner>, [">= 0"])
254
- s.add_development_dependency(%q<ammeter>, [">= 0"])
255
- s.add_development_dependency(%q<guard>, [">= 0"])
256
- s.add_development_dependency(%q<libnotify>, [">= 0"])
257
- s.add_development_dependency(%q<guard-rspec>, [">= 0"])
258
- s.add_development_dependency(%q<forgery>, [">= 0"])
259
- s.add_development_dependency(%q<fabrication>, [">= 0"])
260
- s.add_development_dependency(%q<jeweler>, [">= 0"])
261
- s.add_development_dependency(%q<nested_set>, [">= 0"])
262
- else
263
- s.add_dependency(%q<rails>, ["~> 3.1.0"])
264
- s.add_dependency(%q<kaminari>, [">= 0"])
265
- s.add_dependency(%q<orm_adapter>, [">= 0"])
266
- s.add_dependency(%q<sqlite3>, [">= 0"])
267
- s.add_dependency(%q<mongoid>, [">= 0"])
268
- s.add_dependency(%q<bson_ext>, [">= 0"])
269
- s.add_dependency(%q<devise>, [">= 0"])
270
- s.add_dependency(%q<rspec-rails>, [">= 0"])
271
- s.add_dependency(%q<capybara>, [">= 0"])
272
- s.add_dependency(%q<database_cleaner>, [">= 0"])
273
- s.add_dependency(%q<ammeter>, [">= 0"])
274
- s.add_dependency(%q<guard>, [">= 0"])
275
- s.add_dependency(%q<libnotify>, [">= 0"])
276
- s.add_dependency(%q<guard-rspec>, [">= 0"])
277
- s.add_dependency(%q<forgery>, [">= 0"])
278
- s.add_dependency(%q<fabrication>, [">= 0"])
279
- s.add_dependency(%q<jeweler>, [">= 0"])
280
- s.add_dependency(%q<nested_set>, [">= 0"])
281
- end
282
- else
283
- s.add_dependency(%q<rails>, ["~> 3.1.0"])
284
- s.add_dependency(%q<kaminari>, [">= 0"])
285
- s.add_dependency(%q<orm_adapter>, [">= 0"])
286
- s.add_dependency(%q<sqlite3>, [">= 0"])
287
- s.add_dependency(%q<mongoid>, [">= 0"])
288
- s.add_dependency(%q<bson_ext>, [">= 0"])
289
- s.add_dependency(%q<devise>, [">= 0"])
290
- s.add_dependency(%q<rspec-rails>, [">= 0"])
291
- s.add_dependency(%q<capybara>, [">= 0"])
292
- s.add_dependency(%q<database_cleaner>, [">= 0"])
293
- s.add_dependency(%q<ammeter>, [">= 0"])
294
- s.add_dependency(%q<guard>, [">= 0"])
295
- s.add_dependency(%q<libnotify>, [">= 0"])
296
- s.add_dependency(%q<guard-rspec>, [">= 0"])
297
- s.add_dependency(%q<forgery>, [">= 0"])
298
- s.add_dependency(%q<fabrication>, [">= 0"])
299
- s.add_dependency(%q<jeweler>, [">= 0"])
300
- s.add_dependency(%q<nested_set>, [">= 0"])
301
- end
302
- end
21
+ # specify any dependencies here; for example:
22
+ s.add_runtime_dependency(%q<rails>, ["~> 3.1.0"])
23
+ s.add_runtime_dependency(%q<kaminari>, [">= 0"])
24
+ s.add_runtime_dependency(%q<orm_adapter>, [">= 0"])
303
25
 
26
+ s.add_development_dependency(%q<sqlite3>, [">= 0"])
27
+ s.add_development_dependency(%q<mongoid>, [">= 0"])
28
+ s.add_development_dependency(%q<bson_ext>, [">= 0"])
29
+ s.add_development_dependency(%q<devise>, [">= 0"])
30
+ s.add_development_dependency(%q<rspec-rails>, [">= 0"])
31
+ s.add_development_dependency(%q<capybara>, [">= 0"])
32
+ s.add_development_dependency(%q<database_cleaner>, [">= 0"])
33
+ s.add_development_dependency(%q<ammeter>, [">= 0"])
34
+ s.add_development_dependency(%q<timecop>, [">= 0"])
35
+ s.add_development_dependency(%q<guard>, [">= 0"])
36
+ s.add_development_dependency(%q<libnotify>, [">= 0"])
37
+ s.add_development_dependency(%q<guard-rspec>, [">= 0"])
38
+ s.add_development_dependency(%q<forgery>, [">= 0"])
39
+ s.add_development_dependency(%q<fabrication>, [">= 0"])
40
+ s.add_development_dependency(%q<nested_set>, [">= 0"])
41
+ end
@@ -5,8 +5,8 @@ describe BaseComponent do
5
5
  include RSpec::Rails::RequestExampleGroup
6
6
 
7
7
  context 'index' do
8
-
9
8
  it 'should render field content' do
9
+ pending
10
10
  @category = Fabricate :category
11
11
  get admin_categories_path
12
12
 
@@ -6,6 +6,7 @@ describe BooleanComponent do
6
6
 
7
7
  context 'index' do
8
8
  it 'should render checkbox' do
9
+ pending
9
10
  @category = Fabricate :category
10
11
  get admin_categories_path
11
12
 
@@ -18,6 +19,7 @@ describe BooleanComponent do
18
19
 
19
20
  context 'form' do
20
21
  it 'should render form field' do
22
+ pending
21
23
  @category = Fabricate :category
22
24
  get admin_categories_path
23
25
 
@@ -7,6 +7,7 @@ describe DateTimeComponent do
7
7
  context 'form' do
8
8
 
9
9
  it 'should render form field' do
10
+ pending
10
11
  @user = Fabricate :user_with_profile
11
12
  get admin_user_profile_path(@user)
12
13
 
@@ -7,6 +7,7 @@ describe FileComponent do
7
7
  context 'form' do
8
8
 
9
9
  it 'should render form field' do
10
+ pending
10
11
  @post = Fabricate :post
11
12
  get admin_posts_path
12
13
 
@@ -7,6 +7,7 @@ describe HiddenComponent do
7
7
  context 'form' do
8
8
 
9
9
  it 'should render form field' do
10
+ pending
10
11
  @category = Fabricate :category
11
12
  get admin_categories_path
12
13
 
@@ -7,6 +7,7 @@ describe PasswordComponent do
7
7
  context 'form' do
8
8
 
9
9
  it 'should render form field' do
10
+ pending
10
11
  @user = Fabricate :user
11
12
  get admin_users_path
12
13
 
@@ -25,6 +26,7 @@ describe PasswordComponent do
25
26
  context 'index' do
26
27
 
27
28
  it 'should render field content' do
29
+ pending
28
30
  @user = Fabricate :user
29
31
  get admin_users_path
30
32
 
@@ -7,6 +7,7 @@ describe SelectComponent do
7
7
  context 'form' do
8
8
 
9
9
  it 'should render form field' do
10
+ pending
10
11
  @post = Fabricate :post
11
12
  get admin_posts_path
12
13
 
@@ -7,6 +7,7 @@ describe StringComponent do
7
7
  context 'form' do
8
8
 
9
9
  it 'should render form field' do
10
+ pending
10
11
  @category = Fabricate :category
11
12
  get admin_categories_path
12
13
 
@@ -7,6 +7,7 @@ describe TextComponent do
7
7
  context 'form' do
8
8
 
9
9
  it 'should render form field' do
10
+ pending
10
11
  @post = Fabricate :post
11
12
  get admin_posts_path
12
13
 
@@ -7,6 +7,8 @@ class Admin::NewsController < Puffer::Base
7
7
  index do
8
8
  field :title
9
9
  field :body
10
+ field :renderable, :render => lambda { @record.title }
11
+ field :renderable2, :render => :render_title
10
12
  end
11
13
 
12
14
  form do
@@ -8,7 +8,7 @@ class Admin::ProfilesController < Puffer::Base
8
8
  field 'user.email'
9
9
  field :name
10
10
  field :surname
11
- field :birth_date
11
+ field :birth_date, :format => :long
12
12
  end
13
13
 
14
14
  form do
@@ -2,6 +2,8 @@ class Admin::UsersController < Puffer::Base
2
2
 
3
3
  setup do
4
4
  group :users
5
+ order 'email desc'
6
+ show true
5
7
  end
6
8
 
7
9
  member do
@@ -20,6 +20,14 @@ class Orms::ActiveRecordOrmPrimalsController < Puffer::Base
20
20
  end
21
21
 
22
22
  form do
23
+ field :has_one_reference do
24
+ field :name
25
+ end
26
+
27
+ field :has_many_references do
28
+ field :name
29
+ end
30
+
23
31
  field :string_field
24
32
  field :text_field
25
33
  field :select_field, :select => (1..5).map {|i| "option #{i}"}
@@ -0,0 +1,7 @@
1
+ module NewsHelper
2
+
3
+ def render_title
4
+ @record.title
5
+ end
6
+
7
+ end
@@ -0,0 +1,5 @@
1
+ class ActiveRecordOrm::HasManyReference < ActiveRecord::Base
2
+ belongs_to :primal
3
+
4
+ validates :name, :presence => true
5
+ end
@@ -0,0 +1,5 @@
1
+ class ActiveRecordOrm::HasOneReference < ActiveRecord::Base
2
+ belongs_to :primal
3
+
4
+ validates :name, :presence => true
5
+ end
@@ -1,2 +1,6 @@
1
1
  class ActiveRecordOrm::Primal < ActiveRecord::Base
2
+ has_one :has_one_reference, :validate => true
3
+ has_many :has_many_references, :validate => true
4
+
5
+ accepts_nested_attributes_for :has_one_reference, :has_many_references, :allow_destroy => true
2
6
  end
@@ -26,5 +26,5 @@ Dummy::Application.configure do
26
26
  config.assets.compress = false
27
27
 
28
28
  # Expands the lines which load the assets
29
- config.assets.debug = true
29
+ config.assets.debug = false
30
30
  end
@@ -0,0 +1,10 @@
1
+ class CreateActiveRecordOrmHasOneReferences < ActiveRecord::Migration
2
+ def change
3
+ create_table :active_record_orm_has_one_references do |t|
4
+ t.string :name
5
+ t.integer :primal_id
6
+
7
+ t.timestamps
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ class CreateActiveRecordOrmHasManyReferences < ActiveRecord::Migration
2
+ def change
3
+ create_table :active_record_orm_has_many_references do |t|
4
+ t.string :name
5
+ t.integer :primal_id
6
+
7
+ t.timestamps
8
+ end
9
+ end
10
+ end
@@ -11,7 +11,21 @@
11
11
  #
12
12
  # It's strongly recommended to check this file into your version control system.
13
13
 
14
- ActiveRecord::Schema.define(:version => 20110930183902) do
14
+ ActiveRecord::Schema.define(:version => 20111122203304) do
15
+
16
+ create_table "active_record_orm_has_many_references", :force => true do |t|
17
+ t.string "name"
18
+ t.integer "primal_id"
19
+ t.datetime "created_at"
20
+ t.datetime "updated_at"
21
+ end
22
+
23
+ create_table "active_record_orm_has_one_references", :force => true do |t|
24
+ t.string "name"
25
+ t.integer "primal_id"
26
+ t.datetime "created_at"
27
+ t.datetime "updated_at"
28
+ end
15
29
 
16
30
  create_table "active_record_orm_primals", :force => true do |t|
17
31
  t.string "string_field"
@@ -10,7 +10,7 @@ require 'spec_helper'
10
10
  # end
11
11
  # end
12
12
  # end
13
- describe PufferHelper do
13
+ describe Puffer::Helpers::PufferHelper do
14
14
 
15
15
  it "generates scopes navigation" do
16
16
  helper.stub(:puffer_namespace).and_return(:admin)