jetski 0.3.6 → 0.3.8

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: ce5f1070f7bbe93cbf9f3ef5a097c0f1c303b4351afec67599af2af02cfd5ab3
4
- data.tar.gz: c9c224fdd2c4a26d63a7d9acb8fa4b748289dafef9807a3599fb2acf24267488
3
+ metadata.gz: 4b9af95cf6ae12478fd887ccfa44148279a237b622b893013d0b93e221f3be73
4
+ data.tar.gz: 7f615515947fe954ca0069361cf5eaee12920552028d9e24a3275de2e18713f1
5
5
  SHA512:
6
- metadata.gz: c0f3d084fd9585089155e4f6226bad830a3b3addb9a1cbb0e1a7ea33e85411c72f789431ca8739cb0f65e3d5031546f74680337020f2380e0d5b7c8cb8d10699
7
- data.tar.gz: 47a9a950d449f8ab4255444dc67c7fe7d93c7d87a91445526832f0a956fa5604e9f921d9de599e0545f3e8cfea94d8ed03894fda0cc1ac64f8cfa73dc575a4ee
6
+ metadata.gz: 96d3e3bd8b93a7fa3f52195d0ea5bf6c34435f815e56f0da5e285285cba321de6b8645b3d923740aacd5e42e957158d37ba409bc6b3d9fc770da495d65e6e652
7
+ data.tar.gz: de08a81e274f83226cdfb0979656739f6886f04878d87ec5d24e7837d3ef78b6b534569b2dcbee0f826b10de9d994c031c91eb87f86d239128707fbf4d61602e
data/bin/jetski CHANGED
@@ -5,6 +5,7 @@ require 'jetski'
5
5
  require 'thor'
6
6
  require_relative './jetski_cli_helpers/generate.rb'
7
7
  require_relative './jetski_cli_helpers/destroy.rb'
8
+ require 'bundler/setup'
8
9
 
9
10
  class JetskiCLI < Thor
10
11
  include Thor::Actions
@@ -14,8 +15,8 @@ class JetskiCLI < Thor
14
15
  FileUtils.mkdir_p(name)
15
16
  say "Creating #{name} app with Jetski!"
16
17
  directory "base", "#{name}"
17
- gsub_file "#{name}/app/views/layouts/application.html", /APP_NAME/, name.capitalize
18
- gsub_file "#{name}/app/views/pages/home.html", /APP_NAME/, name.capitalize
18
+ gsub_file "#{name}/app/views/layouts/application.html.erb", /APP_NAME/, name.capitalize
19
+ gsub_file "#{name}/app/views/pages/home.html.erb", /APP_NAME/, name.capitalize
19
20
  run "cd #{name} && bundle install"
20
21
  say "🌊 Your app #{name} has been generated!"
21
22
  end
@@ -34,6 +35,12 @@ class JetskiCLI < Thor
34
35
  end
35
36
  end
36
37
 
38
+ desc "server", "starts the jetski app"
39
+ def server
40
+ ENV['JETSKI_PROJECT_PATH'] = __dir__
41
+ Jetski::Server.new.call
42
+ end
43
+
37
44
  desc "generate", "generates resources in your jetski app"
38
45
  subcommand "generate", JetskiCLIHelpers::Generate
39
46
 
@@ -13,10 +13,10 @@ module JetskiCLIHelpers
13
13
  action_content += "\nACTION_NAME"
14
14
  end
15
15
  gsub_file(controller_file_path, /ACTION_NAME/, action_content.strip)
16
- path_to_view = "app/views/#{name}/#{action_name}.html"
16
+ path_to_view = "app/views/#{name}/#{action_name}.html.erb"
17
17
 
18
18
  empty_directory("app/views/#{name}")
19
- copy_file("views/example.html", path_to_view)
19
+ copy_file("views/example.html.erb", path_to_view)
20
20
  gsub_file(path_to_view, /CONTROLLER_NAME/, name)
21
21
  gsub_file(path_to_view, /ACTION_NAME/, action_name)
22
22
  gsub_file(path_to_view, /PATH_TO_VIEW/, path_to_view)
@@ -9,6 +9,6 @@
9
9
  DYNAMIC_CSS
10
10
  </head>
11
11
  <body>
12
- YIELD_CONTENT
12
+ <%= yield %>
13
13
  </body>
14
14
  </html>
@@ -1,2 +1,2 @@
1
1
  <h1> CONTROLLER_NAME#ACTION_NAME </h1>
2
- <p> edit the content of this page at app/views/PATH_TO_VIEW/ACTION_NAME.html </p>
2
+ <p> edit the content of this page at app/views/PATH_TO_VIEW/ACTION_NAME.html.erb </p>
@@ -1,7 +1,7 @@
1
1
  # This is the base controller of the library
2
2
  module Jetski
3
3
  class BaseController
4
- attr_accessor :action_name, :controller_name, :controller_path
4
+ attr_accessor :action_name, :controller_name, :controller_path, :params
5
5
  attr_reader :res
6
6
  attr_reader :performed_render
7
7
 
@@ -52,12 +52,14 @@ module Jetski
52
52
 
53
53
  private
54
54
  def render_template_file
55
+ require 'erb'
55
56
  views_folder = File.join(Jetski.app_root, 'app/views')
56
57
  assets_folder = File.join(Jetski.app_root, 'app/assets/stylesheets')
57
- layout_content = File.read(File.join(views_folder, "layouts/application.html"))
58
58
  path_to_controller = controller_path[1..-1]
59
- page_content = File.read(File.join(views_folder, path_to_controller, "#{action_name}.html"))
60
- page_with_layout = layout_content.gsub("YIELD_CONTENT", page_content)
59
+ page_with_layout = process_erb(File.read(File.join(views_folder, "layouts/application.html.erb"))) do
60
+ process_erb(File.read(File.join(views_folder, path_to_controller, "#{action_name}.html.erb")))
61
+ end
62
+
61
63
  action_css_file = File.join(assets_folder, "#{path_to_controller}.css")
62
64
  css_content = if File.exist? action_css_file
63
65
  "<link rel='stylesheet' href='/#{path_to_controller}.css'>"
@@ -68,5 +70,10 @@ module Jetski
68
70
  res.content_type = "text/html"
69
71
  res.body = page_with_css
70
72
  end
73
+
74
+ def process_erb(content)
75
+ template = ERB.new(content)
76
+ template.result(binding)
77
+ end
71
78
  end
72
79
  end
data/lib/jetski/router.rb CHANGED
@@ -41,18 +41,16 @@ module Jetski
41
41
  controller.action_name = action_name
42
42
  controller.controller_name = controller_name
43
43
  controller.controller_path = controller_path
44
+ controller.params = OpenStruct.new(JSON.parse(req.body)) if req.body
44
45
  controller.send(action_name)
45
46
  if !controller.performed_render && (request_method.upcase == "GET")
46
47
  controller.render
47
48
  end
48
- # TODO: Need to setup redirects for other request types. POST/PUT/DELETE
49
49
  end
50
50
 
51
51
  if errors.any?
52
52
  res.body = errors.join(", ")
53
53
  end
54
-
55
- # TODO: Set response content/type and status when rendering/redirecting or head
56
54
  end
57
55
  end
58
56
  end
@@ -1,3 +1,3 @@
1
1
  module Jetski
2
- VERSION = "0.3.6"
2
+ VERSION = "0.3.8"
3
3
  end
data/lib/jetski.rb CHANGED
@@ -6,17 +6,13 @@ require_relative './jetski/router'
6
6
  require "webrick"
7
7
  require "json"
8
8
  require "json"
9
+ require "ostruct"
10
+ require "erb"
9
11
 
10
12
  module Jetski
11
13
  # Debug stage add constants here for debugging.
12
14
  extend self
13
15
  def app_root
14
- if ENV['JETSKI_PROJECT_PATH']
15
- ENV['JETSKI_PROJECT_PATH']
16
- elsif ENV['USE_DIR']
17
- __dir__
18
- else
19
- Dir.pwd
20
- end
16
+ Dir.pwd
21
17
  end
22
18
  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.3.6
4
+ version: 0.3.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Indigo Tech Tutorials
@@ -30,13 +30,41 @@ dependencies:
30
30
  - - "~>"
31
31
  - !ruby/object:Gem::Version
32
32
  version: 1.4.0
33
- type: :development
33
+ type: :runtime
34
34
  prerelease: false
35
35
  version_requirements: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
39
  version: 1.4.0
40
+ - !ruby/object:Gem::Dependency
41
+ name: ostruct
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: 0.6.2
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: 0.6.2
54
+ - !ruby/object:Gem::Dependency
55
+ name: erb
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: 5.1.2
61
+ type: :runtime
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: 5.1.2
40
68
  description: 'Would you rather ride on a train or a jetski? that is the question you
41
69
  might use when comparing using our framework or the popular Ruby on Rails framework. '
42
70
  email: indigo@tech.tut
@@ -53,11 +81,10 @@ files:
53
81
  - bin/templates/base/app/assets/stylesheets/application.css
54
82
  - bin/templates/base/app/assets/stylesheets/pages.css
55
83
  - bin/templates/base/app/controllers/pages_controller.rb
56
- - bin/templates/base/app/views/layouts/application.html
57
- - bin/templates/base/app/views/pages/home.html
58
- - bin/templates/base/start.rb
84
+ - bin/templates/base/app/views/layouts/application.html.erb
85
+ - bin/templates/base/app/views/pages/home.html.erb
59
86
  - bin/templates/controllers/example_controller
60
- - bin/templates/views/example.html
87
+ - bin/templates/views/example.html.erb
61
88
  - lib/jetski.rb
62
89
  - lib/jetski/base_controller.rb
63
90
  - lib/jetski/router.rb
@@ -1,6 +0,0 @@
1
- require 'bundler/setup'
2
- require "jetski"
3
-
4
- ENV['JETSKI_PROJECT_PATH'] = __dir__
5
-
6
- Jetski::Server.new.call