coaster 1.3.35 → 1.4.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: d90387f0828b0ece5fec61d33b6dd1458da6944816a877f8f222d0c732b3737e
4
- data.tar.gz: 64d540a0623b059d65789d58118c668640dd9679595eb2b3582aa5708c639480
3
+ metadata.gz: 184ceccb2f814adeae83aadb4f7740db5d2b4f0a7d7b1389bef09144c9c634e4
4
+ data.tar.gz: 98ff36f4fc6ae8f71b9d89a278e34154dbc02579e1229a17724be2f0870304e7
5
5
  SHA512:
6
- metadata.gz: 6aa3bc61db4b538553799902876097e555fcc508ee7c7c8b86d19fca60f8d19e6c7dadf74812fa79bac75b7863ce0e3052b47d70e3e682555e8394f790465f3c
7
- data.tar.gz: 0a9a86bf0baef2c0c07eb2bf3bc7c6a284eb201139c61b2536d04e00db7c0339f6a7062fdd604a39fa74c660c9cdda4eb323c2747c13825fee562cfcddca416e
6
+ metadata.gz: eeb8e4a6c489a6765ad0705e65154151d272d4a4dfad64458da94f292a6decbc086a68703070472a92b20c0344816fcc8695d5b4205d9c1efbaf3ee25aa90f04
7
+ data.tar.gz: cdfec6c9d37031b28a40403f67420900ff0f188bddfac729d4efa521a807849aa82ff3fc8b3405c1aeeb141389b880925cdcb24f14e5d07b0c027474739b4866
@@ -85,6 +85,15 @@ module Coaster
85
85
  end
86
86
  },
87
87
  default: default
88
+ elsif type == :unix_epoch
89
+ _define_serialized_property(serialize_column, key,
90
+ getter: Proc.new { |val| val.nil? ? nil : Time.zone.at(val) },
91
+ setter: Proc.new { |val|
92
+ raise TypeError, "serialized_property: only time can be accepted: #{val.class}" unless val.is_a?(Time)
93
+ val.to_i
94
+ },
95
+ default: default
96
+ )
88
97
  elsif type == Integer
89
98
  _define_serialized_property serialize_column, key,
90
99
  setter: proc { |val|
@@ -95,6 +104,8 @@ module Coaster
95
104
  default: default
96
105
  elsif type == Array
97
106
  _define_serialized_property(serialize_column, key, default: default || [])
107
+ elsif type.respond_to?(:serialized_property_settings) && (settings = type.serialized_property_settings)
108
+ _define_serialized_property(serialize_column, key, getter: settings[:getter], setter: settings[:setter], setter_callback: settings[:setter_callback], default: default)
98
109
  elsif type && type < ActiveRecord::Base
99
110
  _define_serialized_property serialize_column, "#{key}_id", default: default
100
111
 
@@ -1,3 +1,3 @@
1
1
  module Coaster
2
- VERSION = '1.3.35'
2
+ VERSION = '1.4.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: coaster
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.35
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - buzz jung
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-07-10 00:00:00.000000000 Z
11
+ date: 2023-09-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: oj