swage 0.1.0
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 +7 -0
- data/LICENSE.txt +19 -0
- data/README.md +15 -0
- data/lib/generators/swage/USAGE +5 -0
- data/lib/generators/swage/base_generator.rb +14 -0
- data/lib/generators/swage/generators/generators_generator.rb +42 -0
- data/lib/generators/swage/install/install_generator.rb +170 -0
- data/lib/generators/swage/install/templates/application_controller.rb.tt +14 -0
- data/lib/generators/swage/install/templates/application_view.rb.tt +44 -0
- data/lib/generators/swage/install/templates/base_component.rb.tt +6 -0
- data/lib/generators/swage/install/templates/base_view.rb.tt +17 -0
- data/lib/generators/swage/install/templates/engine.rb.tt +25 -0
- data/lib/generators/swage/install/templates/form.rb.tt +209 -0
- data/lib/generators/swage/install/templates/swage.rb.tt +28 -0
- data/lib/generators/swage/install/templates/tw-animate-css.js.tt +580 -0
- data/lib/generators/swage/scaffold/scaffold_generator.rb +27 -0
- data/lib/generators/swage/scaffold/templates/controller.rb.tt +59 -0
- data/lib/generators/swage/scaffold/templates/edit.rb.tt +27 -0
- data/lib/generators/swage/scaffold/templates/form.rb.tt +41 -0
- data/lib/generators/swage/scaffold/templates/index.rb.tt +39 -0
- data/lib/generators/swage/scaffold/templates/new.rb.tt +23 -0
- data/lib/generators/swage/scaffold/templates/partial.rb.tt +24 -0
- data/lib/generators/swage/scaffold/templates/show.rb.tt +36 -0
- data/lib/swage.rb +3 -0
- metadata +150 -0
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
module Views
|
|
2
|
+
module <%= controller_class_name %>
|
|
3
|
+
class Form < Components::Form
|
|
4
|
+
def view_template
|
|
5
|
+
<% attributes.each do |attribute| -%>
|
|
6
|
+
<% if attribute.password_digest? -%>
|
|
7
|
+
FormField do
|
|
8
|
+
FormFieldLabel { "Password" }
|
|
9
|
+
Field(:password).password
|
|
10
|
+
FormFieldError { model.errors[:password].map { "Password #{it}" }.join("\n") }
|
|
11
|
+
end
|
|
12
|
+
FormField do
|
|
13
|
+
FormFieldLabel { "Password Confirmation" }
|
|
14
|
+
Field(:password_confirmation).password
|
|
15
|
+
<% elsif attribute.attachments? -%>
|
|
16
|
+
FormField do
|
|
17
|
+
FormFieldLabel { "<%= attribute.column_name %>" }
|
|
18
|
+
Field(:<%= attribute.column_name %>).file
|
|
19
|
+
FormFieldError { model.errors[:<%= attribute.column_name %>].map{ "<%= attribute.human_name %> #{it}" }.join("\n") }
|
|
20
|
+
end
|
|
21
|
+
<% else -%>
|
|
22
|
+
FormField do
|
|
23
|
+
FormFieldLabel { "<%= attribute.column_name %>" }
|
|
24
|
+
<% if attribute.field_type == :textarea || attribute.field_type == :text_area -%>
|
|
25
|
+
Field(:<%= attribute.column_name %>).textarea
|
|
26
|
+
<% elsif attribute.field_type == :checkbox || attribute.field_type == :check_box -%>
|
|
27
|
+
Field(:<%= attribute.column_name %>).checkbox
|
|
28
|
+
<% else -%>
|
|
29
|
+
Field(:<%= attribute.column_name %>).input(type: :<%= attribute.field_type %>)
|
|
30
|
+
<% end -%>
|
|
31
|
+
<% end -%>
|
|
32
|
+
FormFieldError { model.errors[:<%= attribute.password_digest? ? "password_confirmation" : attribute.column_name %>].map { "<%= attribute.human_name %> #{it}" }.join("\n") }
|
|
33
|
+
end
|
|
34
|
+
<% end -%>
|
|
35
|
+
div(class: "inline") do
|
|
36
|
+
submit
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
module Views
|
|
2
|
+
module <%= controller_class_name %>
|
|
3
|
+
class Index < Views::Base
|
|
4
|
+
include Phlexible::Rails::AutoLayout
|
|
5
|
+
include Phlex::Rails::Helpers::Notice
|
|
6
|
+
|
|
7
|
+
def initialize(<%= plural_table_name %>: nil)
|
|
8
|
+
@<%= plural_table_name %> = <%= plural_table_name %>
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
controller_variable :<%= plural_table_name %>
|
|
12
|
+
|
|
13
|
+
def view_template
|
|
14
|
+
div(class: "w-full px-8") do
|
|
15
|
+
if notice.present?
|
|
16
|
+
Text(id: "notice") { notice }
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
div(class: "flex justify-between items-center mb-10") do
|
|
20
|
+
Heading(level: 1) { "<%= human_name.pluralize %>" }
|
|
21
|
+
Link(href: new_<%= singular_table_name %>_path) { "New <%= human_name.downcase %>" }
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
div(id: "<%= plural_table_name %>", class: "min-w-full divide-y divide-gray-200") do
|
|
25
|
+
@<%= plural_table_name %>.each do |<%= singular_table_name %>|
|
|
26
|
+
div do
|
|
27
|
+
render Partial.new(<%= singular_table_name %>: <%= singular_table_name %>)
|
|
28
|
+
div(class: "flex gap-4") do
|
|
29
|
+
Link(href: <%= singular_table_name %>_path(<%= singular_table_name %>)) { "View" }
|
|
30
|
+
Link(href: edit_<%= singular_table_name %>_path(<%= singular_table_name %>)) { "Edit" }
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
module Views
|
|
2
|
+
module <%= controller_class_name %>
|
|
3
|
+
class New < Views::Base
|
|
4
|
+
include Phlexible::Rails::AutoLayout
|
|
5
|
+
|
|
6
|
+
def initialize(<%= singular_table_name %>: nil)
|
|
7
|
+
@<%= singular_table_name %> = <%= singular_table_name %>
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
controller_variable :<%= singular_table_name %>
|
|
11
|
+
|
|
12
|
+
def view_template
|
|
13
|
+
div(class: "mx-auto md:w-2/3 w-full px-8") do
|
|
14
|
+
Heading(level: 1) { "New <%= human_name.downcase %>" }
|
|
15
|
+
|
|
16
|
+
render Form.new(@<%= singular_table_name %>)
|
|
17
|
+
|
|
18
|
+
Link(href: <%= plural_table_name %>_path) { "Back to <%= human_name.pluralize.downcase %>" }
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
module Views
|
|
2
|
+
module <%= controller_class_name %>
|
|
3
|
+
class Partial < Views::Base
|
|
4
|
+
include Phlex::Rails::Helpers::DOMID
|
|
5
|
+
|
|
6
|
+
def initialize(<%= singular_table_name %>: nil)
|
|
7
|
+
@<%= singular_table_name %> = <%= singular_table_name %>
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def view_template
|
|
11
|
+
div(id: dom_id(@<%= singular_table_name %>), class: "py-6 flex justify-between items-center") do
|
|
12
|
+
div do
|
|
13
|
+
<% attributes.delete_if{ it.name == "password" }.each do |attribute| -%>
|
|
14
|
+
div(class: "mb-2") do
|
|
15
|
+
Text(as: "strong", size: "4", wight: "bold") { "<%= attribute.human_name %>" }
|
|
16
|
+
Text(size: "4", weight: "semibold") { @<%= singular_table_name %>.<%= attribute.name %>.to_s }
|
|
17
|
+
end
|
|
18
|
+
<% end -%>
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
module Views
|
|
2
|
+
module <%= controller_class_name %>
|
|
3
|
+
class Show < Views::Base
|
|
4
|
+
include Phlexible::Rails::AutoLayout
|
|
5
|
+
include Phlex::Rails::Helpers::Notice
|
|
6
|
+
|
|
7
|
+
def initialize(<%= singular_table_name %>: nil)
|
|
8
|
+
@<%= singular_table_name %> = <%= singular_table_name %>
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
controller_variable :<%= singular_table_name %>
|
|
12
|
+
|
|
13
|
+
def view_template
|
|
14
|
+
div(class: "mx-auto md:w-2/3 w-full px-8") do
|
|
15
|
+
if notice.present?
|
|
16
|
+
Text(id: "notice") { notice }
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
render Partial.new(<%= singular_table_name %>: @<%= singular_table_name %>)
|
|
20
|
+
|
|
21
|
+
div(class: "mt-8 flex gap-4 border-t pt-6") do
|
|
22
|
+
Link(href: edit_<%= singular_table_name %>_path(@<%= singular_table_name %>)) { "Edit this <%= human_name.downcase %>" }
|
|
23
|
+
Link(href: <%= plural_table_name %>_path) { "Back to <%= human_name.pluralize.downcase %>" }
|
|
24
|
+
|
|
25
|
+
render Phlexible::Rails::ButtonTo.new(
|
|
26
|
+
<%= singular_table_name %>_path(@<%= singular_table_name %>),
|
|
27
|
+
method: :delete,
|
|
28
|
+
form_attributes: { class: "inline" },
|
|
29
|
+
variant: :destructive
|
|
30
|
+
) { "Destroy" }
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
data/lib/swage.rb
ADDED
metadata
ADDED
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: swage
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Ian Wobschall
|
|
8
|
+
bindir: bin
|
|
9
|
+
cert_chain: []
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
|
+
dependencies:
|
|
12
|
+
- !ruby/object:Gem::Dependency
|
|
13
|
+
name: phlex
|
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
|
15
|
+
requirements:
|
|
16
|
+
- - ">="
|
|
17
|
+
- !ruby/object:Gem::Version
|
|
18
|
+
version: '0'
|
|
19
|
+
type: :runtime
|
|
20
|
+
prerelease: false
|
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
22
|
+
requirements:
|
|
23
|
+
- - ">="
|
|
24
|
+
- !ruby/object:Gem::Version
|
|
25
|
+
version: '0'
|
|
26
|
+
- !ruby/object:Gem::Dependency
|
|
27
|
+
name: phlex-rails
|
|
28
|
+
requirement: !ruby/object:Gem::Requirement
|
|
29
|
+
requirements:
|
|
30
|
+
- - ">="
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '0'
|
|
33
|
+
type: :runtime
|
|
34
|
+
prerelease: false
|
|
35
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
36
|
+
requirements:
|
|
37
|
+
- - ">="
|
|
38
|
+
- !ruby/object:Gem::Version
|
|
39
|
+
version: '0'
|
|
40
|
+
- !ruby/object:Gem::Dependency
|
|
41
|
+
name: phlexible
|
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
|
43
|
+
requirements:
|
|
44
|
+
- - ">="
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: '0'
|
|
47
|
+
type: :runtime
|
|
48
|
+
prerelease: false
|
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
50
|
+
requirements:
|
|
51
|
+
- - ">="
|
|
52
|
+
- !ruby/object:Gem::Version
|
|
53
|
+
version: '0'
|
|
54
|
+
- !ruby/object:Gem::Dependency
|
|
55
|
+
name: tailwindcss-rails
|
|
56
|
+
requirement: !ruby/object:Gem::Requirement
|
|
57
|
+
requirements:
|
|
58
|
+
- - ">="
|
|
59
|
+
- !ruby/object:Gem::Version
|
|
60
|
+
version: '0'
|
|
61
|
+
type: :runtime
|
|
62
|
+
prerelease: false
|
|
63
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
64
|
+
requirements:
|
|
65
|
+
- - ">="
|
|
66
|
+
- !ruby/object:Gem::Version
|
|
67
|
+
version: '0'
|
|
68
|
+
- !ruby/object:Gem::Dependency
|
|
69
|
+
name: superform
|
|
70
|
+
requirement: !ruby/object:Gem::Requirement
|
|
71
|
+
requirements:
|
|
72
|
+
- - ">="
|
|
73
|
+
- !ruby/object:Gem::Version
|
|
74
|
+
version: '0'
|
|
75
|
+
type: :runtime
|
|
76
|
+
prerelease: false
|
|
77
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
78
|
+
requirements:
|
|
79
|
+
- - ">="
|
|
80
|
+
- !ruby/object:Gem::Version
|
|
81
|
+
version: '0'
|
|
82
|
+
- !ruby/object:Gem::Dependency
|
|
83
|
+
name: ruby_ui
|
|
84
|
+
requirement: !ruby/object:Gem::Requirement
|
|
85
|
+
requirements:
|
|
86
|
+
- - ">="
|
|
87
|
+
- !ruby/object:Gem::Version
|
|
88
|
+
version: '0'
|
|
89
|
+
type: :runtime
|
|
90
|
+
prerelease: false
|
|
91
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
92
|
+
requirements:
|
|
93
|
+
- - ">="
|
|
94
|
+
- !ruby/object:Gem::Version
|
|
95
|
+
version: '0'
|
|
96
|
+
description: A UI library gluing together RubyUI, Phlex, and Tailwind with editable
|
|
97
|
+
generators
|
|
98
|
+
email:
|
|
99
|
+
- ian.wobschall@gmail.com
|
|
100
|
+
executables: []
|
|
101
|
+
extensions: []
|
|
102
|
+
extra_rdoc_files: []
|
|
103
|
+
files:
|
|
104
|
+
- LICENSE.txt
|
|
105
|
+
- README.md
|
|
106
|
+
- lib/generators/swage/USAGE
|
|
107
|
+
- lib/generators/swage/base_generator.rb
|
|
108
|
+
- lib/generators/swage/generators/generators_generator.rb
|
|
109
|
+
- lib/generators/swage/install/install_generator.rb
|
|
110
|
+
- lib/generators/swage/install/templates/application_controller.rb.tt
|
|
111
|
+
- lib/generators/swage/install/templates/application_view.rb.tt
|
|
112
|
+
- lib/generators/swage/install/templates/base_component.rb.tt
|
|
113
|
+
- lib/generators/swage/install/templates/base_view.rb.tt
|
|
114
|
+
- lib/generators/swage/install/templates/engine.rb.tt
|
|
115
|
+
- lib/generators/swage/install/templates/form.rb.tt
|
|
116
|
+
- lib/generators/swage/install/templates/swage.rb.tt
|
|
117
|
+
- lib/generators/swage/install/templates/tw-animate-css.js.tt
|
|
118
|
+
- lib/generators/swage/scaffold/scaffold_generator.rb
|
|
119
|
+
- lib/generators/swage/scaffold/templates/controller.rb.tt
|
|
120
|
+
- lib/generators/swage/scaffold/templates/edit.rb.tt
|
|
121
|
+
- lib/generators/swage/scaffold/templates/form.rb.tt
|
|
122
|
+
- lib/generators/swage/scaffold/templates/index.rb.tt
|
|
123
|
+
- lib/generators/swage/scaffold/templates/new.rb.tt
|
|
124
|
+
- lib/generators/swage/scaffold/templates/partial.rb.tt
|
|
125
|
+
- lib/generators/swage/scaffold/templates/show.rb.tt
|
|
126
|
+
- lib/swage.rb
|
|
127
|
+
homepage: https://github.com/wobschalli/swage
|
|
128
|
+
licenses:
|
|
129
|
+
- MIT
|
|
130
|
+
metadata:
|
|
131
|
+
homepage_uri: https://github.com/wobschalli/swage
|
|
132
|
+
source_code_uri: https://github.com/wobschalli/swage
|
|
133
|
+
rdoc_options: []
|
|
134
|
+
require_paths:
|
|
135
|
+
- lib
|
|
136
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
137
|
+
requirements:
|
|
138
|
+
- - ">="
|
|
139
|
+
- !ruby/object:Gem::Version
|
|
140
|
+
version: '4.0'
|
|
141
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
142
|
+
requirements:
|
|
143
|
+
- - ">="
|
|
144
|
+
- !ruby/object:Gem::Version
|
|
145
|
+
version: '0'
|
|
146
|
+
requirements: []
|
|
147
|
+
rubygems_version: 4.0.3
|
|
148
|
+
specification_version: 4
|
|
149
|
+
summary: A Phlex UI library for Rails
|
|
150
|
+
test_files: []
|