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