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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 02eebca230858e0f9461c223fba7587103618d4b84df0c9b2725ad9f28218041
4
- data.tar.gz: 4331419e37d977fd5196cc8c21fda361a6468d4bbef48eb844a41e23eb230e74
3
+ metadata.gz: 95f5aadf74c7ce5bcf18c35cf8c2cf3767fa5751a4c3ff400be66f9e6ecaec65
4
+ data.tar.gz: b7f6820ba40818e1cfa11a8e3ff8df6c57a442663ba52450ed322af8474f845f
5
5
  SHA512:
6
- metadata.gz: 0d86c1de231237e2d535c2ed22a2257cb178d5752f041f17772806d00e714952f74fd15cc84e842e143069942cad868d1dc9f289e98458f00241b91388bc5d3a
7
- data.tar.gz: 06b00efc1e4c3076fab69fbef449edaf65abd00cc803eba14c19fc1c162d4e55f1cad97a31ea9389793d12582cac926450a04602256dbd9ca9cbbaf585381d2b
6
+ metadata.gz: 82d48043e89dcbb5c5eb1e9a07cb1a076362b7041b21323c31760b3e0fe47d8a350d2a190e9911ed07c5c3cb97402c24b7b68427a93e15649ee31fb240964e1e
7
+ data.tar.gz: 67b50c582a2e69fd043422d3ba1d9ad5b944f0f8461375a647e7be2e97f56b2ef892a347047019cd422aa21a67a20679364f28a982a2006ab57b728d7f08f006
@@ -16,6 +16,9 @@ module Jetski
16
16
 
17
17
  _gen_sql = ""
18
18
  _gen_sql += "create table #{pluralized_table_name} (\n"
19
+
20
+ # Default fields on all models
21
+
19
22
  _gen_sql += " created_at datetime,\n"
20
23
  _gen_sql += " updated_at datetime,\n"
21
24
  _gen_sql += " id integer,\n"
@@ -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
- self.public_send(to).public_send(method_name)
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
- OpenStruct.new(row_obj)
113
+ new(**row_obj)
76
114
  end
77
115
  end
78
116
  end
@@ -1,3 +1,3 @@
1
1
  module Jetski
2
- VERSION = "0.4.3"
2
+ VERSION = "0.4.4"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jetski
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.3
4
+ version: 0.4.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Indigo Tech Tutorials