Class: Jquard::Resource
- Inherits:
-
Object
- Object
- Jquard::Resource
- Defined in:
- lib/jquard/resource.rb
Class Attribute Summary collapse
- .model ⇒ Object
- .navigation_group ⇒ Object
- .navigation_icon ⇒ Object
- .navigation_label ⇒ Object
- .navigation_sort ⇒ Object
Class Method Summary collapse
- .build_form ⇒ Object
- .build_table ⇒ Object
- .form(schema) ⇒ Object
- .inherited(subclass) ⇒ Object
- .page_for(action) ⇒ Object
- .pages ⇒ Object
- .singular_label ⇒ Object
- .slug ⇒ Object
- .table(table) ⇒ Object
Class Attribute Details
.model ⇒ Object
11 12 13 |
# File 'lib/jquard/resource.rb', line 11 def model @model or raise Jquard::Error, "#{name} does not declare a model. Add `self.model = YourModel`." end |
.navigation_group ⇒ Object
60 61 62 |
# File 'lib/jquard/resource.rb', line 60 def @navigation_group end |
.navigation_icon ⇒ Object
52 53 54 |
# File 'lib/jquard/resource.rb', line 52 def @navigation_icon || "rectangle-stack" end |
.navigation_label ⇒ Object
56 57 58 |
# File 'lib/jquard/resource.rb', line 56 def @navigation_label || slug.titleize end |
.navigation_sort ⇒ Object
64 65 66 |
# File 'lib/jquard/resource.rb', line 64 def @navigation_sort || 0 end |
Class Method Details
.build_form ⇒ Object
31 32 33 |
# File 'lib/jquard/resource.rb', line 31 def build_form form(Jquard::Schemas::Schema.new).apply_default_fields(model) end |
.build_table ⇒ Object
23 24 25 |
# File 'lib/jquard/resource.rb', line 23 def build_table table(Jquard::Tables::Table.new).apply_default_columns(model) end |
.form(schema) ⇒ Object
27 28 29 |
# File 'lib/jquard/resource.rb', line 27 def form(schema) schema end |
.inherited(subclass) ⇒ Object
6 7 8 9 |
# File 'lib/jquard/resource.rb', line 6 def inherited(subclass) super Jquard.registry.register(subclass) if subclass.name end |
.page_for(action) ⇒ Object
39 40 41 42 43 44 45 46 |
# File 'lib/jquard/resource.rb', line 39 def page_for(action) defaults = { index: Jquard::Resources::Pages::ListRecords, create: Jquard::Resources::Pages::CreateRecord, edit: Jquard::Resources::Pages::EditRecord } (pages[action] || defaults.fetch(action)).new(resource: self) end |
.pages ⇒ Object
35 36 37 |
# File 'lib/jquard/resource.rb', line 35 def pages {} end |
.singular_label ⇒ Object
48 49 50 |
# File 'lib/jquard/resource.rb', line 48 def singular_label slug.singularize.titleize end |
.slug ⇒ Object
15 16 17 |
# File 'lib/jquard/resource.rb', line 15 def slug name.demodulize.delete_suffix("Resource").underscore.pluralize end |
.table(table) ⇒ Object
19 20 21 |
# File 'lib/jquard/resource.rb', line 19 def table(table) table end |