formtastic_tristate_radio 0.2.1 → 0.2.2
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 +4 -4
- data/CHANGELOG.md +5 -0
- data/README.md +18 -3
- data/app/inputs/tristate_radio_input.rb +2 -1
- data/lib/formtastic_tristate_radio/configuration.rb +25 -0
- data/lib/formtastic_tristate_radio/missing_translation_error.rb +6 -0
- data/lib/formtastic_tristate_radio/version.rb +1 -1
- data/lib/formtastic_tristate_radio.rb +3 -3
- metadata +17 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 654200d81e8ba934c905356fa626b6089419edc8a81021bed298793c283c6c7b
|
4
|
+
data.tar.gz: 5d3230415c94b4d2d054a25f1a4bbd339554f77bddd878798e9c5c4686ab140f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9d88136b057f6cc2c17e890c73851c20e29dea4b107671d28f2936beac64da1b7dda13fa9ff07dee076ec512bfd698b3669b38ce28f534bbdeeb0e925c84802b
|
7
|
+
data.tar.gz: dc1a06b004aca154a1b728d4bcb14c798bc1eb998fff614c675128c5a36c2a9f860abdd17ee90763c98d59da23e34acef57236e8ef56e443ae96d423625c9e66
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -94,7 +94,22 @@ Notice that the key ActiveAdmin uses is “unset”, not “null”.
|
|
94
94
|
|
95
95
|
## Configuration
|
96
96
|
|
97
|
-
|
97
|
+
It’s difficult to come up with a reasonable use case for that, but you can configure what will be used as inputs value:
|
98
|
+
|
99
|
+
```ruby
|
100
|
+
# config/initializers/formtastic.rb
|
101
|
+
FormtasticTristateRadio.configure do |config|
|
102
|
+
config.unset_key = "__unset" # default is :null
|
103
|
+
end
|
104
|
+
```
|
105
|
+
|
106
|
+
which will result in:
|
107
|
+
|
108
|
+
```html
|
109
|
+
<input name="am_i_awake" type="radio" value="__unset"> <label>Unset</label>
|
110
|
+
```
|
111
|
+
|
112
|
+
Mind that for that to work, you also need to configure `ActiveModel` to recognize that value as `nil`. Currently that is done [like so](https://github.com/sergeypedan/formtastic-tristate-radio/blob/master/config/initializers/activemodel_type_boolean.rb#L9).
|
98
113
|
|
99
114
|
|
100
115
|
## Documentation
|
@@ -178,10 +193,10 @@ ActiveModel::Type::Boolean.new.cast(:nil) #=> nil
|
|
178
193
|
|
179
194
|
## Roadmap
|
180
195
|
|
196
|
+
- [x] Make the gem configurable
|
197
|
+
- [x] Pull the key used for “unset” choice value into configuration
|
181
198
|
- [ ] Load translations from gem
|
182
199
|
- [ ] Add translations into most popular languages
|
183
|
-
- [ ] Make the gem configurable
|
184
|
-
- [ ] Pull the key used for “unset” choice value into configuration
|
185
200
|
- [ ] Rgister `:tristate_radio` for Boolean columns with `null`
|
186
201
|
- [ ] Decouple `ActiveModel::Type::Boolean` thing from Formtastic things, maybe into a separate gem
|
187
202
|
- [ ] Decouple from Rails
|
@@ -6,12 +6,13 @@ require "formtastic"
|
|
6
6
|
class TristateRadioInput < Formtastic::Inputs::RadioInput
|
7
7
|
|
8
8
|
# No equals `:null`.
|
9
|
+
# Should equal one of `ActiveModel::Type::Boolean::NULL_VALUES`
|
9
10
|
#
|
10
11
|
# Mind ActiveAdmin [status resolving logic](https://github.com/activeadmin/activeadmin/blob/master/lib/active_admin/views/components/status_tag.rb#L51):
|
11
12
|
# in status tag builder the value is lowercased before casting into Boolean, and the keyword for nil is `"unset"`.
|
12
13
|
# So if we have lowercase `"unset"`, translations from `ru.formtastic.unset` will be overriden by `ru.active_admin.status_tag.unset`.
|
13
14
|
#
|
14
|
-
UNSET_KEY =
|
15
|
+
UNSET_KEY = FormtasticTristateRadio.config.unset_key
|
15
16
|
|
16
17
|
I18N_EXAMPLE_ACTIVEADMIN = <<~YAML.chomp
|
17
18
|
ru:
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module FormtasticTristateRadio
|
4
|
+
|
5
|
+
class << self
|
6
|
+
attr_writer :config
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.config
|
10
|
+
@config ||= Configuration.new
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.configure
|
14
|
+
yield(config)
|
15
|
+
end
|
16
|
+
|
17
|
+
class Configuration
|
18
|
+
attr_accessor :unset_key
|
19
|
+
|
20
|
+
def initialize
|
21
|
+
@unset_key = :null
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
@@ -1,9 +1,9 @@
|
|
1
1
|
require_relative "formtastic_tristate_radio/version"
|
2
|
+
require_relative "formtastic_tristate_radio/missing_translation_error"
|
3
|
+
require_relative "formtastic_tristate_radio/configuration"
|
2
4
|
require_relative "formtastic_tristate_radio/engine"
|
5
|
+
|
3
6
|
require_relative "../app/models/active_record/base"
|
4
7
|
|
5
8
|
module FormtasticTristateRadio
|
6
|
-
|
7
|
-
class MissingTranslationError < StandardError; end
|
8
|
-
|
9
9
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: formtastic_tristate_radio
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sergey Pedan
|
@@ -50,6 +50,20 @@ dependencies:
|
|
50
50
|
- - "<"
|
51
51
|
- !ruby/object:Gem::Version
|
52
52
|
version: '7'
|
53
|
+
- !ruby/object:Gem::Dependency
|
54
|
+
name: rspec
|
55
|
+
requirement: !ruby/object:Gem::Requirement
|
56
|
+
requirements:
|
57
|
+
- - "~>"
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
version: '3'
|
60
|
+
type: :development
|
61
|
+
prerelease: false
|
62
|
+
version_requirements: !ruby/object:Gem::Requirement
|
63
|
+
requirements:
|
64
|
+
- - "~>"
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: '3'
|
53
67
|
- !ruby/object:Gem::Dependency
|
54
68
|
name: yard
|
55
69
|
requirement: !ruby/object:Gem::Requirement
|
@@ -93,7 +107,9 @@ files:
|
|
93
107
|
- config/locales/formtastic.ru.yml
|
94
108
|
- config/routes.rb
|
95
109
|
- lib/formtastic_tristate_radio.rb
|
110
|
+
- lib/formtastic_tristate_radio/configuration.rb
|
96
111
|
- lib/formtastic_tristate_radio/engine.rb
|
112
|
+
- lib/formtastic_tristate_radio/missing_translation_error.rb
|
97
113
|
- lib/formtastic_tristate_radio/version.rb
|
98
114
|
- lib/tasks/formtastic_tristate_radio_tasks.rake
|
99
115
|
homepage: https://github.com/sergeypedan/formtastic-tristate-radio
|