Class: Avo::PhotoObject
- Inherits:
-
Object
- Object
- Avo::PhotoObject
- Defined in:
- lib/avo/photo_object.rb
Instance Method Summary collapse
-
#initialize(resource:) ⇒ PhotoObject
constructor
A new instance of PhotoObject.
- #options ⇒ Object
- #present? ⇒ Boolean
- #value ⇒ Object
- #visible_in_current_view? ⇒ Boolean
- #visible_on ⇒ Object
- #visible_on_edit? ⇒ Boolean
- #visible_on_index? ⇒ Boolean
- #visible_on_new? ⇒ Boolean
- #visible_on_show? ⇒ Boolean
Constructor Details
#initialize(resource:) ⇒ PhotoObject
Returns a new instance of PhotoObject.
4 5 6 |
# File 'lib/avo/photo_object.rb', line 4 def initialize(resource:) @resource = resource end |
Instance Method Details
#options ⇒ Object
11 12 13 14 15 16 17 |
# File 'lib/avo/photo_object.rb', line 11 def @options ||= if @resource.class&.send(key).present? @resource.class&.send(key) else {} end end |
#present? ⇒ Boolean
48 49 50 |
# File 'lib/avo/photo_object.rb', line 48 def present? value.present? end |
#value ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/avo/photo_object.rb', line 19 def value return unless .fetch(:source, nil).present? if [:source].is_a?(Symbol) return unless record.present? return if record.new_record? value = record.send([:source]) # On edit view, prefer the persisted attachment to avoid rendering # temporary/unpersisted direct-upload values after a failed update. if value.instance_of?(ActiveStorage::Attached::One) && view&.edit? value = @resource.find_record(record.to_param).send([:source]) end value elsif [:source].respond_to?(:call) Avo::ExecutionContext.new(target: [:source], record:, resource: @resource, view:).handle end end |
#visible_in_current_view? ⇒ Boolean
44 45 46 |
# File 'lib/avo/photo_object.rb', line 44 def visible_in_current_view? send(:"visible_on_#{view}?") end |
#visible_on ⇒ Object
40 41 42 |
# File 'lib/avo/photo_object.rb', line 40 def visible_on @visible_on ||= Array.wrap([:visible_on] || [:show, :forms]) end |
#visible_on_edit? ⇒ Boolean
56 |
# File 'lib/avo/photo_object.rb', line 56 def visible_on_edit? = visible_in_either?(:edit, :forms) |
#visible_on_index? ⇒ Boolean
52 |
# File 'lib/avo/photo_object.rb', line 52 def visible_on_index? = visible_in_either?(:index, :display) |
#visible_on_new? ⇒ Boolean
58 |
# File 'lib/avo/photo_object.rb', line 58 def visible_on_new? = visible_in_either?(:new, :forms) |
#visible_on_show? ⇒ Boolean
54 |
# File 'lib/avo/photo_object.rb', line 54 def visible_on_show? = visible_in_either?(:show, :display) |