def initialize(*args)
self.default_type = args.shift if args.first.is_a?(Symbol)
options = args.shift.dup if args.first.is_a?(Hash)
raise ArgumentError, "The arguments provided are not supported." if args.size > 0
options ||= {}
self.theme = Scruffy::Themes::Keynote.new
self.renderer = Scruffy::Renderers::Standard.new
self.rasterizer = Scruffy::Rasterizers::RMagickRasterizer.new
self.value_formatter = Scruffy::Formatters::Number.new
%w(title theme layers default_type value_formatter point_markers rasterizer).each do |arg|
self.send("#{arg}=".to_sym, options.delete(arg.to_sym)) unless options[arg.to_sym].nil?
end
raise ArgumentError, "Some options provided are not supported: #{options.keys.join(' ')}." if options.size > 0
end