active_partition 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2f9a675008e38b58080b6c3e350a2141be7275e5ca153500340a1f0f759e1442
4
- data.tar.gz: 58a64de3dd865b634baf1fd3999203c75f4007d046e68818ab92c382b6c54b98
3
+ metadata.gz: cd2f915d2a18fe45a1bfd5abada5f585341ee132a04c01a37214cd7a633ba7bd
4
+ data.tar.gz: dd8d0e55063e0acc1089cfc99c3de44e30c40f1b8ff4b99696c424407fd8aa7c
5
5
  SHA512:
6
- metadata.gz: 180a0215bb89ef08a3fb3ab38490ad89335419ec9fd1b4026026ef008e1fefcd02dc4ccfcb8e9c0e16c231aa7193119d32520b1fe87cd70e0448a613fb1871f1
7
- data.tar.gz: 2e014eabe0b6b129f062ac5c7341b4819fc87e9e5206479b6b3630945b8b220bfd2a0c30591ab44b7f23b982829dd0dcb5714215ac962384311efc490c57a862
6
+ metadata.gz: f32b271affea24e5c9d450c004fb094c2c18308e8370132754bf16444a16db0c21b75e72f2cf693c92ddbbc2cfad97ff4297495813f596996a9ee364fef15704
7
+ data.tar.gz: b18f0e4b19d116423ac3135797e68622eaaee93d0c1ea93f530282152606811cca395e156b516400e971427424897d3cd34f4eff49635774e6e24c20c131af00
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- active_partition (0.1.0)
4
+ active_partition (0.2.0)
5
5
  rails
6
6
  range_operators (~> 0.1.1)
7
7
  rspec-rails
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ActivePartition
4
- VERSION = "0.2.0"
4
+ VERSION = "0.3.0"
5
5
  end
@@ -15,12 +15,17 @@ module ActivePartition
15
15
 
16
16
  included do
17
17
  # when partitioned column change, create partition if needed
18
- before_save :create_partition_if_needed, if: -> {
19
- self.class.partitioned_by &&
20
- attribute_changed?(self.class.partitioned_by.to_s)
21
- }
18
+ # before_validation will be called with create, update, save, and create! methods
19
+ before_validation :create_partition_if_needed
22
20
 
23
21
  def create_partition_if_needed
22
+ if ["created_at", "updated_at"].include?(self.class.partitioned_by.to_s) && self.attributes[self.class.partitioned_by].nil?
23
+ # set default value if created_at or updated_at is nil
24
+ self.assign_attributes(self.class.partitioned_by => Time.current.utc)
25
+ end
26
+
27
+ return unless self.class.partitioned_by && attribute_changed?(self.class.partitioned_by.to_s)
28
+
24
29
  # get partitioned attribute value
25
30
  partitioned_value = attributes[self.class.partitioned_by.to_s]
26
31
  self.class.prepare_partition(partitioned_value, self.class.partition_range)
@@ -61,11 +66,11 @@ module ActivePartition
61
66
  end
62
67
  end
63
68
 
64
- delegate :premake, :latest_partition_coverage_time, to: :partition_manager
65
- delegate :retain, :retain_by_time, :retain_by_partition_count, to: :partition_manager
66
- delegate :prepare_partition, "active_partitions_cover?", to: :partition_manager
67
- delegate :get_all_supported_partition_tables, to: :partition_adapter
68
- delegate :drop_partition, to: :partition_adapter
69
+ # delegate :premake, :latest_partition_coverage_time, to: :partition_manager
70
+ # delegate :retain, :retain_by_time, :retain_by_partition_count, to: :partition_manager
71
+ # delegate :prepare_partition, "active_partitions_cover?", to: :partition_manager
72
+ # delegate :get_all_supported_partition_tables, to: :partition_adapter
73
+ # delegate :drop_partition, to: :partition_adapter
69
74
  end
70
75
  end
71
76
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_partition
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thien Tran
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-07-01 00:00:00.000000000 Z
11
+ date: 2024-07-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: byebug