jetski 0.3.3 → 0.3.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: d01eb3967fa2528047cd44f6febbce3812545582bfd41578bc80c75dcd88d198
4
- data.tar.gz: 787d378ad536c27338201f829f51e3727aa87f9f54e7090d18104087f2e63f91
3
+ metadata.gz: ce5f1070f7bbe93cbf9f3ef5a097c0f1c303b4351afec67599af2af02cfd5ab3
4
+ data.tar.gz: c9c224fdd2c4a26d63a7d9acb8fa4b748289dafef9807a3599fb2acf24267488
5
5
  SHA512:
6
- metadata.gz: c35e892800c34e6c3f4bcad62b96d98d547f9380564e363b954df9719c33af9f22626f22a008c6d47135b047d8c5a317605471672bff142f4fa0515c1aa167a3
7
- data.tar.gz: a2b9a659f588215404a3435688dd250917c179b7aecade731bd56efc5863fe6ca694abd257dd569b2746cd374f05c2d8b18980cb7dac7667a4f2c080eb509b44
6
+ metadata.gz: c0f3d084fd9585089155e4f6226bad830a3b3addb9a1cbb0e1a7ea33e85411c72f789431ca8739cb0f65e3d5031546f74680337020f2380e0d5b7c8cb8d10699
7
+ data.tar.gz: 47a9a950d449f8ab4255444dc67c7fe7d93c7d87a91445526832f0a956fa5604e9f921d9de599e0545f3e8cfea94d8ed03894fda0cc1ac64f8cfa73dc575a4ee
data/bin/jetski CHANGED
@@ -3,6 +3,8 @@
3
3
  require 'optparse'
4
4
  require 'jetski'
5
5
  require 'thor'
6
+ require_relative './jetski_cli_helpers/generate.rb'
7
+ require_relative './jetski_cli_helpers/destroy.rb'
6
8
 
7
9
  class JetskiCLI < Thor
8
10
  include Thor::Actions
@@ -15,9 +17,7 @@ class JetskiCLI < Thor
15
17
  gsub_file "#{name}/app/views/layouts/application.html", /APP_NAME/, name.capitalize
16
18
  gsub_file "#{name}/app/views/pages/home.html", /APP_NAME/, name.capitalize
17
19
  run "cd #{name} && bundle install"
18
- say "Your app #{name} has been generated!"
19
- say "Start you're app fast with this command"
20
- say "cd #{name} && ruby ./start.rb"
20
+ say "🌊 Your app #{name} has been generated!"
21
21
  end
22
22
 
23
23
  desc "-v, --version", "show Jetski version"
@@ -33,9 +33,15 @@ class JetskiCLI < Thor
33
33
  say "#{route_obj[:method]} #{route_obj[:url]} #{route_obj[:controller_name]}##{route_obj[:action_name]}"
34
34
  end
35
35
  end
36
+
37
+ desc "generate", "generates resources in your jetski app"
38
+ subcommand "generate", JetskiCLIHelpers::Generate
39
+
40
+ desc "destroy", "destroys a resource in your jetski app"
41
+ subcommand "destroy", JetskiCLIHelpers::Destroy
36
42
 
37
43
  def self.source_root
38
- File.join(File.dirname(__FILE__), '..', 'templates')
44
+ File.join(File.dirname(__FILE__), 'templates')
39
45
  end
40
46
  end
41
47
 
@@ -0,0 +1,13 @@
1
+ require 'thor'
2
+ module JetskiCLIHelpers
3
+ class Destroy < Thor
4
+ include Thor::Actions
5
+ desc "controller NAME ACTION_NAMES", "Destroys a controller"
6
+ def controller(name, *actions)
7
+ controller_file_path = "app/controllers/#{name}_controller.rb"
8
+ remove_file(controller_file_path)
9
+ view_folder = "app/views/#{name}"
10
+ remove_dir(view_folder)
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,31 @@
1
+ require 'thor'
2
+ module JetskiCLIHelpers
3
+ class Generate < Thor
4
+ include Thor::Actions
5
+ desc "controller NAME ACTION_NAMES", "Create a controller with matching actions"
6
+ def controller(name, *actions)
7
+ controller_file_path = "app/controllers/#{name}_controller.rb"
8
+ copy_file("controllers/example_controller", controller_file_path)
9
+ gsub_file(controller_file_path, /CONTROLLER_NAME/, name.capitalize)
10
+ actions.each.with_index do |action_name, idx|
11
+ action_content = "def #{action_name}\n end"
12
+ if actions.size < (idx + 1)
13
+ action_content += "\nACTION_NAME"
14
+ end
15
+ gsub_file(controller_file_path, /ACTION_NAME/, action_content.strip)
16
+ path_to_view = "app/views/#{name}/#{action_name}.html"
17
+
18
+ empty_directory("app/views/#{name}")
19
+ copy_file("views/example.html", path_to_view)
20
+ gsub_file(path_to_view, /CONTROLLER_NAME/, name)
21
+ gsub_file(path_to_view, /ACTION_NAME/, action_name)
22
+ gsub_file(path_to_view, /PATH_TO_VIEW/, path_to_view)
23
+ say "🌊 View your new page at http://localhost:8000/#{name}/#{action_name}"
24
+ end
25
+ end
26
+
27
+ def self.source_root
28
+ File.join(File.dirname(__FILE__), '..', 'templates')
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,3 @@
1
+ class CONTROLLER_NAMEController < Jetski::BaseController
2
+ ACTION_NAME
3
+ end
@@ -0,0 +1,2 @@
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>
@@ -45,6 +45,11 @@ module Jetski
45
45
  render_template_file
46
46
  end
47
47
 
48
+ def redirect_to(url)
49
+ @performed_render = true
50
+ res.set_redirect(WEBrick::HTTPStatus::Found, url)
51
+ end
52
+
48
53
  private
49
54
  def render_template_file
50
55
  views_folder = File.join(Jetski.app_root, 'app/views')
data/lib/jetski/router.rb CHANGED
@@ -63,9 +63,9 @@ module Jetski
63
63
  end
64
64
 
65
65
  def host_css
66
- css_files = Dir[File.join(Jetski.app_root,'app/assets/stylesheets/*.css')]
66
+ css_files = Dir[File.join(Jetski.app_root,'app/assets/stylesheets/**/*.css')]
67
67
  css_files.each do |file_path|
68
- filename = file_path.split("/").last
68
+ filename = file_path.split("app/assets/stylesheets/").last
69
69
  asset_url = "/#{filename}"
70
70
  server.mount_proc asset_url do |req, res|
71
71
  res.body = File.read(File.join(Jetski.app_root,"app/assets/stylesheets/#{filename}"))
@@ -1,3 +1,3 @@
1
1
  module Jetski
2
- VERSION = "0.3.3"
2
+ VERSION = "0.3.6"
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.3.3
4
+ version: 0.3.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Indigo Tech Tutorials
@@ -46,20 +46,24 @@ extensions: []
46
46
  extra_rdoc_files: []
47
47
  files:
48
48
  - bin/jetski
49
+ - bin/jetski_cli_helpers/destroy.rb
50
+ - bin/jetski_cli_helpers/generate.rb
51
+ - bin/templates/base/Gemfile
52
+ - bin/templates/base/app/assets/images/jetski-logo.png
53
+ - bin/templates/base/app/assets/stylesheets/application.css
54
+ - bin/templates/base/app/assets/stylesheets/pages.css
55
+ - 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
59
+ - bin/templates/controllers/example_controller
60
+ - bin/templates/views/example.html
49
61
  - lib/jetski.rb
50
62
  - lib/jetski/base_controller.rb
51
63
  - lib/jetski/router.rb
52
64
  - lib/jetski/router/parser.rb
53
65
  - lib/jetski/server.rb
54
66
  - lib/jetski/version.rb
55
- - templates/base/Gemfile
56
- - templates/base/app/assets/images/jetski-logo.png
57
- - templates/base/app/assets/stylesheets/application.css
58
- - templates/base/app/assets/stylesheets/pages.css
59
- - templates/base/app/controllers/pages_controller.rb
60
- - templates/base/app/views/layouts/application.html
61
- - templates/base/app/views/pages/home.html
62
- - templates/base/start.rb
63
67
  homepage: https://rubygems.org/gems/jetski
64
68
  licenses:
65
69
  - MIT
File without changes
File without changes