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
@@ -1,41 +1,41 @@
1
1
  module ActiveScaffold
2
2
  module MarkedModel
3
3
  # This is a module aimed at making the make session_stored marked_records available to ActiveRecord models
4
-
4
+
5
5
  def self.included(base)
6
6
  base.class_eval do
7
7
  extend ClassMethods
8
- scope :as_marked, lambda { where(primary_key => marked_record_ids) }
8
+ scope :as_marked, -> { where(primary_key => marked_record_ids) }
9
9
  end
10
10
  end
11
-
11
+
12
12
  def as_marked
13
- marked_records.include?(self.id.to_s)
13
+ marked_records.include?(id.to_s)
14
14
  end
15
-
15
+
16
16
  def as_marked=(value)
17
17
  value = [true, 'true', 1, '1', 'T', 't'].include?(value.class == String ? value.downcase : value)
18
18
  if value == true
19
- marked_records[self.id.to_s] = true if !as_marked
19
+ marked_records[id.to_s] = true unless as_marked
20
20
  else
21
- marked_records.delete(self.id.to_s)
21
+ marked_records.delete(id.to_s)
22
22
  end
23
23
  end
24
-
24
+
25
25
  module ClassMethods
26
26
  def marked_records
27
27
  Thread.current[:marked_records] ||= {}
28
28
  end
29
29
 
30
30
  def marked_records=(marked)
31
- Thread.current[:marked_records] = marked
31
+ Thread.current[:marked_records] = marked
32
32
  end
33
33
 
34
34
  def marked_record_ids
35
35
  marked_records.keys
36
36
  end
37
37
  end
38
-
38
+
39
39
  # Instance-level access to the marked_records
40
40
  def marked_records
41
41
  self.class.marked_records
@@ -1,123 +1,121 @@
1
1
  require 'forwardable'
2
2
 
3
3
  class Paginator
4
-
5
4
  VERSION = '1.0.9'
6
5
 
7
6
  class ArgumentError < ::ArgumentError; end
8
7
  class MissingCountError < ArgumentError; end
9
- class MissingSelectError < ArgumentError; end
10
-
11
- attr_reader :per_page, :count
12
-
8
+ class MissingSelectError < ArgumentError; end
9
+
10
+ attr_reader :per_page, :count
11
+
13
12
  # Instantiate a new Paginator object
14
13
  #
15
14
  # Provide:
16
15
  # * A total count of the number of objects to paginate
17
16
  # * The number of objects in each page
18
17
  # * A block that returns the array of items
19
- # * The block is passed the item offset
18
+ # * The block is passed the item offset
20
19
  # (and the number of items to show per page, for
21
20
  # convenience, if the arity is 2)
22
21
  def initialize(count, per_page, &select)
23
22
  @count, @per_page = count, per_page
24
23
  unless select
25
- raise MissingSelectError, "Must provide block to select data for each page"
24
+ raise MissingSelectError, 'Must provide block to select data for each page'
26
25
  end
27
26
  @select = select
28
27
  end
29
-
28
+
30
29
  # Total number of pages
31
30
  def number_of_pages
32
- (@count / @per_page).to_i + (@count % @per_page > 0 ? 1 : 0)
31
+ (@count / @per_page).to_i + (@count % @per_page > 0 ? 1 : 0)
33
32
  end
34
-
33
+
35
34
  # First page object
36
35
  def first
37
36
  page 1
38
37
  end
39
-
38
+
40
39
  # Last page object
41
40
  def last
42
41
  page number_of_pages
43
42
  end
44
-
43
+
45
44
  # Iterate through pages
46
45
  def each
47
- each_with_index do |item, index|
46
+ each_with_index do |item, _|
48
47
  yield item
49
48
  end
50
49
  end
51
-
50
+
52
51
  # Iterate through pages with indices
53
52
  def each_with_index
54
53
  1.upto(number_of_pages) do |number|
55
54
  yield(page(number), number - 1)
56
55
  end
57
56
  end
58
-
57
+
59
58
  # Retrieve page object by number
60
59
  def page(number)
61
60
  number = (n = number.to_i) > 0 ? n : 1
62
- Page.new(self, number, lambda {
61
+ Page.new(self, number) do
63
62
  offset = (number - 1) * @per_page
64
63
  args = [offset]
65
64
  args << @per_page if @select.arity == 2
66
65
  @select.call(*args)
67
- })
66
+ end
68
67
  end
69
-
68
+
70
69
  # Page object
71
70
  #
72
71
  # Retrieves items for a page and provides metadata about the position
73
72
  # of the page in the paginator
74
73
  class Page
75
-
76
74
  extend Forwardable
77
75
  def_delegator :@pager, :first, :first
78
76
  def_delegator :@pager, :last, :last
79
77
  def_delegator :items, :each
80
- def_delegator :items, :each_with_index
81
-
78
+ def_delegator :items, :each_with_index
79
+
82
80
  attr_reader :number, :pager
83
-
84
- def initialize(pager, number, select) #:nodoc:
81
+
82
+ def initialize(pager, number, &select) #:nodoc:
85
83
  @pager, @number = pager, number
86
84
  @offset = (number - 1) * pager.per_page
87
85
  @select = select
88
86
  end
89
-
87
+
90
88
  # Retrieve the items for this page
91
89
  # * Caches
92
90
  def items
93
91
  @items ||= @select.call
94
92
  end
95
-
93
+
96
94
  # Checks to see if there's a page before this one
97
95
  def prev?
98
96
  @number > 1
99
97
  end
100
-
98
+
101
99
  # Get previous page (if possible)
102
100
  def prev
103
101
  @pager.page(@number - 1) if prev?
104
102
  end
105
-
103
+
106
104
  # Checks to see if there's a page after this one
107
105
  def next?
108
106
  @number < @pager.number_of_pages
109
107
  end
110
-
108
+
111
109
  # Get next page (if possible)
112
110
  def next
113
111
  @pager.page(@number + 1) if next?
114
112
  end
115
-
113
+
116
114
  # The "item number" of the first item on this page
117
115
  def first_item_number
118
116
  1 + @offset
119
117
  end
120
-
118
+
121
119
  # The "item number" of the last item on this page
122
120
  def last_item_number
123
121
  if next?
@@ -126,11 +124,9 @@ class Paginator
126
124
  @pager.count
127
125
  end
128
126
  end
129
-
127
+
130
128
  def ==(other) #:nodoc:
131
- @pager == other.pager && self.number == other.number
129
+ @pager == other.pager && number == other.number
132
130
  end
133
-
134
131
  end
135
-
136
132
  end
@@ -6,39 +6,38 @@ module ActiveScaffold
6
6
  # to use IFRAME base RPC.
7
7
  def responds_to_parent(&block)
8
8
  yield
9
+ return unless performed?
9
10
 
10
- if performed?
11
- # Either pull out a redirect or the request body
12
- script = if response.headers['Location']
13
- "document.location.href = '#{self.class.helpers.escape_javascript location.to_s}'"
14
- else
15
- response.body || ''
16
- end
11
+ # Either pull out a redirect or the request body
12
+ script = if response.headers['Location']
13
+ "document.location.href = '#{self.class.helpers.escape_javascript location.to_s}'"
14
+ else
15
+ response.body || ''
16
+ end
17
17
 
18
- # Eval in parent scope and replace document location of this frame
19
- # so back button doesn't replay action on targeted forms
20
- # loc = document.location to be set after parent is updated for IE
21
- # with(window.parent) - pull in variables from parent window
22
- # setTimeout - scope the execution in the windows parent for safari
23
- # window.eval - legal eval for Opera
24
- script = "<html><body><script type='text/javascript' charset='utf-8'>
25
- var loc = document.location;
26
- with(window.parent) { setTimeout(function() { window.eval('#{self.class.helpers.escape_javascript script}'); window.loc && loc.replace('about:blank'); }, 1) }
27
- </script></body></html>"
18
+ # Eval in parent scope and replace document location of this frame
19
+ # so back button doesn't replay action on targeted forms
20
+ # loc = document.location to be set after parent is updated for IE
21
+ # with(window.parent) - pull in variables from parent window
22
+ # setTimeout - scope the execution in the windows parent for safari
23
+ # window.eval - legal eval for Opera
24
+ script = "<html><body><script type='text/javascript' charset='utf-8'>
25
+ var loc = document.location;
26
+ with(window.parent) { setTimeout(function() { window.eval('#{self.class.helpers.escape_javascript script}'); window.loc && loc.replace('about:blank'); }, 1) }
27
+ </script></body></html>"
28
28
 
29
- # We're returning HTML instead of JS or XML now
30
- response.headers['Content-Type'] = 'text/html; charset=UTF-8'
29
+ # We're returning HTML instead of JS or XML now
30
+ response.headers['Content-Type'] = 'text/html; charset=UTF-8'
31
31
 
32
- # Clear out the previous render to prevent double render and then render
33
- if respond_to?(:erase_results, true)
34
- erase_results
35
- else
36
- instance_variable_set(:@_response_body, nil)
37
- end
38
-
39
- render :text => script
32
+ # Clear out the previous render to prevent double render and then render
33
+ if respond_to?(:erase_results, true)
34
+ erase_results
35
+ else
36
+ instance_variable_set(:@_response_body, nil)
40
37
  end
38
+
39
+ render :text => script
41
40
  end
42
- alias respond_to_parent responds_to_parent
41
+ alias_method :respond_to_parent, :responds_to_parent
43
42
  end
44
43
  end
@@ -16,7 +16,7 @@ class ActiveScaffold::Tableless < ActiveRecord::Base
16
16
  end
17
17
  end
18
18
  end
19
-
19
+
20
20
  class Connection < ActiveRecord::ConnectionAdapters::AbstractAdapter
21
21
  attr_reader :klass
22
22
  def initialize(klass, *args)
@@ -44,7 +44,7 @@ class ActiveScaffold::Tableless < ActiveRecord::Base
44
44
  @association_scope ||= overrided_association_scope if klass < ActiveScaffold::Tableless
45
45
  association_scope_without_tableless
46
46
  end
47
-
47
+
48
48
  def overrided_association_scope
49
49
  if AssociationScope.respond_to?(:scope) # rails >= 4.1
50
50
  AssociationScope.scope(self, klass.connection)
@@ -61,7 +61,7 @@ class ActiveScaffold::Tableless < ActiveRecord::Base
61
61
  end
62
62
  end
63
63
  end
64
-
64
+
65
65
  module CollectionAssociation
66
66
  def self.included(base)
67
67
  base.alias_method_chain :get_records, :tableless if Rails.version >= '4.2'
@@ -70,7 +70,7 @@ class ActiveScaffold::Tableless < ActiveRecord::Base
70
70
  klass < ActiveScaffold::Tableless ? scope.to_a : get_records_without_tableless
71
71
  end
72
72
  end
73
-
73
+
74
74
  module SingularAssociation
75
75
  def self.included(base)
76
76
  base.alias_method_chain :get_records, :tableless if Rails.version >= '4.2'
@@ -81,10 +81,8 @@ class ActiveScaffold::Tableless < ActiveRecord::Base
81
81
  end
82
82
 
83
83
  module RelationExtension
84
- def conditions
85
- @conditions
86
- end
87
-
84
+ attr_reader :conditions
85
+
88
86
  def initialize(klass, table)
89
87
  super
90
88
  @conditions ||= []
@@ -120,7 +118,7 @@ class ActiveScaffold::Tableless < ActiveRecord::Base
120
118
  end
121
119
 
122
120
  def find_one(id)
123
- @klass.find_one(id, self) or raise ActiveRecord::RecordNotFound
121
+ @klass.find_one(id, self) || raise(ActiveRecord::RecordNotFound)
124
122
  end
125
123
 
126
124
  def execute_simple_calculation(operation, column_name, distinct)
@@ -133,6 +131,7 @@ class ActiveScaffold::Tableless < ActiveRecord::Base
133
131
  end
134
132
  class << self
135
133
  private
134
+
136
135
  def relation
137
136
  ActiveScaffold::Tableless::Relation.new(self, arel_table)
138
137
  end
@@ -151,7 +150,7 @@ class ActiveScaffold::Tableless < ActiveRecord::Base
151
150
  unless Rails.version < '4.2'
152
151
  def self.columns_hash
153
152
  if self < ActiveScaffold::Tableless
154
- @columns_hash ||= Hash[self.columns.map { |c| [c.name, c] }]
153
+ @columns_hash ||= Hash[columns.map { |c| [c.name, c] }]
155
154
  else
156
155
  super
157
156
  end
@@ -161,17 +160,23 @@ class ActiveScaffold::Tableless < ActiveRecord::Base
161
160
  end
162
161
  end
163
162
 
164
- def self.columns; @columns ||= []; end
165
- def self.table_name; @table_name ||= ActiveModel::Naming.plural(self); end
166
- def self.table_exists?; true; end
163
+ def self.columns
164
+ @columns ||= []
165
+ end
166
+ def self.table_name
167
+ @table_name ||= ActiveModel::Naming.plural(self)
168
+ end
169
+ def self.table_exists?
170
+ true
171
+ end
167
172
  self.abstract_class = true
168
-
173
+
169
174
  def self.connection
170
175
  @connection ||= Connection.new(self)
171
176
  end
172
177
 
173
178
  def self.column(name, sql_type = nil, options = {})
174
- column = Column.new(name.to_s, options[:default], sql_type.to_s, options.has_key?(:null) ? options[:null] : true)
179
+ column = Column.new(name.to_s, options[:default], sql_type.to_s, options.key?(:null) ? options[:null] : true)
175
180
  column.tap { columns << column }
176
181
  end
177
182
 
@@ -2,7 +2,7 @@ module ActiveScaffold
2
2
  module Version
3
3
  MAJOR = 3
4
4
  MINOR = 4
5
- PATCH = 17
5
+ PATCH = 18
6
6
 
7
7
  STRING = [MAJOR, MINOR, PATCH].compact.join('.')
8
8
  end
@@ -1,21 +1,21 @@
1
1
  require 'rails/generators/rails/resource/resource_generator'
2
- #require 'generators/active_scaffold_controller/active_scaffold_controller_generator'
2
+ # require 'generators/active_scaffold_controller/active_scaffold_controller_generator'
3
3
 
4
4
  module Rails
5
5
  module Generators
6
- class ActiveScaffoldGenerator < ResourceGenerator #metagenerator
6
+ class ActiveScaffoldGenerator < ResourceGenerator # metagenerator
7
7
  remove_hook_for :resource_controller
8
8
  remove_hook_for :resource_route
9
9
  remove_class_option :actions
10
-
10
+
11
11
  def add_resource_route
12
- route_config = class_path.collect{|namespace| "namespace :#{namespace} do " }.join(" ")
12
+ route_config = class_path.collect { |namespace| "namespace :#{namespace} do " }.join(' ')
13
13
  route_config << "resources :#{file_name.pluralize} do as_routes end"
14
- route_config << " end" * class_path.size
14
+ route_config << ' end' * class_path.size
15
15
  route route_config
16
- end
17
-
18
- invoke "active_scaffold_controller"
16
+ end
17
+
18
+ invoke 'active_scaffold_controller'
19
19
  end
20
20
  end
21
21
  end
@@ -1,18 +1,18 @@
1
- #require 'rails/generators/rails/scaffold_controller/scaffold_controller_generator'
1
+ # require 'rails/generators/rails/scaffold_controller/scaffold_controller_generator'
2
2
 
3
3
  module Rails
4
4
  module Generators
5
- class ActiveScaffoldControllerGenerator < NamedBase #metagenerator
5
+ class ActiveScaffoldControllerGenerator < NamedBase # metagenerator
6
6
  include ResourceHelpers
7
7
 
8
8
  def self.source_root
9
- @source_root ||= File.join(File.dirname(__FILE__), 'templates')
9
+ @source_root ||= File.join(File.dirname(__FILE__), 'templates')
10
10
  end
11
11
 
12
- check_class_collision :suffix => "Controller"
12
+ check_class_collision :suffix => 'Controller'
13
13
 
14
- class_option :orm, :banner => "NAME", :type => :string, :required => true,
15
- :desc => "ORM to generate the controller for"
14
+ class_option :orm, :banner => 'NAME', :type => :string, :required => true,
15
+ :desc => 'ORM to generate the controller for'
16
16
 
17
17
  def create_controller_files
18
18
  template 'controller.rb', File.join('app/controllers', class_path, "#{controller_file_name}_controller.rb")
@@ -22,8 +22,8 @@ module Rails
22
22
  hook_for :test_framework, :as => :scaffold
23
23
 
24
24
  def create_view_root_folder
25
- empty_directory File.join("app/views", controller_file_path)
26
- end
25
+ empty_directory File.join('app/views', controller_file_path)
26
+ end
27
27
  end
28
28
  end
29
- end
29
+ end