active_partition 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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