inline_forms 7.9.6 → 7.11.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 (46) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +68 -0
  3. data/Rakefile +18 -1
  4. data/app/assets/javascripts/inline_forms/inline_forms.js +53 -34
  5. data/app/helpers/form_elements/date.rb +0 -1
  6. data/app/helpers/form_elements/month_year_picker.rb +1 -15
  7. data/app/helpers/form_elements/time.rb +0 -1
  8. data/docs/jquery-widgets.md +25 -0
  9. data/docs/prompt/test-the-example-app.md +3 -3
  10. data/docs/turbo-stream-audit.md +16 -0
  11. data/docs/ujs-to-turbo.md +15 -0
  12. data/inline_forms.gemspec +6 -21
  13. data/lib/inline_forms/gem_files.rb +39 -0
  14. data/lib/inline_forms/version.rb +1 -1
  15. metadata +18 -81
  16. data/bin/inline_forms +0 -141
  17. data/bin/inline_forms_app_template.rb +0 -22
  18. data/bin/inline_forms_installer_core.rb +0 -874
  19. data/lib/generators/templates/capistrano/Capfile +0 -39
  20. data/lib/generators/templates/capistrano/deploy.rb +0 -59
  21. data/lib/generators/templates/capistrano/production.rb +0 -7
  22. data/lib/generators/templates/unicorn/production.rb +0 -39
  23. data/lib/installer_templates/dartsass/devise_main.scss +0 -2
  24. data/lib/installer_templates/dartsass/inline_forms_dartsass_builds.rb +0 -14
  25. data/lib/installer_templates/dartsass/inline_forms_main.scss +0 -2
  26. data/lib/installer_templates/example_app_tests/test/example_app/example_integration_test_case.rb +0 -36
  27. data/lib/installer_templates/example_app_tests/test/integration/example_app_apartment_field_turbo_test.rb +0 -73
  28. data/lib/installer_templates/example_app_tests/test/integration/example_app_apartment_name_list_test.rb +0 -73
  29. data/lib/installer_templates/example_app_tests/test/integration/example_app_apartment_name_required_test.rb +0 -21
  30. data/lib/installer_templates/example_app_tests/test/integration/example_app_apartment_photos_pagination_test.rb +0 -440
  31. data/lib/installer_templates/example_app_tests/test/integration/example_app_apartment_row_turbo_test.rb +0 -103
  32. data/lib/installer_templates/example_app_tests/test/integration/example_app_apartment_top_level_new_test.rb +0 -70
  33. data/lib/installer_templates/example_app_tests/test/integration/example_app_apartment_top_level_pagination_test.rb +0 -40
  34. data/lib/installer_templates/example_app_tests/test/integration/example_app_apartment_versions_turbo_test.rb +0 -120
  35. data/lib/installer_templates/example_app_tests/test/integration/example_app_guest_access_test.rb +0 -21
  36. data/lib/installer_templates/example_app_tests/test/integration/example_app_photo_revert_test.rb +0 -94
  37. data/lib/installer_templates/example_app_tests/test/integration/example_app_photos_test.rb +0 -22
  38. data/lib/installer_templates/example_app_tests/test/integration/example_app_routing_test.rb +0 -15
  39. data/lib/installer_templates/example_app_tests/test/integration/example_app_turbo_layout_test.rb +0 -25
  40. data/lib/installer_templates/example_app_tests/test/integration/example_app_validation_hints_test.rb +0 -40
  41. data/lib/installer_templates/example_app_tests/test/models/example_app_apartment_name_validation_test.rb +0 -16
  42. data/lib/installer_templates/example_app_tests/test/models/example_app_apartment_photo_test.rb +0 -26
  43. data/lib/installer_templates/example_app_tests/test/models/example_app_paper_trail_changeset_test.rb +0 -78
  44. data/lib/installer_templates/example_app_tests/test/models/example_app_plain_text_rich_text_edge_cases_test.rb +0 -46
  45. data/lib/installer_templates/example_app_views/apartments/name_list.html.erb +0 -26
  46. data/lib/installer_templates/example_app_views/inline_forms/_header.html.erb +0 -45
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '0793c327c8e48fd7e48b5fe28e431c6db1506bfa0905d2b49cd0622279f6d9ba'
4
- data.tar.gz: 9d4c90c44fab3cb36313bb0bd2f5a9301e4d0953e0eb09c1c484c675a419fbbd
3
+ metadata.gz: 62c8598afcb5052d9869391009bbf364b8711ed1a9c2f15c3c3ff8d8b6c25e17
4
+ data.tar.gz: 2eced24a18c335754a0199525a49a724af9bc000c0003f0230c7558af096139a
5
5
  SHA512:
6
- metadata.gz: dc65cef37f9b82ca5cbd88f0a997b03ba125067fbd92bb6222600423840deed6c9d01551569ec175e637dff020c17e9a67cbb88b7b0197bc208a884dae3e6733
7
- data.tar.gz: cca42b8870bfef983e58ee203eac72de4039cb031fb0cd4a09ab41831e30b9c0593dd36fe00e82c8a347a83e9267ef2f55084050cf5b50a73f450d43c044c861
6
+ metadata.gz: 6436dd214a36bf76c78a38d69aed44d993f50f4c66610baed8372d2e43b9f0ec7700e6203c26a4530bc9c898fb9e4f0879eb5584a9f3c58ca24f9c654155553d
7
+ data.tar.gz: be9f7b3f9df5f3ff938a2ed6d65cab6f23668d067d01e30c10afd780b2dd8b3f9a1e1b1ed87695f431b2138fb82993989c9746d7f11d9a8c26e36364606c50b8
data/CHANGELOG.md CHANGED
@@ -4,6 +4,74 @@ All notable changes to this project are documented in this file.
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [7.11.0] - 2026-05-19
8
+
9
+ ### Changed
10
+
11
+ - **Split installer into `inline_forms_installer` gem.** The Rails engine (`inline_forms`) no longer ships the `inline_forms create` CLI, Thor/RVM dependencies, or `lib/installer_templates/`. Install both gems (or `gem install inline_forms_installer`, which registers the `inline_forms` executable). Capistrano/Unicorn deploy templates moved from `lib/generators/templates/` to `lib/installer_templates/`.
12
+ - **Generated app Gemfile:** `gem 'inline_forms', '~> <version>'` instead of `path:` (set `INLINE_FORMS_GEMFILE_PATH` for maintainer local-path overrides).
13
+
14
+ ### Verified
15
+
16
+ - **`gem build inline_forms.gemspec && gem build inline_forms_installer.gemspec`** → install both → **`inline_forms create MyApp -d sqlite --example`** → **`bundle exec rails test`** — **77 runs, 427 assertions, 0 failures**.
17
+
18
+ ## [7.10.2] - 2026-05-18
19
+
20
+ ### Added
21
+
22
+ - **Example app:** `Apartment.opening_date` (`date` / jQuery UI datepicker) — demonstrates centralized `initInlineFormsWidgets` on show, inline edit, and new form.
23
+ - **Regression test:** `example_app_apartment_opening_date_test.rb`.
24
+
25
+ ### Verified
26
+
27
+ - **`inline_forms create MyApp -d sqlite --example`** → **`bundle exec rails test`** — **77 runs, 427 assertions, 0 failures**.
28
+ - **Browser:** new Apartment form → `Opening date` input has `class="datepicker hasDatepicker"` (jQuery UI initialized); submit persists `15-03-2019`; show panel renders it; inline edit re-binds datepicker on the same field.
29
+
30
+ ## [7.10.1] - 2026-05-18
31
+
32
+ ### Fixed
33
+
34
+ - **`inline_forms create`:** installer installs `validation_hints` from `~/code/validation_hints/*.gem` when `~> 6.3` is not on RubyGems yet (before first `bundle install`).
35
+
36
+ ## [7.10.0] - 2026-05-18
37
+
38
+ ### Changed
39
+
40
+ - **Rails 7.1:** gemspec and `--example` installer Gemfile pin `rails ~> 7.1.5`, `config.load_defaults 7.1`, migrations `ActiveRecord::Migration[7.1]`.
41
+ - **`validation_hints`:** requires 6.3.0+ (Rails 7.1 activerecord).
42
+
43
+ ### Verified
44
+
45
+ - **`bundle exec rails test`** in `--example` MyApp on Rails 7.1 — **74 runs, 412 assertions, 0 failures**.
46
+ - **curl:** `GET /apartments/new?update=apartments_list` with session + Turbo-Frame — validation hint source present.
47
+ - **Browser (headless Chromium):** login → new Apartment → hover Name — Tippy tooltip visible with **"can't be blank"**.
48
+
49
+ ## [7.9.8] - 2026-05-18
50
+
51
+ ### Changed
52
+
53
+ - **jQuery widget init (Phase 4):** `initInlineFormsWidgets` centralizes datepicker, month/year picker, timepicker, Trix, and validation-hint Tippy re-bind on DOM ready, `turbo:load`, and `turbo:frame-load`.
54
+ - **`date` / `time` / `month_year_picker` form elements:** removed inline `<script>` tags; fields use class hooks (`datepicker`, `datepicker-month-year`, `timepicker`).
55
+
56
+ ### Added
57
+
58
+ - **`docs/jquery-widgets.md`** — migration status and remaining jQuery dependencies.
59
+
60
+ ### Verified
61
+
62
+ - **`bundle exec rails test`** in `--example` MyApp — **74 runs, 408 assertions, 0 failures**.
63
+ - **curl + browser:** validation hint tooltips on new Apartment form (7.9.8).
64
+
65
+ ## [7.9.7] - 2026-05-18
66
+
67
+ ### Added
68
+
69
+ - **`docs/turbo-stream-audit.md`** — documents current `format.turbo_stream` usage and optional future candidates (Phase 3 hygiene).
70
+
71
+ ### Changed
72
+
73
+ - **Repo hygiene:** built `*.gem` artifacts remain gitignored; remove local copies after `gem build`.
74
+
7
75
  ## [7.9.6] - 2026-05-17
8
76
 
9
77
  ### Fixed
data/Rakefile CHANGED
@@ -1,5 +1,22 @@
1
1
  require "bundler"
2
- Bundler::GemHelper.install_tasks
2
+
3
+ Bundler::GemHelper.install_tasks name: "inline_forms"
4
+
5
+ namespace :installer do
6
+ Bundler::GemHelper.install_tasks name: "inline_forms_installer"
7
+ end
8
+
9
+ desc "Build both inline_forms and inline_forms_installer into pkg/"
10
+ task "build:all" => ["build", "installer:build"]
11
+
12
+ desc "Release both gems: tag once, push inline_forms and inline_forms_installer to RubyGems"
13
+ task "release:all" => [
14
+ "build:all",
15
+ "release:guard_clean",
16
+ "release:source_control_push",
17
+ "release:rubygem_push",
18
+ "installer:release:rubygem_push"
19
+ ]
3
20
 
4
21
  require "rake/testtask"
5
22
 
@@ -14,14 +14,61 @@
14
14
  // `<turbo-frame>` + HTML responses; jquery-ujs / remotipart were removed in 7.8.0.
15
15
 
16
16
  $(function(){
17
+ $.datepicker.setDefaults({
18
+ changeMonth : true,
19
+ changeYear : true,
20
+ yearRange: '-100:+100',
21
+ dateFormat: 'dd-mm-yy'
22
+ });
17
23
  $(document).foundation();
18
- initValidationHintTooltips(document);
24
+ initInlineFormsWidgets(document);
19
25
  });
20
26
 
21
27
  document.addEventListener("turbo:load", function() {
22
- initValidationHintTooltips(document);
28
+ initInlineFormsWidgets(document);
23
29
  });
24
30
 
31
+ // jQuery UI date/time pickers: one init path for first paint and turbo:frame-load
32
+ // (form element helpers emit class hooks only — no inline <script> tags).
33
+ function initInlineFormsWidgets(root) {
34
+ var $root = root instanceof jQuery ? root : $(root);
35
+
36
+ initValidationHintTooltips(root);
37
+
38
+ $root.find("input.datepicker-month-year").each(function() {
39
+ var $el = $(this);
40
+ if ($el.hasClass("hasDatepicker")) { return; }
41
+ $el.datepicker({
42
+ changeMonth: true,
43
+ changeYear: true,
44
+ showButtonPanel: true,
45
+ dateFormat: "MM yy",
46
+ onClose: function() {
47
+ var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
48
+ var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
49
+ $(this).datepicker("setDate", new Date(year, month, 1));
50
+ }
51
+ });
52
+ });
53
+
54
+ $root.find("input.datepicker").not(".datepicker-month-year").each(function() {
55
+ var $el = $(this);
56
+ if (!$el.hasClass("hasDatepicker")) { $el.datepicker(); }
57
+ });
58
+
59
+ $root.find("input.timepicker").each(function() {
60
+ var $el = $(this);
61
+ if (!$el.data("timepicker")) { $el.timepicker(); }
62
+ });
63
+
64
+ $root.find("trix-editor").each(function() {
65
+ if (window.Trix && this.editor) { return; }
66
+ if (window.Trix && typeof Trix.Editor === "function") {
67
+ new Trix.Editor(this);
68
+ }
69
+ });
70
+ }
71
+
25
72
  // Validation hint tooltips: HTML lists from hidden source divs, rendered via Tippy.js
26
73
  // (Foundation Tooltip positioning breaks inside #outer_container position:absolute).
27
74
  function initValidationHintTooltips(root) {
@@ -55,44 +102,16 @@ function initValidationHintTooltips(root) {
55
102
  });
56
103
  }
57
104
 
58
- // initialize datepickers
105
+ // get rid of translation_missing tooltips
59
106
  $(document).ready(function() {
60
- $.datepicker.setDefaults({
61
- changeMonth : true,
62
- changeYear : true,
63
- yearRange: '-100:+100',
64
- dateFormat: 'dd-mm-yy'
107
+ $(this).on('mouseover', '.translation_missing', function() {
108
+ $(this).attr('title', '');
65
109
  });
66
110
  });
67
111
 
68
- // get rid of translation_missing tooltips
69
- $(document).ready(function() {
70
- $(this).on('mouseover', '.translation_missing', function() {
71
- $(this).attr('title', '');
72
- });
73
- });
74
-
75
112
  // Re-bind jQuery UI widgets and Trix after Turbo Frame swaps (Step 3).
76
113
  document.addEventListener("turbo:frame-load", function(event) {
77
114
  var root = event.target;
78
115
  if (!root || !root.querySelectorAll) { return; }
79
-
80
- initValidationHintTooltips(root);
81
-
82
- $(root).find("input.datepicker").each(function() {
83
- var $el = $(this);
84
- if (!$el.hasClass("hasDatepicker")) { $el.datepicker(); }
85
- });
86
-
87
- $(root).find("input.timepicker").each(function() {
88
- var $el = $(this);
89
- if (!$el.data("timepicker")) { $el.timepicker(); }
90
- });
91
-
92
- $(root).find("trix-editor").each(function() {
93
- if (window.Trix && this.editor) { return; }
94
- if (window.Trix && typeof Trix.Editor === "function") {
95
- new Trix.Editor(this);
96
- }
97
- });
116
+ initInlineFormsWidgets(root);
98
117
  });
@@ -9,7 +9,6 @@ end
9
9
  def date_select_edit(object, attribute)
10
10
  css_id = 'datepicker_' + object.class.to_s.underscore + '_' + object.id.to_s + '_' + attribute.to_s
11
11
  out = text_field_tag attribute, ( object.send(attribute).nil? ? "" : object.send(attribute).to_date.strftime("%d-%m-%Y") ), :id => css_id, :class =>'datepicker'
12
- out << "<script>$('##{css_id}').datepicker();</script>".html_safe
13
12
  end
14
13
 
15
14
  def date_select_update(object, attribute)
@@ -8,21 +8,7 @@ end
8
8
 
9
9
  def month_year_picker_edit(object, attribute)
10
10
  css_id = 'datepicker_' + object.class.to_s.underscore + '_' + object.id.to_s + '_' + attribute.to_s
11
- out = text_field_tag attribute, ( object.send(attribute).nil? ? "" : object.send(attribute).strftime("%B %Y") ), :id => css_id, :class =>'datepicker'
12
- #out << (hidden_field_tag "hidden_" + attribute.to_s, ( object.send(attribute).nil? ? "" : object.send(attribute).strftime("%d-%m-%Y") ), :id => "hiddden_" + css_id)
13
- # http://jsfiddle.net/bopperben/DBpJe/
14
- out << "<script>$('##{css_id}').datepicker( {
15
- changeMonth: true,
16
- changeYear: true,
17
- showButtonPanel: true,
18
- dateFormat: 'MM yy',
19
- regional: '',
20
- onClose: function(dateText, inst) {
21
- var month = $('#ui-datepicker-div .ui-datepicker-month :selected').val();
22
- var year = $('#ui-datepicker-div .ui-datepicker-year :selected').val();
23
- $(this).datepicker('setDate', new Date(year, month, 1));
24
- }
25
- });</script>".html_safe
11
+ out = text_field_tag attribute, ( object.send(attribute).nil? ? "" : object.send(attribute).strftime("%B %Y") ), :id => css_id, :class =>'datepicker datepicker-month-year'
26
12
  end
27
13
 
28
14
  def month_year_picker_update(object, attribute)
@@ -9,7 +9,6 @@
9
9
  def time_select_edit(object, attribute)
10
10
  css_id = 'timepicker_' + object.class.to_s.underscore + '_' + object.id.to_s + '_' + attribute.to_s
11
11
  out = text_field_tag attribute, ( object.send(attribute).nil? ? "" : object.send(attribute).to_datetime.strftime("%l:%M%P") ), :id => css_id, :class =>'timepicker'
12
- out << "<script>$('##{css_id}').timepicker();</script>".html_safe
13
12
  end
14
13
 
15
14
  def time_select_update(object, attribute)
@@ -0,0 +1,25 @@
1
+ # jQuery widget migration (Phase 4)
2
+
3
+ UJS removal (7.8.0) is complete. These jQuery-based widgets remain in the Sprockets bundle:
4
+
5
+ | Widget | Asset | Status |
6
+ |--------|-------|--------|
7
+ | Datepicker | `jquery.ui.all` | **Centralized** — `initInlineFormsWidgets` in `inline_forms.js`; helpers use `class="datepicker"` only |
8
+ | Month/year picker | jQuery UI datepicker | **Centralized** — `class="datepicker datepicker-month-year"` |
9
+ | Timepicker | `jquery.timepicker.js` | **Centralized** — `class="timepicker"` |
10
+ | Autocomplete | `autocomplete-rails` + inline scripts in `dropdown_with_other` | Still inline / jQuery UI |
11
+ | Foundation | `foundation` jQuery plugin | Required for layout chrome |
12
+
13
+ ## Central init (7.9.8+)
14
+
15
+ `initInlineFormsWidgets(root)` runs on:
16
+
17
+ - DOM ready (after `$.datepicker.setDefaults`)
18
+ - `turbo:load`
19
+ - `turbo:frame-load`
20
+
21
+ Form element `_edit` helpers must **not** emit per-field `<script>` tags; class hooks only.
22
+
23
+ ## Future removal (not started)
24
+
25
+ Replace with Stimulus or vanilla + `turbo:frame-load` one widget at a time; keep example-app tests green after each.
@@ -9,13 +9,13 @@ Steps:
9
9
  1) In /home/code/inline_forms:
10
10
  - Ensure latest code is used.
11
11
  - Run: rvm use .
12
- - Build gem: gem build inline_forms.gemspec
13
- - Confirm the built file name/version (inline_forms-<version>.gem).
12
+ - Build gems: gem build inline_forms.gemspec && gem build inline_forms_installer.gemspec
13
+ - Confirm the built file names/versions (inline_forms-<version>.gem, inline_forms_installer-<version>.gem).
14
14
 
15
15
  2) In /home/code/testInline:
16
16
  - Remove old app if present: /home/code/testInline/MyApp
17
17
  - Run: rvm use .
18
- - Install the freshly built gem from /home/code/inline_forms/inline_forms-<version>.gem
18
+ - Install the freshly built gems from /home/code/inline_forms/inline_forms-<version>.gem and inline_forms_installer-<version>.gem
19
19
 
20
20
  3) Still in /home/code/testInline:
21
21
  - Generate fresh example app:
@@ -0,0 +1,16 @@
1
+ # Turbo Stream audit (optional)
2
+
3
+ Stock inline_forms flows use **`format.html`** inside matching `<turbo-frame>` ids. **`format.turbo_stream`** is used where a single response must update **multiple** frames (e.g. revert from the versions panel).
4
+
5
+ ## Current turbo_stream usage
6
+
7
+ | Action | Response | Notes |
8
+ |--------|----------|-------|
9
+ | `revert` | `turbo_stream.replace` row + versions frames | Required when POST originates inside `*_versions` frame |
10
+
11
+ ## Candidates for future streams (not migrated)
12
+
13
+ - Row destroy fade-out animation (today: HTML `row_destroyed` replaces frame)
14
+ - Multi-field batch updates (no stock flow today)
15
+
16
+ No change required for the example app; integration tests assert HTML frame contracts.
data/docs/ujs-to-turbo.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # UJS → Turbo migration checklist
2
2
 
3
+ > **Decommissioned.** This checklist is frozen as of 2026-05-17.
4
+ > **Use the combined roadmap instead:** [`stuff/roadmap.md`](../stuff/roadmap.md)
5
+ > Canonical copy also at: `validation_hints/stuff/roadmap.md`
6
+
7
+ **Steps 1–5 are complete** (inline_forms **7.9.6**). Remaining work (jQuery widget migration, optional `turbo_stream` audit, validation hint copy, Rails security bump) is tracked in **`roadmap.md`**.
8
+
9
+ ---
10
+
11
+ ## Historical reference (archived)
12
+
13
+ <details>
14
+ <summary>Original UJS → Turbo checklist (click to expand)</summary>
15
+
3
16
  Track progress toward full Turbo integration and removal of jQuery UJS from inline_forms generated apps.
4
17
 
5
18
  **Current gem version:** see `lib/inline_forms/version.rb` (**Step 5** — Turbo Drive on, jquery-ujs / remotipart removed in **7.8.0**)
@@ -190,3 +203,5 @@ None on `InlineFormsController` / `VersionsConcern` stock actions (**7.8.0**). H
190
203
  Stock `_show` / `_list` are not required for inline edit. Any page can call form-element helpers (e.g. `text_field_show(apartment, :name)`) inside a container with id `apartment_<id>_name`. Edit/update still hit `ApartmentsController#edit` / `#update` via polymorphic paths.
191
204
 
192
205
  Example app **`--example` name list** (`GET /apartments/name_list`): custom page using the **same** turbo-field contract as stock `_show` (not a separate code path). Linked from the **More** menu; regression-tested after stock field Turbo lands.
206
+
207
+ </details>
data/inline_forms.gemspec CHANGED
@@ -1,6 +1,7 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  $:.push File.expand_path("../lib", __FILE__)
3
3
  require "inline_forms/version"
4
+ require "inline_forms/gem_files"
4
5
 
5
6
  Gem::Specification.new do |s|
6
7
  s.name = "inline_forms"
@@ -14,29 +15,13 @@ Gem::Specification.new do |s|
14
15
  s.licenses = ["MIT"]
15
16
  s.required_ruby_version = ">= 3.2.0"
16
17
 
17
- if File.directory?(File.join(__dir__, ".git"))
18
- s.files = `git ls-files`.split("\n")
19
- s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
20
- else
21
- s.files = Dir.chdir(__dir__) do
22
- Dir.glob("**/*", File::FNM_DOTMATCH).reject do |f|
23
- f.start_with?(".git/", ".bundle/", "pkg/") ||
24
- f == ".git" || f == ".bundle"
25
- end
26
- end
27
- s.test_files = Dir.chdir(__dir__) do
28
- Dir.glob("{test,spec,features}/**/*")
29
- end
30
- end
31
- s.executables = ["inline_forms"]
18
+ s.files = InlineFormsGemFiles.gem_files(include_installer: false)
19
+ s.test_files = s.files.grep(%r{^(test|spec|features)/})
32
20
  s.require_paths = ["lib"]
33
21
 
34
- s.add_dependency('rvm', '>= 1.11', '< 2.0')
35
- s.add_dependency('thor', '>= 1.0', '< 2.0')
36
- s.add_dependency('validation_hints', '>= 6.0', '< 7.0')
37
- s.add_dependency('rails', '>= 7.0.0', '< 7.1')
38
- s.add_dependency('rails-i18n', '>= 7.0', '< 8.0')
22
+ s.add_dependency("validation_hints", ">= 6.3", "< 7.0")
23
+ s.add_dependency("rails", ">= 7.1.5", "< 7.2")
24
+ s.add_dependency("rails-i18n", ">= 7.0", "< 8.0")
39
25
 
40
26
  s.add_development_dependency("minitest", "~> 5.0")
41
-
42
27
  end
@@ -0,0 +1,39 @@
1
+ # -*- encoding: utf-8 -*-
2
+ module InlineFormsGemFiles
3
+ INSTALLER_FILE_PREFIXES = %w[
4
+ bin/inline_forms
5
+ lib/inline_forms_installer.rb
6
+ lib/inline_forms_installer/
7
+ lib/installer_templates/
8
+ inline_forms_installer.gemspec
9
+ ].freeze
10
+
11
+ module_function
12
+
13
+ REPO_ROOT = File.expand_path("../..", __dir__)
14
+
15
+ def gem_files(include_installer:)
16
+ files =
17
+ if File.directory?(File.join(REPO_ROOT, ".git"))
18
+ Dir.chdir(REPO_ROOT) do
19
+ tracked = `git ls-files`.split("\n")
20
+ untracked = `git ls-files --others --exclude-standard`.split("\n")
21
+ (tracked + untracked).uniq
22
+ end
23
+ else
24
+ Dir.chdir(REPO_ROOT) do
25
+ Dir.glob("**/*", File::FNM_DOTMATCH).reject do |f|
26
+ f.start_with?(".git/", ".bundle/", "pkg/") ||
27
+ f == ".git" || f == ".bundle"
28
+ end
29
+ end
30
+ end
31
+
32
+ files.select! { |f| File.file?(File.join(REPO_ROOT, f)) }
33
+
34
+ files.reject do |f|
35
+ installer_file = INSTALLER_FILE_PREFIXES.any? { |prefix| f == prefix || f.start_with?(prefix) }
36
+ include_installer ? !installer_file : installer_file
37
+ end
38
+ end
39
+ end
@@ -1,4 +1,4 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
  module InlineForms
3
- VERSION = "7.9.6"
3
+ VERSION = "7.11.0"
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: inline_forms
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.9.6
4
+ version: 7.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ace Suares
@@ -11,53 +11,13 @@ bindir: bin
11
11
  cert_chain: []
12
12
  date: 1980-01-02 00:00:00.000000000 Z
13
13
  dependencies:
14
- - !ruby/object:Gem::Dependency
15
- name: rvm
16
- requirement: !ruby/object:Gem::Requirement
17
- requirements:
18
- - - ">="
19
- - !ruby/object:Gem::Version
20
- version: '1.11'
21
- - - "<"
22
- - !ruby/object:Gem::Version
23
- version: '2.0'
24
- type: :runtime
25
- prerelease: false
26
- version_requirements: !ruby/object:Gem::Requirement
27
- requirements:
28
- - - ">="
29
- - !ruby/object:Gem::Version
30
- version: '1.11'
31
- - - "<"
32
- - !ruby/object:Gem::Version
33
- version: '2.0'
34
- - !ruby/object:Gem::Dependency
35
- name: thor
36
- requirement: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '1.0'
41
- - - "<"
42
- - !ruby/object:Gem::Version
43
- version: '2.0'
44
- type: :runtime
45
- prerelease: false
46
- version_requirements: !ruby/object:Gem::Requirement
47
- requirements:
48
- - - ">="
49
- - !ruby/object:Gem::Version
50
- version: '1.0'
51
- - - "<"
52
- - !ruby/object:Gem::Version
53
- version: '2.0'
54
14
  - !ruby/object:Gem::Dependency
55
15
  name: validation_hints
56
16
  requirement: !ruby/object:Gem::Requirement
57
17
  requirements:
58
18
  - - ">="
59
19
  - !ruby/object:Gem::Version
60
- version: '6.0'
20
+ version: '6.3'
61
21
  - - "<"
62
22
  - !ruby/object:Gem::Version
63
23
  version: '7.0'
@@ -67,7 +27,7 @@ dependencies:
67
27
  requirements:
68
28
  - - ">="
69
29
  - !ruby/object:Gem::Version
70
- version: '6.0'
30
+ version: '6.3'
71
31
  - - "<"
72
32
  - !ruby/object:Gem::Version
73
33
  version: '7.0'
@@ -77,20 +37,20 @@ dependencies:
77
37
  requirements:
78
38
  - - ">="
79
39
  - !ruby/object:Gem::Version
80
- version: 7.0.0
40
+ version: 7.1.5
81
41
  - - "<"
82
42
  - !ruby/object:Gem::Version
83
- version: '7.1'
43
+ version: '7.2'
84
44
  type: :runtime
85
45
  prerelease: false
86
46
  version_requirements: !ruby/object:Gem::Requirement
87
47
  requirements:
88
48
  - - ">="
89
49
  - !ruby/object:Gem::Version
90
- version: 7.0.0
50
+ version: 7.1.5
91
51
  - - "<"
92
52
  - !ruby/object:Gem::Version
93
- version: '7.1'
53
+ version: '7.2'
94
54
  - !ruby/object:Gem::Dependency
95
55
  name: rails-i18n
96
56
  requirement: !ruby/object:Gem::Requirement
@@ -130,8 +90,7 @@ description: Inline Forms aims to ease the setup of forms that provide inline ed
130
90
  broken, and we will post a notice when the gem is good again.
131
91
  email:
132
92
  - ace@suares.com
133
- executables:
134
- - inline_forms
93
+ executables: []
135
94
  extensions: []
136
95
  extra_rdoc_files: []
137
96
  files:
@@ -571,11 +530,10 @@ files:
571
530
  - archived/form_elements/tree/app/helpers/form_elements/move.rb
572
531
  - archived/form_elements/tree/app/views/inline_forms/_show_tree.html.erb
573
532
  - archived/form_elements/tree/app/views/inline_forms/_tree.html.erb
574
- - bin/inline_forms
575
- - bin/inline_forms_app_template.rb
576
- - bin/inline_forms_installer_core.rb
533
+ - docs/jquery-widgets.md
577
534
  - docs/prompt/.gitignore
578
535
  - docs/prompt/test-the-example-app.md
536
+ - docs/turbo-stream-audit.md
579
537
  - docs/ujs-to-turbo.md
580
538
  - inline_forms.gemspec
581
539
  - lib/generators/USAGE
@@ -584,42 +542,15 @@ files:
584
542
  - lib/generators/inline_forms_generator.rb
585
543
  - lib/generators/templates/_inline_forms_tabs.html.erb
586
544
  - lib/generators/templates/application_record.rb
587
- - lib/generators/templates/capistrano/Capfile
588
- - lib/generators/templates/capistrano/deploy.rb
589
- - lib/generators/templates/capistrano/production.rb
590
545
  - lib/generators/templates/controller.erb
591
546
  - lib/generators/templates/migration.erb
592
547
  - lib/generators/templates/model.erb
593
548
  - lib/generators/templates/test.erb
594
- - lib/generators/templates/unicorn/production.rb
595
549
  - lib/inline_forms.rb
596
550
  - lib/inline_forms/archived_form_elements.rb
597
551
  - lib/inline_forms/form_element_from_callee.rb
552
+ - lib/inline_forms/gem_files.rb
598
553
  - lib/inline_forms/version.rb
599
- - lib/installer_templates/dartsass/devise_main.scss
600
- - lib/installer_templates/dartsass/inline_forms_dartsass_builds.rb
601
- - lib/installer_templates/dartsass/inline_forms_main.scss
602
- - lib/installer_templates/example_app_tests/test/example_app/example_integration_test_case.rb
603
- - lib/installer_templates/example_app_tests/test/integration/example_app_apartment_field_turbo_test.rb
604
- - lib/installer_templates/example_app_tests/test/integration/example_app_apartment_name_list_test.rb
605
- - lib/installer_templates/example_app_tests/test/integration/example_app_apartment_name_required_test.rb
606
- - lib/installer_templates/example_app_tests/test/integration/example_app_apartment_photos_pagination_test.rb
607
- - lib/installer_templates/example_app_tests/test/integration/example_app_apartment_row_turbo_test.rb
608
- - lib/installer_templates/example_app_tests/test/integration/example_app_apartment_top_level_new_test.rb
609
- - lib/installer_templates/example_app_tests/test/integration/example_app_apartment_top_level_pagination_test.rb
610
- - lib/installer_templates/example_app_tests/test/integration/example_app_apartment_versions_turbo_test.rb
611
- - lib/installer_templates/example_app_tests/test/integration/example_app_guest_access_test.rb
612
- - lib/installer_templates/example_app_tests/test/integration/example_app_photo_revert_test.rb
613
- - lib/installer_templates/example_app_tests/test/integration/example_app_photos_test.rb
614
- - lib/installer_templates/example_app_tests/test/integration/example_app_routing_test.rb
615
- - lib/installer_templates/example_app_tests/test/integration/example_app_turbo_layout_test.rb
616
- - lib/installer_templates/example_app_tests/test/integration/example_app_validation_hints_test.rb
617
- - lib/installer_templates/example_app_tests/test/models/example_app_apartment_name_validation_test.rb
618
- - lib/installer_templates/example_app_tests/test/models/example_app_apartment_photo_test.rb
619
- - lib/installer_templates/example_app_tests/test/models/example_app_paper_trail_changeset_test.rb
620
- - lib/installer_templates/example_app_tests/test/models/example_app_plain_text_rich_text_edge_cases_test.rb
621
- - lib/installer_templates/example_app_views/apartments/name_list.html.erb
622
- - lib/installer_templates/example_app_views/inline_forms/_header.html.erb
623
554
  - lib/locales/inline_forms.en.yml
624
555
  - lib/locales/inline_forms.nl.yml
625
556
  - lib/otherstuff/20120310065554_inline_forms_create_view_for_translations.rb
@@ -658,4 +589,10 @@ requirements: []
658
589
  rubygems_version: 3.7.2
659
590
  specification_version: 4
660
591
  summary: Inline editing of forms. Versions after 6.2.14 are currently broken.
661
- test_files: []
592
+ test_files:
593
+ - test/archived_form_elements_test.rb
594
+ - test/form_element_from_callee_test.rb
595
+ - test/inline_edit_polymorphic_path_test.rb
596
+ - test/inline_forms_generator_test.rb
597
+ - test/plain_text_configuration_test.rb
598
+ - test/test_helper.rb