osheet 0.10.0 → 1.0.0.rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. data/Gemfile +0 -1
  2. data/Gemfile.lock +9 -6
  3. data/Rakefile +35 -19
  4. data/bench/bench_runner.rb +91 -0
  5. data/bench/profiler_runner.rb +1 -0
  6. data/examples/basic.rb +1 -1
  7. data/examples/basic.xls +2 -1
  8. data/examples/basic_with_templates.rb +2 -2
  9. data/examples/basic_with_templates.xls +3 -3
  10. data/examples/formats.rb +2 -2
  11. data/examples/formats.xls +46 -46
  12. data/examples/formula.rb +2 -2
  13. data/examples/styles.rb +2 -2
  14. data/examples/styles.xls +5 -5
  15. data/examples/trivial.rb +2 -2
  16. data/lib/osheet/cell.rb +48 -46
  17. data/lib/osheet/column.rb +23 -29
  18. data/lib/osheet/format.rb +3 -3
  19. data/lib/osheet/meta_element.rb +2 -1
  20. data/lib/osheet/mixin.rb +21 -9
  21. data/lib/osheet/partial.rb +5 -9
  22. data/lib/osheet/row.rb +28 -32
  23. data/lib/osheet/style.rb +11 -25
  24. data/lib/osheet/styled_element.rb +9 -1
  25. data/lib/osheet/template.rb +3 -8
  26. data/lib/osheet/version.rb +1 -1
  27. data/lib/osheet/workbook.rb +135 -43
  28. data/lib/osheet/workbook_api.rb +208 -0
  29. data/lib/osheet/workbook_element.rb +225 -8
  30. data/lib/osheet/worksheet.rb +22 -28
  31. data/lib/osheet/xmlss_writer/style_cache.rb +64 -0
  32. data/lib/osheet/xmlss_writer/style_settings.rb +148 -0
  33. data/lib/osheet/xmlss_writer.rb +143 -1
  34. data/lib/osheet.rb +3 -29
  35. data/osheet.gemspec +4 -1
  36. data/test/cell_test.rb +33 -98
  37. data/test/column_test.rb +20 -88
  38. data/test/{mixins.rb → fixtures/mixins.rb} +6 -4
  39. data/test/fixtures/test_writer.rb +68 -0
  40. data/test/format_test.rb +2 -2
  41. data/test/helper.rb +34 -68
  42. data/test/mixin_test.rb +37 -43
  43. data/test/partial_test.rb +3 -26
  44. data/test/row_test.rb +32 -85
  45. data/test/style_test.rb +9 -26
  46. data/test/template_test.rb +5 -6
  47. data/test/workbook_element_test.rb +231 -0
  48. data/test/workbook_test.rb +225 -116
  49. data/test/worksheet_test.rb +51 -98
  50. data/test/xmlss_writer/api_test.rb +139 -0
  51. data/test/xmlss_writer/style_cache_test.rb +65 -0
  52. data/test/xmlss_writer/style_settings_test.rb +263 -0
  53. data/test/xmlss_writer/styles_test.rb +121 -153
  54. data/test/xmlss_writer_test.rb +91 -0
  55. metadata +75 -50
  56. data/lib/osheet/associations.rb +0 -58
  57. data/lib/osheet/instance.rb +0 -30
  58. data/lib/osheet/markup_element.rb +0 -22
  59. data/lib/osheet/partial_set.rb +0 -57
  60. data/lib/osheet/railtie.rb +0 -9
  61. data/lib/osheet/style_set.rb +0 -39
  62. data/lib/osheet/template_set.rb +0 -51
  63. data/lib/osheet/view_handler/rails.rb +0 -44
  64. data/lib/osheet/view_handler/tilt.rb +0 -42
  65. data/lib/osheet/view_handler.rb +0 -2
  66. data/lib/osheet/worksheet_element.rb +0 -17
  67. data/lib/osheet/xmlss_writer/base.rb +0 -49
  68. data/lib/osheet/xmlss_writer/elements.rb +0 -56
  69. data/lib/osheet/xmlss_writer/styles.rb +0 -216
  70. data/test/osheet_test.rb +0 -13
  71. data/test/partial_set_test.rb +0 -64
  72. data/test/style_set_test.rb +0 -47
  73. data/test/template_set_test.rb +0 -74
  74. data/test/xmlss_writer/base_test.rb +0 -103
  75. data/test/xmlss_writer/elements_test.rb +0 -172
metadata CHANGED
@@ -1,13 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: osheet
3
3
  version: !ruby/object:Gem::Version
4
- hash: 55
5
- prerelease:
4
+ hash: 15424055
5
+ prerelease: 6
6
6
  segments:
7
+ - 1
7
8
  - 0
8
- - 10
9
9
  - 0
10
- version: 0.10.0
10
+ - rc
11
+ - 1
12
+ version: 1.0.0.rc.1
11
13
  platform: ruby
12
14
  authors:
13
15
  - Kelly Redding
@@ -15,11 +17,10 @@ autorequire:
15
17
  bindir: bin
16
18
  cert_chain: []
17
19
 
18
- date: 2012-01-10 00:00:00 Z
20
+ date: 2012-03-15 00:00:00 Z
19
21
  dependencies:
20
22
  - !ruby/object:Gem::Dependency
21
23
  type: :development
22
- prerelease: false
23
24
  requirement: &id001 !ruby/object:Gem::Requirement
24
25
  none: false
25
26
  requirements:
@@ -30,11 +31,11 @@ dependencies:
30
31
  - 1
31
32
  - 0
32
33
  version: "1.0"
33
- version_requirements: *id001
34
34
  name: bundler
35
+ version_requirements: *id001
36
+ prerelease: false
35
37
  - !ruby/object:Gem::Dependency
36
38
  type: :development
37
- prerelease: false
38
39
  requirement: &id002 !ruby/object:Gem::Requirement
39
40
  none: false
40
41
  requirements:
@@ -45,12 +46,41 @@ dependencies:
45
46
  - 0
46
47
  - 3
47
48
  version: "0.3"
48
- version_requirements: *id002
49
49
  name: assert
50
- - !ruby/object:Gem::Dependency
51
- type: :runtime
50
+ version_requirements: *id002
52
51
  prerelease: false
52
+ - !ruby/object:Gem::Dependency
53
+ type: :development
53
54
  requirement: &id003 !ruby/object:Gem::Requirement
55
+ none: false
56
+ requirements:
57
+ - - ~>
58
+ - !ruby/object:Gem::Version
59
+ hash: 11
60
+ segments:
61
+ - 0
62
+ - 0
63
+ version: "0.0"
64
+ name: whysoslow
65
+ version_requirements: *id003
66
+ prerelease: false
67
+ - !ruby/object:Gem::Dependency
68
+ type: :development
69
+ requirement: &id004 !ruby/object:Gem::Requirement
70
+ none: false
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ hash: 3
75
+ segments:
76
+ - 0
77
+ version: "0"
78
+ name: ruby-prof
79
+ version_requirements: *id004
80
+ prerelease: false
81
+ - !ruby/object:Gem::Dependency
82
+ type: :runtime
83
+ requirement: &id005 !ruby/object:Gem::Requirement
54
84
  none: false
55
85
  requirements:
56
86
  - - ~>
@@ -60,23 +90,26 @@ dependencies:
60
90
  - 1
61
91
  - 3
62
92
  version: "1.3"
63
- version_requirements: *id003
64
93
  name: enumeration
94
+ version_requirements: *id005
95
+ prerelease: false
65
96
  - !ruby/object:Gem::Dependency
66
97
  type: :runtime
67
- prerelease: false
68
- requirement: &id004 !ruby/object:Gem::Requirement
98
+ requirement: &id006 !ruby/object:Gem::Requirement
69
99
  none: false
70
100
  requirements:
71
101
  - - ~>
72
102
  - !ruby/object:Gem::Version
73
- hash: 3
103
+ hash: 7712010
74
104
  segments:
105
+ - 1
75
106
  - 0
76
- - 4
77
- version: "0.4"
78
- version_requirements: *id004
107
+ - 0
108
+ - rc
109
+ version: 1.0.0.rc
79
110
  name: xmlss
111
+ version_requirements: *id006
112
+ prerelease: false
80
113
  description: A DSL for specifying and generating spreadsheets using Ruby
81
114
  email:
82
115
  - kelly@kellyredding.com
@@ -92,6 +125,7 @@ files:
92
125
  - Gemfile.lock
93
126
  - README.rdoc
94
127
  - Rakefile
128
+ - bench/bench_runner.rb
95
129
  - bench/profiler.rb
96
130
  - bench/profiler_1000.xls
97
131
  - bench/profiler_runner.rb
@@ -108,7 +142,6 @@ files:
108
142
  - examples/trivial.rb
109
143
  - examples/trivial.xls
110
144
  - lib/osheet.rb
111
- - lib/osheet/associations.rb
112
145
  - lib/osheet/cell.rb
113
146
  - lib/osheet/column.rb
114
147
  - lib/osheet/format.rb
@@ -124,34 +157,26 @@ files:
124
157
  - lib/osheet/format/scientific.rb
125
158
  - lib/osheet/format/special.rb
126
159
  - lib/osheet/format/text.rb
127
- - lib/osheet/instance.rb
128
- - lib/osheet/markup_element.rb
129
160
  - lib/osheet/meta_element.rb
130
161
  - lib/osheet/mixin.rb
131
162
  - lib/osheet/partial.rb
132
- - lib/osheet/partial_set.rb
133
- - lib/osheet/railtie.rb
134
163
  - lib/osheet/row.rb
135
164
  - lib/osheet/style.rb
136
- - lib/osheet/style_set.rb
137
165
  - lib/osheet/styled_element.rb
138
166
  - lib/osheet/template.rb
139
- - lib/osheet/template_set.rb
140
167
  - lib/osheet/version.rb
141
- - lib/osheet/view_handler.rb
142
- - lib/osheet/view_handler/rails.rb
143
- - lib/osheet/view_handler/tilt.rb
144
168
  - lib/osheet/workbook.rb
169
+ - lib/osheet/workbook_api.rb
145
170
  - lib/osheet/workbook_element.rb
146
171
  - lib/osheet/worksheet.rb
147
- - lib/osheet/worksheet_element.rb
148
172
  - lib/osheet/xmlss_writer.rb
149
- - lib/osheet/xmlss_writer/base.rb
150
- - lib/osheet/xmlss_writer/elements.rb
151
- - lib/osheet/xmlss_writer/styles.rb
173
+ - lib/osheet/xmlss_writer/style_cache.rb
174
+ - lib/osheet/xmlss_writer/style_settings.rb
152
175
  - osheet.gemspec
153
176
  - test/cell_test.rb
154
177
  - test/column_test.rb
178
+ - test/fixtures/mixins.rb
179
+ - test/fixtures/test_writer.rb
155
180
  - test/format/accounting_test.rb
156
181
  - test/format/currency_test.rb
157
182
  - test/format/custom_test.rb
@@ -167,20 +192,18 @@ files:
167
192
  - test/helper.rb
168
193
  - test/irb.rb
169
194
  - test/mixin_test.rb
170
- - test/mixins.rb
171
- - test/osheet_test.rb
172
- - test/partial_set_test.rb
173
195
  - test/partial_test.rb
174
196
  - test/row_test.rb
175
- - test/style_set_test.rb
176
197
  - test/style_test.rb
177
- - test/template_set_test.rb
178
198
  - test/template_test.rb
199
+ - test/workbook_element_test.rb
179
200
  - test/workbook_test.rb
180
201
  - test/worksheet_test.rb
181
- - test/xmlss_writer/base_test.rb
182
- - test/xmlss_writer/elements_test.rb
202
+ - test/xmlss_writer/api_test.rb
203
+ - test/xmlss_writer/style_cache_test.rb
204
+ - test/xmlss_writer/style_settings_test.rb
183
205
  - test/xmlss_writer/styles_test.rb
206
+ - test/xmlss_writer_test.rb
184
207
  homepage: http://github.com/kellyredding/osheet
185
208
  licenses: []
186
209
 
@@ -201,12 +224,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
201
224
  required_rubygems_version: !ruby/object:Gem::Requirement
202
225
  none: false
203
226
  requirements:
204
- - - ">="
227
+ - - ">"
205
228
  - !ruby/object:Gem::Version
206
- hash: 3
229
+ hash: 25
207
230
  segments:
208
- - 0
209
- version: "0"
231
+ - 1
232
+ - 3
233
+ - 1
234
+ version: 1.3.1
210
235
  requirements: []
211
236
 
212
237
  rubyforge_project:
@@ -217,6 +242,8 @@ summary: A DSL for specifying and generating spreadsheets using Ruby
217
242
  test_files:
218
243
  - test/cell_test.rb
219
244
  - test/column_test.rb
245
+ - test/fixtures/mixins.rb
246
+ - test/fixtures/test_writer.rb
220
247
  - test/format/accounting_test.rb
221
248
  - test/format/currency_test.rb
222
249
  - test/format/custom_test.rb
@@ -232,17 +259,15 @@ test_files:
232
259
  - test/helper.rb
233
260
  - test/irb.rb
234
261
  - test/mixin_test.rb
235
- - test/mixins.rb
236
- - test/osheet_test.rb
237
- - test/partial_set_test.rb
238
262
  - test/partial_test.rb
239
263
  - test/row_test.rb
240
- - test/style_set_test.rb
241
264
  - test/style_test.rb
242
- - test/template_set_test.rb
243
265
  - test/template_test.rb
266
+ - test/workbook_element_test.rb
244
267
  - test/workbook_test.rb
245
268
  - test/worksheet_test.rb
246
- - test/xmlss_writer/base_test.rb
247
- - test/xmlss_writer/elements_test.rb
269
+ - test/xmlss_writer/api_test.rb
270
+ - test/xmlss_writer/style_cache_test.rb
271
+ - test/xmlss_writer/style_settings_test.rb
248
272
  - test/xmlss_writer/styles_test.rb
273
+ - test/xmlss_writer_test.rb
@@ -1,58 +0,0 @@
1
- module Osheet::Associations
2
-
3
- def self.included(receiver)
4
- receiver.send(:extend, ClassMethods)
5
- end
6
-
7
- module ClassMethods
8
-
9
- # A has many esque association helper
10
- # - will provide a collection reader
11
- # - will define a 'singular' item method for adding to the collection
12
- # - will support adding to the collection both by black and template
13
- def hm(collection)
14
- unless collection.to_s =~ /s$/
15
- raise ArgumentError, "association item names must end in 's'"
16
- end
17
- plural = collection.to_s
18
- singular = plural.to_s.sub(/s$/, '')
19
- klass = Osheet.const_get(singular.capitalize)
20
-
21
- # define collection reader
22
- self.send(:define_method, plural, Proc.new do
23
- set_ivar(plural, []) if get_ivar(plural).nil?
24
- get_ivar(plural)
25
- end)
26
-
27
- # define collection item writer
28
- self.send(:define_method, singular) do |*args, &block|
29
- set_ivar(plural, []) if get_ivar(plural).nil?
30
- push_ivar(plural, if self.respond_to?(:workbook)
31
- # on: worksheet, column, row
32
- # creating: column, row, cell
33
- worksheet = self.respond_to?(:worksheet) ? self.worksheet : self
34
- if self.workbook && (template = self.workbook.templates.get(singular, args.first))
35
- # add by template
36
- klass.new(self.workbook, worksheet, *args[1..-1], &template)
37
- else
38
- # add by block
39
- klass.new(self.workbook, worksheet, &block)
40
- end
41
- else
42
- # on: workbook
43
- # creating: worksheet
44
- if (template = self.templates.get(singular, args.first))
45
- # add by template
46
- klass.new(self, *args[1..-1], &template)
47
- else
48
- # add by block
49
- klass.new(self, &block)
50
- end
51
- end)
52
- end
53
-
54
- end
55
-
56
- end
57
-
58
- end
@@ -1,30 +0,0 @@
1
- module Osheet::Instance
2
-
3
- private
4
-
5
- OSHEET_IVAR_NS = "_osheet_"
6
-
7
- def get_ivar(name)
8
- instance_variable_get(ivar_name(name))
9
- end
10
-
11
- def set_ivar(name, value)
12
- instance_variable_set(ivar_name(name), value)
13
- end
14
-
15
- def push_ivar(name, value)
16
- get_ivar(name) << value
17
- end
18
-
19
- def ivar_name(name)
20
- "@#{OSHEET_IVAR_NS}#{name}"
21
- end
22
-
23
- def set_binding_ivars(binding)
24
- binding.eval('instance_variables').
25
- reject{|ivar| ivar =~ /^@#{OSHEET_IVAR_NS}/}.
26
- each do |ivar|
27
- instance_variable_set(ivar, binding.eval(ivar.to_s))
28
- end
29
- end
30
- end
@@ -1,22 +0,0 @@
1
- module Osheet
2
- module MarkupElement
3
-
4
- # markup elements can add partial markup to themselves
5
- def add(partial_name, *args)
6
- if self.kind_of?(Workbook)
7
- # on: workbook
8
- if (partial = self.partials.get(partial_name))
9
- # add partial
10
- instance_exec(*args, &partial)
11
- end
12
- else
13
- # on: worksheet, column, row
14
- if self.workbook && (partial = self.workbook.partials.get(partial_name))
15
- # add partial
16
- instance_exec(*args, &partial)
17
- end
18
- end
19
- end
20
-
21
- end
22
- end
@@ -1,57 +0,0 @@
1
- require 'osheet/partial'
2
-
3
- module Osheet
4
- class PartialSet < ::Hash
5
-
6
- # this class is a Hash that behaves kinda like a set. I want to
7
- # push partials into the set using the '<<' operator, only allow
8
- # Osheet::Partial objs to be pushed, and then be able to reference
9
- # a particular partial using a key
10
-
11
- def initialize
12
- super
13
- end
14
-
15
- def <<(partial)
16
- if (key = verify(partial))
17
- push(key, partial)
18
- end
19
- end
20
-
21
- # return the named partial
22
- def get(name)
23
- lookup(key(name.to_s))
24
- end
25
-
26
- private
27
-
28
- def lookup(key)
29
- self[key]
30
- end
31
-
32
- # push the partial onto the key
33
- def push(key, partial)
34
- self[key] = partial
35
- end
36
-
37
- # verify the partial, init and return the key
38
- # otherwise ArgumentError it up
39
- def verify(partial)
40
- unless partial.kind_of?(Partial)
41
- raise ArgumentError, 'you can only push Osheet::Partial objs to the partial set'
42
- end
43
- pkey = partial_key(partial)
44
- self[pkey] ||= nil
45
- pkey
46
- end
47
-
48
- def partial_key(partial)
49
- key(partial.name)
50
- end
51
-
52
- def key(name)
53
- name.to_s
54
- end
55
-
56
- end
57
- end
@@ -1,9 +0,0 @@
1
- module Osheet
2
- class Railtie < Rails::Railtie
3
-
4
- initializer "osheet.register" do |app|
5
- ::Osheet.register
6
- end
7
-
8
- end
9
- end
@@ -1,39 +0,0 @@
1
- require 'osheet/style'
2
-
3
- module Osheet
4
- class StyleSet < ::Array
5
-
6
- # this class is an Array has some helper methods. I want to
7
- # push styles into the set using the '<<' operator, only allow
8
- # Osheet::Style objs to be pushed, and then be able to reference
9
- # a particular set of styles using a style class.
10
-
11
- def initialize
12
- super
13
- end
14
-
15
- def <<(value)
16
- super if verify(value)
17
- end
18
-
19
- # return the style set for the style class
20
- def for(style_class)
21
- self.select{|s| s.match?(style_class)}
22
- end
23
-
24
- private
25
-
26
- def styles(class_str)
27
- end
28
-
29
- # verify the style, otherwise ArgumentError it up
30
- def verify(style)
31
- if style.kind_of?(Style)
32
- true
33
- else
34
- raise ArgumentError, 'you can only push Osheet::Style objs to the style set'
35
- end
36
- end
37
-
38
- end
39
- end
@@ -1,51 +0,0 @@
1
- require 'osheet/partial_set'
2
- require 'osheet/template'
3
-
4
- module Osheet
5
- class TemplateSet < PartialSet
6
-
7
- # this class is a PartialSet that keys off of the template element
8
- # and name. Only Osheet::Template objs can be pushed, and you reference
9
- # a particular template using a key of
10
-
11
- def initialize
12
- super
13
- end
14
-
15
- # return the template set for the named element
16
- def get(element, name)
17
- lookup(key(element.to_s, name.to_s))
18
- end
19
-
20
- private
21
-
22
- def lookup(key)
23
- self[key.first][key.last] if self[key.first]
24
- end
25
-
26
- # push the template onto the key
27
- def push(key, template)
28
- self[key.first][key.last] = template
29
- end
30
-
31
- # verify the template, init the key set, and return the key string
32
- # otherwise ArgumentError it up
33
- def verify(template)
34
- unless template.kind_of?(Template)
35
- raise ArgumentError, 'you can only push Osheet::Template objs to the template set'
36
- end
37
- key = template_key(template)
38
- self[key.first] ||= {}
39
- self[key.first][key.last] ||= nil
40
- key
41
- end
42
-
43
- def template_key(template)
44
- key(template.element, template.name)
45
- end
46
-
47
- def key(element, name)
48
- [element.to_s, name.to_s]
49
- end
50
- end
51
- end
@@ -1,44 +0,0 @@
1
- # Rails 2.X Template
2
- if Rails.version =~ /^2/
3
- require 'action_view/base'
4
- require 'action_view/template'
5
-
6
- module ActionView
7
- module TemplateHandlers
8
- class OsheetHandler < TemplateHandler
9
- include Compilable
10
-
11
- def compile(template)
12
- # template.format => 'xls' (or xlsx or whatever they specify)
13
- %{::Osheet::Workbook.new {#{template.source}\n }.to_data}
14
- end
15
-
16
- end
17
- end
18
- end
19
-
20
- ::ActionView::Template.register_template_handler :osheet, ActionView::TemplateHandlers::OsheetHandler
21
- end
22
-
23
- # Rails 3.X Template
24
- if Rails.version =~ /^3/
25
- require 'action_view/base'
26
- require 'action_view/template'
27
-
28
- module ActionView
29
- module Template::Handlers
30
- class OsheetHandler < Template::Handler
31
- include Compilable
32
-
33
- self.default_format = Osheet::MIME_TYPE
34
- def compile(template)
35
- # template.format => 'xls' (or xlsx or whatever they specify)
36
- %{::Osheet::Workbook.new {\n#{template.source}\n }.to_data}
37
- end
38
-
39
- end
40
- end
41
- end
42
-
43
- ::ActionView::Template.register_template_handler :osheet, ActionView::Template::Handlers::OsheetHandler
44
- end
@@ -1,42 +0,0 @@
1
- # TILT/Sinatra template engine
2
- module Osheet
3
- class TiltHandler < Tilt::Template
4
-
5
- def self.engine_initialized?
6
- defined? ::Osheet::Workbook
7
- end
8
-
9
- def initialize_engine
10
- require_template_library 'osheet'
11
- end
12
-
13
- def prepare; end
14
-
15
- def precompiled_preamble(locals)
16
- "::Osheet::Workbook.new {\n#{super}"
17
- end
18
-
19
- def precompiled_template(locals)
20
- data.to_str
21
- end
22
- def precompiled_postamble(locals)
23
- "}.to_data"
24
- end
25
-
26
- end
27
- end
28
-
29
- Tilt.register 'osheet', Osheet::TiltHandler
30
-
31
- if defined?(::Sinatra::Base)
32
- class ::Sinatra::Base
33
-
34
- # use this helper method to render Osheet views in Sinatra
35
- # => view files should be named: "#{template}.osheet"
36
- def osheet(template, options={}, locals={})
37
- options.merge! :layout => false, :default_content_type => ::Osheet::MIME_TYPE
38
- render :osheet, template, options, locals
39
- end
40
-
41
- end
42
- end
@@ -1,2 +0,0 @@
1
- require 'osheet/view_handler/tilt' if defined?(Tilt)
2
- require 'osheet/view_handler/rails' if defined?(Rails)
@@ -1,17 +0,0 @@
1
- module Osheet::WorksheetElement
2
-
3
- def worksheet
4
- get_ivar(:worksheet)
5
- end
6
-
7
- [:columns, :rows].each do |meth|
8
- define_method(meth) do
9
- if worksheet && worksheet.respond_to?(meth)
10
- worksheet.send(meth)
11
- else
12
- nil
13
- end
14
- end
15
- end
16
-
17
- end
@@ -1,49 +0,0 @@
1
- require 'fileutils'
2
- module Osheet::XmlssWriter; end
3
- require 'xmlss'
4
- require 'osheet/xmlss_writer/elements'
5
- require 'osheet/xmlss_writer/styles'
6
-
7
- module Osheet::XmlssWriter
8
- class Base
9
- include Elements
10
- include Styles
11
-
12
- attr_reader :used_xstyles
13
-
14
- def initialize(opts={})
15
- @used_xstyles = []
16
- self.oworkbook = if opts.has_key?(:workbook)
17
- opts[:workbook]
18
- else
19
- ::Osheet::Workbook.new
20
- end
21
- end
22
-
23
- def to_data(xmlss_output_opts={})
24
- self.xworkbook(xmlss_output_opts).to_s
25
- end
26
-
27
- def to_file(file_path, xmlss_output_opts={})
28
- self.xworkbook(xmlss_output_opts).to_file(file_path)
29
- end
30
-
31
-
32
-
33
-
34
- def oworkbook=(value)
35
- unless value.kind_of?(::Osheet::Workbook)
36
- raise ArgumentError, "'#{value.inspect}' is not an Osheet::Workbook"
37
- end
38
- @oworkbook = value
39
- end
40
-
41
- def xworkbook(xmlss_output_opts={})
42
- @used_xstyles = []
43
- ::Xmlss::Workbook.new(:output => xmlss_output_opts).tap do |xwkbk|
44
- @oworkbook.worksheets.each { |sheet| worksheet(xwkbk, sheet) }
45
- end
46
- end
47
-
48
- end
49
- end