module MyChart::Dsl::Draw

Public Instance Methods

charts() click to toggle source
# File lib/my_chart/dsl/draw.rb, line 20
def charts
  @charts ||= {}
end
check_overwrite_group_method(method_id) click to toggle source
# File lib/my_chart/dsl/draw.rb, line 41
def check_overwrite_group_method method_id
  group_by_methods[method_id] || method_id
end
grouped(cfg = nil) click to toggle source
# File lib/my_chart/dsl/draw.rb, line 24
def grouped cfg = nil
  @grouped ||= {}

  return @grouped unless cfg

  x = get_x cfg.from
  grp_m = check_overwrite_group_method cfg.x
  xy = (@grouped[[cfg.x, cfg.from]] ||= (x.group_by &grp_m))
  xy = (@grouped[[cfg.x, cfg.keys, cfg.from]] ||= (xy.complete_keys cfg.keys)) if cfg.keys
  xy = xy.sort(cfg) if cfg.asc or cfg.desc
  xy = xy.limit(cfg) if cfg.first or cfg.last
  return xy unless cfg.y

  grp_m = check_overwrite_group_method cfg.y
  @grouped[[cfg.x, cfg.y, cfg.keys, cfg.from]] ||= xy.group_by(&grp_m)
end