ultra_light_wizard 0.0.5 → 0.0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +110 -25
- data/VERSION +1 -1
- data/lib/generators/templates/app/models/wizard_step_model.rb.erb +6 -0
- data/lib/generators/ultra_light_wizard/wizard_generator.rb +21 -3
- data/ultra_light_wizard.gemspec +5 -5
- metadata +9 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c477bed626ccfefdabaa81d8537e8e045db42feb
|
4
|
+
data.tar.gz: b5e197995d61a13d57ac1ca1fc932894212cdb4a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c4c0c47bbe0ebd1b983a6eab5c1e5635aa65a8ae4b2600638f0475a9f956e82c12a29fadacd5a3fb7604f197a252fc12c710fb35049e3e4899f7a4d7cc65da26
|
7
|
+
data.tar.gz: 785dfb392fcca6b2bb73115a2133a9b1cc3afc429ad0d2a38f7c61955b26c683088fe696d3f5222a5a6ba34e8276ee04e291056b52e31da2351b8a7dbeeef663
|
data/README.md
CHANGED
@@ -11,50 +11,134 @@ https://www.youtube.com/watch?v=muyfoiKHMMA
|
|
11
11
|
Instructions
|
12
12
|
============
|
13
13
|
|
14
|
-
|
14
|
+
Simply use the following command in place of the Rails scaffold generator, and it will scaffold both standard resource and wizard components
|
15
|
+
|
16
|
+
```rails generate ultra_light_wizard:wizard (resource) steps:(step1),(step2),(step3),... attributes:(attribute1:db_type1),(attribute2:db_type2),...```
|
15
17
|
|
16
18
|
This will generate wizard step routes, controller, models, and views
|
17
19
|
|
18
20
|
Example:
|
19
21
|
|
20
|
-
```rails generate ultra_light_wizard:wizard Project steps:basic_info,project_detail,file_uploads,preview```
|
22
|
+
```rails generate ultra_light_wizard:wizard Project steps:basic_info,project_detail,file_uploads,preview attributes:name:string,description:text,start_date:date,delivery_date:date```
|
21
23
|
|
22
24
|
Output:
|
23
25
|
|
24
26
|
```
|
25
|
-
|
26
|
-
|
27
|
-
create
|
28
|
-
create
|
29
|
-
|
30
|
-
create
|
31
|
-
create
|
32
|
-
|
33
|
-
|
34
|
-
|
27
|
+
generate scaffold
|
28
|
+
invoke active_record
|
29
|
+
create db/migrate/20160201025849_create_projects.rb
|
30
|
+
create app/models/project.rb
|
31
|
+
invoke test_unit
|
32
|
+
create test/models/project_test.rb
|
33
|
+
create test/fixtures/projects.yml
|
34
|
+
invoke resource_route
|
35
|
+
route resources :projects
|
36
|
+
invoke scaffold_controller
|
37
|
+
create app/controllers/projects_controller.rb
|
38
|
+
invoke erb
|
39
|
+
create app/views/projects
|
40
|
+
create app/views/projects/index.html.erb
|
41
|
+
create app/views/projects/edit.html.erb
|
42
|
+
create app/views/projects/show.html.erb
|
43
|
+
create app/views/projects/new.html.erb
|
44
|
+
create app/views/projects/_form.html.erb
|
45
|
+
invoke test_unit
|
46
|
+
create test/controllers/projects_controller_test.rb
|
47
|
+
invoke helper
|
48
|
+
create app/helpers/projects_helper.rb
|
49
|
+
invoke test_unit
|
50
|
+
invoke jbuilder
|
51
|
+
create app/views/projects/index.json.jbuilder
|
52
|
+
create app/views/projects/show.json.jbuilder
|
53
|
+
invoke assets
|
54
|
+
invoke coffee
|
55
|
+
create app/assets/javascripts/projects.coffee
|
56
|
+
invoke scss
|
57
|
+
create app/assets/stylesheets/projects.scss
|
58
|
+
invoke scss
|
59
|
+
identical app/assets/stylesheets/scaffolds.scss
|
60
|
+
conflict app/controllers/projects_controller.rb
|
61
|
+
Overwrite /cygdrive/c/Users/a_mal_000/OneDrive/code/rails_example/app/controllers/projects_controller.rb? (enter "h" for help) [Ynaqdh] a
|
62
|
+
force app/controllers/projects_controller.rb
|
63
|
+
create app/controllers/project_steps_controller.rb
|
64
|
+
create app/helpers/project_steps_helper.rb
|
65
|
+
create app/views/project_steps/_step_navigation.html.erb
|
66
|
+
create app/models/project/name.rb
|
67
|
+
create app/views/project_steps/name.html.erb
|
68
|
+
create app/models/project/description.rb
|
69
|
+
create app/views/project_steps/description.html.erb
|
70
|
+
create app/models/project/start_date.rb
|
71
|
+
create app/views/project_steps/start_date.html.erb
|
72
|
+
create app/models/project/delivery_date.rb
|
73
|
+
create app/views/project_steps/delivery_date.html.erb
|
74
|
+
create app/models/project/preview.rb
|
75
|
+
create app/views/project_steps/preview.html.erb
|
76
|
+
route resources :projects, only: [:create, :show] do
|
35
77
|
resources :project_steps, only: [:edit, :update]
|
36
78
|
end
|
37
79
|
```
|
38
80
|
|
81
|
+
It will ask you at one point to overwrite projects_controller generated in included scaffold. Type y or a to have it continue.
|
82
|
+
|
39
83
|
If you'd like to customize the term "step", you can add a step_alias:(alias) option as in the following:
|
40
84
|
|
41
85
|
Example:
|
42
86
|
|
43
|
-
```rails generate ultra_light_wizard:wizard Project steps:basic_info,project_detail,file_uploads,preview step_alias:part```
|
87
|
+
```rails generate ultra_light_wizard:wizard Project steps:basic_info,project_detail,file_uploads,preview attributes:name:string,description:text,start_date:date,delivery_date:date step_alias:part```
|
44
88
|
|
45
89
|
Output:
|
46
90
|
|
47
91
|
```
|
48
|
-
|
49
|
-
|
50
|
-
create
|
51
|
-
create
|
52
|
-
|
53
|
-
create
|
54
|
-
create
|
55
|
-
|
56
|
-
|
57
|
-
|
92
|
+
generate scaffold
|
93
|
+
invoke active_record
|
94
|
+
create db/migrate/20160201025849_create_projects.rb
|
95
|
+
create app/models/project.rb
|
96
|
+
invoke test_unit
|
97
|
+
create test/models/project_test.rb
|
98
|
+
create test/fixtures/projects.yml
|
99
|
+
invoke resource_route
|
100
|
+
route resources :projects
|
101
|
+
invoke scaffold_controller
|
102
|
+
create app/controllers/projects_controller.rb
|
103
|
+
invoke erb
|
104
|
+
create app/views/projects
|
105
|
+
create app/views/projects/index.html.erb
|
106
|
+
create app/views/projects/edit.html.erb
|
107
|
+
create app/views/projects/show.html.erb
|
108
|
+
create app/views/projects/new.html.erb
|
109
|
+
create app/views/projects/_form.html.erb
|
110
|
+
invoke test_unit
|
111
|
+
create test/controllers/projects_controller_test.rb
|
112
|
+
invoke helper
|
113
|
+
create app/helpers/projects_helper.rb
|
114
|
+
invoke test_unit
|
115
|
+
invoke jbuilder
|
116
|
+
create app/views/projects/index.json.jbuilder
|
117
|
+
create app/views/projects/show.json.jbuilder
|
118
|
+
invoke assets
|
119
|
+
invoke coffee
|
120
|
+
create app/assets/javascripts/projects.coffee
|
121
|
+
invoke scss
|
122
|
+
create app/assets/stylesheets/projects.scss
|
123
|
+
invoke scss
|
124
|
+
identical app/assets/stylesheets/scaffolds.scss
|
125
|
+
conflict app/controllers/projects_controller.rb
|
126
|
+
Overwrite /cygdrive/c/Users/a_mal_000/OneDrive/code/rails_example/app/controllers/projects_controller.rb? (enter "h" for help) [Ynaqdh] a
|
127
|
+
force app/controllers/projects_controller.rb
|
128
|
+
create app/controllers/project_parts_controller.rb
|
129
|
+
create app/helpers/project_parts_helper.rb
|
130
|
+
create app/views/project_parts/_part_navigation.html.erb
|
131
|
+
create app/models/project/name.rb
|
132
|
+
create app/views/project_parts/name.html.erb
|
133
|
+
create app/models/project/description.rb
|
134
|
+
create app/views/project_parts/description.html.erb
|
135
|
+
create app/models/project/start_date.rb
|
136
|
+
create app/views/project_parts/start_date.html.erb
|
137
|
+
create app/models/project/delivery_date.rb
|
138
|
+
create app/views/project_parts/delivery_date.html.erb
|
139
|
+
create app/models/project/preview.rb
|
140
|
+
create app/views/project_parts/preview.html.erb
|
141
|
+
route resources :projects, only: [:create, :show] do
|
58
142
|
resources :project_parts, only: [:edit, :update]
|
59
143
|
end
|
60
144
|
```
|
@@ -96,8 +180,9 @@ Features
|
|
96
180
|
+ [DONE] Route helper methods
|
97
181
|
+ [DONE] Wizard kick-off helper/view
|
98
182
|
+ [DONE] Forms
|
99
|
-
-
|
100
|
-
|
183
|
+
- Form fields
|
184
|
+
+ [DONE] Scaffolding of main model controller/views/migration
|
185
|
+
+ [DONE] Support for attributes
|
101
186
|
- Support for nested resources
|
102
187
|
- Modularize (perhaps extracting sub-generators)
|
103
188
|
+ [DONE] Customize name conventions
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.6
|
@@ -4,8 +4,10 @@ module UltraLightWizard
|
|
4
4
|
source_root File.expand_path("../../templates", __FILE__)
|
5
5
|
def arguments
|
6
6
|
args.inject({}) do |output, arg|
|
7
|
-
|
8
|
-
|
7
|
+
# Accommodate argument values containing colon by matching against
|
8
|
+
# occurance of it only
|
9
|
+
arg_parts = arg.match(/^([^:]+)\:(.+)$/)
|
10
|
+
output.merge(arg_parts[1] => arg_parts[2])
|
9
11
|
end
|
10
12
|
end
|
11
13
|
|
@@ -29,8 +31,23 @@ module UltraLightWizard
|
|
29
31
|
file_path.pluralize
|
30
32
|
end
|
31
33
|
|
34
|
+
def model_attributes
|
35
|
+
arguments['attributes']
|
36
|
+
end
|
37
|
+
|
38
|
+
def hashed_model_attributes
|
39
|
+
model_attributes.split(',').inject({}) do |output, pair|
|
40
|
+
split_pair = pair.split(':')
|
41
|
+
output.merge(split_pair.first => split_pair.last)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def scaffold_attributes
|
46
|
+
model_attributes.sub(',', ' ')
|
47
|
+
end
|
48
|
+
|
32
49
|
def controller_attribute_names
|
33
|
-
|
50
|
+
hashed_model_attributes.keys.map {|key| "\"#{key}\""}.join(', ')
|
34
51
|
end
|
35
52
|
|
36
53
|
def human_name
|
@@ -43,6 +60,7 @@ module UltraLightWizard
|
|
43
60
|
|
44
61
|
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"
|
45
62
|
def copy_config
|
63
|
+
generate "scaffold", "#{file_path} #{scaffold_attributes}"
|
46
64
|
template "app/controllers/model_controller.rb.erb", "app/controllers/#{file_path.pluralize}_controller.rb"
|
47
65
|
template "app/controllers/wizard_steps_controller.rb.erb", "app/controllers/#{file_path}_#{step_alias.pluralize}_controller.rb"
|
48
66
|
template "app/helpers/wizard_steps_helper.rb.erb", "app/helpers/#{file_path}_#{step_alias.pluralize}_helper.rb"
|
data/ultra_light_wizard.gemspec
CHANGED
@@ -1,17 +1,17 @@
|
|
1
1
|
# Generated by jeweler
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in
|
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.6 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.6"
|
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"]
|
13
13
|
s.authors = ["Andy Maleh"]
|
14
|
-
s.date = "2016-01
|
14
|
+
s.date = "2016-02-01"
|
15
15
|
s.description = "Ultra light & maintainble wizards in Rails that honor REST, MVC, and OO with minimal writing of code involved and maximum flexibility"
|
16
16
|
s.email = "andy.am@gmail.com"
|
17
17
|
s.extra_rdoc_files = [
|
@@ -43,7 +43,7 @@ Gem::Specification.new do |s|
|
|
43
43
|
]
|
44
44
|
s.homepage = "http://github.com/AndyObtiva/ultra_light_wizard"
|
45
45
|
s.licenses = ["MIT"]
|
46
|
-
s.rubygems_version = "2.4.
|
46
|
+
s.rubygems_version = "2.4.6"
|
47
47
|
s.summary = "Ultra Light & Maintainable Wizards In Rails"
|
48
48
|
|
49
49
|
if s.respond_to? :specification_version then
|
metadata
CHANGED
@@ -1,27 +1,27 @@
|
|
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.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andy Maleh
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-01
|
11
|
+
date: 2016-02-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jeweler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
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
26
|
version: 1.8.8
|
27
27
|
description: Ultra light & maintainble wizards in Rails that honor REST, MVC, and
|
@@ -33,8 +33,8 @@ extra_rdoc_files:
|
|
33
33
|
- LICENSE.txt
|
34
34
|
- README.md
|
35
35
|
files:
|
36
|
-
-
|
37
|
-
-
|
36
|
+
- .ruby-gemset
|
37
|
+
- .ruby-version
|
38
38
|
- Gemfile
|
39
39
|
- Gemfile.lock
|
40
40
|
- LICENSE.txt
|
@@ -64,17 +64,17 @@ require_paths:
|
|
64
64
|
- lib
|
65
65
|
required_ruby_version: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
|
-
- -
|
67
|
+
- - '>='
|
68
68
|
- !ruby/object:Gem::Version
|
69
69
|
version: '0'
|
70
70
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
71
71
|
requirements:
|
72
|
-
- -
|
72
|
+
- - '>='
|
73
73
|
- !ruby/object:Gem::Version
|
74
74
|
version: '0'
|
75
75
|
requirements: []
|
76
76
|
rubyforge_project:
|
77
|
-
rubygems_version: 2.4.
|
77
|
+
rubygems_version: 2.4.6
|
78
78
|
signing_key:
|
79
79
|
specification_version: 4
|
80
80
|
summary: Ultra Light & Maintainable Wizards In Rails
|