Class: Spree::Admin::Engine::TablesEnvironment
- Inherits:
-
Object
- Object
- Spree::Admin::Engine::TablesEnvironment
- Defined in:
- lib/spree/admin/engine.rb
Instance Method Summary collapse
-
#get(name) ⇒ Spree::Admin::Table
Get a registered table.
-
#initialize ⇒ TablesEnvironment
constructor
A new instance of TablesEnvironment.
-
#method_missing(method_name, *args) ⇒ Object
Define accessor methods for registered tables.
-
#register(name, model_class: nil, search_param: :name_cont, search_placeholder: nil, row_actions: false, row_actions_edit: true, row_actions_delete: false, new_resource: true, date_range_param: nil, date_range_label: nil, link_to_action: :edit) ⇒ Spree::Admin::Table
Register a new table.
-
#registered?(name) ⇒ Boolean
Check if a table is registered.
-
#registries ⇒ Array<Symbol>
List all registered tables.
- #respond_to_missing?(method_name, include_private = false) ⇒ Boolean
Constructor Details
#initialize ⇒ TablesEnvironment
Returns a new instance of TablesEnvironment.
188 189 190 |
# File 'lib/spree/admin/engine.rb', line 188 def initialize @registries = {} end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method_name, *args) ⇒ Object
Define accessor methods for registered tables
246 247 248 249 250 251 252 |
# File 'lib/spree/admin/engine.rb', line 246 def method_missing(method_name, *args) if method_name.to_s.end_with?('=') super else get(method_name) end end |
Instance Method Details
#get(name) ⇒ Spree::Admin::Table
Get a registered table
227 228 229 230 |
# File 'lib/spree/admin/engine.rb', line 227 def get(name) name = name.to_sym @registries[name] || raise(NoMethodError, "Table '#{name}' has not been registered. Use Spree.admin.tables.register(:#{name}) first.") end |
#register(name, model_class: nil, search_param: :name_cont, search_placeholder: nil, row_actions: false, row_actions_edit: true, row_actions_delete: false, new_resource: true, date_range_param: nil, date_range_label: nil, link_to_action: :edit) ⇒ Spree::Admin::Table
Register a new table
205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 |
# File 'lib/spree/admin/engine.rb', line 205 def register(name, model_class: nil, search_param: :name_cont, search_placeholder: nil, row_actions: false, row_actions_edit: true, row_actions_delete: false, new_resource: true, date_range_param: nil, date_range_label: nil, link_to_action: :edit) name = name.to_sym @registries[name] ||= Spree::Admin::Table.new( name, key: name, model_class: model_class, search_param: search_param, search_placeholder: search_placeholder, row_actions: row_actions, row_actions_edit: row_actions_edit, row_actions_delete: row_actions_delete, new_resource: new_resource, date_range_param: date_range_param, date_range_label: date_range_label, link_to_action: link_to_action ) end |
#registered?(name) ⇒ Boolean
Check if a table is registered
235 236 237 |
# File 'lib/spree/admin/engine.rb', line 235 def registered?(name) @registries.key?(name.to_sym) end |
#registries ⇒ Array<Symbol>
List all registered tables
241 242 243 |
# File 'lib/spree/admin/engine.rb', line 241 def registries @registries.keys end |
#respond_to_missing?(method_name, include_private = false) ⇒ Boolean
254 255 256 |
# File 'lib/spree/admin/engine.rb', line 254 def respond_to_missing?(method_name, include_private = false) method_name.to_s.end_with?('=') ? false : registered?(method_name) end |