Sha256: 6e81608c1dd5cda9a74c42e01cc355155010579f14b8b0a04d80c229212a34b1

Contents?: true

Size: 1.01 KB

Versions: 1

Compression:

Stored size: 1.01 KB

Contents

require 'osheet/style_set'
require 'osheet/template_set'
require 'osheet/worksheet'
require 'osheet/xmlss_writer'

module Osheet
  class Workbook
    include Associations

    hm :worksheets
    attr_reader :styles, :templates

    def initialize(&block)
      @title = nil
      @styles = StyleSet.new
      @templates = TemplateSet.new
      instance_eval(&block) if block_given?
    end

    def title(value=nil)
      !value.nil? ? @title = value : @title
    end
    def style(*selectors, &block); @styles << Style.new(*selectors, &block); end
    def template(element, name, &block); @templates << Template.new(element, name, &block); end

    def attributes
      { :title => @title }
    end

    def use(mixin)
      (mixin.styles || []).each{ |s| @styles << s }
      (mixin.templates || []).each{ |t| @templates << t }
    end

    def writer
      XmlssWriter::Base.new(:workbook => self)
    end

    [:to_data, :to_file].each do |meth|
      define_method(meth) {|*args| writer.send(meth, *args) }
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
osheet-0.4.0 lib/osheet/workbook.rb