osheet-xmlss 1.0.0.rc.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,92 @@
1
+ require "assert"
2
+
3
+ require 'osheet/xmlss_writer'
4
+
5
+ module Osheet::Xmlss
6
+
7
+ class WriterTests < Assert::Context
8
+ desc "the xmlss writer"
9
+ before do
10
+ @writer = Osheet::XmlssWriter.new
11
+ @workbook = Osheet::Workbook.new(@writer)
12
+ end
13
+ subject { @writer }
14
+
15
+ should have_reader :style_cache, :xmlss_workbook
16
+ should have_instance_methods :bind, :to_s, :to_data, :to_file
17
+
18
+ should have_instance_methods :worksheet, :column, :row, :cell
19
+ should have_instance_methods :style
20
+ should have_instance_methods :name
21
+ should have_instance_methods :width, :height
22
+ should have_instance_methods :autofit, :autofit?, :hidden, :hidden?
23
+ should have_instance_methods :data, :format, :href, :formula
24
+ should have_instance_methods :index, :rowspan, :colspan
25
+
26
+ end
27
+
28
+ class WorkbookTests < WriterTests
29
+ before do
30
+ @workbook.worksheet("testsheet1")
31
+ end
32
+
33
+ should "not allow multiple worksheets with the same name" do
34
+ assert_raises ArgumentError do
35
+ subject.worksheet(Osheet::Worksheet.new("testsheet1"))
36
+ end
37
+ assert_nothing_raised do
38
+ subject.worksheet(Osheet::Worksheet.new("testsheet2"))
39
+ subject.worksheet(Osheet::Worksheet.new) {
40
+ subject.name 'testsheet3'
41
+ }
42
+ subject.worksheet(Osheet::Worksheet.new) {
43
+ subject.name 'testsheet4'
44
+ }
45
+ end
46
+ end
47
+
48
+ end
49
+
50
+ class ToFileTests < WriterTests
51
+ desc "used with a workbook"
52
+ before do
53
+ Osheet::Workbook.new(@writer) {
54
+ title "written"
55
+ worksheet {
56
+ name "Test!"
57
+ column
58
+ row {
59
+ cell {
60
+ data 1
61
+ format :number
62
+ }
63
+ }
64
+ }
65
+ }
66
+ end
67
+
68
+ should "write workbook markup" do
69
+ assert_equal "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workbook xmlns=\"urn:schemas-microsoft-com:office:spreadsheet\" xmlns:ss=\"urn:schemas-microsoft-com:office:spreadsheet\"><Styles><Style ss:ID=\"..number_none_0_nocomma_black\"><NumberFormat ss:Format=\"0\" /></Style></Styles><Worksheet ss:Name=\"Test!\"><Table><Column /><Row><Cell ss:StyleID=\"..number_none_0_nocomma_black\"><Data ss:Type=\"Number\">1</Data></Cell></Row></Table></Worksheet></Workbook>", @writer.to_s
70
+ end
71
+
72
+ should "return string xml data" do
73
+ xml_data = subject.to_s
74
+ assert_kind_of ::String, xml_data
75
+ assert_match /^<\?xml/, xml_data
76
+ assert_equal xml_data, subject.to_data
77
+ end
78
+
79
+ should "write xml data to a file path" do
80
+ path = subject.to_file("./tmp/base_test.xls")
81
+ assert_kind_of ::String, path
82
+ assert_equal './tmp/base_test.xls', path
83
+ assert File.exists?(path)
84
+
85
+ File.open(path) do |f|
86
+ assert_equal subject.to_data, f.read
87
+ end
88
+ end
89
+
90
+ end
91
+
92
+ end
metadata ADDED
@@ -0,0 +1,157 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: osheet-xmlss
3
+ version: !ruby/object:Gem::Version
4
+ hash: 15424055
5
+ prerelease: 6
6
+ segments:
7
+ - 1
8
+ - 0
9
+ - 0
10
+ - rc
11
+ - 1
12
+ version: 1.0.0.rc.1
13
+ platform: ruby
14
+ authors:
15
+ - Kelly Redding
16
+ autorequire:
17
+ bindir: bin
18
+ cert_chain: []
19
+
20
+ date: 2012-03-20 00:00:00 Z
21
+ dependencies:
22
+ - !ruby/object:Gem::Dependency
23
+ type: :development
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 3
30
+ segments:
31
+ - 0
32
+ version: "0"
33
+ name: assert
34
+ version_requirements: *id001
35
+ prerelease: false
36
+ - !ruby/object:Gem::Dependency
37
+ type: :runtime
38
+ requirement: &id002 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ~>
42
+ - !ruby/object:Gem::Version
43
+ hash: 15424049
44
+ segments:
45
+ - 1
46
+ - 0
47
+ - 0
48
+ - rc
49
+ - 2
50
+ version: 1.0.0.rc.2
51
+ name: osheet
52
+ version_requirements: *id002
53
+ prerelease: false
54
+ - !ruby/object:Gem::Dependency
55
+ type: :runtime
56
+ requirement: &id003 !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ hash: 7712010
62
+ segments:
63
+ - 1
64
+ - 0
65
+ - 0
66
+ - rc
67
+ version: 1.0.0.rc
68
+ name: xmlss
69
+ version_requirements: *id003
70
+ prerelease: false
71
+ description: An Osheet writer (https://github.com/kellyredding/osheet) for the XMLSS format (https://github.com/kellyredding/xmlss)
72
+ email:
73
+ - kelly@kellyredding.com
74
+ executables: []
75
+
76
+ extensions: []
77
+
78
+ extra_rdoc_files: []
79
+
80
+ files:
81
+ - .gitignore
82
+ - Gemfile
83
+ - LICENSE
84
+ - README.md
85
+ - Rakefile
86
+ - bench/bench_runner.rb
87
+ - bench/profiler.rb
88
+ - bench/profiler_1000.xls
89
+ - bench/profiler_runner.rb
90
+ - examples/basic.rb
91
+ - examples/basic.xls
92
+ - examples/basic_with_templates.rb
93
+ - examples/basic_with_templates.xls
94
+ - examples/formats.rb
95
+ - examples/formats.xls
96
+ - examples/formula.rb
97
+ - examples/formula.xls
98
+ - examples/styles.rb
99
+ - examples/styles.xls
100
+ - examples/trivial.rb
101
+ - examples/trivial.xls
102
+ - lib/osheet/xmlss.rb
103
+ - lib/osheet/xmlss/style_cache.rb
104
+ - lib/osheet/xmlss/style_settings.rb
105
+ - lib/osheet/xmlss/version.rb
106
+ - lib/osheet/xmlss_writer.rb
107
+ - osheet-xmlss.gemspec
108
+ - test/helper.rb
109
+ - test/irb.rb
110
+ - test/xmlss/api_test.rb
111
+ - test/xmlss/style_cache_test.rb
112
+ - test/xmlss/style_settings_test.rb
113
+ - test/xmlss/styles_test.rb
114
+ - test/xmlss_writer_test.rb
115
+ homepage: http://github.com/kellyredding/osheet-xmlss
116
+ licenses: []
117
+
118
+ post_install_message:
119
+ rdoc_options: []
120
+
121
+ require_paths:
122
+ - lib
123
+ required_ruby_version: !ruby/object:Gem::Requirement
124
+ none: false
125
+ requirements:
126
+ - - ">="
127
+ - !ruby/object:Gem::Version
128
+ hash: 3
129
+ segments:
130
+ - 0
131
+ version: "0"
132
+ required_rubygems_version: !ruby/object:Gem::Requirement
133
+ none: false
134
+ requirements:
135
+ - - ">"
136
+ - !ruby/object:Gem::Version
137
+ hash: 25
138
+ segments:
139
+ - 1
140
+ - 3
141
+ - 1
142
+ version: 1.3.1
143
+ requirements: []
144
+
145
+ rubyforge_project:
146
+ rubygems_version: 1.8.11
147
+ signing_key:
148
+ specification_version: 3
149
+ summary: An Osheet writer (https://github.com/kellyredding/osheet) for the XMLSS format (https://github.com/kellyredding/xmlss)
150
+ test_files:
151
+ - test/helper.rb
152
+ - test/irb.rb
153
+ - test/xmlss/api_test.rb
154
+ - test/xmlss/style_cache_test.rb
155
+ - test/xmlss/style_settings_test.rb
156
+ - test/xmlss/styles_test.rb
157
+ - test/xmlss_writer_test.rb