Class: Testimonials::Testimonial
- Inherits:
-
ApplicationRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- Testimonials::Testimonial
- Defined in:
- app/models/testimonials/testimonial.rb
Overview
One testimonial — text or video. Author attribution is optional and stored as loose fields (no foreign key to the host's user table) so the model is portable across apps with different user models.
Constant Summary collapse
- KINDS =
%w[text video].freeze
- STATUSES =
%w[pending approved archived].freeze
- SOURCES =
%w[widget page nps].freeze
Instance Method Summary collapse
- #avatar_attached? ⇒ Boolean
- #display_name ⇒ Object
-
#quote ⇒ Object
The curated pull-quote when the admin picked one, else the full text.
- #video? ⇒ Boolean
- #video_attached? ⇒ Boolean
Instance Method Details
#avatar_attached? ⇒ Boolean
40 41 42 |
# File 'app/models/testimonials/testimonial.rb', line 40 def avatar_attached? respond_to?(:avatar) && avatar.attached? end |
#display_name ⇒ Object
44 45 46 |
# File 'app/models/testimonials/testimonial.rb', line 44 def display_name name.presence || (.present? ? "##{}" : nil) end |
#quote ⇒ Object
The curated pull-quote when the admin picked one, else the full text.
49 50 51 |
# File 'app/models/testimonials/testimonial.rb', line 49 def quote best_line.presence || body end |
#video? ⇒ Boolean
34 |
# File 'app/models/testimonials/testimonial.rb', line 34 def video? = kind == 'video' |
#video_attached? ⇒ Boolean
36 37 38 |
# File 'app/models/testimonials/testimonial.rb', line 36 def video_attached? respond_to?(:video_file) && video_file.attached? end |