Class: GithubReactions::Visualizer

Inherits:
Object
  • Object
show all
Defined in:
lib/github_reactions/visualizer.rb

Constant Summary collapse

EMOJI_UNICORD_MAP =
{
    "THUMBS_UP" => "\u{1F44D}",
    "THUMBS_DOWN" => "\u{1F44E}",
    "LAUGH" => "\u{1F604}",
    "HOORAY" => "\u{1F389}",
    "CONFUSED" => "\u{1F615}",
    "HEART" => "\u{2764}",
}.freeze

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(repository_name, reaction_groups) ⇒ Visualizer

Returns a new instance of Visualizer.



24
25
26
27
# File 'lib/github_reactions/visualizer.rb', line 24

def initialize(repository_name, reaction_groups)
  @repository_name = repository_name
  @reaction_groups = reaction_groups
end

Instance Attribute Details

#reaction_groupsObject (readonly)

Returns the value of attribute reaction_groups.



7
8
9
# File 'lib/github_reactions/visualizer.rb', line 7

def reaction_groups
  @reaction_groups
end

#repository_nameObject (readonly)

Returns the value of attribute repository_name.



7
8
9
# File 'lib/github_reactions/visualizer.rb', line 7

def repository_name
  @repository_name
end

Class Method Details

.visualize(repository_name, reaction_groups) ⇒ Object



19
20
21
# File 'lib/github_reactions/visualizer.rb', line 19

def visualize(repository_name, reaction_groups)
  new(repository_name, reaction_groups).visualize
end

Instance Method Details

#visualizeObject



29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/github_reactions/visualizer.rb', line 29

def visualize
  title = "#{repository_name} has #{count_grouped_by_reaction.values.reduce(:+)} reactions so far"

  table = Terminal::Table.new(
    title: title,
    headings: ['Emoji', 'Count'],
    rows: count_grouped_by_reaction.map(&:to_a),
  )

  table.align_column(1, :right)

  puts table
end