formtastic 3.1.5 → 4.0.0.rc1
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.
- checksums.yaml +5 -5
- data/.gitattributes +1 -0
- data/.gitignore +3 -2
- data/.travis.yml +28 -40
- data/CHANGELOG.md +49 -0
- data/DEPRECATIONS +1 -1
- data/Gemfile.lock +104 -0
- data/README.md +628 -629
- data/Rakefile +20 -1
- data/app/assets/stylesheets/formtastic.css +1 -1
- data/bin/appraisal +8 -0
- data/formtastic.gemspec +8 -14
- data/gemfiles/rails_5.2/Gemfile +5 -0
- data/gemfiles/rails_6.0/Gemfile +5 -0
- data/gemfiles/rails_edge/Gemfile +13 -0
- data/lib/formtastic.rb +5 -11
- data/lib/formtastic/actions.rb +6 -3
- data/lib/formtastic/deprecation.rb +1 -38
- data/lib/formtastic/engine.rb +3 -1
- data/lib/formtastic/form_builder.rb +8 -24
- data/lib/formtastic/helpers/action_helper.rb +1 -48
- data/lib/formtastic/helpers/errors_helper.rb +2 -2
- data/lib/formtastic/helpers/fieldset_wrapper.rb +7 -3
- data/lib/formtastic/helpers/input_helper.rb +18 -76
- data/lib/formtastic/helpers/inputs_helper.rb +12 -3
- data/lib/formtastic/i18n.rb +1 -1
- data/lib/formtastic/inputs.rb +32 -29
- data/lib/formtastic/inputs/base/collections.rb +1 -5
- data/lib/formtastic/inputs/base/errors.rb +4 -4
- data/lib/formtastic/inputs/base/hints.rb +1 -1
- data/lib/formtastic/inputs/base/timeish.rb +5 -1
- data/lib/formtastic/inputs/base/validations.rb +19 -9
- data/lib/formtastic/inputs/check_boxes_input.rb +3 -3
- data/lib/formtastic/inputs/color_input.rb +0 -1
- data/lib/formtastic/inputs/select_input.rb +1 -1
- data/lib/formtastic/localizer.rb +5 -7
- data/lib/formtastic/version.rb +1 -1
- data/lib/generators/templates/formtastic.rb +4 -6
- data/script/integration-template.rb +71 -0
- data/script/integration.sh +19 -0
- data/spec/action_class_finder_spec.rb +1 -1
- data/spec/actions/button_action_spec.rb +8 -8
- data/spec/actions/generic_action_spec.rb +60 -60
- data/spec/actions/input_action_spec.rb +7 -7
- data/spec/actions/link_action_spec.rb +10 -10
- data/spec/builder/custom_builder_spec.rb +36 -20
- data/spec/builder/error_proc_spec.rb +4 -4
- data/spec/builder/semantic_fields_for_spec.rb +27 -27
- data/spec/generators/formtastic/form/form_generator_spec.rb +25 -25
- data/spec/generators/formtastic/input/input_generator_spec.rb +31 -31
- data/spec/generators/formtastic/install/install_generator_spec.rb +9 -9
- data/spec/helpers/action_helper_spec.rb +328 -10
- data/spec/helpers/actions_helper_spec.rb +17 -17
- data/spec/helpers/form_helper_spec.rb +33 -33
- data/spec/helpers/input_helper_spec.rb +975 -2
- data/spec/helpers/inputs_helper_spec.rb +120 -105
- data/spec/helpers/reflection_helper_spec.rb +3 -3
- data/spec/helpers/semantic_errors_helper_spec.rb +22 -22
- data/spec/i18n_spec.rb +26 -26
- data/spec/input_class_finder_spec.rb +1 -1
- data/spec/inputs/base/collections_spec.rb +6 -6
- data/spec/inputs/base/validations_spec.rb +157 -19
- data/spec/inputs/boolean_input_spec.rb +55 -55
- data/spec/inputs/check_boxes_input_spec.rb +96 -95
- data/spec/inputs/color_input_spec.rb +51 -63
- data/spec/inputs/country_input_spec.rb +20 -20
- data/spec/inputs/custom_input_spec.rb +2 -6
- data/spec/inputs/datalist_input_spec.rb +1 -1
- data/spec/inputs/date_picker_input_spec.rb +42 -42
- data/spec/inputs/date_select_input_spec.rb +51 -37
- data/spec/inputs/datetime_picker_input_spec.rb +46 -46
- data/spec/inputs/datetime_select_input_spec.rb +53 -37
- data/spec/inputs/email_input_spec.rb +5 -5
- data/spec/inputs/file_input_spec.rb +6 -6
- data/spec/inputs/hidden_input_spec.rb +18 -18
- data/spec/inputs/include_blank_spec.rb +8 -8
- data/spec/inputs/label_spec.rb +20 -20
- data/spec/inputs/number_input_spec.rb +112 -112
- data/spec/inputs/password_input_spec.rb +5 -5
- data/spec/inputs/phone_input_spec.rb +5 -5
- data/spec/inputs/placeholder_spec.rb +5 -5
- data/spec/inputs/radio_input_spec.rb +63 -65
- data/spec/inputs/range_input_spec.rb +66 -66
- data/spec/inputs/readonly_spec.rb +4 -4
- data/spec/inputs/search_input_spec.rb +5 -5
- data/spec/inputs/select_input_spec.rb +92 -96
- data/spec/inputs/string_input_spec.rb +23 -23
- data/spec/inputs/text_input_spec.rb +16 -16
- data/spec/inputs/time_picker_input_spec.rb +43 -43
- data/spec/inputs/time_select_input_spec.rb +67 -54
- data/spec/inputs/time_zone_input_spec.rb +19 -19
- data/spec/inputs/url_input_spec.rb +5 -5
- data/spec/inputs/with_options_spec.rb +7 -7
- data/spec/localizer_spec.rb +17 -17
- data/spec/namespaced_class_finder_spec.rb +2 -2
- data/spec/schema.rb +21 -0
- data/spec/spec_helper.rb +163 -223
- data/spec/support/custom_macros.rb +72 -75
- data/spec/support/shared_examples.rb +0 -1301
- data/spec/support/test_environment.rb +23 -9
- metadata +33 -123
- data/Appraisals +0 -43
- data/CHANGELOG +0 -54
- data/gemfiles/rails_3.2.gemfile +0 -9
- data/gemfiles/rails_4.0.4.gemfile +0 -8
- data/gemfiles/rails_4.1.gemfile +0 -8
- data/gemfiles/rails_4.2.gemfile +0 -8
- data/gemfiles/rails_4.gemfile +0 -8
- data/gemfiles/rails_5.0.gemfile +0 -8
- data/gemfiles/rails_edge.gemfile +0 -15
- data/lib/formtastic/util.rb +0 -57
- data/spec/helpers/namespaced_action_helper_spec.rb +0 -43
- data/spec/helpers/namespaced_input_helper_spec.rb +0 -36
- data/spec/util_spec.rb +0 -66
data/gemfiles/rails_3.2.gemfile
DELETED
data/gemfiles/rails_4.1.gemfile
DELETED
data/gemfiles/rails_4.2.gemfile
DELETED
data/gemfiles/rails_4.gemfile
DELETED
data/gemfiles/rails_5.0.gemfile
DELETED
data/gemfiles/rails_edge.gemfile
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
# This file was generated by Appraisal
|
2
|
-
|
3
|
-
source "https://rubygems.org"
|
4
|
-
|
5
|
-
gem "rails", :github => "rails/rails"
|
6
|
-
gem "rack", :github => "rack/rack"
|
7
|
-
gem "i18n", :github => "svenfuchs/i18n"
|
8
|
-
gem "arel", :github => "rails/arel"
|
9
|
-
gem "rspec-rails", :github => "rspec/rspec-rails"
|
10
|
-
gem "rspec-mocks", :github => "rspec/rspec-mocks"
|
11
|
-
gem "rspec-support", :github => "rspec/rspec-support"
|
12
|
-
gem "rspec-core", :github => "rspec/rspec-core"
|
13
|
-
gem "rspec-expectations", :github => "rspec/rspec-expectations"
|
14
|
-
|
15
|
-
gemspec :path => "../"
|
data/lib/formtastic/util.rb
DELETED
@@ -1,57 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
# Adapted from the rails3 compatibility shim in Haml 2.2
|
4
|
-
module Formtastic
|
5
|
-
# @private
|
6
|
-
module Util
|
7
|
-
extend self
|
8
|
-
## Rails XSS Safety
|
9
|
-
|
10
|
-
# Returns the given text, marked as being HTML-safe.
|
11
|
-
# With older versions of the Rails XSS-safety mechanism,
|
12
|
-
# this destructively modifies the HTML-safety of `text`.
|
13
|
-
#
|
14
|
-
# @param text [String]
|
15
|
-
# @return [String] `text`, marked as HTML-safe
|
16
|
-
def html_safe(text)
|
17
|
-
if text.respond_to?(:html_safe)
|
18
|
-
text.html_safe
|
19
|
-
else
|
20
|
-
text
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
def rails3?
|
25
|
-
match?(rails_version, "~> 3.0")
|
26
|
-
end
|
27
|
-
|
28
|
-
def rails4?
|
29
|
-
match?(rails_version, "~> 4.0")
|
30
|
-
end
|
31
|
-
|
32
|
-
def rails4_0?
|
33
|
-
match?(rails_version, "~> 4.0.0")
|
34
|
-
end
|
35
|
-
|
36
|
-
def rails4_1?
|
37
|
-
match?(rails_version, "~> 4.1.0")
|
38
|
-
end
|
39
|
-
|
40
|
-
def deprecated_version_of_rails?
|
41
|
-
match?(rails_version, "< #{minimum_version_of_rails}")
|
42
|
-
end
|
43
|
-
|
44
|
-
def minimum_version_of_rails
|
45
|
-
"4.1.0"
|
46
|
-
end
|
47
|
-
|
48
|
-
def rails_version
|
49
|
-
::Rails::VERSION::STRING
|
50
|
-
end
|
51
|
-
|
52
|
-
def match?(version, dependency)
|
53
|
-
Gem::Dependency.new("formtastic", dependency).match?("formtastic", version)
|
54
|
-
end
|
55
|
-
|
56
|
-
end
|
57
|
-
end
|
@@ -1,43 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe 'with action class finder' do
|
4
|
-
include_context 'form builder'
|
5
|
-
|
6
|
-
before {
|
7
|
-
allow(Formtastic::FormBuilder)
|
8
|
-
.to receive(:action_class_finder).and_return(Formtastic::ActionClassFinder)
|
9
|
-
}
|
10
|
-
|
11
|
-
it_behaves_like 'Action Helper'
|
12
|
-
|
13
|
-
describe 'instantiating an action class' do
|
14
|
-
it "should delegate to ActionClassFinder" do
|
15
|
-
concat(semantic_form_for(@new_post) do |builder|
|
16
|
-
Formtastic::ActionClassFinder.any_instance.should_receive(:find).
|
17
|
-
with(:button).and_call_original
|
18
|
-
|
19
|
-
builder.action(:submit, :as => :button)
|
20
|
-
end)
|
21
|
-
end
|
22
|
-
|
23
|
-
describe 'when instantiated multiple times with the same action type' do
|
24
|
-
it "should be cached" do
|
25
|
-
concat(semantic_form_for(@new_post) do |builder|
|
26
|
-
Formtastic::ActionClassFinder.should_receive(:new).once.and_call_original
|
27
|
-
builder.action(:submit, :as => :button)
|
28
|
-
builder.action(:submit, :as => :button)
|
29
|
-
end)
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
context 'of unknown action' do
|
34
|
-
it "should try to load class named as the action" do
|
35
|
-
expect {
|
36
|
-
semantic_form_for(@new_post) do |builder|
|
37
|
-
builder.action(:destroy)
|
38
|
-
end
|
39
|
-
}.to raise_error(Formtastic::UnknownActionError, 'Unable to find action class DestroyAction')
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
@@ -1,36 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
require 'spec_helper'
|
3
|
-
|
4
|
-
describe 'with input class finder' do
|
5
|
-
include_context 'form builder'
|
6
|
-
|
7
|
-
before {
|
8
|
-
allow(Formtastic::FormBuilder)
|
9
|
-
.to receive(:input_class_finder).and_return(Formtastic::InputClassFinder)
|
10
|
-
}
|
11
|
-
it_behaves_like 'Input Helper' # from spec/support/shared_examples.rb
|
12
|
-
|
13
|
-
|
14
|
-
describe 'instantiating an input class' do
|
15
|
-
describe 'when instantiated multiple times with the same input type' do
|
16
|
-
|
17
|
-
it "should be cached (not calling the internal methods)" do
|
18
|
-
# TODO this is really tied to the underlying implementation
|
19
|
-
concat(semantic_form_for(@new_post) do |builder|
|
20
|
-
Formtastic::InputClassFinder.should_receive(:new).once.and_call_original
|
21
|
-
builder.input(:title, :as => :string)
|
22
|
-
builder.input(:title, :as => :string)
|
23
|
-
end)
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
it "should delegate to InputClassFinder" do
|
28
|
-
concat(semantic_form_for(@new_post) do |builder|
|
29
|
-
Formtastic::InputClassFinder.any_instance.should_receive(:find).
|
30
|
-
with(:string).and_call_original
|
31
|
-
|
32
|
-
builder.input(:title, :as => :string)
|
33
|
-
end)
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
data/spec/util_spec.rb
DELETED
@@ -1,66 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
require 'spec_helper'
|
3
|
-
|
4
|
-
describe 'Formtastic::Util' do
|
5
|
-
|
6
|
-
describe '.deprecated_version_of_rails?' do
|
7
|
-
|
8
|
-
subject { Formtastic::Util.deprecated_version_of_rails? }
|
9
|
-
|
10
|
-
context '4.0.0' do
|
11
|
-
before { allow(Formtastic::Util).to receive(:rails_version) { "4.0.0" } }
|
12
|
-
it 'should be true' do
|
13
|
-
expect(subject).to be_truthy
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
context '4.0.3' do
|
18
|
-
before { allow(Formtastic::Util).to receive(:rails_version) { "4.0.3" } }
|
19
|
-
it 'should be true' do
|
20
|
-
expect(subject).to be_truthy
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
context '4.0.4' do
|
25
|
-
before { allow(Formtastic::Util).to receive(:rails_version) { "4.0.4" } }
|
26
|
-
it 'should be false' do
|
27
|
-
expect(subject).to be_truthy
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
context '4.0.5' do
|
32
|
-
before { allow(Formtastic::Util).to receive(:rails_version) { "4.0.5" } }
|
33
|
-
it 'should be false' do
|
34
|
-
expect(subject).to be_truthy
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
context '4.1.0' do
|
39
|
-
before { allow(Formtastic::Util).to receive(:rails_version) { "4.1.0" } }
|
40
|
-
it 'should be false' do
|
41
|
-
expect(subject).to be_falsey
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
context '4.1.1' do
|
46
|
-
before { allow(Formtastic::Util).to receive(:rails_version) { "4.1.1" } }
|
47
|
-
it 'should be false' do
|
48
|
-
expect(subject).to be_falsey
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
context '4.2.0' do
|
53
|
-
before { allow(Formtastic::Util).to receive(:rails_version) { "4.2.0" } }
|
54
|
-
it 'should be false' do
|
55
|
-
expect(subject).to be_falsey
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
context '5.0.0' do
|
60
|
-
before { allow(Formtastic::Util).to receive(:rails_version) { "5.0.0" } }
|
61
|
-
it 'should be true' do
|
62
|
-
expect(subject).to be_falsey
|
63
|
-
end
|
64
|
-
end
|
65
|
-
end
|
66
|
-
end
|