Class: Aniview::Interface::AnimeSeries

Inherits:
Item
  • Object
show all
Includes:
Util
Defined in:
lib/aniview/interface/animeio/animeseries.rb

Instance Attribute Summary

Attributes inherited from Item

#attr

Instance Method Summary collapse

Methods included from Util

decode_object, encode_object, error_message, format_duration, format_progress, format_size, mounted_filesystem?, parse_format, readline

Methods inherited from Item

#cereal

Constructor Details

#initialize(path, children = []) ⇒ AnimeSeries

Returns a new instance of AnimeSeries.



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/aniview/interface/animeio/animeseries.rb', line 11

def initialize(path, children = [])
  @path     = path

  @attr = {
    "t" => String(@path),
    "c" => 0,
    "d" => 0,
    "s" => 0,
    "p" => 0,
    "w" => 0,
    "W" => 0
  }

  @children = children
  @children.each { |c| self + c }
end

Instance Method Details

#+(af) ⇒ Object



28
29
30
31
32
33
34
35
36
# File 'lib/aniview/interface/animeio/animeseries.rb', line 28

def + af
  @attr["d"] += af.attr["d"]
  @attr["D"]  = Util.format_duration(@attr["d"])
  @attr["s"] += af.attr["s"]
  @attr["S"]  = Util.format_size(@attr["s"])
  @attr["c"] += 1
  @attr["w"] += 1 if af.seen?
  @attr["W"] += af.attr["d"] if af.seen?
end

#<<(af) ⇒ Object



38
39
40
41
42
# File 'lib/aniview/interface/animeio/animeseries.rb', line 38

def << af
  @children << af
  self + af
  average
end

#attributesObject



55
56
57
# File 'lib/aniview/interface/animeio/animeseries.rb', line 55

def attributes
  return @attr
end

#averageObject



44
45
46
47
48
49
# File 'lib/aniview/interface/animeio/animeseries.rb', line 44

def average
  @attr["p"] = @attr["w"] * 100.0 / @attr["c"]
  @attr["q"] = @attr["d"] > 0 ? @attr["W"] * 100.0 / @attr["d"] : 0
  @attr["Q"] = Util.format_progress @attr["q"]
  @attr["P"] = Util.format_progress @attr["p"]
end

#titleObject



51
52
53
# File 'lib/aniview/interface/animeio/animeseries.rb', line 51

def title
  return @path
end