jetski 0.4.5 → 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/base_controller.rb +6 -0
- data/lib/jetski/helpers/view_helpers.rb +4 -2
- data/lib/jetski/model.rb +43 -26
- data/lib/jetski/version.rb +1 -1
- data/lib/jetski/view_renderer.rb +12 -4
- data/lib/jetski.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
|
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
# This is the base controller of the library
|
|
2
2
|
module Jetski
|
|
3
3
|
class BaseController
|
|
4
|
+
RESERVED_INSTANCE_VARIABLES = [
|
|
5
|
+
:@res, :@performed_render, :@action_name,
|
|
6
|
+
:@controller_name, :@controller_path, :@cookies, :@root,
|
|
7
|
+
:@request_method, :@path
|
|
8
|
+
]
|
|
9
|
+
|
|
4
10
|
include ReactiveForm
|
|
5
11
|
attr_accessor :action_name, :controller_name, :controller_path,
|
|
6
12
|
:params, :cookies
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
module Jetski
|
|
2
2
|
module Helpers
|
|
3
3
|
module ViewHelpers
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
# Expecting a relative path.
|
|
5
|
+
def render(partial_path)
|
|
6
|
+
path_to_file = File.join(Jetski.app_root, 'app/views', path_to_controller, "_#{partial_path}.html.erb")
|
|
7
|
+
File.read(path_to_file)
|
|
6
8
|
end
|
|
7
9
|
end
|
|
8
10
|
end
|
data/lib/jetski/model.rb
CHANGED
|
@@ -3,33 +3,30 @@ 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"] ||= ""
|
|
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
|
|
15
11
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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}\""
|
|
20
18
|
end
|
|
19
|
+
inspect_str += ">"
|
|
20
|
+
inspect_str
|
|
21
|
+
end
|
|
21
22
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
inspect_str += ">"
|
|
30
|
-
inspect_str
|
|
31
|
-
end
|
|
32
|
-
end
|
|
23
|
+
def destroy!
|
|
24
|
+
# Destroy record: remove from db
|
|
25
|
+
delete_sql = <<~SQL
|
|
26
|
+
DELETE from #{self.class.pluralized_table_name} WHERE id=?
|
|
27
|
+
SQL
|
|
28
|
+
self.class.db.execute(delete_sql, id)
|
|
29
|
+
nil
|
|
33
30
|
end
|
|
34
31
|
|
|
35
32
|
class << self
|
|
@@ -43,8 +40,10 @@ module Jetski
|
|
|
43
40
|
key_names.append "created_at"
|
|
44
41
|
data_values.append Time.now.to_s
|
|
45
42
|
|
|
43
|
+
current_post_count = (count || 0)
|
|
44
|
+
post_id = current_post_count + 1
|
|
46
45
|
key_names.append "id"
|
|
47
|
-
data_values.append(
|
|
46
|
+
data_values.append(post_id)
|
|
48
47
|
|
|
49
48
|
sql_command = <<~SQL
|
|
50
49
|
INSERT INTO #{pluralized_table_name} (#{key_names.join(", ")})
|
|
@@ -61,6 +60,19 @@ module Jetski
|
|
|
61
60
|
new(**post_attributes)
|
|
62
61
|
end
|
|
63
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
|
+
|
|
64
76
|
def all
|
|
65
77
|
columns, *rows = db.execute2( "select * from #{pluralized_table_name}" )
|
|
66
78
|
_all = []
|
|
@@ -90,7 +102,7 @@ module Jetski
|
|
|
90
102
|
def first
|
|
91
103
|
format_model_obj(pluck_rows.first)
|
|
92
104
|
end
|
|
93
|
-
|
|
105
|
+
|
|
94
106
|
def table_name
|
|
95
107
|
self.to_s.downcase
|
|
96
108
|
end
|
|
@@ -102,7 +114,12 @@ module Jetski
|
|
|
102
114
|
table_name + "s"
|
|
103
115
|
end
|
|
104
116
|
end
|
|
117
|
+
|
|
118
|
+
def model_attributes
|
|
119
|
+
attributes.concat(["id", "created_at", "updated_at"])
|
|
120
|
+
end
|
|
105
121
|
|
|
122
|
+
private
|
|
106
123
|
def format_model_obj(row, columns = nil)
|
|
107
124
|
return unless row
|
|
108
125
|
columns ||= attributes
|
data/lib/jetski/version.rb
CHANGED
data/lib/jetski/view_renderer.rb
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
module Jetski
|
|
2
2
|
class ViewRenderer
|
|
3
|
-
extend Jetski::Helpers::Delegatable
|
|
4
3
|
include Jetski::Helpers::ViewHelpers
|
|
4
|
+
extend Jetski::Helpers::Delegatable
|
|
5
5
|
|
|
6
6
|
attr_reader :errors, :controller
|
|
7
7
|
delegate :res, :action_name, :controller_path, to: :controller
|
|
@@ -33,14 +33,22 @@ 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
|
-
|
|
37
|
-
|
|
38
|
-
|
|
36
|
+
|
|
37
|
+
grab_instance_variables
|
|
38
|
+
template.result(binding)
|
|
39
39
|
rescue => e
|
|
40
40
|
@errors << e
|
|
41
41
|
nil
|
|
42
42
|
end
|
|
43
43
|
|
|
44
|
+
def grab_instance_variables
|
|
45
|
+
variables_from_controller = controller.instance_variables.filter { |var| !Jetski::BaseController::RESERVED_INSTANCE_VARIABLES.include?(var) }
|
|
46
|
+
variables_from_controller.each do |inst_var|
|
|
47
|
+
value = controller.instance_variable_get(inst_var)
|
|
48
|
+
instance_variable_set(inst_var, value)
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
|
|
44
52
|
def content_for_head
|
|
45
53
|
_content_for_head = ''
|
|
46
54
|
|
data/lib/jetski.rb
CHANGED
|
@@ -7,6 +7,7 @@ require "sqlite3"
|
|
|
7
7
|
|
|
8
8
|
require_relative './jetski/version'
|
|
9
9
|
require_relative './jetski/frontend/reactive_form'
|
|
10
|
+
require_relative './jetski/helpers/view_helpers'
|
|
10
11
|
require_relative './jetski/base_controller'
|
|
11
12
|
require_relative './jetski/router/shared_methods'
|
|
12
13
|
require_relative './jetski/router/parser'
|
|
@@ -16,7 +17,6 @@ require_relative './jetski/server'
|
|
|
16
17
|
require_relative './jetski/database/base'
|
|
17
18
|
require_relative './jetski/model'
|
|
18
19
|
require_relative './jetski/helpers/delegatable'
|
|
19
|
-
require_relative './jetski/helpers/view_helpers'
|
|
20
20
|
require_relative './jetski/view_renderer'
|
|
21
21
|
|
|
22
22
|
module Jetski
|