active_scaffold 3.4.17 → 3.4.18

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.
Files changed (183) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +12 -1
  3. data/README.md +8 -4
  4. data/app/assets/javascripts/jquery/active_scaffold.js +82 -67
  5. data/app/assets/stylesheets/active_scaffold.scss +1 -1
  6. data/app/assets/stylesheets/active_scaffold_colors.scss +1 -1
  7. data/app/assets/stylesheets/blue-theme.css +1 -1
  8. data/app/views/active_scaffold_overrides/_form_association.html.erb +3 -3
  9. data/app/views/active_scaffold_overrides/_form_association_record.html.erb +3 -3
  10. data/app/views/active_scaffold_overrides/_show_columns.html.erb +1 -1
  11. data/lib/active_scaffold.rb +16 -16
  12. data/lib/active_scaffold/actions/common_search.rb +13 -11
  13. data/lib/active_scaffold/actions/core.rb +85 -78
  14. data/lib/active_scaffold/actions/create.rb +29 -28
  15. data/lib/active_scaffold/actions/delete.rb +17 -17
  16. data/lib/active_scaffold/actions/field_search.rb +18 -19
  17. data/lib/active_scaffold/actions/list.rb +30 -22
  18. data/lib/active_scaffold/actions/mark.rb +1 -1
  19. data/lib/active_scaffold/actions/nested.rb +78 -65
  20. data/lib/active_scaffold/actions/search.rb +13 -10
  21. data/lib/active_scaffold/actions/show.rb +10 -6
  22. data/lib/active_scaffold/actions/subform.rb +1 -2
  23. data/lib/active_scaffold/actions/update.rb +39 -31
  24. data/lib/active_scaffold/active_record_permissions.rb +14 -15
  25. data/lib/active_scaffold/attribute_params.rb +42 -43
  26. data/lib/active_scaffold/bridges.rb +22 -12
  27. data/lib/active_scaffold/bridges/ancestry.rb +1 -1
  28. data/lib/active_scaffold/bridges/ancestry/ancestry_bridge.rb +6 -6
  29. data/lib/active_scaffold/bridges/bitfields.rb +1 -1
  30. data/lib/active_scaffold/bridges/bitfields/bitfields_bridge.rb +12 -13
  31. data/lib/active_scaffold/bridges/calendar_date_select.rb +5 -5
  32. data/lib/active_scaffold/bridges/calendar_date_select/as_cds_bridge.rb +17 -20
  33. data/lib/active_scaffold/bridges/cancan.rb +1 -1
  34. data/lib/active_scaffold/bridges/cancan/cancan_bridge.rb +8 -9
  35. data/lib/active_scaffold/bridges/carrierwave.rb +4 -4
  36. data/lib/active_scaffold/bridges/carrierwave/carrierwave_bridge.rb +9 -8
  37. data/lib/active_scaffold/bridges/carrierwave/form_ui.rb +11 -10
  38. data/lib/active_scaffold/bridges/carrierwave/list_ui.rb +7 -6
  39. data/lib/active_scaffold/bridges/chosen.rb +1 -1
  40. data/lib/active_scaffold/bridges/chosen/helpers.rb +4 -4
  41. data/lib/active_scaffold/bridges/country_helper.rb +1 -1
  42. data/lib/active_scaffold/bridges/country_helper/country_helper_bridge.rb +259 -260
  43. data/lib/active_scaffold/bridges/date_picker.rb +2 -2
  44. data/lib/active_scaffold/bridges/date_picker/ext.rb +9 -11
  45. data/lib/active_scaffold/bridges/date_picker/helper.rb +61 -67
  46. data/lib/active_scaffold/bridges/dragonfly.rb +4 -4
  47. data/lib/active_scaffold/bridges/dragonfly/dragonfly_bridge.rb +9 -8
  48. data/lib/active_scaffold/bridges/dragonfly/form_ui.rb +11 -10
  49. data/lib/active_scaffold/bridges/dragonfly/list_ui.rb +6 -5
  50. data/lib/active_scaffold/bridges/file_column.rb +5 -5
  51. data/lib/active_scaffold/bridges/file_column/as_file_column_bridge.rb +20 -23
  52. data/lib/active_scaffold/bridges/file_column/file_column_helpers.rb +20 -23
  53. data/lib/active_scaffold/bridges/file_column/form_ui.rb +13 -14
  54. data/lib/active_scaffold/bridges/file_column/list_ui.rb +7 -8
  55. data/lib/active_scaffold/bridges/file_column/test/functional/file_column_keep_test.rb +18 -22
  56. data/lib/active_scaffold/bridges/file_column/test/mock_model.rb +5 -4
  57. data/lib/active_scaffold/bridges/file_column/test/test_helper.rb +2 -10
  58. data/lib/active_scaffold/bridges/paper_trail.rb +7 -5
  59. data/lib/active_scaffold/bridges/paper_trail/paper_trail_bridge.rb +4 -3
  60. data/lib/active_scaffold/bridges/paperclip.rb +5 -5
  61. data/lib/active_scaffold/bridges/paperclip/form_ui.rb +11 -10
  62. data/lib/active_scaffold/bridges/paperclip/list_ui.rb +6 -5
  63. data/lib/active_scaffold/bridges/paperclip/paperclip_bridge.rb +10 -9
  64. data/lib/active_scaffold/bridges/record_select.rb +1 -1
  65. data/lib/active_scaffold/bridges/record_select/helpers.rb +28 -28
  66. data/lib/active_scaffold/bridges/semantic_attributes.rb +1 -1
  67. data/lib/active_scaffold/bridges/semantic_attributes/column.rb +1 -1
  68. data/lib/active_scaffold/bridges/shared/date_bridge.rb +58 -52
  69. data/lib/active_scaffold/bridges/tiny_mce.rb +2 -2
  70. data/lib/active_scaffold/bridges/tiny_mce/helpers.rb +3 -3
  71. data/lib/active_scaffold/config/base.rb +9 -10
  72. data/lib/active_scaffold/config/core.rb +24 -29
  73. data/lib/active_scaffold/config/create.rb +0 -1
  74. data/lib/active_scaffold/config/field_search.rb +8 -10
  75. data/lib/active_scaffold/config/form.rb +5 -5
  76. data/lib/active_scaffold/config/list.rb +21 -20
  77. data/lib/active_scaffold/config/mark.rb +3 -3
  78. data/lib/active_scaffold/config/nested.rb +11 -10
  79. data/lib/active_scaffold/config/search.rb +2 -3
  80. data/lib/active_scaffold/config/show.rb +1 -1
  81. data/lib/active_scaffold/config/update.rb +1 -2
  82. data/lib/active_scaffold/configurable.rb +9 -11
  83. data/lib/active_scaffold/constraints.rb +9 -8
  84. data/lib/active_scaffold/core.rb +72 -84
  85. data/lib/active_scaffold/data_structures/action_columns.rb +26 -25
  86. data/lib/active_scaffold/data_structures/action_link.rb +43 -43
  87. data/lib/active_scaffold/data_structures/action_links.rb +17 -15
  88. data/lib/active_scaffold/data_structures/actions.rb +5 -5
  89. data/lib/active_scaffold/data_structures/bridge.rb +6 -3
  90. data/lib/active_scaffold/data_structures/column.rb +110 -89
  91. data/lib/active_scaffold/data_structures/columns.rb +3 -3
  92. data/lib/active_scaffold/data_structures/error_message.rb +4 -6
  93. data/lib/active_scaffold/data_structures/nested_info.rb +43 -48
  94. data/lib/active_scaffold/data_structures/set.rb +7 -8
  95. data/lib/active_scaffold/data_structures/sorting.rb +38 -33
  96. data/lib/active_scaffold/delayed_setup.rb +5 -6
  97. data/lib/active_scaffold/engine.rb +4 -4
  98. data/lib/active_scaffold/extensions/action_controller_rendering.rb +3 -4
  99. data/lib/active_scaffold/extensions/action_controller_rescueing.rb +1 -1
  100. data/lib/active_scaffold/extensions/action_view_rendering.rb +5 -6
  101. data/lib/active_scaffold/extensions/left_outer_joins.rb +11 -11
  102. data/lib/active_scaffold/extensions/localize.rb +1 -1
  103. data/lib/active_scaffold/extensions/name_option_for_datetime.rb +1 -1
  104. data/lib/active_scaffold/extensions/paginator_extensions.rb +2 -5
  105. data/lib/active_scaffold/extensions/reverse_associations.rb +13 -13
  106. data/lib/active_scaffold/extensions/routing_mapper.rb +9 -9
  107. data/lib/active_scaffold/extensions/unsaved_associated.rb +9 -9
  108. data/lib/active_scaffold/finder.rb +90 -93
  109. data/lib/active_scaffold/helpers/association_helpers.rb +5 -5
  110. data/lib/active_scaffold/helpers/controller_helpers.rb +22 -19
  111. data/lib/active_scaffold/helpers/form_column_helpers.rb +115 -105
  112. data/lib/active_scaffold/helpers/human_condition_helpers.rb +62 -35
  113. data/lib/active_scaffold/helpers/id_helpers.rb +6 -6
  114. data/lib/active_scaffold/helpers/list_column_helpers.rb +89 -94
  115. data/lib/active_scaffold/helpers/pagination_helpers.rb +9 -9
  116. data/lib/active_scaffold/helpers/search_column_helpers.rb +47 -44
  117. data/lib/active_scaffold/helpers/show_column_helpers.rb +2 -2
  118. data/lib/active_scaffold/helpers/view_helpers.rb +86 -91
  119. data/lib/active_scaffold/marked_model.rb +10 -10
  120. data/lib/active_scaffold/paginator.rb +30 -34
  121. data/lib/active_scaffold/responds_to_parent.rb +27 -28
  122. data/lib/active_scaffold/tableless.rb +20 -15
  123. data/lib/active_scaffold/version.rb +1 -1
  124. data/lib/generators/active_scaffold/active_scaffold_generator.rb +8 -8
  125. data/lib/generators/active_scaffold_controller/active_scaffold_controller_generator.rb +9 -9
  126. data/shoulda_macros/macros.rb +27 -22
  127. data/test/bridges/bridge_test.rb +38 -29
  128. data/test/bridges/date_picker_test.rb +1 -1
  129. data/test/bridges/paper_trail_test.rb +17 -0
  130. data/test/bridges/paperclip_test.rb +3 -2
  131. data/test/bridges/tiny_mce_test.rb +5 -2
  132. data/test/company.rb +25 -30
  133. data/test/config/base_test.rb +1 -1
  134. data/test/config/core_test.rb +9 -9
  135. data/test/config/create_test.rb +14 -8
  136. data/test/config/delete_test.rb +4 -4
  137. data/test/config/field_search_test.rb +6 -6
  138. data/test/config/list_test.rb +16 -16
  139. data/test/config/nested_test.rb +4 -4
  140. data/test/config/search_test.rb +8 -8
  141. data/test/config/show_test.rb +6 -6
  142. data/test/config/subform_test.rb +1 -1
  143. data/test/config/update_test.rb +5 -5
  144. data/test/const_mocker.rb +4 -4
  145. data/test/data_structures/action_columns_test.rb +4 -5
  146. data/test/data_structures/action_link_test.rb +1 -0
  147. data/test/data_structures/action_links_test.rb +5 -5
  148. data/test/data_structures/column_test.rb +9 -9
  149. data/test/data_structures/columns_test.rb +2 -2
  150. data/test/data_structures/error_message_test.rb +4 -5
  151. data/test/data_structures/set_test.rb +1 -2
  152. data/test/data_structures/sorting_test.rb +10 -10
  153. data/test/data_structures/validation_reflection_test.rb +8 -0
  154. data/test/extensions/routing_mapper_test.rb +2 -2
  155. data/test/helpers/list_column_helpers_test.rb +3 -2
  156. data/test/helpers/pagination_helpers_test.rb +5 -4
  157. data/test/helpers/search_column_helpers_test.rb +1 -1
  158. data/test/misc/active_record_permissions_test.rb +63 -50
  159. data/test/misc/attribute_params_test.rb +28 -26
  160. data/test/misc/calculation_test.rb +10 -3
  161. data/test/misc/configurable_test.rb +12 -13
  162. data/test/misc/constraints_test.rb +6 -6
  163. data/test/misc/convert_numbers_format_test.rb +7 -6
  164. data/test/misc/finder_test.rb +17 -12
  165. data/test/misc/lang_test.rb +3 -4
  166. data/test/misc/tableless_test.rb +2 -3
  167. data/test/mock_app/app/controllers/addresses_controller.rb +1 -1
  168. data/test/mock_app/app/controllers/buildings_controller.rb +1 -1
  169. data/test/mock_app/app/controllers/cars_controller.rb +1 -1
  170. data/test/mock_app/app/controllers/contacts_controller.rb +1 -1
  171. data/test/mock_app/app/controllers/people_controller.rb +1 -1
  172. data/test/mock_app/app/models/file_model.rb +2 -2
  173. data/test/mock_app/app/models/person.rb +1 -1
  174. data/test/mock_app/config/application.rb +3 -3
  175. data/test/mock_app/config/boot.rb +1 -1
  176. data/test/mock_app/config/environment.rb +1 -0
  177. data/test/mock_app/config/environments/development.rb +0 -1
  178. data/test/mock_app/config/environments/production.rb +1 -1
  179. data/test/mock_app/db/schema.rb +14 -15
  180. data/test/model_stub.rb +13 -16
  181. data/test/run_all.rb +5 -7
  182. data/test/test_helper.rb +12 -9
  183. metadata +19 -3
@@ -20,6 +20,7 @@ class ActionLinkTest < MiniTest::Test
20
20
  refute @link.confirm
21
21
  @link.confirm = true
22
22
  assert @link.confirm
23
+ assert @link.confirm?
23
24
 
24
25
  assert_equal 'bar_authorized?', @link.security_method
25
26
 
@@ -9,19 +9,19 @@ class ActionLinksTest < MiniTest::Test
9
9
  # test adding with a shortcut
10
10
  @links.add 'foo/bar'
11
11
 
12
- assert_equal 1, @links.find_all{true}.size
13
- assert_equal 'foo/bar', @links.find_all{true}[0].action
12
+ assert_equal 1, @links.find_all { true }.size
13
+ assert_equal 'foo/bar', @links.find_all { true }[0].action
14
14
  assert_equal 'foo/bar', @links['foo/bar'].action
15
15
 
16
16
  # test adding an ActionLink object directly
17
17
  @links.add ActiveScaffold::DataStructures::ActionLink.new('hello/world')
18
18
 
19
- assert_equal 2, @links.find_all{true}.size
19
+ assert_equal 2, @links.find_all { true }.size
20
20
 
21
21
  # test the << alias
22
22
  @links << 'a/b'
23
23
 
24
- assert_equal 3, @links.find_all{true}.size
24
+ assert_equal 3, @links.find_all { true }.size
25
25
  end
26
26
 
27
27
  def test_array_access
@@ -60,7 +60,7 @@ class ActionLinksTest < MiniTest::Test
60
60
  assert_equal 'bar', link.action
61
61
  end
62
62
  end
63
-
63
+
64
64
  def test_delete
65
65
  @links.add 'foo'
66
66
  @links.add 'bar'
@@ -61,7 +61,7 @@ class ColumnTest < MiniTest::Test
61
61
  assert columns != @column
62
62
 
63
63
  # identity
64
- assert @column == @column
64
+ assert @column == @column # rubocop:disable Lint/UselessComparison
65
65
 
66
66
  # string comparison
67
67
  assert @column == 'a'
@@ -78,7 +78,7 @@ class ColumnTest < MiniTest::Test
78
78
  assert @column == column2
79
79
 
80
80
  # special comparisons
81
- assert @column != nil
81
+ refute @column.nil?
82
82
  assert @column != ''
83
83
  assert @column != 0
84
84
  end
@@ -135,7 +135,7 @@ class ColumnTest < MiniTest::Test
135
135
  hash = {:sql => 'foobar'}
136
136
  assert_equal hash, @column.sort
137
137
 
138
- some_proc = proc {'foobar'}
138
+ some_proc = proc { 'foobar' }
139
139
  @column.sort_by :method => some_proc
140
140
  hash = {:method => some_proc}
141
141
  assert_equal hash, @column.sort
@@ -143,12 +143,12 @@ class ColumnTest < MiniTest::Test
143
143
  end
144
144
 
145
145
  def test_custom_sort__should_assert_keys
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"))
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
153
153
  @column.configure do |config|
154
154
  # we can use the config object
@@ -173,7 +173,7 @@ class ColumnTest < MiniTest::Test
173
173
 
174
174
  def test_includes
175
175
  assert_equal nil, @column.includes
176
-
176
+
177
177
  # make sure that when a non-array comes in, an array comes out
178
178
  @column.includes = :column_name
179
179
  assert_equal([:column_name], @column.includes)
@@ -41,8 +41,8 @@ class ColumnsTest < MiniTest::Test
41
41
 
42
42
  # test the collection finders
43
43
  found = @columns.find_by_names(:a, :b)
44
- assert found.any? {|c| c.name == :a}
45
- assert found.any? {|c| c.name == :b}
44
+ assert found.any? { |c| c.name == :a }
45
+ assert found.any? { |c| c.name == :b }
46
46
  end
47
47
 
48
48
  def test_each
@@ -6,21 +6,20 @@ class ErrorMessageTest < MiniTest::Test
6
6
  end
7
7
 
8
8
  def test_attributes
9
- assert @error.public_attributes.has_key?(:error)
9
+ assert @error.public_attributes.key?(:error)
10
10
  assert_equal 'foo', @error.public_attributes[:error]
11
11
  end
12
12
 
13
13
  def test_xml
14
14
  xml = Hash.from_xml(@error.to_xml)
15
- assert xml.has_key?('errors')
16
- assert xml['errors'].has_key?('error')
15
+ assert xml.key?('errors')
16
+ assert xml['errors'].key?('error')
17
17
  assert_equal 'foo', xml['errors']['error']
18
18
  end
19
19
 
20
20
  def test_yaml
21
- yml = nil
22
21
  yml = YAML.load(@error.to_yaml)
23
- assert yml.has_key?(:error)
22
+ assert yml.key?(:error)
24
23
  assert_equal 'foo', yml[:error]
25
24
  end
26
25
  end
@@ -50,7 +50,7 @@ class SetTest < MiniTest::Test
50
50
 
51
51
  # test that << also adds
52
52
  refute @items.include?(:e)
53
- @items << "e"
53
+ @items << 'e'
54
54
  assert @items.include?(:e)
55
55
 
56
56
  # try adding an array of columns
@@ -58,7 +58,6 @@ class SetTest < MiniTest::Test
58
58
  @items.add [:f, :g]
59
59
  assert @items.include?(:f)
60
60
  assert @items.include?(:g)
61
-
62
61
  end
63
62
 
64
63
  def test_length
@@ -90,18 +90,18 @@ class SortingTest < MiniTest::Test
90
90
  end
91
91
 
92
92
  def test_sorts_by_method
93
- @columns[:a].sort_by :method => proc{0}
93
+ @columns[:a].sort_by :method => proc { 0 }
94
94
 
95
- #test pure method sorting: true
95
+ # test pure method sorting: true
96
96
  @sorting.add :a
97
97
  assert @sorting.sorts_by_method?
98
98
 
99
- #test mixed sql/method sorting: raise error
99
+ # test mixed sql/method sorting: raise error
100
100
  assert_raises ArgumentError do
101
101
  @sorting.add :b
102
102
  end
103
-
104
- #test pure sql sorting: false
103
+
104
+ # test pure sql sorting: false
105
105
  @sorting.clear
106
106
  @sorting.add :b
107
107
  refute @sorting.sorts_by_method?
@@ -115,12 +115,12 @@ class SortingTest < MiniTest::Test
115
115
 
116
116
  assert_equal '"model_stubs"."a" DESC, "model_stubs"."b" ASC', @sorting.clause.join(', ')
117
117
  end
118
-
118
+
119
119
  def test_set_default_sorting_with_simple_default_scope
120
120
  model_stub_with_default_scope = ModelStub.clone
121
- model_stub_with_default_scope.class_eval { default_scope lambda { order('a') } }
121
+ model_stub_with_default_scope.class_eval { default_scope -> { order('a') } }
122
122
  @sorting.set_default_sorting model_stub_with_default_scope
123
-
123
+
124
124
  assert @sorting.sorts_on?(:a)
125
125
  assert_equal 'ASC', @sorting.direction_of(:a)
126
126
  assert_nil @sorting.clause
@@ -128,9 +128,9 @@ class SortingTest < MiniTest::Test
128
128
 
129
129
  def test_set_default_sorting_with_complex_default_scope
130
130
  model_stub_with_default_scope = ModelStub.clone
131
- model_stub_with_default_scope.class_eval { default_scope lambda { order('a DESC, players.last_name ASC') } }
131
+ model_stub_with_default_scope.class_eval { default_scope -> { order('a DESC, players.last_name ASC') } }
132
132
  @sorting.set_default_sorting model_stub_with_default_scope
133
-
133
+
134
134
  assert @sorting.sorts_on?(:a)
135
135
  assert_equal 'DESC', @sorting.direction_of(:a)
136
136
  assert_equal 1, @sorting.instance_variable_get(:@clauses).size
@@ -48,4 +48,12 @@ class ValidationReflectionTest < MiniTest::Test
48
48
  column = ActiveScaffold::DataStructures::Column.new(:main_company, Company)
49
49
  refute column.required?
50
50
  end
51
+
52
+ def test_override_required
53
+ Company.expects(:validators_on).with(:name).returns([ActiveModel::Validations::PresenceValidator.new(:attributes => :name)])
54
+ column = ActiveScaffold::DataStructures::Column.new(:name, Company)
55
+ assert column.required?
56
+ column.required = false
57
+ refute column.required?
58
+ end
51
59
  end
@@ -13,8 +13,8 @@ class RoutingMapperTest < ActionController::TestCase
13
13
 
14
14
  test 'active scaffold routes' do
15
15
  assert_routing 'addresses/show_search', :controller => 'addresses', :action => 'show_search'
16
- assert_routing({:method => 'post', :path => 'addresses/render_field'}, :controller => 'addresses', :action => 'render_field')
17
- assert_routing({:method => 'post', :path => 'addresses/2/render_field'}, :controller => 'addresses', :action => 'render_field', :id => '2')
16
+ assert_routing({:method => 'post', :path => 'addresses/render_field'}, {:controller => 'addresses', :action => 'render_field'})
17
+ assert_routing({:method => 'post', :path => 'addresses/2/render_field'}, {:controller => 'addresses', :action => 'render_field', :id => '2'})
18
18
  assert_routing 'addresses/2/render_field', :controller => 'addresses', :action => 'render_field', :id => '2'
19
19
  assert_routing 'addresses/edit_associated', :controller => 'addresses', :action => 'edit_associated'
20
20
  assert_routing 'addresses/2/edit_associated', :controller => 'addresses', :action => 'edit_associated', :id => '2'
@@ -1,4 +1,4 @@
1
- #encoding: utf-8
1
+ # encoding: utf-8
2
2
  require 'test_helper'
3
3
 
4
4
  class ListColumnHelpersTest < ActionView::TestCase
@@ -31,7 +31,7 @@ class ListColumnHelpersTest < ActionView::TestCase
31
31
 
32
32
  def test_association_join_text
33
33
  value = [1, 2, 3, 4].map(&:to_s)
34
- value.each {|v| v.stubs(:to_label).returns(v)}
34
+ value.each { |v| v.stubs(:to_label).returns(v) }
35
35
  assert_equal '1, 2, 3, … (4)', format_association_value(value, @association_column, value.size)
36
36
  @config.list.stubs(:association_join_text => ',<br/>')
37
37
  assert_equal '1,&lt;br/&gt;2,&lt;br/&gt;3,&lt;br/&gt;… (4)', format_association_value(value, @association_column, value.size)
@@ -40,6 +40,7 @@ class ListColumnHelpersTest < ActionView::TestCase
40
40
  end
41
41
 
42
42
  private
43
+
43
44
  def active_scaffold_config
44
45
  @config
45
46
  end
@@ -8,7 +8,7 @@ class PaginationHelpersTest < MiniTest::Test
8
8
  end
9
9
 
10
10
  def test_links
11
- self.stubs(:pagination_ajax_link).returns('l')
11
+ stubs(:pagination_ajax_link).returns('l')
12
12
 
13
13
  assert_equal '1', links(1, 1)
14
14
  assert_equal '1 l', links(1, 2)
@@ -31,7 +31,7 @@ class PaginationHelpersTest < MiniTest::Test
31
31
  end
32
32
 
33
33
  def test_links_with_infinite_pagination
34
- self.stubs(:pagination_ajax_link).returns('l')
34
+ stubs(:pagination_ajax_link).returns('l')
35
35
 
36
36
  assert_equal '1 l l .. l .. l', links(1, nil, 2, true)
37
37
  assert_equal 'l 2 l l .. l .. l', links(2, nil, 2, true)
@@ -51,13 +51,14 @@ class PaginationHelpersTest < MiniTest::Test
51
51
  end
52
52
 
53
53
  private
54
+
54
55
  def links(current, last_page, window_size = 2, infinite = false)
55
- paginator = stub(:last => last_page = stub(:number => last_page), :infinite? => infinite)
56
+ paginator = stub(:last => stub(:number => last_page), :infinite? => infinite)
56
57
  current_page = stub(:number => current, :pager => paginator)
57
58
  pagination_ajax_links(current_page, {}, {}, window_size, 0)
58
59
  end
59
60
 
60
- def content_tag(tag, text, *args)
61
+ def content_tag(tag, text, *)
61
62
  text
62
63
  end
63
64
  end
@@ -9,6 +9,6 @@ class SearchColumnHelpersTest < ActionView::TestCase
9
9
  end
10
10
 
11
11
  def test_choices_for_boolean_search_ui
12
- assert_dom_equal "<select name=\"search[adult]\"><option value=\"\">- select -</option>\n<option value=\"true\">True</option>\n<option value=\"false\" selected=\"selected\">False</option></select>", active_scaffold_search_boolean(@column, :object => @record, :name => "search[adult]", :value => '0')
12
+ assert_dom_equal "<select name=\"search[adult]\"><option value=\"\">- select -</option>\n<option value=\"true\">True</option>\n<option value=\"false\" selected=\"selected\">False</option></select>", active_scaffold_search_boolean(@column, :object => @record, :name => 'search[adult]', :value => '0')
13
13
  end
14
14
  end
@@ -2,53 +2,66 @@ require 'test_helper'
2
2
 
3
3
  class PermissionModel < ActiveRecord::Base
4
4
  include ActiveScaffold::ActiveRecordPermissions::ModelUserAccess::Model
5
- def self.columns; @columns ||= [ColumnMock.new('id', '', 'int(11)')] + %w(a1 a2 a3 b1 b2 b3 c1 c2 c3).map {|c| ColumnMock.new(c, '', 'varchar(255)')}; end
5
+ def self.columns; @columns ||= [ColumnMock.new('id', '', 'int(11)')] + %w(a1 a2 a3 b1 b2 b3 c1 c2 c3).map { |c| ColumnMock.new(c, '', 'varchar(255)') }; end
6
6
 
7
7
  def authorized_for_read?; true; end
8
+
8
9
  def authorized_for_update?; false; end
9
- #def authorized_for_create?; end
10
+ # def authorized_for_create?; end
10
11
 
11
12
  def a1_authorized?; true; end
13
+
12
14
  def a2_authorized?; false; end
13
- #def a3_authorized?; end
15
+ # def a3_authorized?; end
14
16
 
15
17
  def b1_authorized?; true; end
18
+
16
19
  def b2_authorized?; false; end
17
- #def b3_authorized?; end
20
+ # def b3_authorized?; end
18
21
 
19
22
  def c1_authorized?; true; end
23
+
20
24
  def c2_authorized?; false; end
21
- #def c3_authorized?; end
25
+ # def c3_authorized?; end
22
26
 
23
27
  def a3_authorized_for_create?; true; end
28
+
24
29
  def b3_authorized_for_create?; false; end
25
- #def c3_authorized_for_create?; end
30
+ # def c3_authorized_for_create?; end
26
31
  def a2_authorized_for_create?; true; end
32
+
27
33
  def b2_authorized_for_create?; false; end
28
- #def c2_authorized_for_create?; end
34
+ # def c2_authorized_for_create?; end
29
35
  def a1_authorized_for_create?; true; end
36
+
30
37
  def b1_authorized_for_create?; false; end
31
- #def c1_authorized_for_create?; end
38
+ # def c1_authorized_for_create?; end
32
39
 
33
40
  def a3_authorized_for_read?; true; end
41
+
34
42
  def b3_authorized_for_read?; false; end
35
- #def c3_authorized_for_read?; end
43
+ # def c3_authorized_for_read?; end
36
44
  def a2_authorized_for_read?; true; end
45
+
37
46
  def b2_authorized_for_read?; false; end
38
- #def c2_authorized_for_read?; end
47
+ # def c2_authorized_for_read?; end
39
48
  def a1_authorized_for_read?; true; end
49
+
40
50
  def b1_authorized_for_read?; false; end
41
- #def c1_authorized_for_read?; end
51
+ # def c1_authorized_for_read?; end
42
52
 
43
53
  def a3_authorized_for_update?; true; end
54
+
44
55
  def b3_authorized_for_update?; false; end
45
- #def c3_authorized_for_update?; end
56
+ # def c3_authorized_for_update?; end
46
57
  def a2_authorized_for_update?; true; end
58
+
47
59
  def b2_authorized_for_update?; false; end
48
- #def c2_authorized_for_update?; end
60
+ # def c2_authorized_for_update?; end
49
61
  def a1_authorized_for_update?; true; end
62
+
50
63
  def b1_authorized_for_update?; false; end
51
- #def c1_authorized_for_update?; end
64
+ # def c1_authorized_for_update?; end
52
65
  end
53
66
 
54
67
  class ActiveRecordPermissionsTest < MiniTest::Test
@@ -67,41 +80,41 @@ class ActiveRecordPermissionsTest < MiniTest::Test
67
80
  end
68
81
 
69
82
  pass(@model.authorized_for?(:column => :a3), '_a_')
70
- fail(@model.authorized_for?(:column => :a2), '_f_')
83
+ miss(@model.authorized_for?(:column => :a2), '_f_')
71
84
  pass(@model.authorized_for?(:column => :a1), '_t_')
72
85
 
73
86
  pass(@model.authorized_for?(:crud_type => :create), 'a__')
74
- fail(@model.authorized_for?(:crud_type => :update), 'f__')
87
+ miss(@model.authorized_for?(:crud_type => :update), 'f__')
75
88
  pass(@model.authorized_for?(:crud_type => :read), 't__')
76
89
 
77
90
  pass(@model.authorized_for?(:crud_type => :create, :column => :c3), 'aaa')
78
- fail(@model.authorized_for?(:crud_type => :create, :column => :b3), 'aaf')
91
+ miss(@model.authorized_for?(:crud_type => :create, :column => :b3), 'aaf')
79
92
  pass(@model.authorized_for?(:crud_type => :create, :column => :a3), 'aat')
80
- fail(@model.authorized_for?(:crud_type => :create, :column => :c2), 'afa')
81
- fail(@model.authorized_for?(:crud_type => :create, :column => :b2), 'aff')
93
+ miss(@model.authorized_for?(:crud_type => :create, :column => :c2), 'afa')
94
+ miss(@model.authorized_for?(:crud_type => :create, :column => :b2), 'aff')
82
95
  pass(@model.authorized_for?(:crud_type => :create, :column => :a2), 'aft')
83
96
  pass(@model.authorized_for?(:crud_type => :create, :column => :c1), 'ata')
84
- fail(@model.authorized_for?(:crud_type => :create, :column => :b1), 'atf')
97
+ miss(@model.authorized_for?(:crud_type => :create, :column => :b1), 'atf')
85
98
  pass(@model.authorized_for?(:crud_type => :create, :column => :a1), 'att')
86
99
 
87
- fail(@model.authorized_for?(:crud_type => :update, :column => :c3), 'faa')
88
- fail(@model.authorized_for?(:crud_type => :update, :column => :b3), 'faf')
100
+ miss(@model.authorized_for?(:crud_type => :update, :column => :c3), 'faa')
101
+ miss(@model.authorized_for?(:crud_type => :update, :column => :b3), 'faf')
89
102
  pass(@model.authorized_for?(:crud_type => :update, :column => :a3), 'fat')
90
- fail(@model.authorized_for?(:crud_type => :update, :column => :c2), 'ffa')
91
- fail(@model.authorized_for?(:crud_type => :update, :column => :b2), 'fff')
103
+ miss(@model.authorized_for?(:crud_type => :update, :column => :c2), 'ffa')
104
+ miss(@model.authorized_for?(:crud_type => :update, :column => :b2), 'fff')
92
105
  pass(@model.authorized_for?(:crud_type => :update, :column => :a2), 'fft')
93
- fail(@model.authorized_for?(:crud_type => :update, :column => :c1), 'fta')
94
- fail(@model.authorized_for?(:crud_type => :update, :column => :b1), 'ftf')
106
+ miss(@model.authorized_for?(:crud_type => :update, :column => :c1), 'fta')
107
+ miss(@model.authorized_for?(:crud_type => :update, :column => :b1), 'ftf')
95
108
  pass(@model.authorized_for?(:crud_type => :update, :column => :a1), 'ftt')
96
109
 
97
110
  pass(@model.authorized_for?(:crud_type => :read, :column => :c3), 'taa')
98
- fail(@model.authorized_for?(:crud_type => :read, :column => :b3), 'taf')
111
+ miss(@model.authorized_for?(:crud_type => :read, :column => :b3), 'taf')
99
112
  pass(@model.authorized_for?(:crud_type => :read, :column => :a3), 'tat')
100
- fail(@model.authorized_for?(:crud_type => :read, :column => :c2), 'tfa')
101
- fail(@model.authorized_for?(:crud_type => :read, :column => :b2), 'tff')
113
+ miss(@model.authorized_for?(:crud_type => :read, :column => :c2), 'tfa')
114
+ miss(@model.authorized_for?(:crud_type => :read, :column => :b2), 'tff')
102
115
  pass(@model.authorized_for?(:crud_type => :read, :column => :a2), 'tft')
103
116
  pass(@model.authorized_for?(:crud_type => :read, :column => :c1), 'tta')
104
- fail(@model.authorized_for?(:crud_type => :read, :column => :b1), 'ttf')
117
+ miss(@model.authorized_for?(:crud_type => :read, :column => :b1), 'ttf')
105
118
  pass(@model.authorized_for?(:crud_type => :read, :column => :a1), 'ttt')
106
119
 
107
120
  ActiveScaffold.set_defaults do |config|
@@ -116,42 +129,42 @@ class ActiveRecordPermissionsTest < MiniTest::Test
116
129
  config.security.default_permission = false
117
130
  end
118
131
 
119
- fail(@model.authorized_for?(:column => :a3), '_a_')
120
- fail(@model.authorized_for?(:column => :a2), '_f_')
132
+ miss(@model.authorized_for?(:column => :a3), '_a_')
133
+ miss(@model.authorized_for?(:column => :a2), '_f_')
121
134
  pass(@model.authorized_for?(:column => :a1), '_t_')
122
135
 
123
- fail(@model.authorized_for?(:crud_type => :create), 'a__')
124
- fail(@model.authorized_for?(:crud_type => :update), 'f__')
136
+ miss(@model.authorized_for?(:crud_type => :create), 'a__')
137
+ miss(@model.authorized_for?(:crud_type => :update), 'f__')
125
138
  pass(@model.authorized_for?(:crud_type => :read), 't__')
126
139
 
127
- fail(@model.authorized_for?(:crud_type => :create, :column => :c3), 'aaa')
128
- fail(@model.authorized_for?(:crud_type => :create, :column => :b3), 'aaf')
140
+ miss(@model.authorized_for?(:crud_type => :create, :column => :c3), 'aaa')
141
+ miss(@model.authorized_for?(:crud_type => :create, :column => :b3), 'aaf')
129
142
  pass(@model.authorized_for?(:crud_type => :create, :column => :a3), 'aat')
130
- fail(@model.authorized_for?(:crud_type => :create, :column => :c2), 'afa')
131
- fail(@model.authorized_for?(:crud_type => :create, :column => :b2), 'aff')
143
+ miss(@model.authorized_for?(:crud_type => :create, :column => :c2), 'afa')
144
+ miss(@model.authorized_for?(:crud_type => :create, :column => :b2), 'aff')
132
145
  pass(@model.authorized_for?(:crud_type => :create, :column => :a2), 'aft')
133
146
  pass(@model.authorized_for?(:crud_type => :create, :column => :c1), 'ata')
134
- fail(@model.authorized_for?(:crud_type => :create, :column => :b1), 'atf')
147
+ miss(@model.authorized_for?(:crud_type => :create, :column => :b1), 'atf')
135
148
  pass(@model.authorized_for?(:crud_type => :create, :column => :a1), 'att')
136
149
 
137
- fail(@model.authorized_for?(:crud_type => :update, :column => :c3), 'faa')
138
- fail(@model.authorized_for?(:crud_type => :update, :column => :b3), 'faf')
150
+ miss(@model.authorized_for?(:crud_type => :update, :column => :c3), 'faa')
151
+ miss(@model.authorized_for?(:crud_type => :update, :column => :b3), 'faf')
139
152
  pass(@model.authorized_for?(:crud_type => :update, :column => :a3), 'fat')
140
- fail(@model.authorized_for?(:crud_type => :update, :column => :c2), 'ffa')
141
- fail(@model.authorized_for?(:crud_type => :update, :column => :b2), 'fff')
153
+ miss(@model.authorized_for?(:crud_type => :update, :column => :c2), 'ffa')
154
+ miss(@model.authorized_for?(:crud_type => :update, :column => :b2), 'fff')
142
155
  pass(@model.authorized_for?(:crud_type => :update, :column => :a2), 'fft')
143
- fail(@model.authorized_for?(:crud_type => :update, :column => :c1), 'fta')
144
- fail(@model.authorized_for?(:crud_type => :update, :column => :b1), 'ftf')
156
+ miss(@model.authorized_for?(:crud_type => :update, :column => :c1), 'fta')
157
+ miss(@model.authorized_for?(:crud_type => :update, :column => :b1), 'ftf')
145
158
  pass(@model.authorized_for?(:crud_type => :update, :column => :a1), 'ftt')
146
159
 
147
160
  pass(@model.authorized_for?(:crud_type => :read, :column => :c3), 'taa')
148
- fail(@model.authorized_for?(:crud_type => :read, :column => :b3), 'taf')
161
+ miss(@model.authorized_for?(:crud_type => :read, :column => :b3), 'taf')
149
162
  pass(@model.authorized_for?(:crud_type => :read, :column => :a3), 'tat')
150
- fail(@model.authorized_for?(:crud_type => :read, :column => :c2), 'tfa')
151
- fail(@model.authorized_for?(:crud_type => :read, :column => :b2), 'tff')
163
+ miss(@model.authorized_for?(:crud_type => :read, :column => :c2), 'tfa')
164
+ miss(@model.authorized_for?(:crud_type => :read, :column => :b2), 'tff')
152
165
  pass(@model.authorized_for?(:crud_type => :read, :column => :a2), 'tft')
153
166
  pass(@model.authorized_for?(:crud_type => :read, :column => :c1), 'tta')
154
- fail(@model.authorized_for?(:crud_type => :read, :column => :b1), 'ttf')
167
+ miss(@model.authorized_for?(:crud_type => :read, :column => :b1), 'ttf')
155
168
  pass(@model.authorized_for?(:crud_type => :read, :column => :a1), 'ttt')
156
169
 
157
170
  ActiveScaffold.set_defaults do |config|
@@ -165,7 +178,7 @@ class ActiveRecordPermissionsTest < MiniTest::Test
165
178
  assert value, "#{message} should pass"
166
179
  end
167
180
 
168
- def fail(value, message = nil)
181
+ def miss(value, message = nil)
169
182
  refute value, "#{message} should fail"
170
183
  end
171
184
  end