lib/videojuicer/resource/property_registry.rb in videojuicer-vj-sdk-0.1.5 vs lib/videojuicer/resource/property_registry.rb in videojuicer-vj-sdk-0.1.12

- old
+ new

@@ -72,11 +72,30 @@ # attribute's actual type. def coerce_value(key, value) return value unless value klass = self.class.attributes[key][:class] if value.is_a?(String) and value.any? + # In-built types + if klass.kind_of?(Videojuicer::Resource::Types::Base) + return klass.new(value).dump + end + + # Dates if klass.respond_to?(:parse) return klass.parse(value) rescue raise "Invalid date: #{value.inspect}" + end + elsif value.is_a? Hash and value.any? + if klass == DateTime + if value.is_a?(Hash) + year = value[:year] + month = value[:month] + day = value[:day] + hour = value[:hour] or "00" + minute = value[:minute] or "00" + value = klass.parse("#{year}-#{month}-#{day}T#{hour}:#{minute}:00+00:00") + else + raise ArgumentError, "Please supply a DateTime, Hash keyed w/ [:day, :month, :year, :hour, :minute] or a String that can be coerced into a date" + end end end return value end \ No newline at end of file