Module: Rails4ClientSideValidations::ActionView::Helpers::FormBuilder
- Defined in:
- lib/rails4_client_side_validations/action_view/form_builder.rb
Class Method Summary collapse
Instance Method Summary collapse
- #check_box_with_rails4_client_side_validations(method, options = {}, checked_value = "1", unchecked_value = "0") ⇒ Object
- #collection_select_with_rails4_client_side_validations(method, collection, value_method, text_method, options = {}, html_options = {}) ⇒ Object
- #fields_for_with_rails4_client_side_validations(record_or_name_or_array, *args, &block) ⇒ Object
- #grouped_collection_select_with_rails4_client_side_validations(method, collection, group_method, group_label_method, option_key_method, option_value_method, options = {}, html_options = {}) ⇒ Object
- #initialize_with_rails4_client_side_validations(object_name, object, template, options, proc = nil) ⇒ Object
- #radio_button_with_rails4_client_side_validations(method, tag_value, options = {}) ⇒ Object
- #select_with_rails4_client_side_validations(method, choices, options = {}, html_options = {}) ⇒ Object
- #time_zone_select_with_rails4_client_side_validations(method, priority_zones = nil, options = {}, html_options = {}) ⇒ Object
- #validate(*attrs) ⇒ Object
Class Method Details
.included(base) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/rails4_client_side_validations/action_view/form_builder.rb', line 4 def self.included(base) (base.field_helpers.map(&:to_s) - %w(apply_form_for_options! label check_box radio_button fields_for hidden_field)).each do |selector| base.class_eval " def \#{selector}_with_rails4_client_side_validations(method, options = {})\n build_validation_options(method, options)\n options.delete(:validate)\n \#{selector}_without_rails4_client_side_validations(method, options)\n end\n RUBY_EVAL\n\n base.class_eval { alias_method_chain selector, :rails4_client_side_validations }\n end\n\n base.class_eval do\n alias_method_chain :initialize, :rails4_client_side_validations\n alias_method_chain :fields_for, :rails4_client_side_validations\n alias_method_chain :check_box, :rails4_client_side_validations\n alias_method_chain :radio_button, :rails4_client_side_validations\n alias_method_chain :select, :rails4_client_side_validations\n alias_method_chain :collection_select, :rails4_client_side_validations\n alias_method_chain :grouped_collection_select, :rails4_client_side_validations\n alias_method_chain :time_zone_select, :rails4_client_side_validations\n\n def client_side_form_settings(options, form_helper)\n {\n :type => self.class.to_s,\n :input_tag => form_helper.class.field_error_proc.call(%{<span id=\"input_tag\" />}, Struct.new(:error_message, :tag_id).new([], \"\")),\n :label_tag => form_helper.class.field_error_proc.call(%{<label id=\"label_tag\" />}, Struct.new(:error_message, :tag_id).new([], \"\"))\n }\n end\n end\nend\n" |
Instance Method Details
#check_box_with_rails4_client_side_validations(method, options = {}, checked_value = "1", unchecked_value = "0") ⇒ Object
56 57 58 59 60 |
# File 'lib/rails4_client_side_validations/action_view/form_builder.rb', line 56 def check_box_with_rails4_client_side_validations(method, = {}, checked_value = "1", unchecked_value = "0") (method, ) .delete(:validate) check_box_without_rails4_client_side_validations(method, , checked_value, unchecked_value) end |
#collection_select_with_rails4_client_side_validations(method, collection, value_method, text_method, options = {}, html_options = {}) ⇒ Object
74 75 76 77 78 |
# File 'lib/rails4_client_side_validations/action_view/form_builder.rb', line 74 def collection_select_with_rails4_client_side_validations(method, collection, value_method, text_method, = {}, = {}) (method, .merge(:name => [:name])) .delete(:validate) collection_select_without_rails4_client_side_validations(method, collection, value_method, text_method, , ) end |
#fields_for_with_rails4_client_side_validations(record_or_name_or_array, *args, &block) ⇒ Object
50 51 52 53 54 |
# File 'lib/rails4_client_side_validations/action_view/form_builder.rb', line 50 def fields_for_with_rails4_client_side_validations(record_or_name_or_array, *args, &block) = args. [:validate] ||= [:validate] if [:validate] && !.key?(:validate) fields_for_without_rails4_client_side_validations(record_or_name_or_array, *(args << ), &block) end |
#grouped_collection_select_with_rails4_client_side_validations(method, collection, group_method, group_label_method, option_key_method, option_value_method, options = {}, html_options = {}) ⇒ Object
80 81 82 83 84 |
# File 'lib/rails4_client_side_validations/action_view/form_builder.rb', line 80 def grouped_collection_select_with_rails4_client_side_validations(method, collection, group_method, group_label_method, option_key_method, option_value_method, = {}, = {}) (method, .merge(:name => [:name])) .delete(:validate) grouped_collection_select_without_rails4_client_side_validations(method, collection, group_method, group_label_method, option_key_method, option_value_method, , ) end |
#initialize_with_rails4_client_side_validations(object_name, object, template, options, proc = nil) ⇒ Object
45 46 47 48 |
# File 'lib/rails4_client_side_validations/action_view/form_builder.rb', line 45 def initialize_with_rails4_client_side_validations(object_name, object, template, , proc=nil) initialize_without_rails4_client_side_validations(object_name, object, template, , proc) [:validators] = { object => {} } end |
#radio_button_with_rails4_client_side_validations(method, tag_value, options = {}) ⇒ Object
62 63 64 65 66 |
# File 'lib/rails4_client_side_validations/action_view/form_builder.rb', line 62 def (method, tag_value, = {}) (method, ) .delete(:validate) (method, tag_value, ) end |
#select_with_rails4_client_side_validations(method, choices, options = {}, html_options = {}) ⇒ Object
68 69 70 71 72 |
# File 'lib/rails4_client_side_validations/action_view/form_builder.rb', line 68 def select_with_rails4_client_side_validations(method, choices, = {}, = {}) (method, .merge(:name => [:name])) .delete(:validate) select_without_rails4_client_side_validations(method, choices, , ) end |
#time_zone_select_with_rails4_client_side_validations(method, priority_zones = nil, options = {}, html_options = {}) ⇒ Object
86 87 88 89 90 |
# File 'lib/rails4_client_side_validations/action_view/form_builder.rb', line 86 def time_zone_select_with_rails4_client_side_validations(method, priority_zones = nil, = {}, = {}) (method, .merge(:name => [:name])) .delete(:validate) time_zone_select_without_rails4_client_side_validations(method, priority_zones, , ) end |
#validate(*attrs) ⇒ Object
37 38 39 40 41 42 43 |
# File 'lib/rails4_client_side_validations/action_view/form_builder.rb', line 37 def validate(*attrs) = attrs.pop if attrs.last.is_a?(Hash) (attrs.present? ? attrs : @object._validators.keys).each do |attr| (attr, :validate => ) end nil end |