1
0
Fork 0
mirror of https://github.com/heartcombo/simple_form.git synced 2022-11-09 12:19:26 -05:00
heartcombo--simple_form/lib/simple_form.rb

147 lines
4.9 KiB
Ruby
Raw Normal View History

2010-02-06 14:41:35 -05:00
require 'action_view'
2009-12-09 15:25:12 -05:00
require 'simple_form/action_view_extensions/form_helper'
require 'simple_form/action_view_extensions/builder'
2009-12-09 15:25:12 -05:00
module SimpleForm
autoload :Components, 'simple_form/components'
autoload :ErrorNotification, 'simple_form/error_notification'
autoload :FormBuilder, 'simple_form/form_builder'
autoload :Helpers, 'simple_form/helpers'
autoload :I18nCache, 'simple_form/i18n_cache'
autoload :Inputs, 'simple_form/inputs'
autoload :MapType, 'simple_form/map_type'
autoload :Renderer, 'simple_form/renderer'
# Default tag used on hints.
2010-01-09 08:34:52 -05:00
mattr_accessor :hint_tag
@@hint_tag = :span
# CSS class to add to all hint tags.
mattr_accessor :hint_class
@@hint_class = :hint
# Default tag used on errors.
2010-01-09 08:34:52 -05:00
mattr_accessor :error_tag
@@error_tag = :span
# CSS class to add to all error tags.
mattr_accessor :error_class
@@error_class = :error
# Method used to tidy up errors.
mattr_accessor :error_method
@@error_method = :first
# Default tag used for error notification helper.
mattr_accessor :error_notification_tag
@@error_notification_tag = :p
# CSS class to add for error notification helper.
mattr_accessor :error_notification_class
2010-11-07 04:18:37 -05:00
@@error_notification_class = :error_notification
# ID to add for error notification helper.
mattr_accessor :error_notification_id
@@error_notification_id = nil
# Components used by the form builder.
mattr_accessor :components
@@components = [ :placeholder, :label_input, :hint, :error ]
2009-12-09 21:22:53 -05:00
# Series of attemps to detect a default label method for collection.
2009-12-09 21:22:53 -05:00
mattr_accessor :collection_label_methods
2009-12-10 20:48:29 -05:00
@@collection_label_methods = [ :to_label, :name, :title, :to_s ]
2009-12-09 21:22:53 -05:00
# Series of attemps to detect a default value method for collection.
2009-12-09 21:22:53 -05:00
mattr_accessor :collection_value_methods
@@collection_value_methods = [ :id, :to_s ]
# You can wrap a collection of radio/check boxes in a pre-defined tag, defaulting to none.
mattr_accessor :collection_wrapper_tag
@@collection_wrapper_tag = nil
# You can wrap each item in a collection of radio/check boxes with a tag, defaulting to none.
mattr_accessor :item_wrapper_tag
@@item_wrapper_tag = :span
# You can wrap all inputs in a pre-defined tag. Default is a div.
mattr_accessor :wrapper_tag
2010-02-06 15:44:07 -05:00
@@wrapper_tag = :div
2009-12-10 17:11:15 -05:00
# You can define the class to use on all wrappers. Default is input.
mattr_accessor :wrapper_class
@@wrapper_class = :input
# You can define the class to add to the wrapper when the field has errors. Default is field_with_errors.
mattr_accessor :wrapper_error_class
@@wrapper_error_class = :field_with_errors
2009-12-10 17:11:15 -05:00
# How the label text should be generated altogether with the required text.
mattr_accessor :label_text
@@label_text = lambda { |label, required| "#{required} #{label}" }
2009-12-11 08:12:57 -05:00
# You can define the class to use on all labels. Default is nil.
mattr_accessor :label_class
@@label_class = nil
# You can define the class to use on all forms. Default is simple_form.
mattr_accessor :form_class
@@form_class = :simple_form
2010-07-06 05:28:23 -04:00
# Whether attributes are required by default (or not).
mattr_accessor :required_by_default
@@required_by_default = true
# Tell browsers whether to use default HTML5 validations (novalidate option).
mattr_accessor :browser_validations
@@browser_validations = true
# Determines whether HTML5 types (:email, :url, :search, :tel) and attributes
# (e.g. required) are used or not. True by default.
# Having this on in non-HTML5 compliant sites can cause odd behavior in
# HTML5-aware browsers such as Chrome.
2011-05-16 05:42:58 -04:00
mattr_accessor :html5
@@html5 = true
2009-12-11 08:12:57 -05:00
# Collection of methods to detect if a file type was given.
mattr_accessor :file_methods
2009-12-12 20:05:51 -05:00
@@file_methods = [ :mounted_as, :file?, :public_filename ]
2010-11-25 19:35:38 -05:00
# Custom mappings for input types. This should be a hash containing a regexp
# to match as key, and the input type that will be used when the field name
# matches the regexp as value, such as { /count/ => :integer }.
mattr_accessor :input_mappings
@@input_mappings = nil
# Default priority for time_zone inputs.
mattr_accessor :time_zone_priority
@@time_zone_priority = nil
# Default priority for country inputs.
mattr_accessor :country_priority
@@country_priority = nil
2010-02-06 16:06:25 -05:00
# Maximum size allowed for inputs.
mattr_accessor :default_input_size
@@default_input_size = 50
2010-10-04 05:59:25 -04:00
# When off, do not use translations in hint, labels and placeholders.
# It is a small performance improvement if you are not using such features.
mattr_accessor :translate
@@translate = true
2011-04-27 14:55:03 -04:00
# Automatically discover new inputs in Rails' autoload path.
mattr_accessor :inputs_discovery
@@inputs_discovery = true
# Cache simple form inputs discovery
mattr_accessor :cache_discovery
@@cache_discovery = !Rails.env.development?
2010-06-04 01:41:04 -04:00
# Default way to setup SimpleForm. Run rails generate simple_form:install
# to create a fresh initializer with all configuration values.
def self.setup
yield self
end
2009-12-10 12:57:24 -05:00
end