active_scaffold 3.4.43 → 3.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (216) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +39 -0
  3. data/{LICENSE → LICENSE.md} +1 -1
  4. data/README.md +27 -19
  5. data/app/assets/javascripts/active_scaffold.js.erb +1 -1
  6. data/app/assets/javascripts/jquery/active_scaffold.js +95 -43
  7. data/app/assets/javascripts/jquery/tiny_mce_bridge.js +30 -6
  8. data/app/assets/javascripts/prototype/tiny_mce_bridge.js +11 -1
  9. data/app/assets/stylesheets/active_scaffold_colors.scss +2 -2
  10. data/app/assets/stylesheets/active_scaffold_layout.css +36 -28
  11. data/app/views/active_scaffold_overrides/_base_form.html.erb +2 -3
  12. data/app/views/active_scaffold_overrides/_field_search.html.erb +8 -7
  13. data/app/views/active_scaffold_overrides/_form_association.html.erb +9 -9
  14. data/app/views/active_scaffold_overrides/_form_association_footer.html.erb +6 -6
  15. data/app/views/active_scaffold_overrides/_form_association_record.html.erb +52 -50
  16. data/app/views/active_scaffold_overrides/_horizontal_subform.html.erb +1 -1
  17. data/app/views/active_scaffold_overrides/_horizontal_subform_header.html.erb +1 -1
  18. data/app/views/active_scaffold_overrides/_human_conditions.html.erb +3 -1
  19. data/app/views/active_scaffold_overrides/_list_calculations.html.erb +1 -1
  20. data/app/views/active_scaffold_overrides/_list_column_headings.html.erb +2 -0
  21. data/app/views/active_scaffold_overrides/_list_messages.html.erb +5 -3
  22. data/app/views/active_scaffold_overrides/_list_record.html.erb +3 -1
  23. data/app/views/active_scaffold_overrides/_list_with_header.html.erb +9 -9
  24. data/app/views/active_scaffold_overrides/_messages.html.erb +1 -1
  25. data/app/views/active_scaffold_overrides/_refresh_list.js.erb +18 -10
  26. data/app/views/active_scaffold_overrides/_render_field.js.erb +3 -3
  27. data/app/views/active_scaffold_overrides/_search.html.erb +7 -6
  28. data/app/views/active_scaffold_overrides/_show_actions.html.erb +14 -0
  29. data/app/views/active_scaffold_overrides/_show_association.html.erb +1 -1
  30. data/app/views/active_scaffold_overrides/_update_actions.html.erb +6 -2
  31. data/app/views/active_scaffold_overrides/_update_column.js.erb +1 -1
  32. data/app/views/active_scaffold_overrides/_update_form.html.erb +1 -1
  33. data/app/views/active_scaffold_overrides/destroy.js.erb +2 -3
  34. data/app/views/active_scaffold_overrides/edit_associated.js.erb +4 -3
  35. data/app/views/active_scaffold_overrides/on_action_update.js.erb +5 -3
  36. data/app/views/active_scaffold_overrides/on_create.js.erb +4 -4
  37. data/app/views/active_scaffold_overrides/on_update.js.erb +6 -6
  38. data/app/views/active_scaffold_overrides/show.html.erb +6 -0
  39. data/app/views/active_scaffold_overrides/update.html.erb +1 -1
  40. data/app/views/active_scaffold_overrides/update_column.js.erb +1 -1
  41. data/config/brakeman.ignore +26 -0
  42. data/config/brakeman.yml +3 -0
  43. data/config/i18n-tasks.yml +121 -0
  44. data/config/locales/de.yml +81 -70
  45. data/config/locales/en.yml +83 -74
  46. data/config/locales/es.yml +82 -73
  47. data/config/locales/fr.yml +86 -75
  48. data/config/locales/hu.yml +81 -70
  49. data/config/locales/ja.yml +71 -60
  50. data/config/locales/ru.yml +85 -74
  51. data/lib/active_scaffold.rb +3 -0
  52. data/lib/active_scaffold/actions/common_search.rb +11 -7
  53. data/lib/active_scaffold/actions/core.rb +119 -47
  54. data/lib/active_scaffold/actions/create.rb +1 -1
  55. data/lib/active_scaffold/actions/delete.rb +11 -8
  56. data/lib/active_scaffold/actions/field_search.rb +104 -6
  57. data/lib/active_scaffold/actions/list.rb +25 -21
  58. data/lib/active_scaffold/actions/mark.rb +12 -4
  59. data/lib/active_scaffold/actions/nested.rb +26 -26
  60. data/lib/active_scaffold/actions/search.rb +2 -2
  61. data/lib/active_scaffold/actions/show.rb +4 -5
  62. data/lib/active_scaffold/actions/subform.rb +9 -7
  63. data/lib/active_scaffold/actions/update.rb +20 -13
  64. data/lib/active_scaffold/active_record_permissions.rb +24 -5
  65. data/lib/active_scaffold/attribute_params.rb +68 -49
  66. data/lib/active_scaffold/bridges.rb +1 -1
  67. data/lib/active_scaffold/bridges/ancestry/ancestry_bridge.rb +15 -19
  68. data/lib/active_scaffold/bridges/bitfields.rb +1 -1
  69. data/lib/active_scaffold/bridges/bitfields/bitfields_bridge.rb +10 -14
  70. data/lib/active_scaffold/bridges/calendar_date_select.rb +0 -7
  71. data/lib/active_scaffold/bridges/calendar_date_select/as_cds_bridge.rb +19 -22
  72. data/lib/active_scaffold/bridges/cancan.rb +4 -3
  73. data/lib/active_scaffold/bridges/cancan/cancan_bridge.rb +11 -21
  74. data/lib/active_scaffold/bridges/carrierwave.rb +2 -1
  75. data/lib/active_scaffold/bridges/carrierwave/carrierwave_bridge.rb +2 -6
  76. data/lib/active_scaffold/bridges/carrierwave/form_ui.rb +6 -39
  77. data/lib/active_scaffold/bridges/carrierwave/list_ui.rb +1 -1
  78. data/lib/active_scaffold/bridges/chosen.rb +4 -1
  79. data/lib/active_scaffold/bridges/chosen/helpers.rb +3 -2
  80. data/lib/active_scaffold/bridges/country_select/country_select_bridge_helper.rb +2 -2
  81. data/lib/active_scaffold/bridges/date_picker.rb +3 -0
  82. data/lib/active_scaffold/bridges/date_picker/ext.rb +43 -38
  83. data/lib/active_scaffold/bridges/date_picker/helper.rb +24 -23
  84. data/lib/active_scaffold/bridges/dragonfly.rb +1 -1
  85. data/lib/active_scaffold/bridges/dragonfly/dragonfly_bridge.rb +3 -7
  86. data/lib/active_scaffold/bridges/dragonfly/form_ui.rb +3 -25
  87. data/lib/active_scaffold/bridges/dragonfly/list_ui.rb +2 -2
  88. data/lib/active_scaffold/bridges/file_column/as_file_column_bridge.rb +6 -8
  89. data/lib/active_scaffold/bridges/file_column/file_column_helpers.rb +1 -1
  90. data/lib/active_scaffold/bridges/file_column/form_ui.rb +0 -2
  91. data/lib/active_scaffold/bridges/file_column/list_ui.rb +2 -1
  92. data/lib/active_scaffold/bridges/file_column/test/test_helper.rb +1 -1
  93. data/lib/active_scaffold/bridges/paper_trail/actions.rb +1 -1
  94. data/lib/active_scaffold/bridges/paper_trail/helper.rb +1 -2
  95. data/lib/active_scaffold/bridges/paper_trail/paper_trail_bridge.rb +3 -7
  96. data/lib/active_scaffold/bridges/paperclip.rb +1 -1
  97. data/lib/active_scaffold/bridges/paperclip/form_ui.rb +3 -28
  98. data/lib/active_scaffold/bridges/paperclip/list_ui.rb +1 -1
  99. data/lib/active_scaffold/bridges/paperclip/paperclip_bridge.rb +3 -7
  100. data/lib/active_scaffold/bridges/record_select.rb +2 -0
  101. data/lib/active_scaffold/bridges/record_select/helpers.rb +14 -18
  102. data/lib/active_scaffold/bridges/semantic_attributes/column.rb +4 -8
  103. data/lib/active_scaffold/bridges/shared/date_bridge.rb +20 -20
  104. data/lib/active_scaffold/bridges/tiny_mce/helpers.rb +7 -22
  105. data/lib/active_scaffold/bridges/usa_state_select/usa_state_select_helper.rb +14 -14
  106. data/lib/active_scaffold/config/base.rb +9 -6
  107. data/lib/active_scaffold/config/core.rb +30 -21
  108. data/lib/active_scaffold/config/create.rb +2 -1
  109. data/lib/active_scaffold/config/delete.rb +2 -2
  110. data/lib/active_scaffold/config/field_search.rb +9 -3
  111. data/lib/active_scaffold/config/form.rb +4 -4
  112. data/lib/active_scaffold/config/list.rb +27 -23
  113. data/lib/active_scaffold/config/nested.rb +4 -4
  114. data/lib/active_scaffold/config/search.rb +6 -6
  115. data/lib/active_scaffold/config/show.rb +11 -1
  116. data/lib/active_scaffold/config/subform.rb +1 -1
  117. data/lib/active_scaffold/config/update.rb +4 -2
  118. data/lib/active_scaffold/constraints.rb +39 -36
  119. data/lib/active_scaffold/core.rb +36 -15
  120. data/lib/active_scaffold/data_structures/action_columns.rb +14 -9
  121. data/lib/active_scaffold/data_structures/action_link.rb +4 -5
  122. data/lib/active_scaffold/data_structures/action_links.rb +5 -4
  123. data/lib/active_scaffold/data_structures/actions.rb +2 -2
  124. data/lib/active_scaffold/data_structures/association.rb +8 -0
  125. data/lib/active_scaffold/data_structures/association/abstract.rb +147 -0
  126. data/lib/active_scaffold/data_structures/association/active_mongoid.rb +42 -0
  127. data/lib/active_scaffold/data_structures/association/active_record.rb +94 -0
  128. data/lib/active_scaffold/data_structures/association/mongoid.rb +45 -0
  129. data/lib/active_scaffold/data_structures/bridge.rb +3 -6
  130. data/lib/active_scaffold/data_structures/column.rb +100 -82
  131. data/lib/active_scaffold/data_structures/columns.rb +21 -3
  132. data/lib/active_scaffold/data_structures/nested_info.rb +22 -37
  133. data/lib/active_scaffold/data_structures/set.rb +4 -4
  134. data/lib/active_scaffold/data_structures/sorting.rb +29 -15
  135. data/lib/active_scaffold/engine.rb +3 -1
  136. data/lib/active_scaffold/extensions/action_controller_rendering.rb +10 -5
  137. data/lib/active_scaffold/extensions/action_view_rendering.rb +65 -59
  138. data/lib/active_scaffold/extensions/left_outer_joins.rb +48 -53
  139. data/lib/active_scaffold/extensions/localize.rb +3 -4
  140. data/lib/active_scaffold/extensions/name_option_for_datetime.rb +7 -11
  141. data/lib/active_scaffold/extensions/paginator_extensions.rb +20 -18
  142. data/lib/active_scaffold/extensions/routing_mapper.rb +104 -40
  143. data/lib/active_scaffold/extensions/to_label.rb +1 -1
  144. data/lib/active_scaffold/extensions/unsaved_associated.rb +4 -13
  145. data/lib/active_scaffold/extensions/unsaved_record.rb +12 -1
  146. data/lib/active_scaffold/finder.rb +200 -134
  147. data/lib/active_scaffold/helpers/action_link_helpers.rb +398 -0
  148. data/lib/active_scaffold/helpers/association_helpers.rb +12 -30
  149. data/lib/active_scaffold/helpers/controller_helpers.rb +74 -24
  150. data/lib/active_scaffold/helpers/form_column_helpers.rb +205 -112
  151. data/lib/active_scaffold/helpers/human_condition_helpers.rb +21 -11
  152. data/lib/active_scaffold/helpers/id_helpers.rb +1 -1
  153. data/lib/active_scaffold/helpers/list_column_helpers.rb +117 -39
  154. data/lib/active_scaffold/helpers/pagination_helpers.rb +11 -14
  155. data/lib/active_scaffold/helpers/search_column_helpers.rb +69 -32
  156. data/lib/active_scaffold/helpers/show_column_helpers.rb +9 -3
  157. data/lib/active_scaffold/helpers/view_helpers.rb +41 -426
  158. data/lib/active_scaffold/orm_checks.rb +109 -0
  159. data/lib/active_scaffold/paginator.rb +1 -1
  160. data/lib/active_scaffold/responds_to_parent.rb +12 -10
  161. data/lib/active_scaffold/tableless.rb +81 -43
  162. data/lib/active_scaffold/version.rb +2 -2
  163. data/lib/generators/active_scaffold/controller_generator.rb +49 -0
  164. data/lib/generators/active_scaffold/install_generator.rb +45 -0
  165. data/lib/generators/active_scaffold/resource_generator.rb +56 -0
  166. data/lib/generators/{active_scaffold_controller/templates → templates}/controller.rb +0 -0
  167. data/lib/generators/{active_scaffold_controller/templates → templates}/helper.rb +0 -0
  168. data/shoulda_macros/macros.rb +3 -3
  169. data/test/active_scaffold_config_mock.rb +33 -0
  170. data/test/bridges/bridge_test.rb +9 -9
  171. data/test/bridges/date_picker_test.rb +3 -1
  172. data/test/bridges/paper_trail_test.rb +2 -3
  173. data/test/bridges/paperclip_test.rb +21 -10
  174. data/test/bridges/tiny_mce_test.rb +20 -21
  175. data/test/class_with_finder.rb +42 -0
  176. data/test/company.rb +6 -4
  177. data/test/config/core_test.rb +1 -1
  178. data/test/config/create_test.rb +1 -1
  179. data/test/config/list_test.rb +3 -3
  180. data/test/config/update_test.rb +3 -3
  181. data/test/data_structures/action_columns_test.rb +3 -3
  182. data/test/data_structures/association_column_test.rb +5 -5
  183. data/test/data_structures/column_test.rb +14 -14
  184. data/test/data_structures/columns_test.rb +2 -2
  185. data/test/data_structures/set_test.rb +2 -2
  186. data/test/data_structures/sorting_test.rb +6 -4
  187. data/test/extensions/active_record_test.rb +1 -1
  188. data/test/extensions/routing_mapper_test.rb +64 -13
  189. data/test/helpers/form_column_helpers_test.rb +6 -6
  190. data/test/helpers/list_column_helpers_test.rb +9 -5
  191. data/test/helpers/pagination_helpers_test.rb +1 -0
  192. data/test/misc/active_record_permissions_test.rb +18 -1
  193. data/test/misc/attribute_params_test.rb +26 -17
  194. data/test/misc/calculation_test.rb +8 -31
  195. data/test/misc/configurable_test.rb +3 -2
  196. data/test/misc/constraints_test.rb +33 -22
  197. data/test/misc/convert_numbers_format_test.rb +28 -10
  198. data/test/misc/finder_test.rb +6 -29
  199. data/test/misc/parse_datetime_test.rb +160 -0
  200. data/test/misc/render_test.rb +1 -1
  201. data/test/misc/tableless_test.rb +24 -0
  202. data/test/mock_app/app/models/building.rb +2 -1
  203. data/test/mock_app/config.ru +1 -1
  204. data/test/mock_app/config/environments/test.rb +1 -1
  205. data/test/mock_app/config/routes.rb +11 -3
  206. data/test/model_stub.rb +11 -6
  207. data/test/run_all.rb +1 -1
  208. data/test/test_helper.rb +19 -4
  209. metadata +42 -23
  210. data/lib/active_scaffold/data_structures/error_message.rb +0 -22
  211. data/lib/active_scaffold/extensions/reverse_associations.rb +0 -119
  212. data/lib/generators/active_scaffold/USAGE +0 -29
  213. data/lib/generators/active_scaffold/active_scaffold_generator.rb +0 -21
  214. data/lib/generators/active_scaffold_controller/USAGE +0 -19
  215. data/lib/generators/active_scaffold_controller/active_scaffold_controller_generator.rb +0 -29
  216. data/test/data_structures/error_message_test.rb +0 -25
@@ -4,6 +4,6 @@ class RenderTest < ActionController::TestCase
4
4
  tests AddressesController
5
5
  test 'render activescaffold views' do
6
6
  get :index
7
- assert_template 'list'
7
+ assert_select 'div.active-scaffold'
8
8
  end
9
9
  end
@@ -5,6 +5,18 @@ class TablelessTest < MiniTest::Test
5
5
  assert FileModel.all.to_a.empty?
6
6
  end
7
7
 
8
+ def test_where
9
+ assert FileModel.where(name: 'file').to_a.empty?
10
+ end
11
+
12
+ def test_where_using_assoc
13
+ assert FileModel.includes(:person).where(people: {name: 'Name'}).to_a.empty?
14
+ end
15
+
16
+ def test_count
17
+ assert_equal 0, FileModel.count
18
+ end
19
+
8
20
  def test_find_by_id
9
21
  assert_raises ActiveRecord::RecordNotFound do
10
22
  FileModel.find('filename')
@@ -14,4 +26,16 @@ class TablelessTest < MiniTest::Test
14
26
  def test_find_with_association
15
27
  assert Person.new.files.empty?
16
28
  end
29
+
30
+ def test_find_with_through_association
31
+ assert Building.new.files.empty?
32
+ end
33
+
34
+ def test_new
35
+ assert FileModel.new
36
+ end
37
+
38
+ def test_association
39
+ assert FileModel.new.person.nil?
40
+ end
17
41
  end
@@ -1,8 +1,9 @@
1
1
  class Building < ActiveRecord::Base
2
- belongs_to :owner, :class_name => 'Person', :counter_cache => true, :inverse_of => :building
2
+ belongs_to :owner, :class_name => 'Person', :counter_cache => true, :inverse_of => :buildings
3
3
  has_many :floors, :dependent => :destroy, :inverse_of => :building
4
4
 
5
5
  has_one :address, :as => :addressable
6
6
 
7
7
  has_many :tenants, :through => :floors, :class_name => 'Person'
8
+ has_many :files, :through => :tenants, :class_name => 'FileModel'
8
9
  end
@@ -1,4 +1,4 @@
1
1
  # This file is used by Rack-based servers to start the application.
2
2
 
3
- require ::File.expand_path('../config/environment', __FILE__)
3
+ require ::File.expand_path('../config/environment', __FILE__)
4
4
  run TestApp::Application
@@ -16,7 +16,7 @@ RailsApp::Application.configure do
16
16
  config.action_dispatch.show_exceptions = false
17
17
 
18
18
  # Disable request forgery protection in test environment
19
- config.action_controller.allow_forgery_protection = false
19
+ config.action_controller.allow_forgery_protection = false
20
20
 
21
21
  # Tell Action Mailer not to deliver emails to the real world.
22
22
  # The :test delivery method accumulates sent emails in the
@@ -1,6 +1,14 @@
1
- RailsApp::Application.routes.draw do
2
- resources :addresses do
3
- as_routes
1
+ Rails.application.routes.draw do
2
+ concern :active_scaffold, ActiveScaffold::Routing::Basic.new(association: true)
3
+ concern :active_scaffold_association, ActiveScaffold::Routing::Association.new
4
+
5
+ resources :addresses, concerns: :active_scaffold
6
+ resources :buildings, except: :index do
7
+ concerns :active_scaffold, except: %i[mark add_existing new_existing destroy_existing]
4
8
  end
9
+ resources :cars, only: %i[edit update] do
10
+ concerns :active_scaffold, association: false, except: [:mark]
11
+ end
12
+
5
13
  match ':controller(/:action(/:id))', :via => :any
6
14
  end
@@ -4,16 +4,13 @@ class ModelStub < ActiveRecord::Base
4
4
  has_many :other_models, :class_name => 'ModelStub'
5
5
 
6
6
  cattr_accessor :stubbed_columns
7
- self.stubbed_columns = [:a, :b, :c, :d, :id, :created_at]
8
- attr_accessor *stubbed_columns
7
+ self.stubbed_columns = %i[a b c d id created_at]
8
+ attr_accessor(*stubbed_columns)
9
9
  self.primary_key = :id
10
10
 
11
11
  @@nested_scope_calls = []
12
12
  cattr_accessor :nested_scope_calls
13
13
 
14
- scope :a_is_defined, -> { where.not(:a => nil) }
15
- scope :b_like, ->(pattern) { where('b like ?', pattern) }
16
-
17
14
  def self.a_is_defined
18
15
  @@nested_scope_calls << :a_is_defined
19
16
  self
@@ -37,7 +34,7 @@ class ModelStub < ActiveRecord::Base
37
34
  def self.columns
38
35
  @columns ||= stubbed_columns.map do |c|
39
36
  column = ColumnMock.new(c.to_s, '', 'varchar(255)')
40
- column.primary = true if c.to_s == self.primary_key.to_s && column.respond_to?(:primary=)
37
+ column.primary = true if c.to_s == primary_key.to_s && column.respond_to?(:primary=)
41
38
  column
42
39
  end
43
40
  end
@@ -46,13 +43,21 @@ class ModelStub < ActiveRecord::Base
46
43
  @columns_hash ||= columns.each_with_object({}) { |column, hash| hash[column.name.to_s] = column }
47
44
  end
48
45
 
46
+ if respond_to? :type_for_attribute
47
+ def self.type_for_attribute(attribute_name)
48
+ defined?(ActiveModel::Type) ? ActiveModel::Type::String.new : super
49
+ end
50
+ end
51
+
49
52
  # column-level security methods, used for testing
50
53
  def self.a_authorized_for_bar?
51
54
  true
52
55
  end
56
+
53
57
  def self.b_authorized?
54
58
  false
55
59
  end
60
+
56
61
  def self.c_authorized_for_create?
57
62
  false
58
63
  end
@@ -1,4 +1,4 @@
1
- test_folders = %w(bridges config data_structures extensions misc)
1
+ test_folders = %w[bridges config data_structures extensions misc]
2
2
 
3
3
  all_tests = test_folders.inject([]) do |folder, output|
4
4
  output << Dir[File.join(File.dirname(__FILE__), "#{folder}/**/*.rb")]
@@ -1,4 +1,4 @@
1
- require 'simplecov' unless RUBY_ENGINE == 'rbx'
1
+ require 'simplecov' if RUBY_ENGINE == 'ruby'
2
2
 
3
3
  ENV['RAILS_ENV'] = 'test'
4
4
  require 'mock_app/config/environment'
@@ -12,30 +12,45 @@ Minitest::Reporters.use!
12
12
  def load_schema
13
13
  stdout = $stdout
14
14
  $stdout = StringIO.new # suppress output while building the schema
15
- load File.join(Rails.root, 'db', 'schema.rb')
15
+ load Rails.root.join('db', 'schema.rb')
16
16
  $stdout = stdout
17
17
  end
18
18
  load_schema
19
19
 
20
- %w(model_stub const_mocker company).each do |file|
20
+ %w[model_stub const_mocker company].each do |file|
21
21
  require File.join(File.dirname(__FILE__), file)
22
22
  end
23
23
 
24
24
  I18n.backend.store_translations :en, YAML.load_file(File.expand_path('../../config/locales/en.yml', __FILE__))['en']
25
25
 
26
+ # rails 4.0
26
27
  unless defined? Minitest::Test
27
28
  class Minitest::Test < MiniTest::Unit::TestCase
28
29
  end
30
+
31
+ class MiniTest::Unit::TestCase
32
+ def with_js_framework(framework)
33
+ framework, ActiveScaffold.js_framework = ActiveScaffold.js_framework, framework
34
+ yield
35
+ ActiveScaffold.js_framework = framework
36
+ end
37
+ end
29
38
  end
30
39
 
31
40
  class MiniTest::Test
32
41
  protected
33
42
 
43
+ def with_js_framework(framework)
44
+ framework, ActiveScaffold.js_framework = ActiveScaffold.js_framework, framework
45
+ yield
46
+ ActiveScaffold.js_framework = framework
47
+ end
48
+
34
49
  def config_for(klass, namespace = nil)
35
50
  ActiveScaffold::Config::Core.new("#{namespace}#{klass.to_s.underscore.downcase}")
36
51
  end
37
52
  end
38
53
 
39
- Config = RbConfig # HACK needed some comments
54
+ Config = RbConfig # HACK: needed some comments
40
55
 
41
56
  class ColumnMock < ActiveScaffold::Tableless::Column; end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_scaffold
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.4.43
4
+ version: 3.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Many, see README
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-11-30 00:00:00.000000000 Z
11
+ date: 2018-03-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -16,20 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 3.2.22.2
20
- - - "<"
21
- - !ruby/object:Gem::Version
22
- version: '5'
19
+ version: 4.0.5
23
20
  type: :runtime
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
24
  - - ">="
28
25
  - !ruby/object:Gem::Version
29
- version: 3.2.22.2
30
- - - "<"
26
+ version: 4.0.5
27
+ - !ruby/object:Gem::Dependency
28
+ name: ice_nine
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.11'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
31
39
  - !ruby/object:Gem::Version
32
- version: '5'
40
+ version: '0.11'
33
41
  description: Save time and headaches, and create a more easily maintainable set of
34
42
  pages, with ActiveScaffold. ActiveScaffold handles all your CRUD (create, read,
35
43
  update, delete) user interface needs, leaving you more time to focus on more challenging
@@ -41,7 +49,7 @@ extra_rdoc_files:
41
49
  - README.md
42
50
  files:
43
51
  - CHANGELOG
44
- - LICENSE
52
+ - LICENSE.md
45
53
  - README.md
46
54
  - app/assets/images/active_scaffold/add.png
47
55
  - app/assets/images/active_scaffold/arrow_down.png
@@ -120,6 +128,7 @@ files:
120
128
  - app/views/active_scaffold_overrides/_row.html.erb
121
129
  - app/views/active_scaffold_overrides/_search.html.erb
122
130
  - app/views/active_scaffold_overrides/_show.html.erb
131
+ - app/views/active_scaffold_overrides/_show_actions.html.erb
123
132
  - app/views/active_scaffold_overrides/_show_association.html.erb
124
133
  - app/views/active_scaffold_overrides/_show_association_horizontal.html.erb
125
134
  - app/views/active_scaffold_overrides/_show_association_vertical.html.erb
@@ -153,6 +162,9 @@ files:
153
162
  - app/views/active_scaffold_overrides/update.html.erb
154
163
  - app/views/active_scaffold_overrides/update_column.js.erb
155
164
  - app/views/active_scaffold_overrides/update_row.js.erb
165
+ - config/brakeman.ignore
166
+ - config/brakeman.yml
167
+ - config/i18n-tasks.yml
156
168
  - config/locales/de.yml
157
169
  - config/locales/en.yml
158
170
  - config/locales/es.yml
@@ -248,10 +260,14 @@ files:
248
260
  - lib/active_scaffold/data_structures/action_link.rb
249
261
  - lib/active_scaffold/data_structures/action_links.rb
250
262
  - lib/active_scaffold/data_structures/actions.rb
263
+ - lib/active_scaffold/data_structures/association.rb
264
+ - lib/active_scaffold/data_structures/association/abstract.rb
265
+ - lib/active_scaffold/data_structures/association/active_mongoid.rb
266
+ - lib/active_scaffold/data_structures/association/active_record.rb
267
+ - lib/active_scaffold/data_structures/association/mongoid.rb
251
268
  - lib/active_scaffold/data_structures/bridge.rb
252
269
  - lib/active_scaffold/data_structures/column.rb
253
270
  - lib/active_scaffold/data_structures/columns.rb
254
- - lib/active_scaffold/data_structures/error_message.rb
255
271
  - lib/active_scaffold/data_structures/nested_info.rb
256
272
  - lib/active_scaffold/data_structures/set.rb
257
273
  - lib/active_scaffold/data_structures/sorting.rb
@@ -265,12 +281,12 @@ files:
265
281
  - lib/active_scaffold/extensions/localize.rb
266
282
  - lib/active_scaffold/extensions/name_option_for_datetime.rb
267
283
  - lib/active_scaffold/extensions/paginator_extensions.rb
268
- - lib/active_scaffold/extensions/reverse_associations.rb
269
284
  - lib/active_scaffold/extensions/routing_mapper.rb
270
285
  - lib/active_scaffold/extensions/to_label.rb
271
286
  - lib/active_scaffold/extensions/unsaved_associated.rb
272
287
  - lib/active_scaffold/extensions/unsaved_record.rb
273
288
  - lib/active_scaffold/finder.rb
289
+ - lib/active_scaffold/helpers/action_link_helpers.rb
274
290
  - lib/active_scaffold/helpers/association_helpers.rb
275
291
  - lib/active_scaffold/helpers/controller_helpers.rb
276
292
  - lib/active_scaffold/helpers/form_column_helpers.rb
@@ -282,24 +298,26 @@ files:
282
298
  - lib/active_scaffold/helpers/show_column_helpers.rb
283
299
  - lib/active_scaffold/helpers/view_helpers.rb
284
300
  - lib/active_scaffold/marked_model.rb
301
+ - lib/active_scaffold/orm_checks.rb
285
302
  - lib/active_scaffold/paginator.rb
286
303
  - lib/active_scaffold/responds_to_parent.rb
287
304
  - lib/active_scaffold/tableless.rb
288
305
  - lib/active_scaffold/version.rb
289
- - lib/generators/active_scaffold/USAGE
290
- - lib/generators/active_scaffold/active_scaffold_generator.rb
291
- - lib/generators/active_scaffold_controller/USAGE
292
- - lib/generators/active_scaffold_controller/active_scaffold_controller_generator.rb
293
- - lib/generators/active_scaffold_controller/templates/controller.rb
294
- - lib/generators/active_scaffold_controller/templates/helper.rb
306
+ - lib/generators/active_scaffold/controller_generator.rb
307
+ - lib/generators/active_scaffold/install_generator.rb
308
+ - lib/generators/active_scaffold/resource_generator.rb
309
+ - lib/generators/templates/controller.rb
310
+ - lib/generators/templates/helper.rb
295
311
  - lib/tasks/brakeman.rake
296
312
  - public/blank.html
297
313
  - shoulda_macros/macros.rb
314
+ - test/active_scaffold_config_mock.rb
298
315
  - test/bridges/bridge_test.rb
299
316
  - test/bridges/date_picker_test.rb
300
317
  - test/bridges/paper_trail_test.rb
301
318
  - test/bridges/paperclip_test.rb
302
319
  - test/bridges/tiny_mce_test.rb
320
+ - test/class_with_finder.rb
303
321
  - test/company.rb
304
322
  - test/config/base_test.rb
305
323
  - test/config/core_test.rb
@@ -320,7 +338,6 @@ files:
320
338
  - test/data_structures/association_column_test.rb
321
339
  - test/data_structures/column_test.rb
322
340
  - test/data_structures/columns_test.rb
323
- - test/data_structures/error_message_test.rb
324
341
  - test/data_structures/set_test.rb
325
342
  - test/data_structures/sorting_test.rb
326
343
  - test/data_structures/standard_column_test.rb
@@ -340,6 +357,7 @@ files:
340
357
  - test/misc/convert_numbers_format_test.rb
341
358
  - test/misc/finder_test.rb
342
359
  - test/misc/lang_test.rb
360
+ - test/misc/parse_datetime_test.rb
343
361
  - test/misc/render_test.rb
344
362
  - test/misc/tableless_test.rb
345
363
  - test/mock_app/.gitignore
@@ -398,7 +416,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
398
416
  requirements:
399
417
  - - ">="
400
418
  - !ruby/object:Gem::Version
401
- version: '1.9'
419
+ version: '2.0'
402
420
  required_rubygems_version: !ruby/object:Gem::Requirement
403
421
  requirements:
404
422
  - - ">="
@@ -409,14 +427,15 @@ rubyforge_project:
409
427
  rubygems_version: 2.6.10
410
428
  signing_key:
411
429
  specification_version: 4
412
- summary: Rails 3.2, 4.0, 4.1 and 4.2 versions of ActiveScaffold supporting prototype
413
- and jquery
430
+ summary: Rails 4.x and 5.x versions of ActiveScaffold supporting prototype and jquery
414
431
  test_files:
432
+ - test/active_scaffold_config_mock.rb
415
433
  - test/bridges/bridge_test.rb
416
434
  - test/bridges/date_picker_test.rb
417
435
  - test/bridges/paper_trail_test.rb
418
436
  - test/bridges/paperclip_test.rb
419
437
  - test/bridges/tiny_mce_test.rb
438
+ - test/class_with_finder.rb
420
439
  - test/company.rb
421
440
  - test/config/base_test.rb
422
441
  - test/config/core_test.rb
@@ -437,7 +456,6 @@ test_files:
437
456
  - test/data_structures/association_column_test.rb
438
457
  - test/data_structures/column_test.rb
439
458
  - test/data_structures/columns_test.rb
440
- - test/data_structures/error_message_test.rb
441
459
  - test/data_structures/set_test.rb
442
460
  - test/data_structures/sorting_test.rb
443
461
  - test/data_structures/standard_column_test.rb
@@ -457,6 +475,7 @@ test_files:
457
475
  - test/misc/convert_numbers_format_test.rb
458
476
  - test/misc/finder_test.rb
459
477
  - test/misc/lang_test.rb
478
+ - test/misc/parse_datetime_test.rb
460
479
  - test/misc/render_test.rb
461
480
  - test/misc/tableless_test.rb
462
481
  - test/mock_app/.gitignore
@@ -1,22 +0,0 @@
1
- module ActiveScaffold::DataStructures
2
- # Wrapper for error strings so that they may be exported using to_xxx
3
- class ErrorMessage
4
- def initialize(error)
5
- @error = error
6
- end
7
-
8
- def public_attributes
9
- {:error => @error}
10
- end
11
-
12
- def to_xml
13
- public_attributes.to_xml(:root => 'errors')
14
- end
15
-
16
- delegate :to_yaml, :to => :public_attributes
17
-
18
- def to_s
19
- @error
20
- end
21
- end
22
- end
@@ -1,119 +0,0 @@
1
- module ActiveScaffold
2
- module ReverseAssociation
3
- module CommonMethods
4
- def self.included(base)
5
- base.class_eval { attr_writer :reverse }
6
- base.alias_method_chain :inverse_of, :autodetect
7
- end
8
-
9
- def inverse_of_with_autodetect
10
- inverse_of_without_autodetect || autodetect_inverse
11
- end
12
-
13
- def inverse_for?(klass)
14
- inverse_class = inverse_of.try(:active_record)
15
- inverse_class.present? && (inverse_class == klass || klass < inverse_class)
16
- end
17
-
18
- def reverse(klass = nil)
19
- unless defined? @reverse # rubocop:disable Style/IfUnlessModifier
20
- @reverse ||= inverse_of.try(:name)
21
- end
22
- @reverse || (autodetect_inverse(klass).try(:name) unless klass.nil?)
23
- end
24
-
25
- def autodetect_inverse(klass = nil)
26
- return nil if klass.nil? && options[:polymorphic]
27
- klass ||= self.klass
28
-
29
- # name-based matching (association name vs self.active_record.to_s)
30
- matches = reverse_matches(klass)
31
- if matches.length > 1
32
- matches.find_all do |assoc|
33
- active_record.to_s.underscore.include? assoc.name.to_s.pluralize.singularize
34
- end
35
- end
36
-
37
- matches.first
38
- end
39
- end
40
-
41
- module AssociationReflection
42
- def self.included(base)
43
- base.send :include, ActiveScaffold::ReverseAssociation::CommonMethods
44
- end
45
-
46
- protected
47
-
48
- def reverse_matches(klass)
49
- reverse_matches = []
50
-
51
- # collect associations that point back to this model and use the same foreign_key
52
- klass.reflect_on_all_associations.each do |assoc|
53
- next if assoc == self
54
- # skip over has_many :through associations
55
- next if assoc.options[:through]
56
- next unless assoc.options[:polymorphic] || assoc.class_name == active_record.name
57
-
58
- case [assoc.macro, macro].find_all { |m| m == :has_and_belongs_to_many }.length
59
- # if both are a habtm, then match them based on the join table
60
- when 2
61
- next unless assoc.options[:join_table] == options[:join_table]
62
-
63
- # if only one is a habtm, they do not match
64
- when 1
65
- next
66
-
67
- # otherwise, match them based on the foreign_key
68
- when 0
69
- if assoc.foreign_key.is_a? Array
70
- next unless assoc.foreign_key == foreign_key
71
- else
72
- next unless assoc.foreign_key.to_sym == foreign_key.to_sym
73
- end
74
- end
75
-
76
- reverse_matches << assoc
77
- end
78
- reverse_matches
79
- end
80
- end
81
-
82
- module ThroughReflection
83
- def self.included(base)
84
- base.send :include, ActiveScaffold::ReverseAssociation::CommonMethods unless base < ActiveScaffold::ReverseAssociation::CommonMethods
85
- end
86
-
87
- protected
88
-
89
- def reverse_matches(klass)
90
- reverse_matches = []
91
-
92
- # collect associations that point back to this model and use the same foreign_key
93
- klass.reflect_on_all_associations.each do |assoc|
94
- next if assoc == self
95
- # only iterate has_many :through associations
96
- next unless assoc.options[:through]
97
- next unless assoc.class_name == active_record.name
98
- next unless assoc.through_reflection.class_name == through_reflection.class_name
99
-
100
- reverse_matches << assoc
101
- end
102
- reverse_matches
103
- end
104
- end
105
-
106
- module ThroughAssociation
107
- # NOTE - for now, we're only supporting inverse setting back onto has_one associations.
108
- # TODO remove when rails fixes this and old versions are not supported
109
- def invertible_for?(record)
110
- inverse = super
111
- inverse && !inverse.collection?
112
- end
113
- end
114
- end
115
- end
116
-
117
- ActiveRecord::Reflection::AssociationReflection.send :include, ActiveScaffold::ReverseAssociation::AssociationReflection
118
- ActiveRecord::Reflection::ThroughReflection.send :include, ActiveScaffold::ReverseAssociation::ThroughReflection
119
- ActiveRecord::Associations::ThroughAssociation.send :include, ActiveScaffold::ReverseAssociation::ThroughAssociation