case_form 0.0.3

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 (88) hide show
  1. data/CHANGELOG.rdoc +1 -0
  2. data/MIT-LICENSE.rdoc +20 -0
  3. data/Manifest +86 -0
  4. data/README.rdoc +0 -0
  5. data/Rakefile +30 -0
  6. data/TODO.rdoc +7 -0
  7. data/case_form.gemspec +31 -0
  8. data/lib/case_form.rb +88 -0
  9. data/lib/case_form/associations.rb +50 -0
  10. data/lib/case_form/buttons.rb +175 -0
  11. data/lib/case_form/core_ext/form_helper.rb +54 -0
  12. data/lib/case_form/core_ext/layout_helper.rb +16 -0
  13. data/lib/case_form/core_ext/sentence_error.rb +38 -0
  14. data/lib/case_form/element.rb +40 -0
  15. data/lib/case_form/element/base.rb +95 -0
  16. data/lib/case_form/element/button.rb +64 -0
  17. data/lib/case_form/element/error.rb +54 -0
  18. data/lib/case_form/element/errors/complex_error.rb +107 -0
  19. data/lib/case_form/element/errors/simple_error.rb +76 -0
  20. data/lib/case_form/element/fieldset.rb +35 -0
  21. data/lib/case_form/element/hint.rb +54 -0
  22. data/lib/case_form/element/input.rb +106 -0
  23. data/lib/case_form/element/inputs/collection/checkbox_input.rb +36 -0
  24. data/lib/case_form/element/inputs/collection/radio_input.rb +27 -0
  25. data/lib/case_form/element/inputs/collection/select_input.rb +22 -0
  26. data/lib/case_form/element/inputs/collection_input.rb +89 -0
  27. data/lib/case_form/element/inputs/datetime/date_input.rb +45 -0
  28. data/lib/case_form/element/inputs/datetime/date_time_input.rb +50 -0
  29. data/lib/case_form/element/inputs/datetime/time_input.rb +34 -0
  30. data/lib/case_form/element/inputs/datetime/time_zone_input.rb +24 -0
  31. data/lib/case_form/element/inputs/file_input.rb +13 -0
  32. data/lib/case_form/element/inputs/hidden_input.rb +17 -0
  33. data/lib/case_form/element/inputs/number_input.rb +42 -0
  34. data/lib/case_form/element/inputs/search_input.rb +32 -0
  35. data/lib/case_form/element/inputs/string_input.rb +18 -0
  36. data/lib/case_form/element/inputs/text_input.rb +19 -0
  37. data/lib/case_form/element/label.rb +52 -0
  38. data/lib/case_form/element/nested_model.rb +105 -0
  39. data/lib/case_form/element/nested_models/handle.rb +18 -0
  40. data/lib/case_form/element/nested_models/handles/destructor_handle.rb +47 -0
  41. data/lib/case_form/element/nested_models/handles/generator_handle.rb +55 -0
  42. data/lib/case_form/element_ext/associationable.rb +54 -0
  43. data/lib/case_form/element_ext/columnable.rb +21 -0
  44. data/lib/case_form/element_ext/naming.rb +17 -0
  45. data/lib/case_form/element_ext/validationable.rb +13 -0
  46. data/lib/case_form/errors.rb +189 -0
  47. data/lib/case_form/form_builder.rb +11 -0
  48. data/lib/case_form/inputs.rb +1095 -0
  49. data/lib/case_form/labels.rb +102 -0
  50. data/lib/case_form/version.rb +6 -0
  51. data/lib/generators/case_form/install_generator.rb +33 -0
  52. data/lib/generators/case_form/templates/case_form.rb +63 -0
  53. data/lib/generators/case_form/templates/javascripts/jquery.case_form.js +10 -0
  54. data/lib/generators/case_form/templates/javascripts/prototype.case_form.js +0 -0
  55. data/lib/generators/case_form/templates/locales/en.yml +28 -0
  56. data/lib/generators/case_form/templates/locales/pl.yml +28 -0
  57. data/lib/generators/case_form/templates/stylesheets/stylesheet.css +93 -0
  58. data/lib/generators/case_form/templates/stylesheets/stylesheet_changes.css +1 -0
  59. data/lib/generators/case_form/uninstall_generator.rb +30 -0
  60. data/rails/init.rb +1 -0
  61. data/test/element/button_test.rb +85 -0
  62. data/test/element/errors/complex_error_test.rb +140 -0
  63. data/test/element/errors/simple_error_test.rb +92 -0
  64. data/test/element/fieldset_test.rb +28 -0
  65. data/test/element/hint_test.rb +81 -0
  66. data/test/element/input_test.rb +197 -0
  67. data/test/element/inputs/collection/checkbox_input_test.rb +176 -0
  68. data/test/element/inputs/collection/radio_input_test.rb +156 -0
  69. data/test/element/inputs/collection/select_input_test.rb +152 -0
  70. data/test/element/inputs/datetime/date_input_test.rb +160 -0
  71. data/test/element/inputs/datetime/datetime_input_test.rb +227 -0
  72. data/test/element/inputs/datetime/time_input_test.rb +72 -0
  73. data/test/element/inputs/datetime/time_zone_input_test.rb +42 -0
  74. data/test/element/inputs/file_input_test.rb +13 -0
  75. data/test/element/inputs/hidden_input_test.rb +13 -0
  76. data/test/element/inputs/number_input_test.rb +50 -0
  77. data/test/element/inputs/search_input_test.rb +13 -0
  78. data/test/element/inputs/string_input_test.rb +33 -0
  79. data/test/element/inputs/text_input_test.rb +13 -0
  80. data/test/element/label_test.rb +62 -0
  81. data/test/element/nested_model_test.rb +163 -0
  82. data/test/element/nested_models/handles/destructor_handle_test.rb +35 -0
  83. data/test/element/nested_models/handles/generator_handle_test.rb +27 -0
  84. data/test/form_builder_test.rb +25 -0
  85. data/test/form_helper_test.rb +15 -0
  86. data/test/lib/models.rb +268 -0
  87. data/test/test_helper.rb +74 -0
  88. metadata +235 -0
@@ -0,0 +1,27 @@
1
+ # coding: utf-8
2
+ require 'test_helper'
3
+
4
+ class GeneratorHandleTest < ActionView::TestCase
5
+ def generator_case_form_for(object, association, options={})
6
+ concat(case_form_for(object) { |f| concat(f.new_object(association, options)) })
7
+ end
8
+
9
+ test "should generate generator" do
10
+ generator_case_form_for(@user, :projects)
11
+ assert_select "input[type=text]", 2
12
+ assert_select "a[data-action=new]", 1
13
+ end
14
+
15
+ test "should generate generator with :text option" do
16
+ text = "Dodaj"
17
+ generator_case_form_for(@user, :projects, :text => text)
18
+ assert_select "input[type=text]", 2
19
+ assert_select "a[data-action=new]", text
20
+ end
21
+
22
+ test "should generate generator with :fields option" do
23
+ generator_case_form_for(@user, :projects, :fields => :name)
24
+ assert_select "input[type=text]", 1
25
+ assert_select "a[data-action=new]", 1
26
+ end
27
+ end
@@ -0,0 +1,25 @@
1
+ require 'test_helper'
2
+
3
+ class FormBuilderTest < ActionView::TestCase
4
+ test 'should case_form_for be an instance of CaseForm::FormBuilder' do
5
+ case_form_for(@user) { |f| assert f.instance_of?(CaseForm::FormBuilder) }
6
+ end
7
+
8
+ test 'should case_fields_for be an instance of CaseForm::FormBuilder' do
9
+ case_fields_for(@user) { |f| assert f.instance_of?(CaseForm::FormBuilder) }
10
+ end
11
+
12
+ test 'should remote_case_form_for be an instance of CaseForm::FormBuilder' do
13
+ remote_case_form_for(@user) { |f| assert f.instance_of?(CaseForm::FormBuilder) }
14
+ end
15
+
16
+ test "should generate <form> attributes" do
17
+ concat(case_form_for(@user) { |f| })
18
+ assert_select "form.case_form"
19
+ end
20
+
21
+ test "should generate remote <form> attributes" do
22
+ concat(remote_case_form_for(@user) { |f| })
23
+ assert_select "form[data-remote=true]"
24
+ end
25
+ end
@@ -0,0 +1,15 @@
1
+ require 'test_helper'
2
+
3
+ class FormHelperTest < ActionView::TestCase
4
+ test "should exist case_form_for method" do
5
+ assert ActionView::Helpers.method_defined?(:case_form_for)
6
+ end
7
+
8
+ test "should exist case_field_for method" do
9
+ assert ActionView::Helpers.method_defined?(:case_fields_for)
10
+ end
11
+
12
+ test "should exist remote_case_form_for method" do
13
+ assert ActionView::Helpers.method_defined?(:remote_case_form_for)
14
+ end
15
+ end
@@ -0,0 +1,268 @@
1
+ # Require OpenStruct class
2
+ require 'ostruct'
3
+ require 'active_model'
4
+
5
+ class Column
6
+ attr_accessor :name, :type, :null, :default, :limit, :precision, :scale
7
+
8
+ def initialize(*args)
9
+ @name = args[0]
10
+ @type = args[1]
11
+ @null = args[2]
12
+ @default = args[3]
13
+ @limit = args[4]
14
+ @precision = args[5]
15
+ @scale = args[6]
16
+ end
17
+ end
18
+
19
+ class Association
20
+ attr_accessor :klass, :macro
21
+
22
+ def initialize(*args)
23
+ @klass = args[0].constantize
24
+ @macro = args[1]
25
+ end
26
+ end
27
+
28
+ class BaseModel
29
+ extend ActiveModel::Naming
30
+ include ActiveModel::Conversion
31
+ include ActiveModel::Validations
32
+
33
+ # columns: type, null, default, limit, precision, scale
34
+ class_inheritable_accessor :associations, :all_columns, :all_content_columns
35
+
36
+ attr_accessor :id
37
+
38
+ def initialize(attributes={})
39
+ attributes.each do |k, v|
40
+ send("#{k}=", v) if respond_to?("#{k}=")
41
+ end
42
+ end
43
+
44
+ def self.reflect_on_association(attribute)
45
+ association = self.associations[attribute.to_sym]
46
+ return unless association
47
+ attr_name = case association[1]
48
+ when :has_many then :"#{attribute.to_s.singularize}_ids"
49
+ when :belongs_to then :"#{attribute}_id"
50
+ when :has_one then :"#{attribute}"
51
+ end
52
+ class_eval { attr_accessor attr_name }
53
+ Association.new(*association)
54
+ end
55
+
56
+ def self.columns
57
+ columns = []
58
+ self.all_columns.each do |col|
59
+ columns << Column.new(*col)
60
+ end
61
+ columns
62
+ end
63
+
64
+ def self.content_columns
65
+ columns = []
66
+ self.all_content_columns.each { |col| columns << Column.new(*col) }
67
+ columns
68
+ end
69
+
70
+ def column_for_attribute(attribute)
71
+ args = [attribute.to_sym, self.all_columns[attribute.to_sym]].flatten
72
+ Column.new(*args)
73
+ end
74
+
75
+ def new_record?
76
+ false
77
+ end
78
+
79
+ def persisted?
80
+ true
81
+ end
82
+
83
+ def _destroy
84
+ false
85
+ end
86
+
87
+ def self.human_name
88
+ self.class
89
+ end
90
+ end
91
+
92
+ class Country < BaseModel
93
+ self.associations = {
94
+ :users => ["User", :has_many]
95
+ }
96
+ self.all_columns = {
97
+ :id => [:integer, false],
98
+ :name => [:string, false, nil, 250],
99
+ :continent => [:string, false, nil, 250]
100
+ }
101
+ self.all_content_columns = self.all_columns.keys - [:id]
102
+
103
+ attr_accessor *self.all_columns.keys
104
+ attr_accessor *self.associations.keys
105
+
106
+ def self.all
107
+ [new(:id => 1, :name => "Poland", :continent => "Europe"),
108
+ new(:id => 2, :name => "Germany", :continent => "Europe"),
109
+ new(:id => 3, :name => "France", :continent => "Europe"),
110
+ new(:id => 4, :name => "Spain", :continent => "Europe"),
111
+ new(:id => 5, :name => "US", :continent => "North America")]
112
+ end
113
+
114
+ def self.priority
115
+ self.all[1..3]
116
+ end
117
+
118
+ def short
119
+ self.name[0...3]
120
+ end
121
+
122
+ def non_id
123
+ self.name[0]
124
+ end
125
+ end
126
+
127
+ class User < BaseModel
128
+ self.associations = {
129
+ :country => [ "Country", :belongs_to],
130
+ :special_country => [ "Country", :belongs_to],
131
+ :profile => [ "Profile", :has_one],
132
+ :special_profile => [ "Profile", :has_one],
133
+ :projects => [ "Project", :has_many],
134
+ :special_projects => [ "Project", :has_many],
135
+ :des_projects => [ "Project", :has_many]
136
+ }
137
+ self.all_columns = {
138
+ :id => [:integer, false],
139
+ :country_id => [:integer, true],
140
+ :firstname => [:string, true, "Enter firstname", 200],
141
+ :lastname => [:string, false, nil, 250],
142
+ :description => [:text, true],
143
+ :created_at => [:datetime, true],
144
+ :updated_at => [:datetime, true],
145
+ :login_at => [:timestamp, true],
146
+ :born_at => [:date, true],
147
+ :admin => [:boolean, true],
148
+ :height => [:decimal, false, nil, 10, 5, 3],
149
+ :weight => [:float, false],
150
+ :age => [:integer, false],
151
+ :user_zone => [:string, false]
152
+ }
153
+ self.all_content_columns = self.all_columns.keys - [:id, :country_id]
154
+
155
+ attr_accessor *self.all_columns.keys
156
+ attr_accessor *self.associations.keys
157
+
158
+ attr_accessor :password_confirmation, :twitter_url, :file_path, :mobile_phone, :birthday_at, :user_zone
159
+ alias_method :birthday_on, :birthday_at
160
+
161
+ def self.nested_attributes_options
162
+ options = {}
163
+ self.associations.keys.each { |a| options[a] = { :allow_destroy => false, :update_only => false } }
164
+ options[:projects][:allow_destroy] = true
165
+ options
166
+ end
167
+
168
+ def build_country
169
+ Country.new(:id => nil, :name => nil, :continent => nil)
170
+ end
171
+
172
+ def country_attributes=(*); end;
173
+
174
+ def build_profile
175
+ Profile.new(:user_id => self.id, :id => nil, :email => nil, :twitter => nil)
176
+ end
177
+
178
+ def profile_attributes=(*); end;
179
+
180
+ def projects_attributes=(*); end;
181
+ alias_method :des_projects_attributes=, :projects_attributes=
182
+
183
+ def special_projects
184
+ Project.extra
185
+ end
186
+ end
187
+
188
+ class ValidUser < User
189
+ self.associations = User.associations
190
+ self.all_columns = User.all_columns
191
+ self.all_content_columns = User.all_content_columns
192
+
193
+ attr_accessor *self.all_columns.keys
194
+ attr_accessor *self.associations.keys
195
+
196
+ validates :firstname, :length => {:minimum => 3, :maximum => 40}, :presence => true
197
+ validates :lastname, :email, :presence => true
198
+
199
+ attr_accessor :valid_height
200
+ validates :valid_height, :length => { :minimum => 0, :maximum => 280 }
201
+ attr_accessor :min_height
202
+ attr_accessor :max_height
203
+ validates :min_height, :length => { :minimum => 0 }
204
+ validates :max_height, :length => { :maximum => 280 }
205
+ end
206
+
207
+ class InvalidUser < User
208
+ self.associations = User.associations
209
+ self.all_columns = User.all_columns
210
+ self.all_content_columns = User.all_content_columns
211
+
212
+ attr_accessor *self.all_columns.keys
213
+ attr_accessor *self.associations.keys
214
+
215
+ attr_reader :errors
216
+
217
+ def initialize(options={})
218
+ super(options)
219
+ @errors = ActiveModel::Errors.new(self)
220
+ @errors.add(:base, "Some base error")
221
+ @errors.add(:firstname, "can't be blank")
222
+ @errors.add(:firstname, "should match confirmation")
223
+ @errors.add(:firstname, "is too short")
224
+ @errors.add(:lastname, "can't be blank")
225
+ end
226
+ end
227
+
228
+ class Profile < BaseModel
229
+ self.associations = {
230
+ :user => [ "User", :belongs_to]
231
+ }
232
+ self.all_columns = {
233
+ :id => [:integer, false],
234
+ :user_id => [:integer, false],
235
+ :email => [:string, false, nil, 250],
236
+ :twitter => [:string, false, nil, 250]
237
+ }
238
+ self.all_content_columns = self.all_columns.keys - [:id, :user_id]
239
+
240
+ attr_accessor *self.all_columns.keys
241
+ attr_accessor *self.associations.keys
242
+ end
243
+
244
+ class Project < BaseModel
245
+ self.associations = {
246
+ :user => [ "User", :belongs_to ]
247
+ }
248
+ self.all_columns = {
249
+ :id => [:integer, false],
250
+ :user_id => [:integer, false],
251
+ :name => [:string, false, nil, 250],
252
+ :address => [:string, false]
253
+ }
254
+ self.all_content_columns = self.all_columns.keys - [:id, :user_id]
255
+
256
+ attr_accessor *self.all_columns.keys
257
+ attr_accessor *self.associations.keys
258
+
259
+ def self.all
260
+ all = []
261
+ 5.times { |i| all << Project.new(:id => i, :name => "EXTRA Project #{i}", :address => "Address #{i}") }
262
+ all
263
+ end
264
+
265
+ def self.extra
266
+ self.all[1..3]
267
+ end
268
+ end
@@ -0,0 +1,74 @@
1
+ require 'rubygems'
2
+ require 'test/unit'
3
+
4
+ gem 'actionpack', '3.0.0'
5
+ gem 'activemodel', '3.0.0'
6
+
7
+ require 'active_model'
8
+ require 'action_controller'
9
+ require 'action_view'
10
+ require 'action_view/template'
11
+
12
+ # Require CaseForm
13
+ $:.unshift File.expand_path(File.dirname(__FILE__) + '/../lib')
14
+ require 'case_form'
15
+
16
+ # Require at last
17
+ require 'action_view/test_case'
18
+
19
+ # Require fake objects
20
+ require 'lib/models'
21
+
22
+ class ActionView::TestCase
23
+ setup do
24
+ generate_virtual_models
25
+ end
26
+
27
+ # Generate fake models
28
+ def generate_virtual_models
29
+ @user = User.new(
30
+ :id => 1,
31
+ :firstname => "John",
32
+ :lastname => "Doe",
33
+ :email => "john@doe.com",
34
+ :admin => true,
35
+ :description => "User note",
36
+ :age => 18,
37
+ :height => 188,
38
+ :weight => 82.5)
39
+ @valid_user = ValidUser.new({
40
+ :id => 1,
41
+ :firstname => "John",
42
+ :lastname => "Doe",
43
+ :email => "john@doe.com",
44
+ :admin => true,
45
+ :height => 188})
46
+ @invalid_user = InvalidUser.new({
47
+ :id => 1,
48
+ :firstname => "J"})
49
+
50
+ @country = Country.new({:id => 1, :name => "Poland", :continent => "Europe"})
51
+ @profile = Profile.new({:user_id => 1, :id => 1, :email => "example@mail.com", :twitter => @example})
52
+ @projects = []
53
+ 2.times { |i| @projects << Project.new({:user_id => 1, :id => i, :name => "Project #{i}", :address => "Address #{i}"}) }
54
+
55
+ @user.country = @country
56
+ @user.profile = @profile
57
+ @user.projects = @projects
58
+ end
59
+
60
+ def cf_config(key)
61
+ CaseForm.send(key)
62
+ end
63
+
64
+ # Define some routes path
65
+ def users_path(*args); '/users'; end
66
+ alias_method :users_url, :users_path
67
+ alias_method :valid_users_path, :users_path
68
+ alias_method :invalid_users_path, :users_path
69
+
70
+ def user_path(user); "/users/#{user.to_param}"; end
71
+ alias_method :user_url, :user_path
72
+ alias_method :valid_user_path, :user_path
73
+ alias_method :invalid_user_path, :user_path
74
+ end
metadata ADDED
@@ -0,0 +1,235 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: case_form
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 0
8
+ - 3
9
+ version: 0.0.3
10
+ platform: ruby
11
+ authors:
12
+ - ""
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2010-10-14 00:00:00 +02:00
18
+ default_executable:
19
+ dependencies: []
20
+
21
+ description: ""
22
+ email: ""
23
+ executables: []
24
+
25
+ extensions: []
26
+
27
+ extra_rdoc_files:
28
+ - CHANGELOG.rdoc
29
+ - README.rdoc
30
+ - TODO.rdoc
31
+ - lib/case_form.rb
32
+ - lib/case_form/associations.rb
33
+ - lib/case_form/buttons.rb
34
+ - lib/case_form/core_ext/form_helper.rb
35
+ - lib/case_form/core_ext/layout_helper.rb
36
+ - lib/case_form/core_ext/sentence_error.rb
37
+ - lib/case_form/element.rb
38
+ - lib/case_form/element/base.rb
39
+ - lib/case_form/element/button.rb
40
+ - lib/case_form/element/error.rb
41
+ - lib/case_form/element/errors/complex_error.rb
42
+ - lib/case_form/element/errors/simple_error.rb
43
+ - lib/case_form/element/fieldset.rb
44
+ - lib/case_form/element/hint.rb
45
+ - lib/case_form/element/input.rb
46
+ - lib/case_form/element/inputs/collection/checkbox_input.rb
47
+ - lib/case_form/element/inputs/collection/radio_input.rb
48
+ - lib/case_form/element/inputs/collection/select_input.rb
49
+ - lib/case_form/element/inputs/collection_input.rb
50
+ - lib/case_form/element/inputs/datetime/date_input.rb
51
+ - lib/case_form/element/inputs/datetime/date_time_input.rb
52
+ - lib/case_form/element/inputs/datetime/time_input.rb
53
+ - lib/case_form/element/inputs/datetime/time_zone_input.rb
54
+ - lib/case_form/element/inputs/file_input.rb
55
+ - lib/case_form/element/inputs/hidden_input.rb
56
+ - lib/case_form/element/inputs/number_input.rb
57
+ - lib/case_form/element/inputs/search_input.rb
58
+ - lib/case_form/element/inputs/string_input.rb
59
+ - lib/case_form/element/inputs/text_input.rb
60
+ - lib/case_form/element/label.rb
61
+ - lib/case_form/element/nested_model.rb
62
+ - lib/case_form/element/nested_models/handle.rb
63
+ - lib/case_form/element/nested_models/handles/destructor_handle.rb
64
+ - lib/case_form/element/nested_models/handles/generator_handle.rb
65
+ - lib/case_form/element_ext/associationable.rb
66
+ - lib/case_form/element_ext/columnable.rb
67
+ - lib/case_form/element_ext/naming.rb
68
+ - lib/case_form/element_ext/validationable.rb
69
+ - lib/case_form/errors.rb
70
+ - lib/case_form/form_builder.rb
71
+ - lib/case_form/inputs.rb
72
+ - lib/case_form/labels.rb
73
+ - lib/case_form/version.rb
74
+ - lib/generators/case_form/install_generator.rb
75
+ - lib/generators/case_form/templates/case_form.rb
76
+ - lib/generators/case_form/templates/javascripts/jquery.case_form.js
77
+ - lib/generators/case_form/templates/javascripts/prototype.case_form.js
78
+ - lib/generators/case_form/templates/locales/en.yml
79
+ - lib/generators/case_form/templates/locales/pl.yml
80
+ - lib/generators/case_form/templates/stylesheets/stylesheet.css
81
+ - lib/generators/case_form/templates/stylesheets/stylesheet_changes.css
82
+ - lib/generators/case_form/uninstall_generator.rb
83
+ files:
84
+ - CHANGELOG.rdoc
85
+ - MIT-LICENSE.rdoc
86
+ - Manifest
87
+ - README.rdoc
88
+ - Rakefile
89
+ - TODO.rdoc
90
+ - lib/case_form.rb
91
+ - lib/case_form/associations.rb
92
+ - lib/case_form/buttons.rb
93
+ - lib/case_form/core_ext/form_helper.rb
94
+ - lib/case_form/core_ext/layout_helper.rb
95
+ - lib/case_form/core_ext/sentence_error.rb
96
+ - lib/case_form/element.rb
97
+ - lib/case_form/element/base.rb
98
+ - lib/case_form/element/button.rb
99
+ - lib/case_form/element/error.rb
100
+ - lib/case_form/element/errors/complex_error.rb
101
+ - lib/case_form/element/errors/simple_error.rb
102
+ - lib/case_form/element/fieldset.rb
103
+ - lib/case_form/element/hint.rb
104
+ - lib/case_form/element/input.rb
105
+ - lib/case_form/element/inputs/collection/checkbox_input.rb
106
+ - lib/case_form/element/inputs/collection/radio_input.rb
107
+ - lib/case_form/element/inputs/collection/select_input.rb
108
+ - lib/case_form/element/inputs/collection_input.rb
109
+ - lib/case_form/element/inputs/datetime/date_input.rb
110
+ - lib/case_form/element/inputs/datetime/date_time_input.rb
111
+ - lib/case_form/element/inputs/datetime/time_input.rb
112
+ - lib/case_form/element/inputs/datetime/time_zone_input.rb
113
+ - lib/case_form/element/inputs/file_input.rb
114
+ - lib/case_form/element/inputs/hidden_input.rb
115
+ - lib/case_form/element/inputs/number_input.rb
116
+ - lib/case_form/element/inputs/search_input.rb
117
+ - lib/case_form/element/inputs/string_input.rb
118
+ - lib/case_form/element/inputs/text_input.rb
119
+ - lib/case_form/element/label.rb
120
+ - lib/case_form/element/nested_model.rb
121
+ - lib/case_form/element/nested_models/handle.rb
122
+ - lib/case_form/element/nested_models/handles/destructor_handle.rb
123
+ - lib/case_form/element/nested_models/handles/generator_handle.rb
124
+ - lib/case_form/element_ext/associationable.rb
125
+ - lib/case_form/element_ext/columnable.rb
126
+ - lib/case_form/element_ext/naming.rb
127
+ - lib/case_form/element_ext/validationable.rb
128
+ - lib/case_form/errors.rb
129
+ - lib/case_form/form_builder.rb
130
+ - lib/case_form/inputs.rb
131
+ - lib/case_form/labels.rb
132
+ - lib/case_form/version.rb
133
+ - lib/generators/case_form/install_generator.rb
134
+ - lib/generators/case_form/templates/case_form.rb
135
+ - lib/generators/case_form/templates/javascripts/jquery.case_form.js
136
+ - lib/generators/case_form/templates/javascripts/prototype.case_form.js
137
+ - lib/generators/case_form/templates/locales/en.yml
138
+ - lib/generators/case_form/templates/locales/pl.yml
139
+ - lib/generators/case_form/templates/stylesheets/stylesheet.css
140
+ - lib/generators/case_form/templates/stylesheets/stylesheet_changes.css
141
+ - lib/generators/case_form/uninstall_generator.rb
142
+ - rails/init.rb
143
+ - test/element/button_test.rb
144
+ - test/element/errors/complex_error_test.rb
145
+ - test/element/errors/simple_error_test.rb
146
+ - test/element/fieldset_test.rb
147
+ - test/element/hint_test.rb
148
+ - test/element/input_test.rb
149
+ - test/element/inputs/collection/checkbox_input_test.rb
150
+ - test/element/inputs/collection/radio_input_test.rb
151
+ - test/element/inputs/collection/select_input_test.rb
152
+ - test/element/inputs/datetime/date_input_test.rb
153
+ - test/element/inputs/datetime/datetime_input_test.rb
154
+ - test/element/inputs/datetime/time_input_test.rb
155
+ - test/element/inputs/datetime/time_zone_input_test.rb
156
+ - test/element/inputs/file_input_test.rb
157
+ - test/element/inputs/hidden_input_test.rb
158
+ - test/element/inputs/number_input_test.rb
159
+ - test/element/inputs/search_input_test.rb
160
+ - test/element/inputs/string_input_test.rb
161
+ - test/element/inputs/text_input_test.rb
162
+ - test/element/label_test.rb
163
+ - test/element/nested_model_test.rb
164
+ - test/element/nested_models/handles/destructor_handle_test.rb
165
+ - test/element/nested_models/handles/generator_handle_test.rb
166
+ - test/form_builder_test.rb
167
+ - test/form_helper_test.rb
168
+ - test/lib/models.rb
169
+ - test/test_helper.rb
170
+ - case_form.gemspec
171
+ has_rdoc: true
172
+ homepage: ""
173
+ licenses: []
174
+
175
+ post_install_message:
176
+ rdoc_options:
177
+ - --line-numbers
178
+ - --inline-source
179
+ - --title
180
+ - Case_form
181
+ - --main
182
+ - README.rdoc
183
+ require_paths:
184
+ - lib
185
+ required_ruby_version: !ruby/object:Gem::Requirement
186
+ none: false
187
+ requirements:
188
+ - - ">="
189
+ - !ruby/object:Gem::Version
190
+ segments:
191
+ - 0
192
+ version: "0"
193
+ required_rubygems_version: !ruby/object:Gem::Requirement
194
+ none: false
195
+ requirements:
196
+ - - ">="
197
+ - !ruby/object:Gem::Version
198
+ segments:
199
+ - 1
200
+ - 2
201
+ version: "1.2"
202
+ requirements: []
203
+
204
+ rubyforge_project: case_form
205
+ rubygems_version: 1.3.7
206
+ signing_key:
207
+ specification_version: 3
208
+ summary: ""
209
+ test_files:
210
+ - test/element/button_test.rb
211
+ - test/element/errors/complex_error_test.rb
212
+ - test/element/errors/simple_error_test.rb
213
+ - test/element/fieldset_test.rb
214
+ - test/element/hint_test.rb
215
+ - test/element/input_test.rb
216
+ - test/element/inputs/collection/checkbox_input_test.rb
217
+ - test/element/inputs/collection/radio_input_test.rb
218
+ - test/element/inputs/collection/select_input_test.rb
219
+ - test/element/inputs/datetime/date_input_test.rb
220
+ - test/element/inputs/datetime/datetime_input_test.rb
221
+ - test/element/inputs/datetime/time_input_test.rb
222
+ - test/element/inputs/datetime/time_zone_input_test.rb
223
+ - test/element/inputs/file_input_test.rb
224
+ - test/element/inputs/hidden_input_test.rb
225
+ - test/element/inputs/number_input_test.rb
226
+ - test/element/inputs/search_input_test.rb
227
+ - test/element/inputs/string_input_test.rb
228
+ - test/element/inputs/text_input_test.rb
229
+ - test/element/label_test.rb
230
+ - test/element/nested_model_test.rb
231
+ - test/element/nested_models/handles/destructor_handle_test.rb
232
+ - test/element/nested_models/handles/generator_handle_test.rb
233
+ - test/form_builder_test.rb
234
+ - test/form_helper_test.rb
235
+ - test/test_helper.rb