Class: Diane::Player

Inherits:
Object
  • Object
show all
Defined in:
lib/diane/player.rb

Instance Method Summary collapse

Constructor Details

#initialize(num, opts) ⇒ Player

Returns a new instance of Player.



6
7
8
9
10
11
12
13
14
# File 'lib/diane/player.rb', line 6

def initialize(num, opts)
  @num = num
  @inorder = opts.fetch('inorder', false)
  @everyone = opts.fetch('everyone', false)
  @all = opts.fetch('all', false)
  @recordings = recordings

  play
end

Instance Method Details

#playObject



35
36
37
38
39
40
41
42
43
44
45
# File 'lib/diane/player.rb', line 35

def play
  if @recordings.empty?
    puts "\nFuck off.".magenta
  else
    puts preface
    recordings.each do |r|
      puts "\n#{r['time']} : ".cyan + "@#{r['user']}".yellow
      puts "#{r['message']}"
    end
  end
end

#prefaceObject



24
25
26
27
28
29
30
31
32
33
# File 'lib/diane/player.rb', line 24

def preface
  position  = @inorder ? 'first' : 'last'
  scope     = @everyone ? "everyone's" : 'your'
  if @recordings.length == 1
    preface = "\nHere's the #{position} of #{scope} recordings:"
  else
    preface = "\nHere's the #{position} #{@recordings.length} of #{scope} recordings:"
  end
  preface.green
end

#recordingsObject



16
17
18
19
20
21
22
# File 'lib/diane/player.rb', line 16

def recordings
  r = CSV.read(DIFILE, { headers: true }).map(&:to_hash)
  r.select!{ |d| d['user'] == USER } unless @everyone
  limit = @all ? r.length : [@num, r.length].min
  r.reverse! unless @inorder
  r.take(limit)
end