Class: Ace::Support::Items::Atoms::DatePartitionPath

Inherits:
Object
  • Object
show all
Defined in:
lib/ace/support/items/atoms/date_partition_path.rb

Overview

Computes a date-based partition path using B36TS month+week split. Result: “8p/4” (month / week components joined with “/”)

Constant Summary collapse

DEFAULT_LEVELS =
%i[month week].freeze

Class Method Summary collapse

Class Method Details

.compute(time, levels: DEFAULT_LEVELS) ⇒ String

Returns Path string e.g. “8p/4”.

Parameters:

  • time (Time)

    The time to partition

  • levels (Array<Symbol>) (defaults to: DEFAULT_LEVELS)

    B36TS split levels (default: [:month, :week])

Returns:

  • (String)

    Path string e.g. “8p/4”



15
16
17
18
19
# File 'lib/ace/support/items/atoms/date_partition_path.rb', line 15

def self.compute(time, levels: DEFAULT_LEVELS)
  require "ace/b36ts"
  result = Ace::B36ts.encode_split(time, levels: levels)
  levels.map { |l| result[l].to_s }.join("/")
end