jetski 0.4.3 → 0.4.4
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/lib/jetski/database/base.rb +3 -0
- data/lib/jetski/helpers/delegatable.rb +1 -3
- data/lib/jetski/model.rb +39 -1
- data/lib/jetski/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 95f5aadf74c7ce5bcf18c35cf8c2cf3767fa5751a4c3ff400be66f9e6ecaec65
|
|
4
|
+
data.tar.gz: b7f6820ba40818e1cfa11a8e3ff8df6c57a442663ba52450ed322af8474f845f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 82d48043e89dcbb5c5eb1e9a07cb1a076362b7041b21323c31760b3e0fe47d8a350d2a190e9911ed07c5c3cb97402c24b7b68427a93e15649ee31fb240964e1e
|
|
7
|
+
data.tar.gz: 67b50c582a2e69fd043422d3ba1d9ad5b944f0f8461375a647e7be2e97f56b2ef892a347047019cd422aa21a67a20679364f28a982a2006ab57b728d7f08f006
|
data/lib/jetski/database/base.rb
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
require "pry"
|
|
2
|
-
|
|
3
1
|
module Jetski
|
|
4
2
|
module Helpers
|
|
5
3
|
module Delegatable
|
|
@@ -8,7 +6,7 @@ module Jetski
|
|
|
8
6
|
def delegate(*delegatables, to:)
|
|
9
7
|
delegatables.each do |method_name|
|
|
10
8
|
define_method method_name do
|
|
11
|
-
|
|
9
|
+
public_send(to).public_send(method_name)
|
|
12
10
|
end
|
|
13
11
|
end
|
|
14
12
|
end
|
data/lib/jetski/model.rb
CHANGED
|
@@ -3,7 +3,33 @@ module Jetski
|
|
|
3
3
|
extend Jetski::Database::Base
|
|
4
4
|
|
|
5
5
|
def initialize(**args)
|
|
6
|
+
@virtual_attributes = {}
|
|
6
7
|
|
|
8
|
+
args.each do |k, v|
|
|
9
|
+
@virtual_attributes[k] = v
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
@virtual_attributes["id"] ||= ""
|
|
13
|
+
@virtual_attributes["created_at"] ||= ""
|
|
14
|
+
@virtual_attributes["updated_at"] ||= ""
|
|
15
|
+
|
|
16
|
+
@virtual_attributes.each do |k, v|
|
|
17
|
+
self.class.class_eval do
|
|
18
|
+
define_method(k) { v }
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
self.class.class_eval do
|
|
23
|
+
define_method(:inspect) do
|
|
24
|
+
post_obj_id = object_id
|
|
25
|
+
inspect_str = "#<Post:#{post_obj_id}"
|
|
26
|
+
@virtual_attributes.each do |k, v|
|
|
27
|
+
inspect_str += " #{k}=\"#{v}\""
|
|
28
|
+
end
|
|
29
|
+
inspect_str += ">"
|
|
30
|
+
inspect_str
|
|
31
|
+
end
|
|
32
|
+
end
|
|
7
33
|
end
|
|
8
34
|
|
|
9
35
|
class << self
|
|
@@ -12,15 +38,27 @@ module Jetski
|
|
|
12
38
|
data_values = args.map { |k,v| v }
|
|
13
39
|
key_names = args.map { |k, v| k }
|
|
14
40
|
|
|
41
|
+
# Set default values on create
|
|
42
|
+
|
|
15
43
|
key_names.append "created_at"
|
|
16
44
|
data_values.append Time.now.to_s
|
|
17
45
|
|
|
46
|
+
key_names.append "id"
|
|
47
|
+
data_values.append(count + 1)
|
|
48
|
+
|
|
18
49
|
sql_command = <<~SQL
|
|
19
50
|
INSERT INTO #{pluralized_table_name} (#{key_names.join(", ")})
|
|
20
51
|
VALUES (#{(1..key_names.size).map { |n| "?" }.join(", ")})
|
|
21
52
|
SQL
|
|
22
53
|
|
|
23
54
|
db.execute(sql_command, data_values)
|
|
55
|
+
|
|
56
|
+
post_attributes = {}
|
|
57
|
+
key_names.each.with_index do |k, i|
|
|
58
|
+
post_attributes[k] = data_values[i]
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
new(**post_attributes)
|
|
24
62
|
end
|
|
25
63
|
|
|
26
64
|
def all
|
|
@@ -72,7 +110,7 @@ module Jetski
|
|
|
72
110
|
columns.each.with_index do |col, idx|
|
|
73
111
|
row_obj[col] = row[idx]
|
|
74
112
|
end
|
|
75
|
-
|
|
113
|
+
new(**row_obj)
|
|
76
114
|
end
|
|
77
115
|
end
|
|
78
116
|
end
|
data/lib/jetski/version.rb
CHANGED