hotwire_crud 0.1.1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 49da02d8cbd94b6c6e701d153f7e941839274d0930092febb5be18c19bcaf0f0
4
- data.tar.gz: 141f1ab90e9992ab9baf83fd434d5bffdb27244248b70bd674f38f1e0911d2bf
3
+ metadata.gz: 3e28611e36f142b7cbc686342aa46add0584de857664561cb12da7c3ac9e9b7f
4
+ data.tar.gz: 7ce6fa2c4d1245df5231a4f70ad177049681e1aa9df714ef4da2f5b36a5e6492
5
5
  SHA512:
6
- metadata.gz: 48b180a9647856cfa0f02ee6e8ac1249cf3f12a1c8661bc91a11db844643c5b38576fb3a4035aefbb8e90bb2031875a77ce64755187b469d9502e50778e5288e
7
- data.tar.gz: b5cd29ca40b435a876a3b671cb331308ec19bca596ac3e0d20522cd026dbe51fc3c0326e038ea70004266e72d5bf3ca41446c930e41a5d367cfe61a3db346189
6
+ metadata.gz: 1e37b02588f1d5cfd9d974efa90858711c481451e59922648deba621e2cbf6d36c265bd81c59b7712cb6e66769f55e08dc2283aefad1ba965d507e4e6074f36a
7
+ data.tar.gz: dfd4ebb3f66e9d70de6f01923653f010484ebf2566b8ecad942fa250d43466703c059293f531deb62dfcb5ba8ae6e2982a997ad7e4de389a23ff433a2fe4ec56
data/hotwire_crud.gemspec CHANGED
@@ -1,6 +1,8 @@
1
+ # frozen_string_literal: true
2
+
1
3
  Gem::Specification.new do |spec|
2
4
  spec.name = 'hotwire_crud'
3
- spec.version = '0.1.1'
5
+ spec.version = '1.0.0'
4
6
  spec.summary = 'crud generator with hotwire approach and static routes'
5
7
  spec.description = 'Crud generator with static routes which lazy loads content using content routes'
6
8
  spec.authors = ['Umair Azam']
@@ -10,10 +12,12 @@ Gem::Specification.new do |spec|
10
12
 
11
13
  spec.files = Dir['lib/**/*', 'templates/**/*', '*.gemspec']
12
14
  spec.require_paths = ['lib']
13
-
15
+ spec.required_ruby_version = '3.1.2'
14
16
  spec.add_runtime_dependency 'rails', '>= 6.0'
15
17
  # Add other dependencies if needed
16
18
 
17
19
  # Specify the custom generator file(s)
18
20
  spec.add_development_dependency 'railties'
19
- end
21
+ spec.add_development_dependency 'rubocop', '~> 1.0'
22
+ spec.metadata['rubygems_mfa_required'] = 'true'
23
+ end
@@ -0,0 +1,8 @@
1
+ Description:
2
+ Explain the generator
3
+
4
+ Example:
5
+ bin/rails generate hotwire_crud books
6
+
7
+ This will create:
8
+ what/will/it/create
@@ -0,0 +1,55 @@
1
+ # frozen_string_literal: true
2
+
3
+ # A Rails generator that creates a CRUD (Create, Read, Update, Delete) controller
4
+ # with Hotwire support.
5
+ #
6
+ # This generator creates a controller file, view files, and sets up the
7
+ # routes for the CRUD operations. It is designed to be used with Hotwire
8
+ # for a more interactive and dynamic user interface.
9
+ #
10
+ # Usage:
11
+ # rails generate hotwire_crud resource_controller_name
12
+ #
13
+ # Example:
14
+ # rails generate hotwire_crud products
15
+ #
16
+ # This will generate a Products controller with actions for index, show, new, edit,
17
+ # create, update, and destroy, along with corresponding view templates.
18
+ #
19
+
20
+ # lib/generators/hotwire_crud_generator.rb
21
+ class HotwireCrudGenerator < Rails::Generators::NamedBase
22
+ source_root File.expand_path('templates', __dir__)
23
+
24
+ argument :actions, type: :array, default: %w[index edit new show]
25
+
26
+ def create_static_controller_file
27
+ template 'static_controller.erb', File.join('app/controllers/static', "#{file_name}_controller.rb")
28
+ end
29
+
30
+ def create_static_controller_test
31
+ template 'static_controller_spec.erb', File.join('spec/controllers/static', "#{file_name}_controller_spec.rb")
32
+ end
33
+
34
+ def create_controller_file
35
+ template 'controller.erb', File.join('app/controllers', "#{file_name}_controller.rb")
36
+ end
37
+
38
+ def create_controller_test
39
+ template 'controller_spec.erb', File.join('spec/controllers', "#{file_name}_controller_spec.rb")
40
+ end
41
+
42
+ def create_views
43
+ actions.each do |action|
44
+ template "views/static_#{action}.html.erb", File.join('app/views/static', file_name, "#{action}.html.haml")
45
+ template "views/#{action}.html.erb", File.join('app/views', file_name, "#{action}.html.haml")
46
+ end
47
+ end
48
+
49
+ def insert_routes
50
+ route "resources :#{file_name}, only: #{actions.map(&:to_sym).inspect}"
51
+
52
+ route_namespace = 'static'
53
+ route "namespace :#{route_namespace} do\n resources :#{file_name}, only: #{actions.map(&:to_sym).inspect}\nend"
54
+ end
55
+ end
@@ -0,0 +1,10 @@
1
+
2
+ class <%= class_name %>Controller < ApplicationController
3
+ <% actions.each do |action|%>
4
+ def <%= action %>
5
+ # Your <%= action %> action code goes here
6
+ end
7
+ <% end %>
8
+
9
+ # Define other actions here if needed
10
+ end
@@ -0,0 +1,15 @@
1
+ require 'rails_helper'
2
+
3
+ RSpec.describe <%= "#{class_name}Controller" %>, type: :controller do
4
+
5
+ <% actions.each do |action|%>
6
+ describe 'GET #<%= action %>' do
7
+ it 'returns http success' do
8
+ get :<%= action %>
9
+ expect(response).to have_http_status(:success)
10
+ end
11
+ end
12
+ <% end %>
13
+
14
+ # Define other tests here if needed
15
+ end
@@ -0,0 +1,8 @@
1
+
2
+ class Static::<%= class_name %>Controller < ApplicationController
3
+ <% actions.each do |action|%>
4
+ def <%= action %>
5
+ # Your <%= action %> action code goes here
6
+ end
7
+ <% end %>
8
+ end
@@ -0,0 +1,15 @@
1
+ require 'rails_helper'
2
+
3
+ RSpec.describe <%= "Static::#{class_name}Controller" %>, type: :controller do
4
+
5
+ <% actions.each do |action|%>
6
+ describe 'GET #<%= action %>' do
7
+ it 'returns http success' do
8
+ get :<%= action %>
9
+ expect(response).to have_http_status(:success)
10
+ end
11
+ end
12
+ <% end %>
13
+
14
+ # Define other tests here if needed
15
+ end
@@ -0,0 +1 @@
1
+ %h hello index listing
@@ -0,0 +1 @@
1
+ %h hello static index listing
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hotwire_crud
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Umair Azam
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rubocop
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.0'
41
55
  description: Crud generator with static routes which lazy loads content using content
42
56
  routes
43
57
  email:
@@ -47,26 +61,41 @@ extensions: []
47
61
  extra_rdoc_files: []
48
62
  files:
49
63
  - hotwire_crud.gemspec
64
+ - lib/generators/hotwire_crud/USAGE
65
+ - lib/generators/hotwire_crud/hotwire_crud_generator.rb
66
+ - lib/generators/hotwire_crud/templates/controller.erb
67
+ - lib/generators/hotwire_crud/templates/controller_spec.erb
68
+ - lib/generators/hotwire_crud/templates/static_controller.erb
69
+ - lib/generators/hotwire_crud/templates/static_controller_spec.erb
70
+ - lib/generators/hotwire_crud/templates/views/edit.html.erb
71
+ - lib/generators/hotwire_crud/templates/views/index.html.erb
72
+ - lib/generators/hotwire_crud/templates/views/new.html.erb
73
+ - lib/generators/hotwire_crud/templates/views/show.html.erb
74
+ - lib/generators/hotwire_crud/templates/views/static_edit.html.erb
75
+ - lib/generators/hotwire_crud/templates/views/static_index.html.erb
76
+ - lib/generators/hotwire_crud/templates/views/static_new.html.erb
77
+ - lib/generators/hotwire_crud/templates/views/static_show.html.erb
50
78
  homepage: https://github.com/omairrazam/hotwire_crud.git
51
79
  licenses:
52
80
  - MIT
53
- metadata: {}
81
+ metadata:
82
+ rubygems_mfa_required: 'true'
54
83
  post_install_message:
55
84
  rdoc_options: []
56
85
  require_paths:
57
86
  - lib
58
87
  required_ruby_version: !ruby/object:Gem::Requirement
59
88
  requirements:
60
- - - ">="
89
+ - - '='
61
90
  - !ruby/object:Gem::Version
62
- version: '0'
91
+ version: 3.1.2
63
92
  required_rubygems_version: !ruby/object:Gem::Requirement
64
93
  requirements:
65
94
  - - ">="
66
95
  - !ruby/object:Gem::Version
67
96
  version: '0'
68
97
  requirements: []
69
- rubygems_version: 3.3.26
98
+ rubygems_version: 3.3.7
70
99
  signing_key:
71
100
  specification_version: 4
72
101
  summary: crud generator with hotwire approach and static routes