client_side_validations 3.1.0 → 3.2.0

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 (111) hide show
  1. data/client_side_validations.gemspec +4 -16
  2. data/lib/client_side_validations/action_view/form_builder.rb +31 -79
  3. data/lib/client_side_validations/action_view/form_helper.rb +59 -24
  4. data/lib/client_side_validations/active_model/exclusion.rb +14 -2
  5. data/lib/client_side_validations/active_model/format.rb +21 -0
  6. data/lib/client_side_validations/active_model/inclusion.rb +13 -2
  7. data/lib/client_side_validations/active_model/length.rb +4 -2
  8. data/lib/client_side_validations/active_model/numericality.rb +12 -1
  9. data/lib/client_side_validations/active_model.rb +100 -14
  10. data/lib/client_side_validations/active_record/middleware.rb +29 -3
  11. data/lib/client_side_validations/active_record/uniqueness.rb +4 -3
  12. data/lib/client_side_validations/active_record.rb +2 -1
  13. data/lib/client_side_validations/config.rb +9 -0
  14. data/lib/client_side_validations/core_ext/regexp.rb +1 -2
  15. data/lib/client_side_validations/generators/rails_validations.rb +15 -0
  16. data/lib/client_side_validations/generators.rb +12 -0
  17. data/lib/client_side_validations/middleware.rb +63 -24
  18. data/lib/client_side_validations/version.rb +1 -1
  19. data/lib/client_side_validations.rb +2 -2
  20. data/lib/generators/client_side_validations/copy_assets_generator.rb +58 -0
  21. data/lib/generators/client_side_validations/install_generator.rb +9 -21
  22. data/lib/generators/templates/client_side_validations/initializer.rb +2 -2
  23. data/vendor/assets/javascripts/rails.validations.js +474 -282
  24. metadata +156 -301
  25. data/lib/client_side_validations/formtastic.rb +0 -21
  26. data/lib/client_side_validations/mongo_mapper/middleware.rb +0 -20
  27. data/lib/client_side_validations/mongo_mapper/uniqueness.rb +0 -28
  28. data/lib/client_side_validations/mongo_mapper.rb +0 -9
  29. data/lib/client_side_validations/mongoid/middleware.rb +0 -20
  30. data/lib/client_side_validations/mongoid/uniqueness.rb +0 -28
  31. data/lib/client_side_validations/mongoid.rb +0 -9
  32. data/lib/client_side_validations/simple_form.rb +0 -24
  33. data/lib/generators/client_side_validations/copy_asset_generator.rb +0 -23
  34. data/lib/generators/templates/client_side_validations/README.rails.3.0 +0 -6
  35. data/lib/generators/templates/client_side_validations/README.rails.3.1 +0 -7
  36. data/test/action_view/cases/helper.rb +0 -176
  37. data/test/action_view/cases/test_helpers.rb +0 -600
  38. data/test/action_view/cases/test_legacy_helpers.rb +0 -217
  39. data/test/action_view/models/comment.rb +0 -35
  40. data/test/action_view/models/post.rb +0 -35
  41. data/test/action_view/models.rb +0 -3
  42. data/test/active_model/cases/helper.rb +0 -4
  43. data/test/active_model/cases/test_acceptance_validator.rb +0 -16
  44. data/test/active_model/cases/test_base.rb +0 -11
  45. data/test/active_model/cases/test_confirmation_validator.rb +0 -16
  46. data/test/active_model/cases/test_exclusion_validator.rb +0 -20
  47. data/test/active_model/cases/test_format_validator.rb +0 -21
  48. data/test/active_model/cases/test_inclusion_validator.rb +0 -21
  49. data/test/active_model/cases/test_length_validator.rb +0 -61
  50. data/test/active_model/cases/test_numericality_validator.rb +0 -46
  51. data/test/active_model/cases/test_presence_validator.rb +0 -16
  52. data/test/active_model/cases/test_validations.rb +0 -175
  53. data/test/active_model/models/person.rb +0 -17
  54. data/test/active_record/cases/helper.rb +0 -12
  55. data/test/active_record/cases/test_base.rb +0 -11
  56. data/test/active_record/cases/test_middleware.rb +0 -175
  57. data/test/active_record/cases/test_uniqueness_validator.rb +0 -50
  58. data/test/active_record/models/guid.rb +0 -7
  59. data/test/active_record/models/user.rb +0 -14
  60. data/test/base_helper.rb +0 -8
  61. data/test/core_ext/cases/test_core_ext.rb +0 -46
  62. data/test/formtastic/cases/helper.rb +0 -7
  63. data/test/formtastic/cases/test_form_builder.rb +0 -11
  64. data/test/formtastic/cases/test_form_helper.rb +0 -21
  65. data/test/generators/cases/test_generators.rb +0 -31
  66. data/test/javascript/config.ru +0 -3
  67. data/test/javascript/public/test/callbacks/elementAfter.js +0 -54
  68. data/test/javascript/public/test/callbacks/elementBefore.js +0 -54
  69. data/test/javascript/public/test/callbacks/elementFail.js +0 -70
  70. data/test/javascript/public/test/callbacks/elementPass.js +0 -70
  71. data/test/javascript/public/test/callbacks/formAfter.js +0 -45
  72. data/test/javascript/public/test/callbacks/formBefore.js +0 -45
  73. data/test/javascript/public/test/callbacks/formFail.js +0 -51
  74. data/test/javascript/public/test/callbacks/formPass.js +0 -50
  75. data/test/javascript/public/test/form_builders/validateForm.js +0 -66
  76. data/test/javascript/public/test/form_builders/validateFormtastic.js +0 -54
  77. data/test/javascript/public/test/form_builders/validateNestedForm.js +0 -66
  78. data/test/javascript/public/test/form_builders/validateSimpleForm.js +0 -57
  79. data/test/javascript/public/test/settings.js +0 -15
  80. data/test/javascript/public/test/validateElement.js +0 -179
  81. data/test/javascript/public/test/validators/acceptance.js +0 -42
  82. data/test/javascript/public/test/validators/confirmation.js +0 -25
  83. data/test/javascript/public/test/validators/exclusion.js +0 -41
  84. data/test/javascript/public/test/validators/format.js +0 -27
  85. data/test/javascript/public/test/validators/inclusion.js +0 -42
  86. data/test/javascript/public/test/validators/length.js +0 -76
  87. data/test/javascript/public/test/validators/numericality.js +0 -142
  88. data/test/javascript/public/test/validators/presence.js +0 -21
  89. data/test/javascript/public/test/validators/uniqueness.js +0 -96
  90. data/test/javascript/public/vendor/jquery.metadata.js +0 -122
  91. data/test/javascript/public/vendor/qunit.css +0 -196
  92. data/test/javascript/public/vendor/qunit.js +0 -1374
  93. data/test/javascript/server.rb +0 -84
  94. data/test/javascript/views/index.erb +0 -20
  95. data/test/javascript/views/layout.erb +0 -21
  96. data/test/middleware/cases/helper.rb +0 -18
  97. data/test/middleware/cases/test_middleware.rb +0 -8
  98. data/test/mongo_mapper/cases/helper.rb +0 -9
  99. data/test/mongo_mapper/cases/test_base.rb +0 -15
  100. data/test/mongo_mapper/cases/test_middleware.rb +0 -77
  101. data/test/mongo_mapper/cases/test_uniqueness_validator.rb +0 -50
  102. data/test/mongo_mapper/models/magazine.rb +0 -11
  103. data/test/mongoid/cases/helper.rb +0 -16
  104. data/test/mongoid/cases/test_base.rb +0 -15
  105. data/test/mongoid/cases/test_middleware.rb +0 -77
  106. data/test/mongoid/cases/test_uniqueness_validator.rb +0 -49
  107. data/test/mongoid/models/book.rb +0 -12
  108. data/test/simple_form/cases/helper.rb +0 -5
  109. data/test/simple_form/cases/test_form_builder.rb +0 -14
  110. data/test/simple_form/cases/test_form_helper.rb +0 -24
  111. data/test/test_loader.rb +0 -6
@@ -1,24 +0,0 @@
1
- module ClientSideValidations
2
- module SimpleForm
3
- module FormBuilder
4
-
5
- def self.included(base)
6
- base.class_eval do
7
- def self.client_side_form_settings(options, form_helper)
8
- {
9
- :type => self.to_s,
10
- :error_class => ::SimpleForm.error_class,
11
- :error_tag => ::SimpleForm.error_tag,
12
- :wrapper_error_class => ::SimpleForm.wrapper_error_class,
13
- :wrapper_tag => ::SimpleForm.wrapper_tag
14
- }
15
- end
16
- end
17
- end
18
-
19
- end
20
- end
21
- end
22
-
23
- SimpleForm::FormBuilder.send(:include, ClientSideValidations::SimpleForm::FormBuilder)
24
-
@@ -1,23 +0,0 @@
1
- module ClientSideValidations
2
- module Generators
3
- class CopyAssetGenerator < Rails::Generators::Base
4
- source_root File.expand_path('../../../../vendor/assets/javascripts', __FILE__)
5
- if Rails.version >= '3.1'
6
- desc 'Creates a ClientSideValidations initializer and copies rails.validations.js to app/assets/javascripts.'
7
- else
8
- desc 'Creates a ClientSideValidations initializer and copies rails.validations.js to public/javascripts.'
9
- end
10
-
11
- def copy_javascript_asset
12
- if Rails.version >= '3.1'
13
- destination = 'app/assets/javascripts'
14
- else
15
- destination = 'public/javascripts'
16
- end
17
-
18
- copy_file 'rails.validations.js', "#{destination}/rails.validations.js"
19
- end
20
- end
21
- end
22
- end
23
-
@@ -1,6 +0,0 @@
1
- *********************
2
- ClientSideValidations
3
- *********************
4
-
5
- Client Side Validations only works with jQuery.
6
- You'll need to include jQuery in your layout file before you include 'rails.validations.js'
@@ -1,7 +0,0 @@
1
- *********************
2
- ClientSideValidations
3
- *********************
4
-
5
- In your app/assets/javascripts/application.js file add the following:
6
-
7
- //= require rails.validations
@@ -1,176 +0,0 @@
1
- require 'base_helper'
2
- require 'action_view'
3
- require 'action_view/template'
4
- require 'action_view/models'
5
- require 'client_side_validations/action_view'
6
-
7
- module ActionController
8
- class Base
9
- include ActionDispatch::Routing::RouteSet.new.url_helpers
10
- end
11
- end
12
-
13
- module ActionViewTestSetup
14
- include ::ClientSideValidations::ActionView::Helpers::FormHelper
15
- include ::ClientSideValidations::ActionView::Helpers::FormTagHelper
16
-
17
- def form_for(*)
18
- @output_buffer = super
19
- end
20
-
21
- Routes = ActionDispatch::Routing::RouteSet.new
22
- Routes.draw do
23
- resources :posts do
24
- resources :comments
25
- end
26
- end
27
-
28
- def _routes
29
- Routes
30
- end
31
-
32
- include Routes.url_helpers
33
-
34
- def setup
35
- super
36
-
37
- # Create "label" locale for testing I18n label helpers
38
- I18n.backend.store_translations 'label', {
39
- :activemodel => {
40
- :attributes => {
41
- :post => {
42
- :cost => "Total cost"
43
- }
44
- }
45
- },
46
- :helpers => {
47
- :label => {
48
- :post => {
49
- :body => "Write entire text here"
50
- }
51
- }
52
- }
53
- }
54
-
55
- # Create "submit" locale for testing I18n submit helpers
56
- I18n.backend.store_translations 'submit', {
57
- :helpers => {
58
- :submit => {
59
- :create => 'Create %{model}',
60
- :update => 'Confirm %{model} changes',
61
- :submit => 'Save changes',
62
- :another_post => {
63
- :update => 'Update your %{model}'
64
- }
65
- }
66
- }
67
- }
68
-
69
- @post = Post.new
70
- @comment = Comment.new
71
- def @post.errors()
72
- Class.new{
73
- def [](field); field == "author_name" ? ["can't be empty"] : [] end
74
- def empty?() false end
75
- def count() 1 end
76
- def full_messages() [ "Author name can't be empty" ] end
77
- }.new
78
- end
79
- def @post.id; 123; end
80
- def @post.id_before_type_cast; 123; end
81
- def @post.to_param; '123'; end
82
-
83
- @post.persisted = true
84
- @post.title = "Hello World"
85
- @post.author_name = ""
86
- @post.body = "Back to the hill and over it again!"
87
- @post.secret = 1
88
- @post.written_on = Date.new(2004, 6, 15)
89
-
90
- if defined?(ActionView::OutputFlow)
91
- @view_flow = ActionView::OutputFlow.new
92
- else
93
- @_content_for = Hash.new { |h,k| h[k] = ActiveSupport::SafeBuffer.new }
94
- end
95
- end
96
-
97
- def snowman(method = nil)
98
- txt = %{<div style="margin:0;padding:0;display:inline">}
99
- txt << %{<input name="utf8" type="hidden" value="&#x2713;" />}
100
- txt << %{<input name="_method" type="hidden" value="#{method}" />} if method
101
- txt << %{</div>}
102
- end
103
-
104
- def form_text(action = "http://www.example.com", id = nil, html_class = nil, remote = nil, validators = nil, file = nil)
105
- txt = %{<form accept-charset="UTF-8" action="#{action}"}
106
- txt << %{ data-remote="true"} if remote
107
- txt << %{ class="#{html_class}"} if html_class
108
- txt << %{ data-validate="true"} if validators
109
- txt << %{ enctype="multipart/form-data"} if file
110
- txt << %{ id="#{id}"} if id
111
- txt << %{ method="post"}
112
- txt << %{ novalidate="novalidate"} if validators
113
- txt << %{>}
114
- end
115
-
116
- def whole_form(action = "http://www.example.com", id = nil, html_class = nil, options = nil)
117
- contents = block_given? ? yield : ""
118
-
119
- if options.is_a?(Hash)
120
- method, remote, validators, file = options.values_at(:method, :remote, :validators, :file)
121
- else
122
- method = options
123
- end
124
-
125
- html = form_text(action, id, html_class, remote, validators, file) + snowman(method) + (contents || "") + "</form>"
126
-
127
- if options.is_a?(Hash) && options[:validators]
128
- build_script_tag(html, id, options[:validators])
129
- else
130
- html
131
- end
132
- end
133
-
134
- def build_script_tag(html, id, validators)
135
- (html || "") + %Q{<script>window['#{id}'] = #{client_side_form_settings_helper.merge(:validators => validators).to_json};</script>}
136
- end
137
-
138
- protected
139
- def comments_path(post)
140
- "/posts/#{post.id}/comments"
141
- end
142
- alias_method :post_comments_path, :comments_path
143
-
144
- def comment_path(post, comment)
145
- "/posts/#{post.id}/comments/#{comment.id}"
146
- end
147
- alias_method :post_comment_path, :comment_path
148
-
149
- def admin_comments_path(post)
150
- "/admin/posts/#{post.id}/comments"
151
- end
152
- alias_method :admin_post_comments_path, :admin_comments_path
153
-
154
- def admin_comment_path(post, comment)
155
- "/admin/posts/#{post.id}/comments/#{comment.id}"
156
- end
157
- alias_method :admin_post_comment_path, :admin_comment_path
158
-
159
- def posts_path
160
- "/posts"
161
- end
162
-
163
- def post_path(post, options = {})
164
- if options[:format]
165
- "/posts/#{post.id}.#{options[:format]}"
166
- else
167
- "/posts/#{post.id}"
168
- end
169
- end
170
-
171
- def protect_against_forgery?
172
- false
173
- end
174
-
175
- end
176
-