lib/osheet/xmlss_writer/base.rb in osheet-0.9.2 vs lib/osheet/xmlss_writer/base.rb in osheet-0.10.0
- old
+ new
@@ -7,46 +7,43 @@
module Osheet::XmlssWriter
class Base
include Elements
include Styles
- attr_reader :workbook, :styles
+ attr_reader :used_xstyles
def initialize(opts={})
- @styles = []
- @ostyles = ::Osheet::StyleSet.new
- self.workbook = opts[:workbook] if opts.has_key?(:workbook)
+ @used_xstyles = []
+ self.oworkbook = if opts.has_key?(:workbook)
+ opts[:workbook]
+ else
+ ::Osheet::Workbook.new
+ end
end
- def workbook=(oworkbook)
- unless oworkbook.kind_of?(::Osheet::Workbook)
- raise ArgumentError, "'#{oworkbook.inspect}' is not an Osheet::Workbook"
- end
- # if oworkbook && oworkbook.worksheets.collect{|ws| ws.name}.include?(name_value)
- # # puts "ERRORR!!!!!!!!!!!!!!"
- # # puts "names: #{names.inspect}"
- # # puts "name value: #{name_value}"
- # raise ArgumentError, "the sheet name '#{name_value}' is already in use. enter a sheet name that is not used by another sheet"
- # end
- # # puts "names: #{names.inspect}"
- # # puts "name value: #{name_value}"
- # # name_value
+ def to_data(xmlss_output_opts={})
+ self.xworkbook(xmlss_output_opts).to_s
+ end
- @ostyles = oworkbook.styles
- @workbook = ::Xmlss::Workbook.new({
- :worksheets => worksheets(oworkbook.worksheets)
- })
+ def to_file(file_path, xmlss_output_opts={})
+ self.xworkbook(xmlss_output_opts).to_file(file_path)
end
- def to_data(*options)
- @workbook.styles = @styles
- @workbook.to_xml(*options)
+
+
+
+ def oworkbook=(value)
+ unless value.kind_of?(::Osheet::Workbook)
+ raise ArgumentError, "'#{value.inspect}' is not an Osheet::Workbook"
+ end
+ @oworkbook = value
end
- def to_file(path, *options)
- FileUtils.mkdir_p(File.dirname(path))
- File.open(path, 'w') {|f| f.write self.to_data(*options)}
- File.exists?(path) ? path : false
+ def xworkbook(xmlss_output_opts={})
+ @used_xstyles = []
+ ::Xmlss::Workbook.new(:output => xmlss_output_opts).tap do |xwkbk|
+ @oworkbook.worksheets.each { |sheet| worksheet(xwkbk, sheet) }
+ end
end
end
-end
\ No newline at end of file
+end