lib/dolly/property.rb in dolly-3.1.0 vs lib/dolly/property.rb in dolly-3.1.1

- old
+ new

@@ -14,14 +14,19 @@ end def cast_value(value) return set_default if value.nil? return value unless class_name - return self_klass.new(value) unless respond_to?(klass_sym) + return custom_class(value) unless respond_to?(klass_sym) send(klass_sym, value) end + def custom_class(value) + value = value.is_a?(Hash) ? value.symbolize_keys : value + self_klass.new(value) + end + def boolean? [TrueClass, FalseClass].include?(class_name) end def string_value(value) @@ -30,10 +35,18 @@ def hash_value(value) value.to_h end + def hash_with_indifferent_access_value(value) + if defined?(Rails) + value.to_h.with_indifferent_access + else + value.to_h + end + end + def integer_value(value) value.to_i end def float_value(value) @@ -68,10 +81,16 @@ def truthy_value?(value) value =~ /true/ || value === true end def klass_sym - :"#{self_klass.name.underscore}_value" + klass_name = self_klass. + name. + split('::'). + last. + underscore + + :"#{klass_name}_value" end def self_klass return unless class_name return class_name if class_name.is_a?(Class)