phlexi-form 0.14.1 → 0.14.3

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: 1ef0637c42cb3ccac2072e77c7e0344ce415e322b006bd8b9c1cfc69934b33f1
4
- data.tar.gz: 79993ecedc8eb545e3584dcc8ef9d75c99cb8e160e88855939749ba975abb2fe
3
+ metadata.gz: 646d0fa05822cf1814bd5b69b124f7f1601996a17033299721e9a18e90fff91a
4
+ data.tar.gz: e89da4957a05d123399d716258c6f46750a4e48fede058dad531573806f2c5f7
5
5
  SHA512:
6
- metadata.gz: 59df13f11cae1d04e69f2248962cef09b028fcd215ac79a17a94d577604b20370e0847f7a658c32f545b54d3a7ac6c436873b48599b2d83d5f1c952f304ced1b
7
- data.tar.gz: 1162096a0733ba38c907edea0abb3dee34ec55c3cbdd96d6fb689731049dd81af2e380ec9e9ea923b4fc3c1ad7c1c14fd8054a800160603f1ce8424eb4fbeac3
6
+ metadata.gz: 54be074be2f6131b9ab0d1ef85164527db01b4a801a3834d0b8f0862953cda5e3e0cb11a84abffecce191519bb8630b972cc548aff9fc214e4c532ab17e6df6f
7
+ data.tar.gz: 0260d7469abaeb372b7d7299e6e0212241560c4683e30d6a7b708fba552f6292ac83eff4063f4a9feb15a646bfca57bc6bd751af183326b7f478610494511862
data/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [0.14.3]
4
+
5
+ - Fix `Checkbox#checked?` so boolean-ish values from JSON/text columns or params
6
+ (`"f"`, `"F"`, `"FALSE"`, `"off"`, `"OFF"`, `0`, `:false`, ...) render unchecked.
7
+ The recognised falsey set now mirrors Rails' `ActiveModel::Type::Boolean::FALSE_VALUES`
8
+ instead of only `""`, `"0"` and lowercase `"false"`.
9
+
3
10
  ## [0.2.0] - 2024-07-31
4
11
 
5
12
  - Initial release
@@ -27,12 +27,20 @@ module Phlexi
27
27
  @include_hidden != false
28
28
  end
29
29
 
30
+ # Stringified form of Rails' ActiveModel::Type::Boolean::FALSE_VALUES.
31
+ # Kept as a literal set (rather than depending on activemodel) so a
32
+ # boolean-ish value from a JSON/text column or params — "f", "F",
33
+ # "FALSE", "off", 0, :false, ... — is recognised as unchecked. The
34
+ # component compares field.dom.value, which stringifies the underlying
35
+ # value, so the integer/symbol/boolean forms collapse onto these.
36
+ FALSE_VALUES = ["", "0", "f", "F", "false", "FALSE", "off", "OFF"].freeze
37
+
30
38
  def checked?
31
39
  return false if field.dom.value == @unchecked_value
32
40
 
33
41
  if @checked_value == "1" # using default values
34
42
  # handle nils, numbers and booleans
35
- !["", "0", "false"].include?(field.dom.value)
43
+ !FALSE_VALUES.include?(field.dom.value)
36
44
  else # custom value, so explicit match
37
45
  field.dom.value == @checked_value
38
46
  end
@@ -9,6 +9,7 @@ module Phlexi
9
9
 
10
10
  def build_attributes
11
11
  super
12
+ @raw_choices = attributes.delete(:choices)
12
13
  @label_method = attributes.delete(:label_method)
13
14
  @value_method = attributes.delete(:value_method)
14
15
  @group_method = attributes.delete(:group_method)
@@ -17,7 +18,7 @@ module Phlexi
17
18
 
18
19
  def choices
19
20
  @choices ||= begin
20
- collection = attributes.delete(:choices) || field.choices
21
+ collection = @raw_choices || field.choices
21
22
  build_choice_mapper(collection)
22
23
  end
23
24
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Phlexi
4
4
  module Form
5
- VERSION = "0.14.1"
5
+ VERSION = "0.14.3"
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: phlexi-form
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.14.1
4
+ version: 0.14.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stefan Froelich
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-01-26 00:00:00.000000000 Z
11
+ date: 2026-07-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: phlex