Class: MegaBar::ModelDisplay
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- MegaBar::ModelDisplay
- Defined in:
- app/models/mega_bar/model_display.rb
Instance Attribute Summary collapse
-
#authorized ⇒ Object
Returns the value of attribute authorized.
-
#edit_field_display ⇒ Object
Returns the value of attribute edit_field_display.
-
#index_field_display ⇒ Object
Returns the value of attribute index_field_display.
-
#new_field_display ⇒ Object
Returns the value of attribute new_field_display.
-
#show_field_display ⇒ Object
Returns the value of attribute show_field_display.
Class Method Summary collapse
-
.deterministic_id(block_id, model_id, action, series = nil) ⇒ Object
Deterministic ID generation for ModelDisplays ID range: 2000-2999.
Instance Method Summary collapse
Instance Attribute Details
#authorized ⇒ Object
Returns the value of attribute authorized.
8 9 10 |
# File 'app/models/mega_bar/model_display.rb', line 8 def @authorized end |
#edit_field_display ⇒ Object
Returns the value of attribute edit_field_display.
8 9 10 |
# File 'app/models/mega_bar/model_display.rb', line 8 def edit_field_display @edit_field_display end |
#index_field_display ⇒ Object
Returns the value of attribute index_field_display.
8 9 10 |
# File 'app/models/mega_bar/model_display.rb', line 8 def index_field_display @index_field_display end |
#new_field_display ⇒ Object
Returns the value of attribute new_field_display.
8 9 10 |
# File 'app/models/mega_bar/model_display.rb', line 8 def new_field_display @new_field_display end |
#show_field_display ⇒ Object
Returns the value of attribute show_field_display.
8 9 10 |
# File 'app/models/mega_bar/model_display.rb', line 8 def show_field_display @show_field_display end |
Class Method Details
.deterministic_id(block_id, model_id, action, series = nil) ⇒ Object
Deterministic ID generation for ModelDisplays ID range: 2000-2999
17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'app/models/mega_bar/model_display.rb', line 17 def self.deterministic_id(block_id, model_id, action, series = nil) # Include series to make model displays unique per series identifier = series ? "#{block_id}_#{model_id}_#{action}_#{series}" : "#{block_id}_#{model_id}_#{action}" hash = Digest::MD5.hexdigest(identifier) base_id = 2000 + (hash.to_i(16) % 1000) # Check for collisions and increment if needed while MegaBar::ModelDisplay.exists?(id: base_id) base_id += 1 break if base_id >= 3000 # Don't overflow into next range end base_id end |
Instance Method Details
#make_collection_settings ⇒ Object
47 48 49 |
# File 'app/models/mega_bar/model_display.rb', line 47 def make_collection_settings ModelDisplayCollection.create(model_display_id: self.id) if self.collection_or_member == 'collection' end |
#make_field_displays ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'app/models/mega_bar/model_display.rb', line 51 def make_field_displays actions = [] fields = Field.by_model(self.model_id) fields.each do | field | case self.action when 'new' actions << {format: field.default_data_format, field_id: field.id, header: field.field.humanize} if !FieldDisplay.by_model_display_id(self.id).by_fields(field.id).present? when 'index' actions << {format: 'textread', field_id: field.id, header: field.field.humanize} if !FieldDisplay.by_model_display_id(self.id).by_fields(field.id).present? when 'show' actions << {format: 'textread', field_id: field.id, header: field.field.humanize} if !FieldDisplay.by_model_display_id(self.id).by_fields(field.id).present? when 'edit' actions << {format: field.default_data_format_edit, field_id: field.id, header: field.field.humanize} if !FieldDisplay.by_model_display_id(self.id).by_fields(field.id).present? else actions << {format: 'textread', field_id: field.id, header: field.field.humanize} if !FieldDisplay.by_model_display_id(self.id).by_fields(field.id).present? end end actions.each do | action | FieldDisplay.create(model_display_id: self.id, :field_id=>action[:field_id], :format=>action[:format], :header=>action[:header]) end end |