Sha256: 7f67f99238eaec985e7fa4103e54baa39f19499e3e85c472f549e72e81b6b4be
Contents?: true
Size: 1.15 KB
Versions: 4
Compression:
Stored size: 1.15 KB
Contents
module Yaks class Resource class Form class Field include Yaks::Mapper::Form::Field.attributes.add(error: nil) undef value def value if type.equal? :select selected = options.find(&:selected) selected.value if selected else @value end end def with_value(value) if type.equal? :select with(options: select_options_for_value(value)) else with(value: value) end end private def select_options_for_value(value) unset = ->(option) { option.selected && !value().eql?(value) } set = ->(option) { !option.selected && option.value.eql?(value) } options.each_with_object([]) do |option, new_opts| new_opts << case option when unset option.with selected: false when set option.with selected: true else option end end end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
yaks-0.13.0 | lib/yaks/resource/form/field.rb |
yaks-0.12.0 | lib/yaks/resource/form/field.rb |
yaks-0.11.0 | lib/yaks/resource/form/field.rb |
yaks-0.10.0 | lib/yaks/resource/form/field.rb |