jetski 0.4.5 → 0.4.6

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: 6bf7b96b5cefdcbd3ebcad38e3abb18500e9ff367e888a4432604e0ff7aaad8d
4
- data.tar.gz: 6f482121c9a697c923c5a3a4d1a5b5fed822584190408db002d9e6668343372b
3
+ metadata.gz: 419176ab6c0bac6515d1f7f6136cd0ff800bad44fa34e41d882ef2bb6c59f46c
4
+ data.tar.gz: a349cc717aab7101fea571ad0a12eeadc618a5136103ef388875b4ef2ca806f4
5
5
  SHA512:
6
- metadata.gz: 89b0d3060b6161e742960048b92a9ed41b16787914c2bc34cb1e046bf44537f997381168df708e0188b590ca23352ba622c6ffca1443c27921b273df41e34c06
7
- data.tar.gz: 538160835a9a3e3a8768b1a2aa8c8e9664520ec8f3c403d0b98681535db57dc403ae0d1a6db57443d5c0054674e2bf25be42923bcfdd77de8cc990957579e2bd
6
+ metadata.gz: eb5520b371047a616aecdd8b341ee17a4b1a7ac4349164639ce8024f7a485b79a51c75035a703ccba0e036c957ad16bdf2f8a12d13eea2e9366f9473c9674bfa
7
+ data.tar.gz: 39643ec6fe8aa41363df7d1c3e627cc7aeb3e62a3ed2cbf3ba8d3ff94f19ed149d9d7ba8e5dedea245a2ad91b25fdce4d0a0e5c25dac73d99c86c48d35372fd1
@@ -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
- def render(path_to_file)
5
- File.join(Jetski.app_root, path_to_file)
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
@@ -32,6 +32,15 @@ module Jetski
32
32
  end
33
33
  end
34
34
 
35
+ def destroy!
36
+ # Destroy record: remove from db
37
+ delete_sql = <<~SQL
38
+ DELETE from #{self.class.pluralized_table_name} WHERE id=?
39
+ SQL
40
+ self.class.db.execute(delete_sql, id)
41
+ nil
42
+ end
43
+
35
44
  class << self
36
45
  def create(**args)
37
46
  return puts "#{table_name.capitalize}.create was called with no args" if args.size == 0
@@ -90,7 +99,7 @@ module Jetski
90
99
  def first
91
100
  format_model_obj(pluck_rows.first)
92
101
  end
93
- private
102
+
94
103
  def table_name
95
104
  self.to_s.downcase
96
105
  end
@@ -103,6 +112,7 @@ module Jetski
103
112
  end
104
113
  end
105
114
 
115
+ private
106
116
  def format_model_obj(row, columns = nil)
107
117
  return unless row
108
118
  columns ||= attributes
@@ -1,3 +1,3 @@
1
1
  module Jetski
2
- VERSION = "0.4.5"
2
+ VERSION = "0.4.6"
3
3
  end
@@ -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
- controller.instance_eval do
37
- template.result(binding)
38
- end
36
+ # controller.class.class_eval problem is you still have render defined there
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
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.5
4
+ version: 0.4.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Indigo Tech Tutorials