Class: Rating
- Inherits:
-
Object
- Object
- Rating
- Includes:
- ActiveModel::Serialization
- Defined in:
- app/models/rating.rb
Overview
Read-only view of a Reviews.io product review summary (average stars,
review count, individual reviews) keyed off the underlying object's
cache key so the public site can render star badges without coupling
the view to the upstream API shape.
Instance Attribute Summary collapse
- #object ⇒ ActiveModel::Model readonly
Delegated Instance Attributes collapse
-
#cache_key ⇒ Object
Alias for Object#cache_key.
Instance Method Summary collapse
- #avg_stars ⇒ Numeric?
-
#initialize(product_review_info, object = nil) ⇒ Rating
constructor
A new instance of Rating.
- #product_reviews ⇒ Array?
- #review_count ⇒ Integer?
Constructor Details
#initialize(product_review_info, object = nil) ⇒ Rating
Returns a new instance of Rating.
16 17 18 19 |
# File 'app/models/rating.rb', line 16 def initialize(product_review_info, object = nil) @product_review_info = product_review_info @object = object end |
Instance Attribute Details
#object ⇒ ActiveModel::Model (readonly)
10 11 12 |
# File 'app/models/rating.rb', line 10 def object @object end |
Instance Method Details
#avg_stars ⇒ Numeric?
22 23 24 |
# File 'app/models/rating.rb', line 22 def avg_stars @product_review_info[:star_avg] end |
#cache_key ⇒ Object
Alias for Object#cache_key
12 |
# File 'app/models/rating.rb', line 12 delegate :cache_key, to: :object |
#product_reviews ⇒ Array?
32 33 34 |
# File 'app/models/rating.rb', line 32 def product_reviews @product_review_info[:reviews] end |
#review_count ⇒ Integer?
27 28 29 |
# File 'app/models/rating.rb', line 27 def review_count @product_review_info[:num] end |