kweerie 0.1.2 → 0.1.3
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 +4 -4
- data/.rake_tasks~ +20 -0
- data/lib/kweerie/base_objects.rb +21 -13
- data/lib/kweerie/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b17930ae6088ef2d4fb7f4e20c36479bc8bcc97ae2ed3bd2bfd8d7baed4266b0
|
4
|
+
data.tar.gz: 7100335df50ba93ee28fb811d530cdf2231db2efaed2f149073144a15e389c41
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 52f8165082fb447dcc9219c968256f867ead4dba70722920928acedae4e150d9608ee3ffd5dd803131d556031f588b3bba7f8f17171d56cca4487ae427dfb6b4
|
7
|
+
data.tar.gz: bdfdf6ecf8cf3495ef4ed157ea3e149d23ff16f5a7ff98a73329dd3f3a1516d80a8a57ddbea1b23dd26df43805a27164a28ba4836550ed9951f7392f07118eb9
|
data/.rake_tasks~
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
build
|
2
|
+
build:checksum
|
3
|
+
clean
|
4
|
+
clobber
|
5
|
+
default
|
6
|
+
install
|
7
|
+
install:local
|
8
|
+
release[remote]
|
9
|
+
release:guard_clean
|
10
|
+
release:rubygem_push
|
11
|
+
release:source_control_push[remote]
|
12
|
+
rubocop
|
13
|
+
rubocop:auto_correct
|
14
|
+
rubocop:autocorrect
|
15
|
+
rubocop:autocorrect_all
|
16
|
+
test
|
17
|
+
test:cmd
|
18
|
+
test:deps
|
19
|
+
test:isolated
|
20
|
+
test:slow
|
data/lib/kweerie/base_objects.rb
CHANGED
@@ -20,7 +20,7 @@ module Kweerie
|
|
20
20
|
private
|
21
21
|
|
22
22
|
def generate_result_class(attribute_names)
|
23
|
-
@generate_result_class ||= Class.new do
|
23
|
+
@generate_result_class ||= Class.new(self) do
|
24
24
|
# Include comparison and serialization modules
|
25
25
|
include Comparable
|
26
26
|
|
@@ -29,6 +29,20 @@ module Kweerie
|
|
29
29
|
attr_reader name
|
30
30
|
end
|
31
31
|
|
32
|
+
define_method :initialize do |attrs|
|
33
|
+
# Store both raw and casted versions
|
34
|
+
@_raw_original_attributes = attrs.dup
|
35
|
+
@_original_attributes = attrs.transform_keys(&:to_s).transform_values do |value|
|
36
|
+
type_cast_value(value)
|
37
|
+
end
|
38
|
+
|
39
|
+
attrs.each do |name, value|
|
40
|
+
casted_value = type_cast_value(value)
|
41
|
+
instance_variable_set("@#{name}", casted_value)
|
42
|
+
end
|
43
|
+
super() if defined?(super)
|
44
|
+
end
|
45
|
+
|
32
46
|
define_method :type_cast_value do |value|
|
33
47
|
case value
|
34
48
|
when /^\d{4}-\d{2}-\d{2}( \d{2}:\d{2}:\d{2})?$/ # DateTime check
|
@@ -64,17 +78,6 @@ module Kweerie
|
|
64
78
|
end
|
65
79
|
end
|
66
80
|
|
67
|
-
define_method :initialize do |attrs|
|
68
|
-
# Store original attributes with the same type casting
|
69
|
-
@_original_attributes = attrs.transform_keys(&:to_s).transform_values do |value|
|
70
|
-
type_cast_value(value)
|
71
|
-
end
|
72
|
-
|
73
|
-
attrs.each do |name, value|
|
74
|
-
casted_value = type_cast_value(value)
|
75
|
-
instance_variable_set("@#{name}", casted_value)
|
76
|
-
end
|
77
|
-
end
|
78
81
|
define_method :parse_pg_array do |value|
|
79
82
|
# Remove the curly braces
|
80
83
|
clean_value = value.gsub(/^{|}$/, "")
|
@@ -115,7 +118,7 @@ module Kweerie
|
|
115
118
|
attrs = attribute_names.map do |name|
|
116
119
|
"#{name}=#{instance_variable_get("@#{name}").inspect}"
|
117
120
|
end.join(" ")
|
118
|
-
"#<#{self.class.name
|
121
|
+
"#<#{self.class.superclass.name} #{attrs}>"
|
119
122
|
end
|
120
123
|
|
121
124
|
# Hash-like access
|
@@ -184,6 +187,11 @@ module Kweerie
|
|
184
187
|
@_original_attributes
|
185
188
|
end
|
186
189
|
|
190
|
+
# Raw attributes access
|
191
|
+
define_method :raw_original_attributes do
|
192
|
+
@_raw_original_attributes
|
193
|
+
end
|
194
|
+
|
187
195
|
# ActiveModel-like changes tracking
|
188
196
|
define_method :changed? do
|
189
197
|
to_h != @_original_attributes
|
data/lib/kweerie/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kweerie
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Toby
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-11-
|
11
|
+
date: 2024-11-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|
@@ -59,6 +59,7 @@ executables: []
|
|
59
59
|
extensions: []
|
60
60
|
extra_rdoc_files: []
|
61
61
|
files:
|
62
|
+
- ".rake_tasks~"
|
62
63
|
- ".rubocop.yml"
|
63
64
|
- CHANGELOG.md
|
64
65
|
- LICENSE.txt
|