Module: Sequent::Core::Helpers::BooleanSupport
- Defined in:
- lib/sequent/core/helpers/boolean_support.rb
Overview
Parses the strings “true”, “false” and nil to true, false, false
You need to include this module explicitly when working with booleans.
Example:
class Registration < Sequent::Core::ValueObject
include Sequent::Core::Helpers::BooleanSupport
attrs accepted_terms: Boolean
end
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.included(base) ⇒ Object
17 18 19 |
# File 'lib/sequent/core/helpers/boolean_support.rb', line 17 def self.included(base) base.before_validation :parse_booleans end |
Instance Method Details
#parse_booleans ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/sequent/core/helpers/boolean_support.rb', line 21 def parse_booleans attributes.each do |name, type| if type == Boolean raw_value = self.instance_variable_get("@#{name}") return if raw_value.kind_of? Boolean return unless [nil, "true", "false"].include?(raw_value) bool_value = raw_value == "true" ? true : false self.instance_variable_set "@#{name}", bool_value end end end |