ultra_light_wizard 0.0.3 → 0.0.4
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 +4 -4
- data/Gemfile +1 -1
- data/Gemfile.lock +4 -1
- data/README.md +8 -0
- data/VERSION +1 -1
- data/lib/generators/templates/app/controllers/model_controller.rb.erb +37 -0
- data/lib/generators/templates/app/helpers/wizard_steps_helper.rb.erb +16 -7
- data/lib/generators/ultra_light_wizard/wizard_generator.rb +21 -0
- data/ultra_light_wizard.gemspec +6 -5
- metadata +6 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 80b4dd5230aa70e805ce0b3f516dc4e882ea0d38
|
4
|
+
data.tar.gz: f9db7ab36afbb0fe06db8ad9937a7b04f250bac8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f366407e1b4216e618f9c4668eb6fd76a7d4a7c164ed039f152d4bdb4543cb01038a888d4a920206186a8beebb9488ace94af395bd454b367eab90e15cbf1e11
|
7
|
+
data.tar.gz: 396ad497eabb8ba6ad460295c20ce903a03e6e287fdd9cb8c7003b5b14788c5175780b8a3f9d692c7256ac5ec500e4592828821774508abd7f7779b00e20ffba
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -61,6 +61,12 @@ end
|
|
61
61
|
|
62
62
|
Once the files are generated, you can proceed to place your own code customizations in the wizard step models and views.
|
63
63
|
|
64
|
+
To kick-off wizard, simply trigger the main model controller create action, and it will transition to the wizard step first step edit action.
|
65
|
+
|
66
|
+
For example, the following will kick-off the project wizard by creating a project and automatically redirecting to first step:
|
67
|
+
|
68
|
+
```<%= link_to 'New Project', projects_path, method: :post %>```
|
69
|
+
|
64
70
|
To learn more about the Ultra Light Wizard philosophy and function, please read this [Code Painter](http://www.codepainter.ca) blog post: [Ultra Light & Maintainable Wizard in Rails] (http://www.codepainter.ca/2013/10/ultra-light-maintainable-wizards-in.html)
|
65
71
|
|
66
72
|
Principles
|
@@ -88,7 +94,9 @@ Features
|
|
88
94
|
+ [DONE] View navigation
|
89
95
|
+ [DONE] Helper (or Controller SuperModule trait) for ultra light wizard support
|
90
96
|
+ [DONE] Route helper methods
|
97
|
+
+ [DONE] Wizard kick-off helper/view
|
91
98
|
- Forms
|
99
|
+
- Scaffolding of main model controller/views/migration
|
92
100
|
- Support for nested resources
|
93
101
|
- Modularize (perhaps extracting sub-generators)
|
94
102
|
+ [DONE] Customize name conventions
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.4
|
@@ -0,0 +1,37 @@
|
|
1
|
+
<% if namespaced? -%>
|
2
|
+
require_dependency "<%= namespaced_file_path %>/application_controller"
|
3
|
+
|
4
|
+
<% end -%>
|
5
|
+
<% module_namespacing do -%>
|
6
|
+
class <%= controller_class_name %>Controller < ApplicationController
|
7
|
+
before_action :set_<%= singular_table_name %>, only: [:show, :destroy]
|
8
|
+
|
9
|
+
# GET <%= route_url %>
|
10
|
+
def index
|
11
|
+
@<%= plural_table_name %> = <%= orm_class %>.all
|
12
|
+
end
|
13
|
+
|
14
|
+
# GET <%= route_url %>/1
|
15
|
+
def show
|
16
|
+
end
|
17
|
+
|
18
|
+
# POST <%= route_url %>
|
19
|
+
def create
|
20
|
+
@<%= singular_table_name %> = <%= orm_class %>.new
|
21
|
+
@<%= singular_table_name %>.save(validation: false)
|
22
|
+
redirect_to edit_<%= file_path %>_<%= file_path %>_<%= step_alias %>_path(@<%= singular_table_name %>, <%= orm_class %><%= step_alias.camelize.titleize.pluralize %>Helper::<%= step_alias.pluralize.upcase %>.first)
|
23
|
+
end
|
24
|
+
|
25
|
+
# DELETE <%= route_url %>/1
|
26
|
+
def destroy
|
27
|
+
@<%= singular_table_name %>.destroy
|
28
|
+
redirect_to <%= index_helper %>_url, notice: <%= "'#{human_name} was successfully destroyed.'" %>
|
29
|
+
end
|
30
|
+
|
31
|
+
private
|
32
|
+
# Use callbacks to share common setup or constraints between actions.
|
33
|
+
def set_<%= singular_table_name %>
|
34
|
+
@<%= singular_table_name %> = <%= orm_class %>.find(params[:id])
|
35
|
+
end
|
36
|
+
end
|
37
|
+
<% end -%>
|
@@ -10,25 +10,34 @@ module <%= class_name %><%= step_alias.pluralize.camelize %>Helper
|
|
10
10
|
<%= step_alias.pluralize.upcase %>.find {|a_<%= step_alias %>| a_<%= step_alias %> == params[:id].to_s.downcase}
|
11
11
|
end
|
12
12
|
|
13
|
-
def next_<%= step_alias %>
|
14
|
-
current_<%= step_alias %>_index = <%= step_alias.pluralize.upcase %>.index(<%= step_alias %>)
|
15
|
-
<%= step_alias.pluralize.upcase %>[current_<%= step_alias %>_index+1]
|
16
|
-
end
|
17
|
-
|
18
13
|
def previous_<%= step_alias %>
|
19
14
|
current_<%= step_alias %>_index = <%= step_alias.pluralize.upcase %>.index(<%= step_alias %>)
|
20
15
|
previous_<%= step_alias %>_index = current_<%= step_alias %>_index-1
|
21
16
|
previous_<%= step_alias %>_index < 0 ? nil : <%= step_alias.pluralize.upcase %>[previous_<%= step_alias %>_index]
|
22
17
|
end
|
18
|
+
|
19
|
+
def next_<%= step_alias %>
|
20
|
+
current_<%= step_alias %>_index = <%= step_alias.pluralize.upcase %>.index(<%= step_alias %>)
|
21
|
+
<%= step_alias.pluralize.upcase %>[current_<%= step_alias %>_index+1]
|
22
|
+
end
|
23
|
+
|
23
24
|
<% %w(path url).each do |route_term| %>
|
24
|
-
def
|
25
|
-
<%= file_path %>_<%= step_alias %>_model_<%= route_term %>(
|
25
|
+
def first_<%= step_alias %>_<%= route_term %>
|
26
|
+
<%= file_path %>_<%= step_alias %>_model_<%= route_term %>(<%= step_alias.pluralize.upcase %>.first)
|
26
27
|
end
|
27
28
|
|
28
29
|
def previous_<%= step_alias %>_<%= route_term %>
|
29
30
|
<%= file_path %>_<%= step_alias %>_model_<%= route_term %>(previous_<%= step_alias %>)
|
30
31
|
end
|
31
32
|
|
33
|
+
def next_<%= step_alias %>_<%= route_term %>
|
34
|
+
<%= file_path %>_<%= step_alias %>_model_<%= route_term %>(next_<%= step_alias %>)
|
35
|
+
end
|
36
|
+
|
37
|
+
def last_<%= step_alias %>_<%= route_term %>
|
38
|
+
<%= file_path %>_<%= step_alias %>_model_<%= route_term %>(<%= step_alias.pluralize.upcase %>.last)
|
39
|
+
end
|
40
|
+
|
32
41
|
def <%= file_path %>_<%= step_alias %>_model_<%= route_term %>(<%= step_alias %>)
|
33
42
|
edit_<%= file_path %>_<%= file_path %>_<%= step_alias %>_<%= route_term %>(<%= file_path %>_<%= step_alias %>_model, <%= step_alias %>)
|
34
43
|
end
|
@@ -17,8 +17,29 @@ module UltraLightWizard
|
|
17
17
|
arguments['steps'].to_s.split(',').map(&:strip)
|
18
18
|
end
|
19
19
|
|
20
|
+
def controller_class_name
|
21
|
+
file_path.pluralize.titleize
|
22
|
+
end
|
23
|
+
|
24
|
+
def orm_class
|
25
|
+
file_path.camelize.titleize
|
26
|
+
end
|
27
|
+
|
28
|
+
def index_helper
|
29
|
+
file_path.pluralize
|
30
|
+
end
|
31
|
+
|
32
|
+
def human_name
|
33
|
+
file_path.humanize
|
34
|
+
end
|
35
|
+
|
36
|
+
def plural_table_name
|
37
|
+
file_path.pluralize
|
38
|
+
end
|
39
|
+
|
20
40
|
desc "Creates a configuration file for a specific application context (e.g. admin). Takes context path as argument (e.g. admin or internal/wiki) to create config/features/[context_path].yml"
|
21
41
|
def copy_config
|
42
|
+
template "app/controllers/model_controller.rb.erb", "app/controllers/#{file_path.pluralize}_controller.rb"
|
22
43
|
template "app/controllers/wizard_steps_controller.rb.erb", "app/controllers/#{file_path}_#{step_alias.pluralize}_controller.rb"
|
23
44
|
template "app/helpers/wizard_steps_helper.rb.erb", "app/helpers/#{file_path}_#{step_alias.pluralize}_helper.rb"
|
24
45
|
template "app/views/wizard_step_navigation_view.html.erb", "app/views/#{file_path}_#{step_alias.pluralize}/_#{step_alias}_navigation.html.erb"
|
data/ultra_light_wizard.gemspec
CHANGED
@@ -2,11 +2,11 @@
|
|
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: ultra_light_wizard 0.0.
|
5
|
+
# stub: ultra_light_wizard 0.0.4 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "ultra_light_wizard"
|
9
|
-
s.version = "0.0.
|
9
|
+
s.version = "0.0.4"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib"]
|
@@ -27,6 +27,7 @@ Gem::Specification.new do |s|
|
|
27
27
|
"README.md",
|
28
28
|
"Rakefile",
|
29
29
|
"VERSION",
|
30
|
+
"lib/generators/templates/app/controllers/model_controller.rb.erb",
|
30
31
|
"lib/generators/templates/app/controllers/wizard_steps_controller.rb.erb",
|
31
32
|
"lib/generators/templates/app/helpers/wizard_steps_helper.rb.erb",
|
32
33
|
"lib/generators/templates/app/models/wizard_step_model.rb.erb",
|
@@ -49,12 +50,12 @@ Gem::Specification.new do |s|
|
|
49
50
|
s.specification_version = 4
|
50
51
|
|
51
52
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
52
|
-
s.add_development_dependency(%q<jeweler>, ["
|
53
|
+
s.add_development_dependency(%q<jeweler>, ["~> 1.8.8"])
|
53
54
|
else
|
54
|
-
s.add_dependency(%q<jeweler>, ["
|
55
|
+
s.add_dependency(%q<jeweler>, ["~> 1.8.8"])
|
55
56
|
end
|
56
57
|
else
|
57
|
-
s.add_dependency(%q<jeweler>, ["
|
58
|
+
s.add_dependency(%q<jeweler>, ["~> 1.8.8"])
|
58
59
|
end
|
59
60
|
end
|
60
61
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ultra_light_wizard
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andy Maleh
|
@@ -14,16 +14,16 @@ dependencies:
|
|
14
14
|
name: jeweler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 1.8.8
|
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:
|
26
|
+
version: 1.8.8
|
27
27
|
description: Ultra light & maintainble wizards in Rails that honor REST, MVC, and
|
28
28
|
OO with minimal writing of code involved and maximum flexibility
|
29
29
|
email: andy.am@gmail.com
|
@@ -41,6 +41,7 @@ files:
|
|
41
41
|
- README.md
|
42
42
|
- Rakefile
|
43
43
|
- VERSION
|
44
|
+
- lib/generators/templates/app/controllers/model_controller.rb.erb
|
44
45
|
- lib/generators/templates/app/controllers/wizard_steps_controller.rb.erb
|
45
46
|
- lib/generators/templates/app/helpers/wizard_steps_helper.rb.erb
|
46
47
|
- lib/generators/templates/app/models/wizard_step_model.rb.erb
|