active_scaffold 3.3.3 → 3.4.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.
- checksums.yaml +4 -4
- data/CHANGELOG +39 -0
- data/README.md +5 -3
- data/app/assets/images/active_scaffold/refresh.png +0 -0
- data/app/assets/javascripts/jquery/active_scaffold.js +182 -91
- data/app/assets/javascripts/jquery/date_picker_bridge.js.erb +14 -16
- data/app/assets/javascripts/jquery/draggable_lists.js +33 -26
- data/app/assets/javascripts/jquery/jquery.editinplace.js +3 -3
- data/app/assets/javascripts/prototype/active_scaffold.js +61 -19
- data/app/assets/stylesheets/active_scaffold_colors.css.scss +4 -0
- data/app/assets/stylesheets/active_scaffold_images.css.scss +3 -0
- data/app/assets/stylesheets/active_scaffold_layout.css +23 -2
- data/app/views/active_scaffold_overrides/_add_existing_form.html.erb +1 -3
- data/app/views/active_scaffold_overrides/_base_form.html.erb +7 -5
- data/app/views/active_scaffold_overrides/_field_search.html.erb +1 -2
- data/app/views/active_scaffold_overrides/_form.html.erb +6 -4
- data/app/views/active_scaffold_overrides/_form_association.html.erb +4 -3
- data/app/views/active_scaffold_overrides/_form_association_footer.html.erb +5 -5
- data/app/views/active_scaffold_overrides/_form_association_record.html.erb +8 -6
- data/app/views/active_scaffold_overrides/_horizontal_subform_header.html.erb +3 -2
- data/app/views/active_scaffold_overrides/_list.html.erb +8 -6
- data/app/views/active_scaffold_overrides/_list_column_headings.html.erb +1 -4
- data/app/views/active_scaffold_overrides/_list_pagination.html.erb +4 -4
- data/app/views/active_scaffold_overrides/_list_pagination_links.html.erb +1 -1
- data/app/views/active_scaffold_overrides/_list_record.html.erb +3 -3
- data/app/views/active_scaffold_overrides/_refresh_list.js.erb +8 -1
- data/app/views/active_scaffold_overrides/_search.html.erb +7 -13
- data/app/views/active_scaffold_overrides/_show_columns.html.erb +1 -1
- data/app/views/active_scaffold_overrides/on_create.js.erb +4 -4
- data/app/views/active_scaffold_overrides/render_field_inplace.html.erb +1 -1
- data/app/views/active_scaffold_overrides/row.js.erb +1 -1
- data/config/locales/de.yml +106 -95
- data/config/locales/en.yml +108 -97
- data/config/locales/es.yml +109 -98
- data/config/locales/fr.yml +108 -97
- data/config/locales/hu.yml +109 -98
- data/config/locales/ja.yml +100 -89
- data/config/locales/ru.yml +115 -104
- data/lib/active_scaffold.rb +18 -294
- data/lib/active_scaffold/actions/common_search.rb +50 -17
- data/lib/active_scaffold/actions/core.rb +93 -22
- data/lib/active_scaffold/actions/create.rb +15 -6
- data/lib/active_scaffold/actions/field_search.rb +68 -60
- data/lib/active_scaffold/actions/list.rb +49 -28
- data/lib/active_scaffold/actions/nested.rb +14 -6
- data/lib/active_scaffold/actions/search.rb +36 -35
- data/lib/active_scaffold/actions/show.rb +9 -4
- data/lib/active_scaffold/actions/subform.rb +1 -1
- data/lib/active_scaffold/actions/update.rb +22 -7
- data/lib/active_scaffold/active_record_permissions.rb +125 -118
- data/lib/active_scaffold/attribute_params.rb +84 -66
- data/lib/active_scaffold/bridges.rb +3 -3
- data/lib/active_scaffold/bridges/ancestry/ancestry_bridge.rb +10 -5
- data/lib/active_scaffold/bridges/cancan.rb +2 -1
- data/lib/active_scaffold/bridges/cancan/cancan_bridge.rb +13 -2
- data/lib/active_scaffold/bridges/carrierwave/form_ui.rb +11 -6
- data/lib/active_scaffold/bridges/chosen/helpers.rb +2 -2
- data/lib/active_scaffold/bridges/country_helper/country_helper_bridge.rb +45 -29
- data/lib/active_scaffold/bridges/date_picker/ext.rb +11 -6
- data/lib/active_scaffold/bridges/date_picker/helper.rb +5 -1
- data/lib/active_scaffold/bridges/dragonfly/form_ui.rb +10 -5
- data/lib/active_scaffold/bridges/dragonfly/list_ui.rb +6 -1
- data/lib/active_scaffold/bridges/file_column/form_ui.rb +12 -11
- data/lib/active_scaffold/bridges/paperclip/form_ui.rb +14 -6
- data/lib/active_scaffold/bridges/paperclip/list_ui.rb +1 -1
- data/lib/active_scaffold/bridges/record_select/helpers.rb +15 -12
- data/lib/active_scaffold/bridges/shared/date_bridge.rb +7 -8
- data/lib/active_scaffold/bridges/tiny_mce.rb +5 -3
- data/lib/active_scaffold/bridges/tiny_mce/helpers.rb +4 -5
- data/lib/active_scaffold/config/base.rb +4 -0
- data/lib/active_scaffold/config/core.rb +12 -5
- data/lib/active_scaffold/config/delete.rb +0 -2
- data/lib/active_scaffold/config/field_search.rb +1 -4
- data/lib/active_scaffold/config/form.rb +0 -2
- data/lib/active_scaffold/config/list.rb +31 -1
- data/lib/active_scaffold/config/search.rb +0 -3
- data/lib/active_scaffold/config/show.rb +0 -6
- data/lib/active_scaffold/config/subform.rb +1 -0
- data/lib/active_scaffold/configurable.rb +2 -2
- data/lib/active_scaffold/constraints.rb +11 -14
- data/lib/active_scaffold/core.rb +277 -0
- data/lib/active_scaffold/data_structures/action_columns.rb +18 -2
- data/lib/active_scaffold/data_structures/action_link.rb +25 -6
- data/lib/active_scaffold/data_structures/action_links.rb +9 -4
- data/lib/active_scaffold/data_structures/actions.rb +1 -1
- data/lib/active_scaffold/data_structures/column.rb +6 -6
- data/lib/active_scaffold/data_structures/columns.rb +2 -2
- data/lib/active_scaffold/data_structures/nested_info.rb +5 -1
- data/lib/active_scaffold/data_structures/sorting.rb +15 -5
- data/lib/active_scaffold/delayed_setup.rb +30 -0
- data/lib/active_scaffold/engine.rb +25 -0
- data/lib/active_scaffold/extensions/action_view_rendering.rb +1 -1
- data/lib/active_scaffold/extensions/left_outer_joins.rb +61 -21
- data/lib/active_scaffold/extensions/localize.rb +1 -1
- data/lib/active_scaffold/extensions/name_option_for_datetime.rb +13 -8
- data/lib/active_scaffold/extensions/paginator_extensions.rb +5 -1
- data/lib/active_scaffold/extensions/reverse_associations.rb +1 -0
- data/lib/active_scaffold/extensions/routing_mapper.rb +1 -1
- data/lib/active_scaffold/extensions/unsaved_record.rb +4 -6
- data/lib/active_scaffold/finder.rb +79 -27
- data/lib/active_scaffold/helpers/association_helpers.rb +48 -18
- data/lib/active_scaffold/helpers/controller_helpers.rb +19 -10
- data/lib/active_scaffold/helpers/form_column_helpers.rb +185 -87
- data/lib/active_scaffold/helpers/human_condition_helpers.rb +2 -1
- data/lib/active_scaffold/helpers/id_helpers.rb +14 -8
- data/lib/active_scaffold/helpers/list_column_helpers.rb +65 -56
- data/lib/active_scaffold/helpers/pagination_helpers.rb +5 -1
- data/lib/active_scaffold/helpers/search_column_helpers.rb +21 -18
- data/lib/active_scaffold/helpers/view_helpers.rb +102 -64
- data/lib/active_scaffold/responds_to_parent.rb +39 -64
- data/lib/active_scaffold/tableless.rb +129 -10
- data/lib/active_scaffold/version.rb +2 -2
- data/test/bridges/bridge_test.rb +1 -1
- data/test/bridges/date_picker_test.rb +2 -2
- data/test/bridges/paperclip_test.rb +10 -8
- data/test/bridges/tiny_mce_test.rb +2 -2
- data/test/company.rb +22 -10
- data/test/config/base_test.rb +1 -1
- data/test/config/core_test.rb +8 -6
- data/test/config/create_test.rb +6 -6
- data/test/config/delete_test.rb +4 -4
- data/test/config/field_search_test.rb +6 -6
- data/test/config/list_test.rb +7 -7
- data/test/config/nested_test.rb +8 -7
- data/test/config/search_test.rb +7 -7
- data/test/config/show_test.rb +5 -5
- data/test/config/subform_test.rb +1 -1
- data/test/config/update_test.rb +5 -4
- data/test/data_structures/action_columns_test.rb +15 -16
- data/test/data_structures/action_link_test.rb +10 -10
- data/test/data_structures/action_links_test.rb +6 -6
- data/test/data_structures/actions_test.rb +4 -4
- data/test/data_structures/association_column_test.rb +4 -4
- data/test/data_structures/column_test.rb +9 -9
- data/test/data_structures/columns_test.rb +7 -7
- data/test/data_structures/error_message_test.rb +2 -4
- data/test/data_structures/set_test.rb +13 -13
- data/test/data_structures/sorting_test.rb +8 -8
- data/test/data_structures/standard_column_test.rb +2 -2
- data/test/data_structures/validation_reflection_test.rb +8 -8
- data/test/data_structures/virtual_column_test.rb +5 -5
- data/test/extensions/active_record_test.rb +1 -1
- data/test/helpers/form_column_helpers_test.rb +5 -5
- data/test/helpers/list_column_helpers_test.rb +2 -1
- data/test/helpers/pagination_helpers_test.rb +1 -1
- data/test/misc/active_record_permissions_test.rb +23 -4
- data/test/misc/attribute_params_test.rb +304 -136
- data/test/misc/calculation_test.rb +55 -0
- data/test/misc/configurable_test.rb +22 -21
- data/test/misc/constraints_test.rb +10 -7
- data/test/misc/convert_numbers_format_test.rb +149 -0
- data/test/misc/finder_test.rb +17 -13
- data/test/misc/lang_test.rb +1 -1
- data/test/misc/tableless_test.rb +18 -0
- data/test/mock_app/app/controllers/addresses_controller.rb +4 -0
- data/test/mock_app/app/controllers/buildings_controller.rb +4 -0
- data/test/mock_app/app/controllers/cars_controller.rb +4 -0
- data/test/mock_app/app/controllers/contacts_controller.rb +4 -0
- data/test/mock_app/app/controllers/floors_controller.rb +6 -0
- data/test/mock_app/app/controllers/people_controller.rb +4 -0
- data/test/mock_app/app/models/address.rb +3 -0
- data/test/mock_app/app/models/building.rb +8 -0
- data/test/mock_app/app/models/car.rb +3 -0
- data/test/mock_app/app/models/contact.rb +3 -0
- data/test/mock_app/app/models/file_model.rb +19 -0
- data/test/mock_app/app/models/floor.rb +8 -0
- data/test/mock_app/app/models/person.rb +11 -0
- data/test/mock_app/config/application.rb +2 -0
- data/test/mock_app/config/environments/test.rb +1 -1
- data/test/mock_app/config/initializers/secret_token.rb +5 -1
- data/test/mock_app/config/routes.rb +1 -1
- data/test/mock_app/db/schema.rb +51 -0
- data/test/model_stub.rb +3 -3
- data/test/test_helper.rb +15 -12
- metadata +51 -50
- data/lib/active_scaffold/extensions/array.rb +0 -7
- data/lib/active_scaffold/extensions/cache_association.rb +0 -16
- data/lib/active_scaffold/extensions/usa_state.rb +0 -46
- data/lib/active_scaffold_env.rb +0 -13
- data/test/extensions/array_test.rb +0 -12
- data/test/mock_app/public/blank.html +0 -33
- data/test/mock_app/public/images/active_scaffold/DO_NOT_EDIT +0 -2
- data/test/mock_app/public/images/active_scaffold/default/add.gif +0 -0
- data/test/mock_app/public/images/active_scaffold/default/arrow_down.gif +0 -0
- data/test/mock_app/public/images/active_scaffold/default/arrow_up.gif +0 -0
- data/test/mock_app/public/images/active_scaffold/default/close.gif +0 -0
- data/test/mock_app/public/images/active_scaffold/default/cross.png +0 -0
- data/test/mock_app/public/images/active_scaffold/default/indicator-small.gif +0 -0
- data/test/mock_app/public/images/active_scaffold/default/indicator.gif +0 -0
- data/test/mock_app/public/images/active_scaffold/default/magnifier.png +0 -0
- data/test/mock_app/public/javascripts/active_scaffold/DO_NOT_EDIT +0 -2
- data/test/mock_app/public/javascripts/active_scaffold/default/active_scaffold.js +0 -532
- data/test/mock_app/public/javascripts/active_scaffold/default/dhtml_history.js +0 -867
- data/test/mock_app/public/javascripts/active_scaffold/default/form_enhancements.js +0 -117
- data/test/mock_app/public/javascripts/active_scaffold/default/rico_corner.js +0 -370
- data/test/mock_app/public/stylesheets/active_scaffold/DO_NOT_EDIT +0 -2
- data/test/mock_app/public/stylesheets/active_scaffold/default/stylesheet-ie.css +0 -35
- data/test/mock_app/public/stylesheets/active_scaffold/default/stylesheet.css +0 -848
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
require 'test_helper'
|
|
2
2
|
|
|
3
|
-
class ActionLinksTest < Test
|
|
3
|
+
class ActionLinksTest < MiniTest::Test
|
|
4
4
|
def setup
|
|
5
5
|
@links = ActiveScaffold::DataStructures::ActionLinks.new
|
|
6
6
|
end
|
|
@@ -38,15 +38,15 @@ class ActionLinksTest < Test::Unit::TestCase
|
|
|
38
38
|
def test_empty
|
|
39
39
|
assert @links.empty?
|
|
40
40
|
@links.add 'a'
|
|
41
|
-
|
|
41
|
+
refute @links.empty?
|
|
42
42
|
end
|
|
43
43
|
|
|
44
44
|
def test_cloning
|
|
45
45
|
@links.add 'foo/bar'
|
|
46
46
|
@links_copy = @links.clone
|
|
47
47
|
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
refute @links.equal?(@links_copy)
|
|
49
|
+
refute @links['foo/bar'].equal?(@links_copy['foo/bar'])
|
|
50
50
|
end
|
|
51
51
|
|
|
52
52
|
def test_each
|
|
@@ -69,10 +69,10 @@ class ActionLinksTest < Test::Unit::TestCase
|
|
|
69
69
|
assert @links['foo'].nil?
|
|
70
70
|
begin
|
|
71
71
|
@links.delete :foo
|
|
72
|
-
|
|
72
|
+
@links.delete 'foo'
|
|
73
73
|
rescue
|
|
74
74
|
assert false, "deleting from action links when item doesn't exist should not throw an error"
|
|
75
75
|
end
|
|
76
|
-
|
|
76
|
+
refute @links['bar'].nil?
|
|
77
77
|
end
|
|
78
78
|
end
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
require 'test_helper'
|
|
2
2
|
|
|
3
|
-
class ActionsTest < Test
|
|
3
|
+
class ActionsTest < MiniTest::Test
|
|
4
4
|
def setup
|
|
5
5
|
@actions = ActiveScaffold::DataStructures::Actions.new(:a, 'b')
|
|
6
6
|
end
|
|
@@ -8,17 +8,17 @@ class ActionsTest < Test::Unit::TestCase
|
|
|
8
8
|
def test_initialization
|
|
9
9
|
assert @actions.include?('a')
|
|
10
10
|
assert @actions.include?(:b)
|
|
11
|
-
|
|
11
|
+
refute @actions.include?(:c)
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
def test_exclude
|
|
15
15
|
assert @actions.include?('b')
|
|
16
16
|
@actions.exclude :b
|
|
17
|
-
|
|
17
|
+
refute @actions.include?(:b)
|
|
18
18
|
end
|
|
19
19
|
|
|
20
20
|
def test_add
|
|
21
|
-
|
|
21
|
+
refute @actions.include?(:c)
|
|
22
22
|
@actions.add 'c'
|
|
23
23
|
assert @actions.include?('c')
|
|
24
24
|
end
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
require 'test_helper'
|
|
2
2
|
require 'model_stub'
|
|
3
3
|
|
|
4
|
-
class AssociationColumnTest < Test
|
|
4
|
+
class AssociationColumnTest < MiniTest::Test
|
|
5
5
|
def setup
|
|
6
6
|
@association_column = ActiveScaffold::DataStructures::Column.new('other_model', ModelStub)
|
|
7
7
|
end
|
|
8
8
|
|
|
9
9
|
def test_virtuality
|
|
10
10
|
assert @association_column.association
|
|
11
|
-
|
|
11
|
+
refute @association_column.virtual?
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
def test_sorting
|
|
@@ -32,10 +32,10 @@ class AssociationColumnTest < Test::Unit::TestCase
|
|
|
32
32
|
|
|
33
33
|
def test_plurality
|
|
34
34
|
assert @association_column.singular_association?
|
|
35
|
-
|
|
35
|
+
refute @association_column.plural_association?
|
|
36
36
|
|
|
37
37
|
plural_association_column = ActiveScaffold::DataStructures::Column.new('other_models', ModelStub)
|
|
38
38
|
assert plural_association_column.plural_association?
|
|
39
|
-
|
|
39
|
+
refute plural_association_column.singular_association?
|
|
40
40
|
end
|
|
41
41
|
end
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
require 'test_helper'
|
|
2
2
|
|
|
3
|
-
class ColumnTest < Test
|
|
3
|
+
class ColumnTest < MiniTest::Test
|
|
4
4
|
def setup
|
|
5
5
|
@column = ActiveScaffold::DataStructures::Column.new(:a, ModelStub)
|
|
6
6
|
@association_col = ActiveScaffold::DataStructures::Column.new(:b, ModelStub)
|
|
@@ -33,12 +33,12 @@ class ColumnTest < Test::Unit::TestCase
|
|
|
33
33
|
assert_equal 'style_me', @column.css_class
|
|
34
34
|
|
|
35
35
|
# required
|
|
36
|
-
|
|
36
|
+
refute @column.required?, 'default is false'
|
|
37
37
|
@column.required = true
|
|
38
38
|
assert @column.required?, 'can be changed'
|
|
39
39
|
|
|
40
40
|
# calculation
|
|
41
|
-
|
|
41
|
+
refute @column.calculation?, 'default is nil'
|
|
42
42
|
@column.calculate = :sum
|
|
43
43
|
assert @column.calculation?, 'can be changed'
|
|
44
44
|
end
|
|
@@ -107,14 +107,14 @@ class ColumnTest < Test::Unit::TestCase
|
|
|
107
107
|
|
|
108
108
|
def test_searchable
|
|
109
109
|
@column.search_sql = nil
|
|
110
|
-
|
|
110
|
+
refute @column.searchable?
|
|
111
111
|
@column.search_sql = true
|
|
112
112
|
assert @column.searchable?
|
|
113
113
|
end
|
|
114
114
|
|
|
115
115
|
def test_sortable
|
|
116
116
|
@column.sort = nil
|
|
117
|
-
|
|
117
|
+
refute @column.sortable?
|
|
118
118
|
@column.sort = true
|
|
119
119
|
assert @column.sortable?
|
|
120
120
|
end
|
|
@@ -143,10 +143,10 @@ class ColumnTest < Test::Unit::TestCase
|
|
|
143
143
|
end
|
|
144
144
|
|
|
145
145
|
def test_custom_sort__should_assert_keys
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
146
|
+
assert_raises(ArgumentError) { @column.sort_by :proc => "invalid config" }
|
|
147
|
+
assert_raises(ArgumentError) { @column.sort={:proc => "invalid config" } }
|
|
148
|
+
assert_equal({:method => "method"}, @column.sort_by(:method => "method"))
|
|
149
|
+
assert_equal({:sql => "method"}, @column.sort_by(:sql => "method"))
|
|
150
150
|
end
|
|
151
151
|
|
|
152
152
|
def test_config_block
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
require 'test_helper'
|
|
2
2
|
|
|
3
|
-
class ColumnsTest < Test
|
|
3
|
+
class ColumnsTest < MiniTest::Test
|
|
4
4
|
def setup
|
|
5
5
|
@columns = ActiveScaffold::DataStructures::Columns.new(ModelStub, :a, :b)
|
|
6
6
|
end
|
|
@@ -10,21 +10,21 @@ class ColumnsTest < Test::Unit::TestCase
|
|
|
10
10
|
|
|
11
11
|
assert @columns.include?('a'), 'checking via string'
|
|
12
12
|
assert @columns.include?(:b), 'checking via symbol'
|
|
13
|
-
|
|
13
|
+
refute @columns.include?(:c)
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
def test_add
|
|
17
|
-
|
|
17
|
+
refute @columns.include?(:c)
|
|
18
18
|
@columns.add 'c'
|
|
19
19
|
assert @columns.include?('c')
|
|
20
20
|
|
|
21
21
|
# test the alias
|
|
22
|
-
|
|
22
|
+
refute @columns.include?(:d)
|
|
23
23
|
@columns << :d
|
|
24
24
|
assert @columns.include?(:d)
|
|
25
25
|
|
|
26
26
|
# try adding an array of columns
|
|
27
|
-
|
|
27
|
+
refute @columns.include?(:f)
|
|
28
28
|
@columns.add [:f, :g]
|
|
29
29
|
assert @columns.include?(:f)
|
|
30
30
|
assert @columns.include?(:g)
|
|
@@ -52,8 +52,8 @@ class ColumnsTest < Test::Unit::TestCase
|
|
|
52
52
|
end
|
|
53
53
|
|
|
54
54
|
def test_block_config
|
|
55
|
-
|
|
56
|
-
|
|
55
|
+
refute @columns.include?(:d)
|
|
56
|
+
refute @columns.include?(:c)
|
|
57
57
|
|
|
58
58
|
@columns.configure do |config|
|
|
59
59
|
# test that we can use the config object
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
require 'test_helper'
|
|
2
2
|
|
|
3
|
-
class ErrorMessageTest < Test
|
|
3
|
+
class ErrorMessageTest < MiniTest::Test
|
|
4
4
|
def setup
|
|
5
5
|
@error = ActiveScaffold::DataStructures::ErrorMessage.new 'foo'
|
|
6
6
|
end
|
|
@@ -19,9 +19,7 @@ class ErrorMessageTest < Test::Unit::TestCase
|
|
|
19
19
|
|
|
20
20
|
def test_yaml
|
|
21
21
|
yml = nil
|
|
22
|
-
|
|
23
|
-
yml = YAML.load(@error.to_yaml)
|
|
24
|
-
end
|
|
22
|
+
yml = YAML.load(@error.to_yaml)
|
|
25
23
|
assert yml.has_key?(:error)
|
|
26
24
|
assert_equal 'foo', yml[:error]
|
|
27
25
|
end
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
require 'test_helper'
|
|
2
2
|
|
|
3
|
-
class SetTest < Test
|
|
3
|
+
class SetTest < MiniTest::Test
|
|
4
4
|
def setup
|
|
5
5
|
@items = ActiveScaffold::DataStructures::Set.new(:a, :b)
|
|
6
6
|
end
|
|
@@ -8,53 +8,53 @@ class SetTest < Test::Unit::TestCase
|
|
|
8
8
|
def test_initialization
|
|
9
9
|
assert @items.include?(:a)
|
|
10
10
|
assert @items.include?(:b)
|
|
11
|
-
|
|
11
|
+
refute @items.include?(:c)
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
def test_exclude
|
|
15
15
|
# exclude with a symbol
|
|
16
16
|
assert @items.include?(:b)
|
|
17
17
|
@items.exclude :b
|
|
18
|
-
|
|
18
|
+
refute @items.include?(:b)
|
|
19
19
|
|
|
20
20
|
# exclude with a string
|
|
21
21
|
assert @items.include?(:a)
|
|
22
22
|
@items.exclude 'a'
|
|
23
|
-
|
|
23
|
+
refute @items.include?(:a)
|
|
24
24
|
end
|
|
25
25
|
|
|
26
26
|
def test_exclude_array
|
|
27
27
|
# exclude with a symbol
|
|
28
28
|
assert @items.include?(:b)
|
|
29
29
|
@items.exclude [:a, :b]
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
refute @items.include?(:b)
|
|
31
|
+
refute @items.include?(:a)
|
|
32
32
|
end
|
|
33
33
|
|
|
34
34
|
def test_remove
|
|
35
35
|
assert @items.include?(:a)
|
|
36
36
|
@items.remove 'a'
|
|
37
|
-
|
|
37
|
+
refute @items.include?(:a)
|
|
38
38
|
end
|
|
39
39
|
|
|
40
40
|
def test_add
|
|
41
41
|
# try adding a simple column using a string
|
|
42
|
-
|
|
42
|
+
refute @items.include?(:c)
|
|
43
43
|
@items.add 'c'
|
|
44
44
|
assert @items.include?(:c)
|
|
45
45
|
|
|
46
46
|
# try adding a simple column using a symbol
|
|
47
|
-
|
|
47
|
+
refute @items.include?(:d)
|
|
48
48
|
@items.add :d
|
|
49
49
|
assert @items.include?(:d)
|
|
50
50
|
|
|
51
51
|
# test that << also adds
|
|
52
|
-
|
|
52
|
+
refute @items.include?(:e)
|
|
53
53
|
@items << "e"
|
|
54
54
|
assert @items.include?(:e)
|
|
55
55
|
|
|
56
56
|
# try adding an array of columns
|
|
57
|
-
|
|
57
|
+
refute @items.include?(:f)
|
|
58
58
|
@items.add [:f, :g]
|
|
59
59
|
assert @items.include?(:f)
|
|
60
60
|
assert @items.include?(:g)
|
|
@@ -74,12 +74,12 @@ class SetTest < Test::Unit::TestCase
|
|
|
74
74
|
end
|
|
75
75
|
|
|
76
76
|
assert @items.include?(:c)
|
|
77
|
-
|
|
77
|
+
refute @items.include?(:b)
|
|
78
78
|
end
|
|
79
79
|
|
|
80
80
|
def test_include
|
|
81
81
|
assert @items.include?(:a)
|
|
82
82
|
assert @items.include?(:b)
|
|
83
|
-
|
|
83
|
+
refute @items.include?(:d)
|
|
84
84
|
end
|
|
85
85
|
end
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
require 'test_helper'
|
|
2
2
|
|
|
3
|
-
class SortingTest < Test
|
|
3
|
+
class SortingTest < MiniTest::Test
|
|
4
4
|
def setup
|
|
5
|
-
@columns = ActiveScaffold::DataStructures::Columns.new(ModelStub, :a, :b, :c, :d)
|
|
5
|
+
@columns = ActiveScaffold::DataStructures::Columns.new(ModelStub, :a, :b, :c, :d, :id)
|
|
6
6
|
@sorting = ActiveScaffold::DataStructures::Sorting.new(@columns)
|
|
7
7
|
end
|
|
8
8
|
|
|
@@ -53,7 +53,7 @@ class SortingTest < Test::Unit::TestCase
|
|
|
53
53
|
|
|
54
54
|
@sorting.set :b, 'DESC'
|
|
55
55
|
assert @sorting.instance_variable_get('@clauses').size == 1
|
|
56
|
-
|
|
56
|
+
refute @sorting.sorts_on?(:a)
|
|
57
57
|
assert @sorting.sorts_on?(:b)
|
|
58
58
|
assert_equal 'DESC', @sorting.direction_of(:b)
|
|
59
59
|
end
|
|
@@ -64,7 +64,7 @@ class SortingTest < Test::Unit::TestCase
|
|
|
64
64
|
|
|
65
65
|
assert @sorting.sorts_on?(:a)
|
|
66
66
|
assert @sorting.sorts_on?(:b)
|
|
67
|
-
|
|
67
|
+
refute @sorting.sorts_on?(:c)
|
|
68
68
|
end
|
|
69
69
|
|
|
70
70
|
def test_direction_of
|
|
@@ -83,14 +83,14 @@ class SortingTest < Test::Unit::TestCase
|
|
|
83
83
|
assert @sorting.sorts_by_method?
|
|
84
84
|
|
|
85
85
|
#test mixed sql/method sorting: raise error
|
|
86
|
-
|
|
86
|
+
assert_raises ArgumentError do
|
|
87
87
|
@sorting.add :b
|
|
88
88
|
end
|
|
89
89
|
|
|
90
90
|
#test pure sql sorting: false
|
|
91
91
|
@sorting.clear
|
|
92
92
|
@sorting.add :b
|
|
93
|
-
|
|
93
|
+
refute @sorting.sorts_by_method?
|
|
94
94
|
end
|
|
95
95
|
|
|
96
96
|
def test_build_order_clause
|
|
@@ -104,7 +104,7 @@ class SortingTest < Test::Unit::TestCase
|
|
|
104
104
|
|
|
105
105
|
def test_set_default_sorting_with_simple_default_scope
|
|
106
106
|
model_stub_with_default_scope = ModelStub.clone
|
|
107
|
-
model_stub_with_default_scope.class_eval { default_scope
|
|
107
|
+
model_stub_with_default_scope.class_eval { default_scope lambda { order('a') } }
|
|
108
108
|
@sorting.set_default_sorting model_stub_with_default_scope
|
|
109
109
|
|
|
110
110
|
assert @sorting.sorts_on?(:a)
|
|
@@ -114,7 +114,7 @@ class SortingTest < Test::Unit::TestCase
|
|
|
114
114
|
|
|
115
115
|
def test_set_default_sorting_with_complex_default_scope
|
|
116
116
|
model_stub_with_default_scope = ModelStub.clone
|
|
117
|
-
model_stub_with_default_scope.class_eval { default_scope
|
|
117
|
+
model_stub_with_default_scope.class_eval { default_scope lambda { order('a DESC, players.last_name ASC') } }
|
|
118
118
|
@sorting.set_default_sorting model_stub_with_default_scope
|
|
119
119
|
|
|
120
120
|
assert @sorting.sorts_on?(:a)
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
require 'test_helper'
|
|
2
2
|
|
|
3
|
-
class StandardColumnTest < Test
|
|
3
|
+
class StandardColumnTest < MiniTest::Test
|
|
4
4
|
def setup
|
|
5
5
|
@standard_column = ActiveScaffold::DataStructures::Column.new(ModelStub.columns.first.name, ModelStub)
|
|
6
6
|
end
|
|
7
7
|
|
|
8
8
|
def test_virtuality
|
|
9
9
|
assert @standard_column.column
|
|
10
|
-
|
|
10
|
+
refute @standard_column.virtual?
|
|
11
11
|
end
|
|
12
12
|
|
|
13
13
|
def test_sorting
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
require 'test_helper'
|
|
2
2
|
|
|
3
|
-
class ValidationReflectionTest < Test
|
|
3
|
+
class ValidationReflectionTest < MiniTest::Test
|
|
4
4
|
def test_set_required_for_validates_presence_of
|
|
5
5
|
column = ActiveScaffold::DataStructures::Column.new(:name, Company)
|
|
6
|
-
|
|
6
|
+
refute column.required?
|
|
7
7
|
Company.expects(:validators_on).with(:name).returns([ActiveModel::Validations::PresenceValidator.new(:attributes => :name)])
|
|
8
8
|
column = ActiveScaffold::DataStructures::Column.new(:name, Company)
|
|
9
9
|
assert column.required?
|
|
@@ -11,7 +11,7 @@ class ValidationReflectionTest < Test::Unit::TestCase
|
|
|
11
11
|
|
|
12
12
|
def test_set_required_for_validates_inclusion_of
|
|
13
13
|
column = ActiveScaffold::DataStructures::Column.new(:name, Company)
|
|
14
|
-
|
|
14
|
+
refute column.required?
|
|
15
15
|
Company.expects(:validators_on).with(:name).returns([ActiveModel::Validations::InclusionValidator.new(:attributes => :name, :in => [])])
|
|
16
16
|
column = ActiveScaffold::DataStructures::Column.new(:name, Company)
|
|
17
17
|
assert column.required?
|
|
@@ -20,24 +20,24 @@ class ValidationReflectionTest < Test::Unit::TestCase
|
|
|
20
20
|
def test_not_set_required_for_validates_inclusion_of_and_allow_nil
|
|
21
21
|
Company.expects(:validators_on).with(:name).returns([ActiveModel::Validations::InclusionValidator.new(:attributes => :name, :in => [], :allow_nil => true)])
|
|
22
22
|
column = ActiveScaffold::DataStructures::Column.new(:name, Company)
|
|
23
|
-
|
|
23
|
+
refute column.required?
|
|
24
24
|
end
|
|
25
25
|
|
|
26
26
|
def test_not_set_required_for_validates_inclusion_of_and_allow_blank
|
|
27
27
|
Company.expects(:validators_on).with(:name).returns([ActiveModel::Validations::InclusionValidator.new(:attributes => :name, :in => [], :allow_blank => true)])
|
|
28
28
|
column = ActiveScaffold::DataStructures::Column.new(:name, Company)
|
|
29
|
-
|
|
29
|
+
refute column.required?
|
|
30
30
|
end
|
|
31
31
|
|
|
32
32
|
def test_not_set_required_for_no_validation
|
|
33
33
|
Company.expects(:validators_on).with(:name).returns([])
|
|
34
34
|
column = ActiveScaffold::DataStructures::Column.new(:name, Company)
|
|
35
|
-
|
|
35
|
+
refute column.required?
|
|
36
36
|
end
|
|
37
37
|
|
|
38
38
|
def test_set_required_for_validates_presence_of_in_association
|
|
39
39
|
column = ActiveScaffold::DataStructures::Column.new(:main_company, Company)
|
|
40
|
-
|
|
40
|
+
refute column.required?
|
|
41
41
|
Company.expects(:validators_on).with(:main_company).returns([ActiveModel::Validations::PresenceValidator.new(:attributes => :main_company)])
|
|
42
42
|
column = ActiveScaffold::DataStructures::Column.new(:main_company, Company)
|
|
43
43
|
assert column.required?
|
|
@@ -46,6 +46,6 @@ class ValidationReflectionTest < Test::Unit::TestCase
|
|
|
46
46
|
def test_not_set_required_for_no_validation_in_association_neither_foreign_key
|
|
47
47
|
Company.expects(:validators_on).returns([])
|
|
48
48
|
column = ActiveScaffold::DataStructures::Column.new(:main_company, Company)
|
|
49
|
-
|
|
49
|
+
refute column.required?
|
|
50
50
|
end
|
|
51
51
|
end
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
require 'test_helper'
|
|
2
2
|
|
|
3
|
-
class VirtualColumnTest < Test
|
|
3
|
+
class VirtualColumnTest < MiniTest::Test
|
|
4
4
|
def setup
|
|
5
5
|
@virtual_column = ActiveScaffold::DataStructures::Column.new(:fake, ModelStub)
|
|
6
6
|
end
|
|
7
7
|
|
|
8
8
|
def test_virtuality
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
refute @virtual_column.column
|
|
10
|
+
refute @virtual_column.association
|
|
11
11
|
assert @virtual_column.virtual?
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
def test_sorting
|
|
15
15
|
# right now, there's no intelligent sorting on virtual columns
|
|
16
|
-
|
|
16
|
+
refute @virtual_column.sortable?
|
|
17
17
|
end
|
|
18
18
|
|
|
19
19
|
def test_searching
|
|
20
20
|
# right now, there's no intelligent searching on virtual columns
|
|
21
|
-
|
|
21
|
+
refute @virtual_column.searchable?
|
|
22
22
|
end
|
|
23
23
|
end
|