duck_record 0.0.5 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/duck_record/associations/association.rb +1 -0
- data/lib/duck_record/core.rb +9 -0
- data/lib/duck_record/nested_attributes.rb +0 -1
- data/lib/duck_record/type.rb +5 -3
- data/lib/duck_record/type/date.rb +7 -0
- data/lib/duck_record/type/date_time.rb +7 -0
- data/lib/duck_record/type/internal/timezone.rb +15 -0
- data/lib/duck_record/type/time.rb +20 -0
- data/lib/duck_record/version.rb +1 -1
- metadata +7 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ea74dd5ae7d2fa4b29957220898223bffacd1e11
|
4
|
+
data.tar.gz: b6b5baee57bc4bd3915172b22b84a2fb948a236b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a36210ba1a1fff6aae044d453641b0db60a9f93b80e24a261c012b2bec8f6afdc57a80def009289a8711f0463d7ec9ad6c9238aff7c71ad8157ea4e3fafc74e3
|
7
|
+
data.tar.gz: 7a04f4c5824149560e3d0784781b2535a05438d090c3e397ff324ebc9a2e1911424c6a22342318f09f50e9faf6c43e22c40a11f05553d3adbe38c0189a073215
|
data/lib/duck_record/core.rb
CHANGED
@@ -7,6 +7,15 @@ module DuckRecord
|
|
7
7
|
module Core
|
8
8
|
extend ActiveSupport::Concern
|
9
9
|
|
10
|
+
included do
|
11
|
+
##
|
12
|
+
# :singleton-method:
|
13
|
+
# Determines whether to use Time.utc (using :utc) or Time.local (using :local) when pulling
|
14
|
+
# dates and times from the database. This is set to :utc by default.
|
15
|
+
mattr_accessor :default_timezone, instance_writer: false
|
16
|
+
self.default_timezone = :utc
|
17
|
+
end
|
18
|
+
|
10
19
|
module ClassMethods
|
11
20
|
def allocate
|
12
21
|
define_attribute_methods
|
@@ -396,7 +396,6 @@ module DuckRecord
|
|
396
396
|
|
397
397
|
if existing_record
|
398
398
|
existing_record.assign_attributes(assignable_attributes)
|
399
|
-
association(association_name).initialize_attributes(existing_record)
|
400
399
|
else
|
401
400
|
method = "build_#{association_name}"
|
402
401
|
if respond_to?(method)
|
data/lib/duck_record/type.rb
CHANGED
@@ -1,6 +1,11 @@
|
|
1
1
|
require 'active_model/type'
|
2
2
|
|
3
3
|
require 'duck_record/type/internal/abstract_json'
|
4
|
+
require 'duck_record/type/internal/timezone'
|
5
|
+
|
6
|
+
require 'duck_record/type/date'
|
7
|
+
require 'duck_record/type/date_time'
|
8
|
+
require 'duck_record/type/time'
|
4
9
|
require 'duck_record/type/json'
|
5
10
|
|
6
11
|
require 'duck_record/type/array'
|
@@ -44,9 +49,6 @@ module DuckRecord
|
|
44
49
|
String = ActiveModel::Type::String
|
45
50
|
Text = ActiveModel::Type::Text
|
46
51
|
UnsignedInteger = ActiveModel::Type::UnsignedInteger
|
47
|
-
DateTime = ActiveModel::Type::DateTime
|
48
|
-
Time = ActiveModel::Type::Time
|
49
|
-
Date = ActiveModel::Type::Date
|
50
52
|
Value = ActiveModel::Type::Value
|
51
53
|
|
52
54
|
register(:big_integer, Type::BigInteger, override: false)
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module DuckRecord
|
2
|
+
module Type
|
3
|
+
class Time < ActiveModel::Type::Time
|
4
|
+
include Internal::Timezone
|
5
|
+
|
6
|
+
class Value < DelegateClass(::Time) # :nodoc:
|
7
|
+
end
|
8
|
+
|
9
|
+
def serialize(value)
|
10
|
+
case value = super
|
11
|
+
when ::Time
|
12
|
+
Value.new(value)
|
13
|
+
else
|
14
|
+
value
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
data/lib/duck_record/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: duck_record
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- jasl
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-03-
|
11
|
+
date: 2017-03-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -105,12 +105,16 @@ files:
|
|
105
105
|
- lib/duck_record/translation.rb
|
106
106
|
- lib/duck_record/type.rb
|
107
107
|
- lib/duck_record/type/array.rb
|
108
|
+
- lib/duck_record/type/date.rb
|
109
|
+
- lib/duck_record/type/date_time.rb
|
108
110
|
- lib/duck_record/type/decimal_without_scale.rb
|
109
111
|
- lib/duck_record/type/internal/abstract_json.rb
|
112
|
+
- lib/duck_record/type/internal/timezone.rb
|
110
113
|
- lib/duck_record/type/json.rb
|
111
114
|
- lib/duck_record/type/registry.rb
|
112
115
|
- lib/duck_record/type/serialized.rb
|
113
116
|
- lib/duck_record/type/text.rb
|
117
|
+
- lib/duck_record/type/time.rb
|
114
118
|
- lib/duck_record/type/unsigned_integer.rb
|
115
119
|
- lib/duck_record/validations.rb
|
116
120
|
- lib/duck_record/version.rb
|
@@ -135,7 +139,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
135
139
|
version: '0'
|
136
140
|
requirements: []
|
137
141
|
rubyforge_project:
|
138
|
-
rubygems_version: 2.6.
|
142
|
+
rubygems_version: 2.6.8
|
139
143
|
signing_key:
|
140
144
|
specification_version: 4
|
141
145
|
summary: Used for creating virtual models like ActiveType or ModelAttribute does
|