tina4ruby 3.11.2 → 3.11.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ef9466f8965eb7728b8aadecd725236011298269966d3775c9f11dc1aa9b0c62
4
- data.tar.gz: 11f5cc6ac83ad16b63a23068476517e0babe7db60f793942e2fa4b7048f12894
3
+ metadata.gz: 867606c9de2048203d7b085856ddfa714c39d5006b76b0544fda105a4c321450
4
+ data.tar.gz: 35a49c85820e6cf8cf3ec1caa493701e9850c0a89ffa6545e47a81754fb4e0c6
5
5
  SHA512:
6
- metadata.gz: d214fe2b2e79c28232fec6ed03af2d352b70854e66a1611535ad49bd6c79059110579a6d85ab2c8fdc0de8db215abcfae8fe1332d4398985a53c9a3bb4cc5ede
7
- data.tar.gz: 5095de7d8683d27ef009859f3e9272e50be8eece9eeea94a7abf62332028cbf9a4aaabf1d3fd6468c57bfbfeca13d2b276703ea55d89d3190343686fd46d5765
6
+ metadata.gz: f2b01839d4309086b87fc54305feb28e62f2bcfb63f8c2e031889fc686cbb123391b6eccc1ba80896029f883bb7480f569f3b027a042b7d93ec5a33921e728e6
7
+ data.tar.gz: fe4ab32a4734c3914dbfc285aed62705ffd2b3fa773ebd850d5908cbd316cc433cc7ff03f09378a34fa3047bce4e63b035f1cb8cfb3b356381c31ffd19bf9d6e
data/lib/tina4/cli.rb CHANGED
@@ -84,13 +84,19 @@ module Tina4
84
84
 
85
85
  # Parse --key value and --flag from args. Returns [flags_hash, positional_array]
86
86
  def parse_flags(args)
87
+ # Boolean-only flags that never take a value argument
88
+ boolean_flags = %w[no-browser no-reload production managed all clear dev]
89
+
87
90
  flags = {}
88
91
  positional = []
89
92
  i = 0
90
93
  while i < args.length
91
94
  if args[i].start_with?("--")
92
95
  key = args[i][2..]
93
- if i + 1 < args.length && !args[i + 1].start_with?("--")
96
+ if boolean_flags.include?(key)
97
+ flags[key] = true
98
+ i += 1
99
+ elsif i + 1 < args.length && !args[i + 1].start_with?("--")
94
100
  flags[key] = args[i + 1]
95
101
  i += 2
96
102
  else
@@ -196,11 +202,9 @@ module Tina4
196
202
  # Load route files
197
203
  load_routes(root_dir)
198
204
 
199
- if options[:dev]
200
- no_reload = %w[true 1 yes].include?(ENV.fetch("TINA4_NO_RELOAD", "").downcase)
201
- Tina4::DevReload.start(root_dir: root_dir) unless no_reload
202
- Tina4::ScssCompiler.compile_all(root_dir)
203
- end
205
+ # File watching is handled by the Rust CLI (tina4 serve). The framework
206
+ # only needs POST /__dev/api/reload to update the mtime counter for browser polling.
207
+ # No internal file watcher.
204
208
 
205
209
  app = Tina4::RackApp.new(root_dir: root_dir)
206
210
 
@@ -326,6 +326,15 @@ module Tina4
326
326
  serve_dashboard
327
327
  when ["GET", "/__dev/js/tina4-dev-admin.min.js"]
328
328
  serve_dev_js
329
+ when ["GET", "/__dev/api/mtime"]
330
+ json_response({ mtime: @reload_mtime || 0, file: @reload_file || "" })
331
+ when ["POST", "/__dev/api/reload"]
332
+ body = read_json_body(env) || {}
333
+ @reload_mtime = Time.now.to_i
334
+ @reload_file = body["file"] || ""
335
+ reload_type = body["type"] || "reload"
336
+ Tina4::Log.info("External reload trigger: #{reload_type}#{@reload_file.empty? ? '' : " (#{@reload_file})"}")
337
+ json_response({ ok: true, type: reload_type })
329
338
  when ["GET", "/__dev/api/status"]
330
339
  json_response(status_payload)
331
340
  when ["GET", "/__dev/api/routes"]
data/lib/tina4/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Tina4
4
- VERSION = "3.11.2"
4
+ VERSION = "3.11.5"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tina4ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.11.2
4
+ version: 3.11.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tina4 Team