formblocks 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.
Files changed (86) hide show
  1. checksums.yaml +7 -0
  2. data/AGENTS.md +57 -0
  3. data/CHANGELOG.md +24 -0
  4. data/MIT-LICENSE +20 -0
  5. data/README.md +472 -0
  6. data/Rakefile +24 -0
  7. data/app/controllers/concerns/formblocks/request_context.rb +58 -0
  8. data/app/controllers/formblocks/application_controller.rb +16 -0
  9. data/app/controllers/formblocks/assets_controller.rb +27 -0
  10. data/app/controllers/formblocks/blocks_controller.rb +81 -0
  11. data/app/controllers/formblocks/dashboard_controller.rb +41 -0
  12. data/app/controllers/formblocks/forms_controller.rb +71 -0
  13. data/app/controllers/formblocks/pages_controller.rb +44 -0
  14. data/app/controllers/formblocks/public/forms_controller.rb +74 -0
  15. data/app/controllers/formblocks/responses_controller.rb +39 -0
  16. data/app/controllers/formblocks/settings_controller.rb +30 -0
  17. data/app/helpers/formblocks/application_helper.rb +93 -0
  18. data/app/models/concerns/formblocks/attachable.rb +43 -0
  19. data/app/models/formblocks/application_record.rb +7 -0
  20. data/app/models/formblocks/block.rb +177 -0
  21. data/app/models/formblocks/blocks/checkbox.rb +22 -0
  22. data/app/models/formblocks/blocks/email.rb +23 -0
  23. data/app/models/formblocks/blocks/heading.rb +13 -0
  24. data/app/models/formblocks/blocks/hidden.rb +25 -0
  25. data/app/models/formblocks/blocks/image.rb +14 -0
  26. data/app/models/formblocks/blocks/input.rb +59 -0
  27. data/app/models/formblocks/blocks/name.rb +9 -0
  28. data/app/models/formblocks/blocks/paragraph.rb +13 -0
  29. data/app/models/formblocks/blocks/phone.rb +13 -0
  30. data/app/models/formblocks/blocks/radio_group.rb +28 -0
  31. data/app/models/formblocks/blocks/text.rb +12 -0
  32. data/app/models/formblocks/blocks/textarea.rb +8 -0
  33. data/app/models/formblocks/blocks/url.rb +26 -0
  34. data/app/models/formblocks/csv_export.rb +47 -0
  35. data/app/models/formblocks/form.rb +197 -0
  36. data/app/models/formblocks/page.rb +79 -0
  37. data/app/models/formblocks/response.rb +48 -0
  38. data/app/models/formblocks/setting.rb +19 -0
  39. data/app/views/formblocks/blocks/_block.html.erb +102 -0
  40. data/app/views/formblocks/blocks/_palette.html.erb +16 -0
  41. data/app/views/formblocks/forms/_header.html.erb +19 -0
  42. data/app/views/formblocks/forms/edit.html.erb +38 -0
  43. data/app/views/formblocks/forms/index.html.erb +48 -0
  44. data/app/views/formblocks/forms/new.html.erb +26 -0
  45. data/app/views/formblocks/forms/published.html.erb +25 -0
  46. data/app/views/formblocks/forms/settings.html.erb +43 -0
  47. data/app/views/formblocks/pages/_page.html.erb +51 -0
  48. data/app/views/formblocks/public/blocks/_checkbox.html.erb +15 -0
  49. data/app/views/formblocks/public/blocks/_field.html.erb +13 -0
  50. data/app/views/formblocks/public/blocks/_heading.html.erb +1 -0
  51. data/app/views/formblocks/public/blocks/_hidden.html.erb +5 -0
  52. data/app/views/formblocks/public/blocks/_image.html.erb +3 -0
  53. data/app/views/formblocks/public/blocks/_paragraph.html.erb +1 -0
  54. data/app/views/formblocks/public/blocks/_radio_group.html.erb +17 -0
  55. data/app/views/formblocks/public/blocks/_text.html.erb +6 -0
  56. data/app/views/formblocks/public/blocks/_textarea.html.erb +5 -0
  57. data/app/views/formblocks/public/forms/not_found.html.erb +3 -0
  58. data/app/views/formblocks/public/forms/show.html.erb +37 -0
  59. data/app/views/formblocks/public/forms/thanks.html.erb +5 -0
  60. data/app/views/formblocks/responses/index.html.erb +45 -0
  61. data/app/views/formblocks/responses/show.html.erb +43 -0
  62. data/app/views/formblocks/settings/show.html.erb +19 -0
  63. data/app/views/formblocks/shared/_admin.html.erb +21 -0
  64. data/app/views/formblocks/shared/_brand_fields.html.erb +29 -0
  65. data/app/views/formblocks/shared/_errors.html.erb +7 -0
  66. data/app/views/layouts/formblocks/application.html.erb +18 -0
  67. data/app/views/layouts/formblocks/public.html.erb +20 -0
  68. data/config/locales/formblocks.en.yml +188 -0
  69. data/config/routes.rb +35 -0
  70. data/lib/formblocks/assets/admin.css +212 -0
  71. data/lib/formblocks/assets/admin.js +215 -0
  72. data/lib/formblocks/assets/public.css +66 -0
  73. data/lib/formblocks/assets/public.js +86 -0
  74. data/lib/formblocks/assets.rb +81 -0
  75. data/lib/formblocks/configuration.rb +93 -0
  76. data/lib/formblocks/engine.rb +33 -0
  77. data/lib/formblocks/seeds.rb +50 -0
  78. data/lib/formblocks/templates.rb +97 -0
  79. data/lib/formblocks/version.rb +5 -0
  80. data/lib/formblocks.rb +74 -0
  81. data/lib/generators/formblocks/install/install_generator.rb +43 -0
  82. data/lib/generators/formblocks/install/templates/create_formblocks_tables.rb.tt +65 -0
  83. data/lib/generators/formblocks/install/templates/initializer.rb.tt +69 -0
  84. data/lib/generators/formblocks/migration_helpers.rb +40 -0
  85. data/lib/tasks/formblocks_tasks.rake +10 -0
  86. metadata +199 -0
metadata ADDED
@@ -0,0 +1,199 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: formblocks
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Michael Koper
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: csv
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: rails
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '8.0'
33
+ - - "<"
34
+ - !ruby/object:Gem::Version
35
+ version: '9'
36
+ type: :runtime
37
+ prerelease: false
38
+ version_requirements: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: '8.0'
43
+ - - "<"
44
+ - !ruby/object:Gem::Version
45
+ version: '9'
46
+ - !ruby/object:Gem::Dependency
47
+ name: stimulus-rails
48
+ requirement: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: '1.2'
53
+ type: :runtime
54
+ prerelease: false
55
+ version_requirements: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: '1.2'
60
+ - !ruby/object:Gem::Dependency
61
+ name: turbo-rails
62
+ requirement: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: '1.4'
67
+ type: :runtime
68
+ prerelease: false
69
+ version_requirements: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ version: '1.4'
74
+ description: |
75
+ A mountable Rails engine that gives your app a form builder. Build forms
76
+ from blocks (headings, paragraphs, images, and inputs like name, email,
77
+ phone, URL, text, textarea, hidden, checkbox and radio group), spread them
78
+ over pages, brand them with a logo and colors, publish them at a public
79
+ URL, and read the responses in a dashboard or as CSV. Every block is a
80
+ Ruby class you can subclass. Framework-agnostic: no CSS or JS framework
81
+ required, and no asset pipeline needed.
82
+ email:
83
+ - hello@michaelkoper.com
84
+ executables: []
85
+ extensions: []
86
+ extra_rdoc_files: []
87
+ files:
88
+ - AGENTS.md
89
+ - CHANGELOG.md
90
+ - MIT-LICENSE
91
+ - README.md
92
+ - Rakefile
93
+ - app/controllers/concerns/formblocks/request_context.rb
94
+ - app/controllers/formblocks/application_controller.rb
95
+ - app/controllers/formblocks/assets_controller.rb
96
+ - app/controllers/formblocks/blocks_controller.rb
97
+ - app/controllers/formblocks/dashboard_controller.rb
98
+ - app/controllers/formblocks/forms_controller.rb
99
+ - app/controllers/formblocks/pages_controller.rb
100
+ - app/controllers/formblocks/public/forms_controller.rb
101
+ - app/controllers/formblocks/responses_controller.rb
102
+ - app/controllers/formblocks/settings_controller.rb
103
+ - app/helpers/formblocks/application_helper.rb
104
+ - app/models/concerns/formblocks/attachable.rb
105
+ - app/models/formblocks/application_record.rb
106
+ - app/models/formblocks/block.rb
107
+ - app/models/formblocks/blocks/checkbox.rb
108
+ - app/models/formblocks/blocks/email.rb
109
+ - app/models/formblocks/blocks/heading.rb
110
+ - app/models/formblocks/blocks/hidden.rb
111
+ - app/models/formblocks/blocks/image.rb
112
+ - app/models/formblocks/blocks/input.rb
113
+ - app/models/formblocks/blocks/name.rb
114
+ - app/models/formblocks/blocks/paragraph.rb
115
+ - app/models/formblocks/blocks/phone.rb
116
+ - app/models/formblocks/blocks/radio_group.rb
117
+ - app/models/formblocks/blocks/text.rb
118
+ - app/models/formblocks/blocks/textarea.rb
119
+ - app/models/formblocks/blocks/url.rb
120
+ - app/models/formblocks/csv_export.rb
121
+ - app/models/formblocks/form.rb
122
+ - app/models/formblocks/page.rb
123
+ - app/models/formblocks/response.rb
124
+ - app/models/formblocks/setting.rb
125
+ - app/views/formblocks/blocks/_block.html.erb
126
+ - app/views/formblocks/blocks/_palette.html.erb
127
+ - app/views/formblocks/forms/_header.html.erb
128
+ - app/views/formblocks/forms/edit.html.erb
129
+ - app/views/formblocks/forms/index.html.erb
130
+ - app/views/formblocks/forms/new.html.erb
131
+ - app/views/formblocks/forms/published.html.erb
132
+ - app/views/formblocks/forms/settings.html.erb
133
+ - app/views/formblocks/pages/_page.html.erb
134
+ - app/views/formblocks/public/blocks/_checkbox.html.erb
135
+ - app/views/formblocks/public/blocks/_field.html.erb
136
+ - app/views/formblocks/public/blocks/_heading.html.erb
137
+ - app/views/formblocks/public/blocks/_hidden.html.erb
138
+ - app/views/formblocks/public/blocks/_image.html.erb
139
+ - app/views/formblocks/public/blocks/_paragraph.html.erb
140
+ - app/views/formblocks/public/blocks/_radio_group.html.erb
141
+ - app/views/formblocks/public/blocks/_text.html.erb
142
+ - app/views/formblocks/public/blocks/_textarea.html.erb
143
+ - app/views/formblocks/public/forms/not_found.html.erb
144
+ - app/views/formblocks/public/forms/show.html.erb
145
+ - app/views/formblocks/public/forms/thanks.html.erb
146
+ - app/views/formblocks/responses/index.html.erb
147
+ - app/views/formblocks/responses/show.html.erb
148
+ - app/views/formblocks/settings/show.html.erb
149
+ - app/views/formblocks/shared/_admin.html.erb
150
+ - app/views/formblocks/shared/_brand_fields.html.erb
151
+ - app/views/formblocks/shared/_errors.html.erb
152
+ - app/views/layouts/formblocks/application.html.erb
153
+ - app/views/layouts/formblocks/public.html.erb
154
+ - config/locales/formblocks.en.yml
155
+ - config/routes.rb
156
+ - lib/formblocks.rb
157
+ - lib/formblocks/assets.rb
158
+ - lib/formblocks/assets/admin.css
159
+ - lib/formblocks/assets/admin.js
160
+ - lib/formblocks/assets/public.css
161
+ - lib/formblocks/assets/public.js
162
+ - lib/formblocks/configuration.rb
163
+ - lib/formblocks/engine.rb
164
+ - lib/formblocks/seeds.rb
165
+ - lib/formblocks/templates.rb
166
+ - lib/formblocks/version.rb
167
+ - lib/generators/formblocks/install/install_generator.rb
168
+ - lib/generators/formblocks/install/templates/create_formblocks_tables.rb.tt
169
+ - lib/generators/formblocks/install/templates/initializer.rb.tt
170
+ - lib/generators/formblocks/migration_helpers.rb
171
+ - lib/tasks/formblocks_tasks.rake
172
+ homepage: https://github.com/michaelkoper/formblocks
173
+ licenses:
174
+ - MIT
175
+ metadata:
176
+ homepage_uri: https://github.com/michaelkoper/formblocks
177
+ source_code_uri: https://github.com/michaelkoper/formblocks/tree/main
178
+ changelog_uri: https://github.com/michaelkoper/formblocks/blob/main/CHANGELOG.md
179
+ bug_tracker_uri: https://github.com/michaelkoper/formblocks/issues
180
+ rubygems_mfa_required: 'true'
181
+ rdoc_options: []
182
+ require_paths:
183
+ - lib
184
+ required_ruby_version: !ruby/object:Gem::Requirement
185
+ requirements:
186
+ - - ">="
187
+ - !ruby/object:Gem::Version
188
+ version: '3.2'
189
+ required_rubygems_version: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - ">="
192
+ - !ruby/object:Gem::Version
193
+ version: '0'
194
+ requirements: []
195
+ rubygems_version: 4.0.16
196
+ specification_version: 4
197
+ summary: 'Block-based form builder for Rails: multi-page forms, a builder UI, public
198
+ form pages, responses and CSV export — as a mountable engine.'
199
+ test_files: []