Class: KodiDedup::Media
- Inherits:
-
Array
- Object
- Array
- KodiDedup::Media
- Defined in:
- lib/kodi_dedup/classes/media.rb
Instance Attribute Summary collapse
-
#group_by_proc ⇒ Object
readonly
Returns the value of attribute group_by_proc.
-
#singular_class ⇒ Object
readonly
Returns the value of attribute singular_class.
Instance Method Summary collapse
- #grouped ⇒ Object
-
#initialize(media:, singular_class:, group_by_proc:) ⇒ Media
constructor
A new instance of Media.
- #total_playcount ⇒ Object
- #unplayed ⇒ Object
Constructor Details
#initialize(media:, singular_class:, group_by_proc:) ⇒ Media
Returns a new instance of Media.
5 6 7 8 9 |
# File 'lib/kodi_dedup/classes/media.rb', line 5 def initialize(media:, singular_class:, group_by_proc: ) @singular_class = singular_class @group_by_proc = group_by_proc super(media.map { |m| singular_class.wrap(m) }.select { |m| m.exists? }) end |
Instance Attribute Details
#group_by_proc ⇒ Object (readonly)
Returns the value of attribute group_by_proc.
3 4 5 |
# File 'lib/kodi_dedup/classes/media.rb', line 3 def group_by_proc @group_by_proc end |
#singular_class ⇒ Object (readonly)
Returns the value of attribute singular_class.
3 4 5 |
# File 'lib/kodi_dedup/classes/media.rb', line 3 def singular_class @singular_class end |
Instance Method Details
#grouped ⇒ Object
11 12 13 |
# File 'lib/kodi_dedup/classes/media.rb', line 11 def grouped group_by(&@group_by_proc).values.select { |media| media.length > 1 }.map { |media| self.class.new(media) } end |
#total_playcount ⇒ Object
19 20 21 |
# File 'lib/kodi_dedup/classes/media.rb', line 19 def total_playcount sum { |e| e.playcount } end |
#unplayed ⇒ Object
15 16 17 |
# File 'lib/kodi_dedup/classes/media.rb', line 15 def unplayed select { |e| e.playcount == 0 } end |