Sha256: 84ed3d604bf99f2026a0ed079b56a6d1928f3cce2b6dea223acbb80d1f60f53a
Contents?: true
Size: 1.42 KB
Versions: 1
Compression:
Stored size: 1.42 KB
Contents
module Spree module Preferences module PreferableDecorator private def convert_preference_value(value, type) case type when :string, :text, :select value.to_s when :password value.to_s when :decimal BigDecimal.new(value.to_s) when :integer value.to_i when :boolean, :boolean_select if value.is_a?(FalseClass) || value.nil? || value == 0 || value =~ /^(f|false|0)$/i || (value.respond_to?(:empty?) && value.empty?) false else true end when :array value.is_a?(Array) ? value : Array.wrap(value) when :hash case value.class.to_s when 'Hash' value when 'String' # only works with hashes whose keys are strings JSON.parse value.gsub('=>', ':') when 'Array' begin value.try(:to_h) rescue TypeError Hash[*value] rescue ArgumentError raise 'An even count is required when passing an array to be converted to a hash' end else value.class.ancestors.include?(Hash) ? value : {} end else value end end end end end ::Spree::Preferences::Preferable.prepend(Spree::Preferences::PreferableDecorator)
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
spree_braintree_vzero-3.5.1 | app/models/spree/preferences/preferable_decorator.rb |