Class: HeatmapBuilder::Builder

Inherits:
Object
  • Object
show all
Includes:
ColorHelpers, SvgHelpers
Defined in:
lib/heatmap_builder/builder.rb

Direct Known Subclasses

CalendarHeatmapBuilder, LinearHeatmapBuilder

Constant Summary collapse

GITHUB_GREEN =
%w[#ebedf0 #9be9a8 #40c463 #30a14e #216e39].freeze
BLUE_OCEAN =
%w[#f0f9ff #bae6fd #7dd3fc #38bdf8 #0ea5e9].freeze
WARM_SUNSET =
%w[#fef3e2 #fed7aa #fdba74 #fb923c #f97316].freeze
PURPLE_VIBES =
%w[#f3e8ff #d8b4fe #c084fc #a855f7 #9333ea].freeze
RED_TO_GREEN =
%w[#f5f5f5 #ff9999 #f7ad6a #d2c768 #99dd99].freeze
DEFAULT_OPTIONS =
{
  cell_size: 10,
  cell_spacing: 1,
  font_size: 8,
  border_width: 1,
  corner_radius: 0,
  colors: GITHUB_GREEN,
  text_color: "#000000"
}.freeze

Instance Method Summary collapse

Constructor Details

#initialize(scores: nil, values: nil, **options) ⇒ Builder

Returns a new instance of Builder.



25
26
27
28
29
30
31
# File 'lib/heatmap_builder/builder.rb', line 25

def initialize(scores: nil, values: nil, **options)
  @scores = scores
  @values = values
  @options = default_options.merge(options)
  validate_options!
  normalize_options!
end

Instance Method Details

#buildObject

Raises:

  • (NotImplementedError)


33
34
35
# File 'lib/heatmap_builder/builder.rb', line 33

def build
  raise NotImplementedError, "Subclasses must implement #build"
end