advanced_haml_scaffold_generator 2.3.1 → 3.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: 71bd6c4e5ad40e3325a0bcae2a21ffbea6d54f6708db2b7c79d96386040174d1
4
- data.tar.gz: e512520e02b76c1bbd40ce25185666ba4953bb95783e1ea08e3f459b534f2990
3
+ metadata.gz: b6d25a9edb3f1b1ac72084b51d395b32ae9c359ab4f68b0b90e36bb99fdcc50a
4
+ data.tar.gz: 11fc63307b1aca5830bf3f3da11c9c27e4c8193ccb6c748bc1c61daf324b1e2a
5
5
  SHA512:
6
- metadata.gz: dc2e386ecb1f11edad23cf6a3ea9a628ea9f58bf5455fa3314f7917b10c8586e97789759dc422fba799fa2de49dcc6d1a7a0710ce477416b4257b5784e5d4812
7
- data.tar.gz: b0619c2ad24c1ec46100b0ef6fe31ade6e56440d9a9baa2656c11b1fed9eb7f67a5f1a709dc6758053f53f71b86b615e767ab473e730dbfd8ed7786a349d2e74
6
+ metadata.gz: f55b57a38e48b253506c6711896b6cbf2b72169a10b592727bf3b951d119c951151596c1013be1b75e6408849e062a8a562db312d3f6516b53e9a53d26f8376e
7
+ data.tar.gz: 263440c745d138bd7e354dcd8293e7d892365f3968f76d002d7525e5172a920b5ae3c793a0c52d9b91c88bb8aa4ae996076e708d1e812abf047fe9fbb09bf3ff
data/CHANGELOG.md ADDED
@@ -0,0 +1,6 @@
1
+ # Change log
2
+
3
+ ## 3.0.0 (15 Nov, 2024)
4
+
5
+ - Added button "Back" and Stimulus controller to navigate back in history when Stimulus is present.
6
+ - Old button "Back" is renamed to "index" and its class is also changed to "index".
data/Rakefile CHANGED
@@ -19,8 +19,8 @@ Jeweler::Tasks.new do |gem|
19
19
  gem.license = "MIT"
20
20
  gem.summary = %Q{Extention of the haml generator that is aware of i18n and so forth}
21
21
  gem.description = %Q{Extention of the haml generator that generates templates with the use of i18n, cancan and WiceGrid, adds classes to buttons and uses :title helper}
22
- gem.email = "dima@koulikoff.ru"
23
- gem.authors = ["Dmitri Koulikoff"]
22
+ gem.email = "dimi@kulk.eu"
23
+ gem.authors = ["Dimitri Kulk"]
24
24
  # dependencies defined in Gemfile
25
25
  end
26
26
  Jeweler::RubygemsDotOrgTasks.new
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.3.1
1
+ 3.0.0
@@ -2,18 +2,18 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: advanced_haml_scaffold_generator 2.2.1 ruby lib
5
+ # stub: advanced_haml_scaffold_generator 3.0.0 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "advanced_haml_scaffold_generator".freeze
9
- s.version = "2.3.1"
9
+ s.version = "3.0.0".freeze
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib".freeze]
13
- s.authors = ["Dmitri Koulikoff".freeze]
14
- s.date = "2020-06-17"
13
+ s.authors = ["Dimitri Kulk".freeze]
14
+ s.date = "2024-11-15"
15
15
  s.description = "Extention of the haml generator that generates templates with the use of i18n, cancan and WiceGrid, adds classes to buttons and uses :title helper".freeze
16
- s.email = "dima@koulikoff.ru".freeze
16
+ s.email = "dimi@kulk.eu".freeze
17
17
  s.extra_rdoc_files = [
18
18
  "LICENSE.txt",
19
19
  "README.rdoc"
@@ -21,6 +21,7 @@ Gem::Specification.new do |s|
21
21
  s.files = [
22
22
  ".document",
23
23
  ".rspec",
24
+ "CHANGELOG.md",
24
25
  "Gemfile",
25
26
  "LICENSE.txt",
26
27
  "README.rdoc",
@@ -34,6 +35,7 @@ Gem::Specification.new do |s|
34
35
  "lib/rails/generators/haml/scaffold/templates/edit.html.haml",
35
36
  "lib/rails/generators/haml/scaffold/templates/index.html.haml",
36
37
  "lib/rails/generators/haml/scaffold/templates/layout.html.haml",
38
+ "lib/rails/generators/haml/scaffold/templates/navigation_controller.js",
37
39
  "lib/rails/generators/haml/scaffold/templates/new.html.haml",
38
40
  "lib/rails/generators/haml/scaffold/templates/show.html.haml",
39
41
  "spec/advanced_haml_scaffold_generator_spec.rb",
@@ -41,25 +43,15 @@ Gem::Specification.new do |s|
41
43
  ]
42
44
  s.homepage = "http://github.com/dima4p/advanced_haml_scaffold_generator".freeze
43
45
  s.licenses = ["MIT".freeze]
44
- s.rubygems_version = "3.1.2".freeze
46
+ s.rubygems_version = "3.5.11".freeze
45
47
  s.summary = "Extention of the haml generator that is aware of i18n and so forth".freeze
46
48
 
47
- if s.respond_to? :specification_version then
48
- s.specification_version = 4
49
- end
49
+ s.specification_version = 4
50
50
 
51
- if s.respond_to? :add_runtime_dependency then
52
- s.add_development_dependency(%q<rspec>.freeze, ["~> 3.1"])
53
- s.add_development_dependency(%q<rdoc>.freeze, ["~> 4.1"])
54
- s.add_development_dependency(%q<bundler>.freeze)
55
- s.add_development_dependency(%q<jeweler>.freeze, ["~> 2.0"])
56
- s.add_development_dependency(%q<simplecov>.freeze, ["~> 0.0"])
57
- else
58
- s.add_dependency(%q<rspec>.freeze, ["~> 3.1"])
59
- s.add_dependency(%q<rdoc>.freeze, ["~> 4.1"])
60
- s.add_dependency(%q<bundler>.freeze, ["~> 1.6"])
61
- s.add_dependency(%q<jeweler>.freeze, ["~> 2.0"])
62
- s.add_dependency(%q<simplecov>.freeze, ["~> 0.0"])
63
- end
51
+ s.add_development_dependency(%q<rspec>.freeze, [">= 0".freeze])
52
+ s.add_development_dependency(%q<rdoc>.freeze, [">= 0".freeze])
53
+ s.add_development_dependency(%q<bundler>.freeze, [">= 0".freeze])
54
+ s.add_development_dependency(%q<jeweler>.freeze, [">= 0".freeze])
55
+ s.add_development_dependency(%q<simplecov>.freeze, [">= 0".freeze])
64
56
  end
65
57
 
@@ -43,17 +43,28 @@ module Haml
43
43
 
44
44
  def copy_layout_file
45
45
  return unless options[:layout]
46
- template "layout.html.haml", File.join("app/views/layouts", controller_class_path, "#{controller_file_name}.html.haml")
46
+ template "layout.html.haml",
47
+ File.join("app/views/layouts", controller_class_path, "#{controller_file_name}.html.haml")
48
+ end
49
+
50
+ def copy_controller
51
+ return unless defined? Stimulus
52
+ filename = 'navigation_controller.js'
53
+ path = 'app/javascript/controllers/' + filename
54
+ return if File.file? path
55
+ template filename, path
47
56
  end
48
57
 
49
58
  protected
50
59
 
51
60
  def copy_coffee(view)
52
- template "#{view}.js.coffee", File.join("app/views", controller_file_path, "#{view}.js.coffee")
61
+ template "#{view}.js.coffee",
62
+ File.join("app/views", controller_file_path, "#{view}.js.coffee")
53
63
  end
54
64
 
55
65
  def copy_view(view)
56
- template "#{view}.html.haml", File.join("app/views", controller_file_path, "#{view}.html.haml")
66
+ template "#{view}.html.haml",
67
+ File.join("app/views", controller_file_path, "#{view}.html.haml")
57
68
  end
58
69
  end
59
70
  end
@@ -1,13 +1,30 @@
1
1
  - title t('.title')
2
2
 
3
+ <% if turbo = defined? Stimulus -%>
4
+ %p.nav{data: {controller: "navigation"}}
5
+ <% else -%>
3
6
  %p.nav
7
+ <% end -%>
4
8
  <% if options[:cancan] -%>
5
9
  - if can? :index, <%= class_name %>
6
- = link_to t('back'), <%= plural_name %>_path, class: 'index'
10
+ <% if turbo -%>
11
+ = link_to t('Back'), <%= plural_name %>_path, class: 'back',
12
+ data: {action: "navigation#back", turbo_action: 'replace'}
13
+ <% end -%>
14
+ = link_to t('index'), <%= plural_name %>_path, class: 'index'
15
+ <% if turbo -%>
16
+ - else
17
+ = link_to t('Back'), '', class: 'back',
18
+ data: {action: "navigation#back", turbo_action: 'replace'}
19
+ <% end -%>
7
20
  - if can? :show, @<%= singular_name %>
8
21
  = link_to t('show'), @<%= singular_name %>, class: 'show'
9
22
  <% else -%>
10
- = link_to t('back'), <%= plural_name %>_path, class: 'index'
23
+ <% if turbo -%>
24
+ = link_to t('Back'), <%= plural_name %>_path, class: 'back',
25
+ data: {action: "navigation#back", turbo_action: 'replace'}
26
+ <% end -%>
27
+ = link_to t('index'), <%= plural_name %>_path, class: 'index'
11
28
  = link_to t('show'), @<%= singular_name %>, class: 'show'
12
29
  <% end -%>
13
30
 
@@ -1,12 +1,20 @@
1
1
  - title t('.title')
2
2
 
3
+ <% if turbo = defined? Stimulus -%>
4
+ %p.nav{data: {controller: "navigation"}}
5
+ <% else -%>
6
+ %p.nav
7
+ <% end -%>
3
8
  <% if options[:cancan] -%>
4
- - if can? :new, <%= class_name %>
5
- %p.nav= link_to t('.new_<%= singular_table_name %>'), new_<%= singular_table_name %>_path, class: 'new'
9
+ <% if turbo -%>
10
+ = link_to t('Back'), <%= plural_name %>_path, class: 'back',
11
+ data: {action: "navigation#back", turbo_action: 'replace'}
12
+ <% end -%>
13
+ - if can? :new, <%= class_name %>
14
+ = link_to t('.new_<%= singular_table_name %>'), new_<%= singular_table_name %>_path, class: 'new'
6
15
  <% else -%>
7
- %p.nav= link_to t('.new_<%= singular_table_name %>'), new_<%= singular_table_name %>_path, class: 'new'
16
+ = link_to t('.new_<%= singular_table_name %>'), new_<%= singular_table_name %>_path, class: 'new'
8
17
  <% end -%>
9
- <% turbo = defined? Turbo -%>
10
18
 
11
19
  - if @<%= plural_table_name %>.limit(1).size > 0
12
20
  <% if defined? Wice::WiceGrid -%>
@@ -0,0 +1,36 @@
1
+ import { Controller } from '@hotwired/stimulus'
2
+
3
+ export default class NavigationController extends Controller {
4
+ connect() {
5
+ let main_nav = this.element
6
+ this.collect_nav_links_into(main_nav)
7
+ this.is_frist_history_entry && this.hide_back_button_in(main_nav)
8
+ }
9
+
10
+ back (event) {
11
+ if (!this.is_frist_history_entry) {
12
+ event.preventDefault()
13
+ window.history.back()
14
+ }
15
+ }
16
+
17
+ //////////////////////////
18
+
19
+ collect_nav_links_into(main_nav) {
20
+ document.querySelectorAll('p.nav').forEach(element => {
21
+ if (element != main_nav) {
22
+ main_nav.append(...element.childNodes)
23
+ }
24
+ })
25
+ }
26
+
27
+ hide_back_button_in(main_nav) {
28
+ let link = main_nav.querySelector("a.back")
29
+ link && link.remove()
30
+ }
31
+
32
+ get is_frist_history_entry () {
33
+ return !window.history.state.turbo ||
34
+ window.history.state.turbo.restorationIndex === 0
35
+ }
36
+ }
@@ -1,10 +1,28 @@
1
1
  - title t('.title')
2
2
 
3
+ <% if turbo = defined? Stimulus -%>
4
+ %p.nav{data: {controller: "navigation"}}
5
+ <% else -%>
6
+ %p.nav
7
+ <% end -%>
3
8
  <% if options[:cancan] -%>
4
- - if can? :index, <%= class_name %>
5
- %p.nav= link_to t('back'), <%= index_helper %>_path, class: 'index'
9
+ - if can? :index, <%= class_name %>
10
+ <% if turbo -%>
11
+ = link_to t('Back'), <%= plural_name %>_path, class: 'back',
12
+ data: {action: "navigation#back", turbo_action: 'replace'}
13
+ <% end -%>
14
+ = link_to t('index'), <%= index_helper %>_path, class: 'index'
15
+ <% if turbo -%>
16
+ - else
17
+ = link_to t('Back'), '', class: 'back',
18
+ data: {action: "navigation#back", turbo_action: 'replace'}
19
+ <% end -%>
6
20
  <% else -%>
7
- %p= link_to t('back'), <%= index_helper %>_path, class: 'index'
21
+ <% if turbo -%>
22
+ = link_to t('Back'), <%= plural_name %>_path, class: 'back',
23
+ data: {action: "navigation#back", turbo_action: 'replace'}
24
+ <% end -%>
25
+ = link_to t('index'), <%= index_helper %>_path, class: 'index'
8
26
  <% end -%>
9
27
 
10
28
  = render 'form', <%= singular_table_name %>: @<%= singular_table_name %>
@@ -1,13 +1,30 @@
1
1
  - title t('.title')
2
2
 
3
+ <% if turbo = defined? Stimulus -%>
4
+ %p.nav{data: {controller: "navigation"}}
5
+ <% else -%>
3
6
  %p.nav
7
+ <% end -%>
4
8
  <% if options[:cancan] -%>
5
9
  - if can? :index, <%= class_name %>
6
- = link_to t('back'), <%= index_helper %>_path, class: 'index'
10
+ <% if turbo -%>
11
+ = link_to t('Back'), <%= plural_name %>_path, class: 'back',
12
+ data: {action: "navigation#back", turbo_action: 'replace'}
13
+ <% end -%>
14
+ = link_to t('index'), <%= index_helper %>_path, class: 'index'
15
+ <% if turbo -%>
16
+ - else
17
+ = link_to t('Back'), '', class: 'back',
18
+ data: {action: "navigation#back", turbo_action: 'replace'}
19
+ <% end -%>
7
20
  - if can? :edit, @<%= singular_table_name %>
8
21
  = link_to t('edit'), edit_<%= singular_table_name %>_path(@<%= singular_table_name %>), class: 'edit'
9
22
  <% else -%>
10
- = link_to t('back'), <%= plural_name %>_path, class: 'index'
23
+ <% if turbo -%>
24
+ = link_to t('Back'), <%= plural_name %>_path, class: 'back',
25
+ data: {action: "navigation#back", turbo_action: 'replace'}
26
+ <% end -%>
27
+ = link_to t('index'), <%= plural_name %>_path, class: 'index'
11
28
  = link_to t('edit'), edit_<%= singular_table_name %>_path(@<%= singular_table_name %>), class: 'edit'
12
29
  <% end -%>
13
30
 
metadata CHANGED
@@ -1,43 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: advanced_haml_scaffold_generator
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.1
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
- - Dmitri Koulikoff
7
+ - Dimitri Kulk
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-06-17 00:00:00.000000000 Z
11
+ date: 2024-11-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '3.1'
19
+ version: '0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '3.1'
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rdoc
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '4.1'
33
+ version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: '4.1'
40
+ version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -56,33 +56,33 @@ dependencies:
56
56
  name: jeweler
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: '2.0'
61
+ version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: '2.0'
68
+ version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: simplecov
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - "~>"
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: '0.0'
75
+ version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - "~>"
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: '0.0'
82
+ version: '0'
83
83
  description: Extention of the haml generator that generates templates with the use
84
84
  of i18n, cancan and WiceGrid, adds classes to buttons and uses :title helper
85
- email: dima@koulikoff.ru
85
+ email: dimi@kulk.eu
86
86
  executables: []
87
87
  extensions: []
88
88
  extra_rdoc_files:
@@ -91,6 +91,7 @@ extra_rdoc_files:
91
91
  files:
92
92
  - ".document"
93
93
  - ".rspec"
94
+ - CHANGELOG.md
94
95
  - Gemfile
95
96
  - LICENSE.txt
96
97
  - README.rdoc
@@ -104,6 +105,7 @@ files:
104
105
  - lib/rails/generators/haml/scaffold/templates/edit.html.haml
105
106
  - lib/rails/generators/haml/scaffold/templates/index.html.haml
106
107
  - lib/rails/generators/haml/scaffold/templates/layout.html.haml
108
+ - lib/rails/generators/haml/scaffold/templates/navigation_controller.js
107
109
  - lib/rails/generators/haml/scaffold/templates/new.html.haml
108
110
  - lib/rails/generators/haml/scaffold/templates/show.html.haml
109
111
  - spec/advanced_haml_scaffold_generator_spec.rb