puffer 0.0.23 → 0.0.24

Sign up to get free protection for your applications and to get access to all the features.
Files changed (100) hide show
  1. data/.rspec +1 -0
  2. data/Gemfile +1 -1
  3. data/Gemfile.lock +55 -53
  4. data/VERSION +1 -1
  5. data/app/assets/javascripts/puffer/application.js +6 -3
  6. data/app/assets/javascripts/puffer/paginator.js +223 -0
  7. data/app/assets/javascripts/puffer/puffer.js +12 -0
  8. data/app/assets/javascripts/puffer/rails.js +1 -0
  9. data/app/assets/javascripts/puffer/{right-autocompleter.js → right-autocompleter-src.js} +45 -41
  10. data/app/assets/javascripts/puffer/{right-calendar.js → right-calendar-src.js} +53 -50
  11. data/app/assets/javascripts/puffer/right-dialog-src.js +768 -0
  12. data/app/assets/javascripts/puffer/right-slider-src.js +507 -0
  13. data/app/assets/javascripts/puffer/{right.js → right-src.js} +1000 -230
  14. data/app/assets/stylesheets/puffer/application.css +2 -0
  15. data/app/assets/stylesheets/puffer/paginator.css +33 -0
  16. data/app/assets/stylesheets/puffer/right.css +4 -0
  17. data/app/components/base/form.html.erb +15 -0
  18. data/app/components/base_component.rb +15 -0
  19. data/app/components/boolean/form.html.erb +3 -0
  20. data/app/components/boolean/index.html.erb +3 -0
  21. data/app/components/boolean_component.rb +13 -0
  22. data/app/components/date_time/form.html.erb +5 -0
  23. data/app/components/date_time_component.rb +12 -0
  24. data/app/components/file/form.html.erb +5 -0
  25. data/app/components/file_component.rb +3 -0
  26. data/app/components/hidden/form.html.erb +1 -0
  27. data/app/components/hidden_component.rb +3 -0
  28. data/app/components/password/form.html.erb +5 -0
  29. data/app/components/password_component.rb +7 -0
  30. data/app/components/references_many/form.html.erb +1 -0
  31. data/app/components/references_many_component.rb +7 -0
  32. data/app/components/references_one/choose.html.erb +9 -0
  33. data/app/components/references_one/form.html.erb +28 -0
  34. data/app/components/references_one_component.rb +12 -0
  35. data/app/components/select/form.html.erb +5 -0
  36. data/app/components/select_component.rb +15 -0
  37. data/app/components/string/form.html.erb +5 -0
  38. data/app/components/string_component.rb +3 -0
  39. data/app/components/text/form.html.erb +5 -0
  40. data/app/components/text_component.rb +3 -0
  41. data/app/controllers/puffer/base.rb +4 -0
  42. data/app/views/puffer/base/_form.html.erb +0 -1
  43. data/app/views/puffer/base/_table.html.erb +25 -0
  44. data/app/views/puffer/base/index.html.erb +14 -28
  45. data/app/views/puffer/tree_base/_record.html.erb +1 -1
  46. data/lib/generators/puffer/component/USAGE +12 -0
  47. data/lib/generators/puffer/component/component_generator.rb +19 -0
  48. data/lib/generators/puffer/component/templates/component.rb +15 -0
  49. data/lib/generators/puffer/component/templates/component_spec.rb +19 -0
  50. data/lib/puffer/component.rb +141 -0
  51. data/lib/puffer/controller/dsl.rb +25 -12
  52. data/lib/puffer/engine.rb +5 -0
  53. data/lib/puffer/extensions/controller.rb +11 -9
  54. data/lib/puffer/extensions/form.rb +2 -1
  55. data/lib/puffer/extensions/mapper.rb +2 -0
  56. data/lib/puffer/field.rb +30 -19
  57. data/lib/puffer/field_set.rb +17 -2
  58. data/lib/puffer.rb +25 -8
  59. data/puffer.gemspec +59 -28
  60. data/spec/app/components/base_component_spec.rb +19 -0
  61. data/spec/app/components/boolean_component_spec.rb +36 -0
  62. data/spec/app/components/date_time_component_spec.rb +26 -0
  63. data/spec/app/components/file_component_spec.rb +25 -0
  64. data/spec/app/components/hidden_component_spec.rb +24 -0
  65. data/spec/app/components/password_component_spec.rb +37 -0
  66. data/spec/app/components/references_many_component_spec.rb +19 -0
  67. data/spec/app/components/references_one_component_spec.rb +19 -0
  68. data/spec/app/components/select_component_spec.rb +30 -0
  69. data/spec/app/components/string_component_spec.rb +25 -0
  70. data/spec/app/components/text_component_spec.rb +25 -0
  71. data/spec/dummy/app/controllers/admin/categories_controller.rb +3 -3
  72. data/spec/dummy/app/controllers/admin/posts_controller.rb +3 -0
  73. data/spec/dummy/app/controllers/{puffer → admin}/sessions_controller.rb +1 -1
  74. data/spec/dummy/app/controllers/admin/users_controller.rb +2 -2
  75. data/spec/dummy/app/models/post.rb +4 -0
  76. data/spec/dummy/db/migrate/20100930132656_create_posts.rb +2 -0
  77. data/spec/dummy/db/migrate/20100930132726_create_categories.rb +1 -0
  78. data/spec/dummy/db/schema.rb +3 -0
  79. data/spec/dummy/db/seeds.rb +6 -1
  80. data/spec/fabricators/categories_fabricator.rb +1 -0
  81. data/spec/fabricators/posts_fabricator.rb +1 -0
  82. data/spec/lib/component_spec.rb +7 -0
  83. data/spec/lib/fields_spec.rb +0 -4
  84. metadata +85 -56
  85. data/app/views/puffer/base/associated/_many.html.erb +0 -56
  86. data/app/views/puffer/base/associated/many.rjs +0 -1
  87. data/app/views/puffer/base/associated/one.js.erb +0 -13
  88. data/app/views/puffer/base/association/_many.html.erb +0 -7
  89. data/lib/puffer/controller/generated.rb +0 -65
  90. data/lib/puffer/customs.rb +0 -64
  91. data/lib/puffer/inputs/association.rb +0 -38
  92. data/lib/puffer/inputs/base.rb +0 -51
  93. data/lib/puffer/inputs/boolean.rb +0 -19
  94. data/lib/puffer/inputs/collection_association.rb +0 -11
  95. data/lib/puffer/inputs/date_time.rb +0 -16
  96. data/lib/puffer/inputs/file.rb +0 -11
  97. data/lib/puffer/inputs/hidden.rb +0 -15
  98. data/lib/puffer/inputs/password.rb +0 -11
  99. data/lib/puffer/inputs/select.rb +0 -19
  100. data/lib/puffer/inputs/text.rb +0 -11
@@ -0,0 +1,37 @@
1
+ require 'spec_helper'
2
+
3
+ describe PasswordComponent do
4
+
5
+ include RSpec::Rails::RequestExampleGroup
6
+
7
+ context 'form' do
8
+
9
+ it 'should render form field' do
10
+ @user = Fabricate :user
11
+ get admin_users_path
12
+
13
+ field = controller.form_fields[:password]
14
+ component = ''
15
+ controller.view_context.form_for @user, :url => admin_user_path(@user) do |form|
16
+ component = Puffer::Component::Base.render_component(controller, field, :form, :form => form)
17
+ end
18
+
19
+ component.should have_selector('label[for=user_password]')
20
+ component.should have_selector("input[type=password]")
21
+ end
22
+
23
+ end
24
+
25
+ context 'index' do
26
+
27
+ it 'should render field content' do
28
+ @user = Fabricate :user
29
+ get admin_users_path
30
+
31
+ field = controller.index_fields[:password]
32
+ Puffer::Component::Base.render_component(controller, field, :index, :record => @user).should == '*' * @user.password.mb_chars.length
33
+ end
34
+
35
+ end
36
+
37
+ end
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+
3
+ describe ReferencesManyComponent do
4
+
5
+ include RSpec::Rails::RequestExampleGroup
6
+
7
+ context 'index' do
8
+
9
+ it 'should render index component'
10
+
11
+ end
12
+
13
+ context 'form' do
14
+
15
+ it 'should render form component'
16
+
17
+ end
18
+
19
+ end
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+
3
+ describe ReferencesOneComponent do
4
+
5
+ include RSpec::Rails::RequestExampleGroup
6
+
7
+ context 'index' do
8
+
9
+ it 'should render index component'
10
+
11
+ end
12
+
13
+ context 'form' do
14
+
15
+ it 'should render form component'
16
+
17
+ end
18
+
19
+ end
@@ -0,0 +1,30 @@
1
+ require 'spec_helper'
2
+
3
+ describe SelectComponent do
4
+
5
+ include RSpec::Rails::RequestExampleGroup
6
+
7
+ context 'form' do
8
+
9
+ it 'should render form field' do
10
+ @post = Fabricate :post
11
+ get admin_posts_path
12
+
13
+ field = controller.form_fields[:status]
14
+ field.options[:type] = :select
15
+ component = ''
16
+ controller.view_context.form_for @post, :url => admin_post_path(@post) do |form|
17
+ component = Puffer::Component::Base.render_component(controller, field, :form, :form => form)
18
+ end
19
+
20
+ component.should have_selector('label[for=post_status]')
21
+ component.should have_selector('select') do |select|
22
+ Post.statuses.each do |status|
23
+ select.should have_selector("option[value='#{status}']", :content => status)
24
+ end
25
+ end
26
+ end
27
+
28
+ end
29
+
30
+ end
@@ -0,0 +1,25 @@
1
+ require 'spec_helper'
2
+
3
+ describe StringComponent do
4
+
5
+ include RSpec::Rails::RequestExampleGroup
6
+
7
+ context 'form' do
8
+
9
+ it 'should render form field' do
10
+ @category = Fabricate :category
11
+ get admin_categories_path
12
+
13
+ field = controller.form_fields[:title]
14
+ component = ''
15
+ controller.view_context.form_for @category, :url => admin_category_path(@category) do |form|
16
+ component = Puffer::Component::Base.render_component(controller, field, :form, :form => form)
17
+ end
18
+
19
+ component.should have_selector('label[for=category_title]')
20
+ component.should have_selector("input[type=text][value='#{@category.title}']")
21
+ end
22
+
23
+ end
24
+
25
+ end
@@ -0,0 +1,25 @@
1
+ require 'spec_helper'
2
+
3
+ describe TextComponent do
4
+
5
+ include RSpec::Rails::RequestExampleGroup
6
+
7
+ context 'form' do
8
+
9
+ it 'should render form field' do
10
+ @post = Fabricate :post
11
+ get admin_posts_path
12
+
13
+ field = controller.form_fields[:body]
14
+ component = ''
15
+ controller.view_context.form_for @post, :url => admin_post_path(@post) do |form|
16
+ component = Puffer::Component::Base.render_component(controller, field, :form, :form => form)
17
+ end
18
+
19
+ component.should have_selector('label[for=post_body]')
20
+ component.should have_selector('textarea', :content => @post.body)
21
+ end
22
+
23
+ end
24
+
25
+ end
@@ -6,15 +6,15 @@ class Admin::CategoriesController < Puffer::TreeBase
6
6
 
7
7
  index do
8
8
  field :id
9
+ field :hidden
9
10
  field :title
10
11
  end
11
12
 
12
13
  form do
13
14
  field :id
15
+ field :hidden
14
16
  field :title
15
- field :parent do
16
- field :title
17
- end
17
+ field :parent_id, :type => :hidden
18
18
  end
19
19
 
20
20
  end
@@ -6,6 +6,7 @@ class Admin::PostsController < Puffer::Base
6
6
 
7
7
  index do
8
8
  field 'user.email'
9
+ field :status
9
10
  field :title
10
11
  field :body
11
12
  end
@@ -14,8 +15,10 @@ class Admin::PostsController < Puffer::Base
14
15
  field :user do
15
16
  field :email
16
17
  end
18
+ field :status, :select => Post.statuses
17
19
  field :title
18
20
  field :body
21
+ field :filename, :type => :file
19
22
  end
20
23
 
21
24
  end
@@ -1,4 +1,4 @@
1
- class Puffer::SessionsController < Puffer::SessionsBase
1
+ class Admin::SessionsController < Puffer::SessionsBase
2
2
 
3
3
  def new
4
4
  @record = User.new
@@ -6,12 +6,12 @@ class Admin::UsersController < Puffer::Base
6
6
 
7
7
  index do
8
8
  field :email
9
- field :password
9
+ field :password, :type => :password
10
10
  end
11
11
 
12
12
  form do
13
13
  field :email
14
- field :password
14
+ field :password, :type => :password
15
15
  end
16
16
 
17
17
  end
@@ -4,4 +4,8 @@ class Post < ActiveRecord::Base
4
4
  has_many :taggings, :as => :taggable
5
5
  has_many :tags, :through => :taggings
6
6
  belongs_to :user
7
+
8
+ def self.statuses
9
+ %w(draft hidden published)
10
+ end
7
11
  end
@@ -4,6 +4,8 @@ class CreatePosts < ActiveRecord::Migration
4
4
  t.integer :user_id
5
5
  t.string :title
6
6
  t.text :body
7
+ t.string :status
8
+ t.string :filename
7
9
 
8
10
  t.timestamps
9
11
  end
@@ -2,6 +2,7 @@ class CreateCategories < ActiveRecord::Migration
2
2
  def self.up
3
3
  create_table :categories do |t|
4
4
  t.string :title
5
+ t.boolean :hidden
5
6
 
6
7
  t.integer :parent_id
7
8
  t.integer :lft
@@ -14,6 +14,7 @@ ActiveRecord::Schema.define(:version => 20110301072545) do
14
14
 
15
15
  create_table "categories", :force => true do |t|
16
16
  t.string "title"
17
+ t.boolean "hidden"
17
18
  t.integer "parent_id"
18
19
  t.integer "lft"
19
20
  t.integer "rgt"
@@ -48,6 +49,8 @@ ActiveRecord::Schema.define(:version => 20110301072545) do
48
49
  t.integer "user_id"
49
50
  t.string "title"
50
51
  t.text "body"
52
+ t.string "status"
53
+ t.string "filename"
51
54
  t.datetime "created_at"
52
55
  t.datetime "updated_at"
53
56
  end
@@ -31,4 +31,9 @@ def create_category hash, parent = nil
31
31
  end
32
32
  end
33
33
 
34
- create_category categories
34
+ create_category categories
35
+
36
+
37
+ 40.times do |i|
38
+ User.create! :email => "email#{i}@gmail.com", :password => '1'*(rand(7)+6)
39
+ end
@@ -1,3 +1,4 @@
1
1
  Fabricator :category do
2
2
  title { Forgery::LoremIpsum.word }
3
+ hidden false
3
4
  end
@@ -1,6 +1,7 @@
1
1
  Fabricator :post do
2
2
  title { Forgery::LoremIpsum.sentence }
3
3
  body { Forgery::LoremIpsum.paragraphs 3 }
4
+ status 'hidden'
4
5
  end
5
6
 
6
7
  Fabricator :post_with_categories, :from => :post do
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+
3
+ describe "Component::Base" do
4
+
5
+ include RSpec::Rails::RequestExampleGroup
6
+
7
+ end
@@ -1,9 +1,5 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe "Fields" do
4
-
5
- end
6
-
7
3
  describe "Field" do
8
4
 
9
5
  it "#model" do
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.23
4
+ version: 0.0.24
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,23 +9,22 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-08-01 00:00:00.000000000 +04:00
13
- default_executable:
12
+ date: 2011-09-09 00:00:00.000000000Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: rails
17
- requirement: &12307480 !ruby/object:Gem::Requirement
16
+ requirement: &21317520 !ruby/object:Gem::Requirement
18
17
  none: false
19
18
  requirements:
20
- - - ! '>='
19
+ - - ~>
21
20
  - !ruby/object:Gem::Version
22
- version: 3.1.0.rc5
21
+ version: 3.1.0
23
22
  type: :runtime
24
23
  prerelease: false
25
- version_requirements: *12307480
24
+ version_requirements: *21317520
26
25
  - !ruby/object:Gem::Dependency
27
26
  name: kaminari
28
- requirement: &12269900 !ruby/object:Gem::Requirement
27
+ requirement: &21316380 !ruby/object:Gem::Requirement
29
28
  none: false
30
29
  requirements:
31
30
  - - ! '>='
@@ -33,10 +32,10 @@ dependencies:
33
32
  version: '0'
34
33
  type: :runtime
35
34
  prerelease: false
36
- version_requirements: *12269900
35
+ version_requirements: *21316380
37
36
  - !ruby/object:Gem::Dependency
38
37
  name: apotomo
39
- requirement: &12268620 !ruby/object:Gem::Requirement
38
+ requirement: &21315460 !ruby/object:Gem::Requirement
40
39
  none: false
41
40
  requirements:
42
41
  - - ! '>='
@@ -44,10 +43,10 @@ dependencies:
44
43
  version: '0'
45
44
  type: :runtime
46
45
  prerelease: false
47
- version_requirements: *12268620
46
+ version_requirements: *21315460
48
47
  - !ruby/object:Gem::Dependency
49
48
  name: sqlite3
50
- requirement: &12267260 !ruby/object:Gem::Requirement
49
+ requirement: &21314520 !ruby/object:Gem::Requirement
51
50
  none: false
52
51
  requirements:
53
52
  - - ! '>='
@@ -55,10 +54,10 @@ dependencies:
55
54
  version: '0'
56
55
  type: :development
57
56
  prerelease: false
58
- version_requirements: *12267260
57
+ version_requirements: *21314520
59
58
  - !ruby/object:Gem::Dependency
60
59
  name: rspec-rails
61
- requirement: &12266160 !ruby/object:Gem::Requirement
60
+ requirement: &21313840 !ruby/object:Gem::Requirement
62
61
  none: false
63
62
  requirements:
64
63
  - - ! '>='
@@ -66,10 +65,10 @@ dependencies:
66
65
  version: '0'
67
66
  type: :development
68
67
  prerelease: false
69
- version_requirements: *12266160
68
+ version_requirements: *21313840
70
69
  - !ruby/object:Gem::Dependency
71
70
  name: capybara
72
- requirement: &12265480 !ruby/object:Gem::Requirement
71
+ requirement: &21313040 !ruby/object:Gem::Requirement
73
72
  none: false
74
73
  requirements:
75
74
  - - ! '>='
@@ -77,10 +76,10 @@ dependencies:
77
76
  version: '0'
78
77
  type: :development
79
78
  prerelease: false
80
- version_requirements: *12265480
79
+ version_requirements: *21313040
81
80
  - !ruby/object:Gem::Dependency
82
81
  name: database_cleaner
83
- requirement: &12264640 !ruby/object:Gem::Requirement
82
+ requirement: &21287460 !ruby/object:Gem::Requirement
84
83
  none: false
85
84
  requirements:
86
85
  - - ! '>='
@@ -88,10 +87,10 @@ dependencies:
88
87
  version: '0'
89
88
  type: :development
90
89
  prerelease: false
91
- version_requirements: *12264640
90
+ version_requirements: *21287460
92
91
  - !ruby/object:Gem::Dependency
93
92
  name: guard
94
- requirement: &12263980 !ruby/object:Gem::Requirement
93
+ requirement: &21286500 !ruby/object:Gem::Requirement
95
94
  none: false
96
95
  requirements:
97
96
  - - ! '>='
@@ -99,10 +98,10 @@ dependencies:
99
98
  version: '0'
100
99
  type: :development
101
100
  prerelease: false
102
- version_requirements: *12263980
101
+ version_requirements: *21286500
103
102
  - !ruby/object:Gem::Dependency
104
103
  name: libnotify
105
- requirement: &12263360 !ruby/object:Gem::Requirement
104
+ requirement: &21285340 !ruby/object:Gem::Requirement
106
105
  none: false
107
106
  requirements:
108
107
  - - ! '>='
@@ -110,10 +109,10 @@ dependencies:
110
109
  version: '0'
111
110
  type: :development
112
111
  prerelease: false
113
- version_requirements: *12263360
112
+ version_requirements: *21285340
114
113
  - !ruby/object:Gem::Dependency
115
114
  name: guard-rspec
116
- requirement: &12226220 !ruby/object:Gem::Requirement
115
+ requirement: &21283680 !ruby/object:Gem::Requirement
117
116
  none: false
118
117
  requirements:
119
118
  - - ! '>='
@@ -121,10 +120,10 @@ dependencies:
121
120
  version: '0'
122
121
  type: :development
123
122
  prerelease: false
124
- version_requirements: *12226220
123
+ version_requirements: *21283680
125
124
  - !ruby/object:Gem::Dependency
126
125
  name: forgery
127
- requirement: &12225580 !ruby/object:Gem::Requirement
126
+ requirement: &21282900 !ruby/object:Gem::Requirement
128
127
  none: false
129
128
  requirements:
130
129
  - - ! '>='
@@ -132,10 +131,10 @@ dependencies:
132
131
  version: '0'
133
132
  type: :development
134
133
  prerelease: false
135
- version_requirements: *12225580
134
+ version_requirements: *21282900
136
135
  - !ruby/object:Gem::Dependency
137
136
  name: fabrication
138
- requirement: &12224920 !ruby/object:Gem::Requirement
137
+ requirement: &21281780 !ruby/object:Gem::Requirement
139
138
  none: false
140
139
  requirements:
141
140
  - - ! '>='
@@ -143,10 +142,10 @@ dependencies:
143
142
  version: '0'
144
143
  type: :development
145
144
  prerelease: false
146
- version_requirements: *12224920
145
+ version_requirements: *21281780
147
146
  - !ruby/object:Gem::Dependency
148
147
  name: jeweler
149
- requirement: &12224120 !ruby/object:Gem::Requirement
148
+ requirement: &21280760 !ruby/object:Gem::Requirement
150
149
  none: false
151
150
  requirements:
152
151
  - - ! '>='
@@ -154,10 +153,10 @@ dependencies:
154
153
  version: '0'
155
154
  type: :development
156
155
  prerelease: false
157
- version_requirements: *12224120
156
+ version_requirements: *21280760
158
157
  - !ruby/object:Gem::Dependency
159
158
  name: nested_set
160
- requirement: &12223300 !ruby/object:Gem::Requirement
159
+ requirement: &21279780 !ruby/object:Gem::Requirement
161
160
  none: false
162
161
  requirements:
163
162
  - - ! '>='
@@ -165,7 +164,7 @@ dependencies:
165
164
  version: '0'
166
165
  type: :development
167
166
  prerelease: false
168
- version_requirements: *12223300
167
+ version_requirements: *21279780
169
168
  description: In Soviet Russia puffer admins you
170
169
  email: kinwizard@gmail.com
171
170
  executables: []
@@ -183,15 +182,44 @@ files:
183
182
  - Rakefile
184
183
  - VERSION
185
184
  - app/assets/javascripts/puffer/application.js
185
+ - app/assets/javascripts/puffer/paginator.js
186
186
  - app/assets/javascripts/puffer/puffer.js
187
187
  - app/assets/javascripts/puffer/rails.js
188
- - app/assets/javascripts/puffer/right-autocompleter.js
189
- - app/assets/javascripts/puffer/right-calendar.js
190
- - app/assets/javascripts/puffer/right.js
188
+ - app/assets/javascripts/puffer/right-autocompleter-src.js
189
+ - app/assets/javascripts/puffer/right-calendar-src.js
190
+ - app/assets/javascripts/puffer/right-dialog-src.js
191
+ - app/assets/javascripts/puffer/right-slider-src.js
192
+ - app/assets/javascripts/puffer/right-src.js
191
193
  - app/assets/stylesheets/puffer/application.css
194
+ - app/assets/stylesheets/puffer/paginator.css
192
195
  - app/assets/stylesheets/puffer/puffer.css
193
196
  - app/assets/stylesheets/puffer/puffer_tree.css
194
197
  - app/assets/stylesheets/puffer/reset.css
198
+ - app/assets/stylesheets/puffer/right.css
199
+ - app/components/base/form.html.erb
200
+ - app/components/base_component.rb
201
+ - app/components/boolean/form.html.erb
202
+ - app/components/boolean/index.html.erb
203
+ - app/components/boolean_component.rb
204
+ - app/components/date_time/form.html.erb
205
+ - app/components/date_time_component.rb
206
+ - app/components/file/form.html.erb
207
+ - app/components/file_component.rb
208
+ - app/components/hidden/form.html.erb
209
+ - app/components/hidden_component.rb
210
+ - app/components/password/form.html.erb
211
+ - app/components/password_component.rb
212
+ - app/components/references_many/form.html.erb
213
+ - app/components/references_many_component.rb
214
+ - app/components/references_one/choose.html.erb
215
+ - app/components/references_one/form.html.erb
216
+ - app/components/references_one_component.rb
217
+ - app/components/select/form.html.erb
218
+ - app/components/select_component.rb
219
+ - app/components/string/form.html.erb
220
+ - app/components/string_component.rb
221
+ - app/components/text/form.html.erb
222
+ - app/components/text_component.rb
195
223
  - app/controllers/admin/dashboard_controller.rb
196
224
  - app/controllers/admin/sessions_controller.rb
197
225
  - app/controllers/puffer/base.rb
@@ -205,10 +233,7 @@ files:
205
233
  - app/views/layouts/puffer_dashboard.html.erb
206
234
  - app/views/layouts/puffer_sessions.html.erb
207
235
  - app/views/puffer/base/_form.html.erb
208
- - app/views/puffer/base/associated/_many.html.erb
209
- - app/views/puffer/base/associated/many.rjs
210
- - app/views/puffer/base/associated/one.js.erb
211
- - app/views/puffer/base/association/_many.html.erb
236
+ - app/views/puffer/base/_table.html.erb
212
237
  - app/views/puffer/base/edit.html.erb
213
238
  - app/views/puffer/base/index.html.erb
214
239
  - app/views/puffer/base/new.html.erb
@@ -220,17 +245,20 @@ files:
220
245
  - app/views/puffer/tree_base/tree.html.erb
221
246
  - config/locales/puffer.yml
222
247
  - config/routes.rb
248
+ - lib/generators/puffer/component/USAGE
249
+ - lib/generators/puffer/component/component_generator.rb
250
+ - lib/generators/puffer/component/templates/component.rb
251
+ - lib/generators/puffer/component/templates/component_spec.rb
223
252
  - lib/generators/puffer/controller/USAGE
224
253
  - lib/generators/puffer/controller/controller_generator.rb
225
254
  - lib/generators/puffer/controller/templates/controller.rb
226
255
  - lib/puffer.rb
256
+ - lib/puffer/component.rb
227
257
  - lib/puffer/controller/actions.rb
228
258
  - lib/puffer/controller/config.rb
229
259
  - lib/puffer/controller/dsl.rb
230
- - lib/puffer/controller/generated.rb
231
260
  - lib/puffer/controller/helpers.rb
232
261
  - lib/puffer/controller/mutate.rb
233
- - lib/puffer/customs.rb
234
262
  - lib/puffer/engine.rb
235
263
  - lib/puffer/extensions/activerecord.rb
236
264
  - lib/puffer/extensions/controller.rb
@@ -239,20 +267,21 @@ files:
239
267
  - lib/puffer/extensions/mapper.rb
240
268
  - lib/puffer/field.rb
241
269
  - lib/puffer/field_set.rb
242
- - lib/puffer/inputs/association.rb
243
- - lib/puffer/inputs/base.rb
244
- - lib/puffer/inputs/boolean.rb
245
- - lib/puffer/inputs/collection_association.rb
246
- - lib/puffer/inputs/date_time.rb
247
- - lib/puffer/inputs/file.rb
248
- - lib/puffer/inputs/hidden.rb
249
- - lib/puffer/inputs/password.rb
250
- - lib/puffer/inputs/select.rb
251
- - lib/puffer/inputs/text.rb
252
270
  - lib/puffer/resource.rb
253
271
  - lib/puffer/resource/routing.rb
254
272
  - lib/puffer/resource/scoping.rb
255
273
  - puffer.gemspec
274
+ - spec/app/components/base_component_spec.rb
275
+ - spec/app/components/boolean_component_spec.rb
276
+ - spec/app/components/date_time_component_spec.rb
277
+ - spec/app/components/file_component_spec.rb
278
+ - spec/app/components/hidden_component_spec.rb
279
+ - spec/app/components/password_component_spec.rb
280
+ - spec/app/components/references_many_component_spec.rb
281
+ - spec/app/components/references_one_component_spec.rb
282
+ - spec/app/components/select_component_spec.rb
283
+ - spec/app/components/string_component_spec.rb
284
+ - spec/app/components/text_component_spec.rb
256
285
  - spec/dummy/.rvmrc
257
286
  - spec/dummy/Rakefile
258
287
  - spec/dummy/app/assets/images/rails.png
@@ -262,10 +291,10 @@ files:
262
291
  - spec/dummy/app/controllers/admin/news_controller.rb
263
292
  - spec/dummy/app/controllers/admin/posts_controller.rb
264
293
  - spec/dummy/app/controllers/admin/profiles_controller.rb
294
+ - spec/dummy/app/controllers/admin/sessions_controller.rb
265
295
  - spec/dummy/app/controllers/admin/tags_controller.rb
266
296
  - spec/dummy/app/controllers/admin/users_controller.rb
267
297
  - spec/dummy/app/controllers/application_controller.rb
268
- - spec/dummy/app/controllers/puffer/sessions_controller.rb
269
298
  - spec/dummy/app/helpers/application_helper.rb
270
299
  - spec/dummy/app/models/category.rb
271
300
  - spec/dummy/app/models/friendship.rb
@@ -317,6 +346,7 @@ files:
317
346
  - spec/fabricators/tags_fabricator.rb
318
347
  - spec/fabricators/users_fabricator.rb
319
348
  - spec/integration/navigation_spec.rb
349
+ - spec/lib/component_spec.rb
320
350
  - spec/lib/extensions/core_spec.rb
321
351
  - spec/lib/fields_spec.rb
322
352
  - spec/lib/params_spec.rb
@@ -324,7 +354,6 @@ files:
324
354
  - spec/lib/resource_spec.rb
325
355
  - spec/puffer_spec.rb
326
356
  - spec/spec_helper.rb
327
- has_rdoc: true
328
357
  homepage: http://github.com/puffer/puffer
329
358
  licenses: []
330
359
  post_install_message:
@@ -339,7 +368,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
339
368
  version: '0'
340
369
  segments:
341
370
  - 0
342
- hash: -3933592313058062345
371
+ hash: 793759235087980983
343
372
  required_rubygems_version: !ruby/object:Gem::Requirement
344
373
  none: false
345
374
  requirements:
@@ -348,7 +377,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
348
377
  version: '0'
349
378
  requirements: []
350
379
  rubyforge_project:
351
- rubygems_version: 1.6.2
380
+ rubygems_version: 1.8.6
352
381
  signing_key:
353
382
  specification_version: 3
354
383
  summary: Admin interface builder