Class: Partitioned::ByWeeklyTimeField

Inherits:
ByTimeField show all
Defined in:
lib/partitioned/by_weekly_time_field.rb

Overview

Partition tables by a time field grouping them by week, with a week defined as seven days starting on Monday.

Direct Known Subclasses

ByCreatedAt

Class Method Summary collapse

Methods inherited from ByTimeField

partition_generate_range, partition_time_field

Methods inherited from PartitionedBase

add_parent_table_rules, add_partition_table_index, add_references_to_partition_table, archive_old_partition, archive_old_partitions, arel_table_from_key_values, configurator, configurator_dsl, create_infrastructure, create_new_partition, create_new_partition_tables, create_new_partitions, create_partition_schema, create_partition_table, delete_infrastructure, drop_old_partition, drop_old_partitions, drop_partition_table, dynamic_arel_table, #dynamic_arel_table, from_partition, from_partition_without_alias, partition_generate_range, partition_key_values, partition_keys, partition_manager, partition_name, partition_table_alias_name, #partition_table_name, partition_table_name, partitioned, sql_adapter

Methods included from ActiveRecordOverrides

#arel_attributes_values, #delete

Class Method Details

.partition_normalize_key_value(time_value) ⇒ Time

Normalize a partition key value by week. We’ve picked the beginning of the week to key on, which is Monday.

Parameters:

  • time_value (Time)

    the time value to normalize

Returns:

  • (Time)

    the value normalized



15
16
17
# File 'lib/partitioned/by_weekly_time_field.rb', line 15

def self.partition_normalize_key_value(time_value)
  return time_value.at_beginning_of_week
end

.partition_table_sizeInteger

The size of the partition table, 7 days (1.week)

Returns:

  • (Integer)

    the size of this partition



23
24
25
# File 'lib/partitioned/by_weekly_time_field.rb', line 23

def self.partition_table_size
  return 1.week
end