Start to use autoload.

This commit is contained in:
José Valim 2009-12-09 18:25:12 -02:00
parent 0ee5dfc222
commit 727f29567a
6 changed files with 40 additions and 32 deletions

View File

@ -1,5 +1,8 @@
require 'simple_form/builder_extensions'
require 'simple_form/form_helper'
require 'simple_form/form_builder'
require 'simple_form/action_view_extensions/form_helper'
require 'simple_form/action_view_extensions/builder'
ActionView::Helpers::FormBuilder.send :include, SimpleForm::BuilderExtensions
module SimpleForm
autoload :FormBuilder, 'simple_form/form_builder'
autoload :I18nCache, 'simple_form/i18n_cache'
autoload :MapType, 'simple_form/map_type'
end

View File

@ -0,0 +1,19 @@
module SimpleForm
module ActionViewExtensions
# A collection of methods required by simple_form but added to rails default form.
# This means that you can use such methods outside simple_form context.
module Builder
def collection_radio(attribute, collection, value_method, text_method, html_options={})
collection.inject('') do |result, item|
value = item.send value_method
text = item.send text_method
result << radio_button(attribute, value, html_options) <<
label("#{attribute}_#{value}", text, :class => "radio")
end
end
end
end
end
ActionView::Helpers::FormBuilder.send :include, SimpleForm::ActionViewExtensions::Builder

View File

@ -0,0 +1,13 @@
module SimpleForm
module ActionViewExtensions
module FormHelper
def simple_form_for(*args, &block)
options = args.extract_options!
options[:builder] = SimpleForm::FormBuilder
form_for(*(args << options), &block)
end
end
end
end
ActionView::Base.send :include, SimpleForm::ActionViewExtensions::FormHelper

View File

@ -1,15 +0,0 @@
module SimpleForm
# A collection of methods required by simple_form but added to rails default form.
# This means that you can use such methods outside simple_form context.
module BuilderExtensions
def collection_radio(attribute, collection, value_method, text_method, html_options={})
collection.inject('') do |result, item|
value = item.send value_method
text = item.send text_method
result << radio_button(attribute, value, html_options) <<
label("#{attribute}_#{value}", text, :class => "radio")
end
end
end
end

View File

@ -1,12 +0,0 @@
module SimpleForm
module FormHelper
def simple_form_for(*args, &block)
options = args.extract_options!
options[:builder] = SimpleForm::FormBuilder
form_for(*(args << options), &block)
end
end
end
ActionView::Base.send :include, SimpleForm::FormHelper

View File

@ -13,7 +13,7 @@ I18n.default_locale = :en
class ActionView::TestCase
include I18nHelper
tests SimpleForm::FormHelper
tests SimpleForm::ActionViewExtensions::FormHelper
setup :set_controller
setup :set_response