jetski 0.4.6 → 0.4.7
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/autoloader.rb +5 -0
- data/lib/jetski/model.rb +33 -26
- data/lib/jetski/version.rb +1 -1
- data/lib/jetski/view_renderer.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: 59cc948a27a477850ced800437233d2106f046a70eef581011efc407b29469ce
|
|
4
|
+
data.tar.gz: 52dee7630e6efac75428fc46a5e18b3c2374323d0d77dd793cb77f3554f994fd
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9f5780959202dac7113a038c9793863851147156fcda7d9ca0efa8b837afc8aaeb37f9f65a7ef266e4b3693dd2acfef48e1987f376e869d88640ec2fcad6c19e
|
|
7
|
+
data.tar.gz: 76ca2114bc78e15d8fdac21a9f39b137cbf66fa0f3faf45948a245ffdf92722712a9099d55a285cbf0b83f886540b8c02fcc35730a08b91d9e418b2afefd2812
|
data/lib/jetski/autoloader.rb
CHANGED
|
@@ -6,6 +6,11 @@ module Jetski
|
|
|
6
6
|
def call
|
|
7
7
|
model_file_paths.each do |path_to_model|
|
|
8
8
|
require_relative path_to_model
|
|
9
|
+
# Call method to define model attributes after loading
|
|
10
|
+
model_name = path_to_model.split("app/models/")[-1]
|
|
11
|
+
.gsub(".rb", "").capitalize
|
|
12
|
+
model_class = Object.const_get(model_name)
|
|
13
|
+
model_class.define_attribute_methods
|
|
9
14
|
end
|
|
10
15
|
end
|
|
11
16
|
|
data/lib/jetski/model.rb
CHANGED
|
@@ -3,33 +3,21 @@ module Jetski
|
|
|
3
3
|
extend Jetski::Database::Base
|
|
4
4
|
|
|
5
5
|
def initialize(**args)
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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
|
|
6
|
+
# TODO: Need to fix code
|
|
7
|
+
# Cannot redefine methods every time we initialize a new object.
|
|
8
|
+
# need to define available methods on post when loading model
|
|
9
|
+
@virtual_attributes = args
|
|
10
|
+
end
|
|
21
11
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
end
|
|
29
|
-
inspect_str += ">"
|
|
30
|
-
inspect_str
|
|
31
|
-
end
|
|
12
|
+
def inspect
|
|
13
|
+
post_obj_id = object_id
|
|
14
|
+
inspect_str = "#<Post:#{post_obj_id}"
|
|
15
|
+
self.class.model_attributes.each do |attribute_name|
|
|
16
|
+
attribute_value = @virtual_attributes[attribute_name]
|
|
17
|
+
inspect_str += " #{attribute_name}=\"#{attribute_value}\""
|
|
32
18
|
end
|
|
19
|
+
inspect_str += ">"
|
|
20
|
+
inspect_str
|
|
33
21
|
end
|
|
34
22
|
|
|
35
23
|
def destroy!
|
|
@@ -52,8 +40,10 @@ module Jetski
|
|
|
52
40
|
key_names.append "created_at"
|
|
53
41
|
data_values.append Time.now.to_s
|
|
54
42
|
|
|
43
|
+
current_post_count = (count || 0)
|
|
44
|
+
post_id = current_post_count + 1
|
|
55
45
|
key_names.append "id"
|
|
56
|
-
data_values.append(
|
|
46
|
+
data_values.append(post_id)
|
|
57
47
|
|
|
58
48
|
sql_command = <<~SQL
|
|
59
49
|
INSERT INTO #{pluralized_table_name} (#{key_names.join(", ")})
|
|
@@ -70,6 +60,19 @@ module Jetski
|
|
|
70
60
|
new(**post_attributes)
|
|
71
61
|
end
|
|
72
62
|
|
|
63
|
+
# Careful methods / delete all records from table
|
|
64
|
+
def destroy_all!
|
|
65
|
+
db.execute("DELETE from #{pluralized_table_name}")
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def define_attribute_methods
|
|
69
|
+
model_attributes.each do |attribute|
|
|
70
|
+
define_method attribute do
|
|
71
|
+
@virtual_attributes[attribute]
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
|
|
73
76
|
def all
|
|
74
77
|
columns, *rows = db.execute2( "select * from #{pluralized_table_name}" )
|
|
75
78
|
_all = []
|
|
@@ -111,6 +114,10 @@ module Jetski
|
|
|
111
114
|
table_name + "s"
|
|
112
115
|
end
|
|
113
116
|
end
|
|
117
|
+
|
|
118
|
+
def model_attributes
|
|
119
|
+
attributes.concat(["id", "created_at", "updated_at"])
|
|
120
|
+
end
|
|
114
121
|
|
|
115
122
|
private
|
|
116
123
|
def format_model_obj(row, columns = nil)
|
data/lib/jetski/version.rb
CHANGED
data/lib/jetski/view_renderer.rb
CHANGED
|
@@ -33,7 +33,7 @@ module Jetski
|
|
|
33
33
|
template = ERB.new(content)
|
|
34
34
|
# Perserve instance variables to view render
|
|
35
35
|
# @posts from controller to posts/index.html.erb
|
|
36
|
-
|
|
36
|
+
|
|
37
37
|
grab_instance_variables
|
|
38
38
|
template.result(binding)
|
|
39
39
|
rescue => e
|