osheet 0.1.0 → 0.2.0
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.
- data/.bundle/config +2 -0
- data/.gitignore +6 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +33 -0
- data/README.rdoc +103 -61
- data/Rakefile +5 -56
- data/examples/basic.rb +73 -0
- data/examples/formats.rb +366 -0
- data/examples/trivial.rb +21 -0
- data/lib/osheet/associations.rb +62 -0
- data/lib/osheet/cell.rb +44 -10
- data/lib/osheet/column.rb +34 -7
- data/lib/osheet/format/accounting.rb +21 -0
- data/lib/osheet/format/currency.rb +23 -0
- data/lib/osheet/format/custom.rb +13 -0
- data/lib/osheet/format/datetime.rb +13 -0
- data/lib/osheet/format/fraction.rb +33 -0
- data/lib/osheet/format/general.rb +9 -0
- data/lib/osheet/format/number.rb +13 -0
- data/lib/osheet/format/numeric.rb +113 -0
- data/lib/osheet/format/percentage.rb +25 -0
- data/lib/osheet/format/scientific.rb +25 -0
- data/lib/osheet/format/special.rb +28 -0
- data/lib/osheet/format/text.rb +11 -0
- data/lib/osheet/format.rb +30 -0
- data/lib/osheet/row.rb +32 -7
- data/lib/osheet/style.rb +65 -0
- data/lib/osheet/style_set.rb +39 -0
- data/lib/osheet/styled_element.rb +18 -0
- data/lib/osheet/template.rb +32 -0
- data/lib/osheet/template_set.rb +57 -0
- data/lib/osheet/version.rb +1 -11
- data/lib/osheet/workbook.rb +32 -16
- data/lib/osheet/workbook_element.rb +21 -0
- data/lib/osheet/worksheet.rb +18 -20
- data/lib/osheet/worksheet_element.rb +15 -0
- data/lib/osheet/xmlss_writer/base.rb +42 -0
- data/lib/osheet/xmlss_writer/elements.rb +68 -0
- data/lib/osheet/xmlss_writer/styles.rb +176 -0
- data/lib/osheet/xmlss_writer.rb +1 -0
- data/lib/osheet.rb +7 -27
- data/osheet.gemspec +26 -0
- data/test/cell_test.rb +83 -0
- data/test/column_test.rb +81 -0
- data/test/env.rb +9 -0
- data/test/format/accounting_test.rb +158 -0
- data/test/format/currency_test.rb +158 -0
- data/test/format/custom_test.rb +22 -0
- data/test/format/datetime_test.rb +22 -0
- data/test/format/fraction_test.rb +84 -0
- data/test/format/general_test.rb +21 -0
- data/test/format/number_test.rb +93 -0
- data/test/format/percentage_test.rb +116 -0
- data/test/format/scientific_test.rb +116 -0
- data/test/format/special_test.rb +51 -0
- data/test/format/text_test.rb +18 -0
- data/test/format_test.rb +35 -0
- data/test/helper.rb +101 -0
- data/test/osheet_test.rb +14 -0
- data/test/row_test.rb +78 -0
- data/test/style_set_test.rb +50 -0
- data/test/style_test.rb +92 -0
- data/test/template_set_test.rb +76 -0
- data/test/template_test.rb +63 -0
- data/test/workbook_test.rb +142 -0
- data/test/worksheet_test.rb +77 -0
- data/test/xmlss_writer/base_test.rb +92 -0
- data/test/xmlss_writer/elements_test.rb +168 -0
- data/test/xmlss_writer/styles_test.rb +253 -0
- metadata +141 -30
- data/lib/osheet/base.rb +0 -95
metadata
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: osheet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
+
hash: 23
|
4
5
|
prerelease: false
|
5
6
|
segments:
|
6
7
|
- 0
|
7
|
-
-
|
8
|
+
- 2
|
8
9
|
- 0
|
9
|
-
version: 0.
|
10
|
+
version: 0.2.0
|
10
11
|
platform: ruby
|
11
12
|
authors:
|
12
13
|
- Kelly Redding
|
@@ -14,100 +15,210 @@ autorequire:
|
|
14
15
|
bindir: bin
|
15
16
|
cert_chain: []
|
16
17
|
|
17
|
-
date:
|
18
|
+
date: 2011-04-07 00:00:00 -05:00
|
18
19
|
default_executable:
|
19
20
|
dependencies:
|
20
21
|
- !ruby/object:Gem::Dependency
|
21
|
-
name:
|
22
|
+
name: bundler
|
22
23
|
prerelease: false
|
23
24
|
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
24
26
|
requirements:
|
25
|
-
- -
|
27
|
+
- - ~>
|
26
28
|
- !ruby/object:Gem::Version
|
29
|
+
hash: 15
|
27
30
|
segments:
|
28
|
-
-
|
29
|
-
- 10
|
31
|
+
- 1
|
30
32
|
- 0
|
31
|
-
version:
|
33
|
+
version: "1.0"
|
32
34
|
type: :development
|
33
35
|
version_requirements: *id001
|
34
36
|
- !ruby/object:Gem::Dependency
|
35
|
-
name:
|
37
|
+
name: test-belt
|
36
38
|
prerelease: false
|
37
39
|
requirement: &id002 !ruby/object:Gem::Requirement
|
40
|
+
none: false
|
38
41
|
requirements:
|
39
|
-
- - "
|
42
|
+
- - "="
|
40
43
|
- !ruby/object:Gem::Version
|
44
|
+
hash: 21
|
41
45
|
segments:
|
42
46
|
- 0
|
43
|
-
-
|
44
|
-
-
|
45
|
-
version: 0.
|
47
|
+
- 2
|
48
|
+
- 1
|
49
|
+
version: 0.2.1
|
46
50
|
type: :development
|
47
51
|
version_requirements: *id002
|
48
52
|
- !ruby/object:Gem::Dependency
|
49
|
-
name:
|
53
|
+
name: enumeration
|
50
54
|
prerelease: false
|
51
55
|
requirement: &id003 !ruby/object:Gem::Requirement
|
56
|
+
none: false
|
52
57
|
requirements:
|
53
|
-
- -
|
58
|
+
- - ~>
|
54
59
|
- !ruby/object:Gem::Version
|
60
|
+
hash: 19
|
55
61
|
segments:
|
62
|
+
- 1
|
63
|
+
- 1
|
56
64
|
- 0
|
57
|
-
|
58
|
-
- 4
|
59
|
-
version: 0.6.4
|
65
|
+
version: 1.1.0
|
60
66
|
type: :runtime
|
61
67
|
version_requirements: *id003
|
62
|
-
|
63
|
-
|
68
|
+
- !ruby/object:Gem::Dependency
|
69
|
+
name: xmlss
|
70
|
+
prerelease: false
|
71
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
72
|
+
none: false
|
73
|
+
requirements:
|
74
|
+
- - ~>
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
hash: 27
|
77
|
+
segments:
|
78
|
+
- 0
|
79
|
+
- 0
|
80
|
+
- 2
|
81
|
+
version: 0.0.2
|
82
|
+
type: :runtime
|
83
|
+
version_requirements: *id004
|
84
|
+
description: A DSL for specifying and generating rich spreasheetML. Specify your spreadsheet using the richness of Ruby and easily produce the corresponding spreadsheetML to render in MS Excel.
|
85
|
+
email:
|
86
|
+
- kelly@kelredd.com
|
64
87
|
executables: []
|
65
88
|
|
66
89
|
extensions: []
|
67
90
|
|
68
|
-
extra_rdoc_files:
|
69
|
-
|
91
|
+
extra_rdoc_files: []
|
92
|
+
|
70
93
|
files:
|
94
|
+
- .bundle/config
|
95
|
+
- .gitignore
|
96
|
+
- Gemfile
|
97
|
+
- Gemfile.lock
|
71
98
|
- README.rdoc
|
72
99
|
- Rakefile
|
73
|
-
-
|
100
|
+
- examples/basic.rb
|
101
|
+
- examples/formats.rb
|
102
|
+
- examples/trivial.rb
|
103
|
+
- lib/osheet.rb
|
104
|
+
- lib/osheet/associations.rb
|
74
105
|
- lib/osheet/cell.rb
|
75
106
|
- lib/osheet/column.rb
|
107
|
+
- lib/osheet/format.rb
|
108
|
+
- lib/osheet/format/accounting.rb
|
109
|
+
- lib/osheet/format/currency.rb
|
110
|
+
- lib/osheet/format/custom.rb
|
111
|
+
- lib/osheet/format/datetime.rb
|
112
|
+
- lib/osheet/format/fraction.rb
|
113
|
+
- lib/osheet/format/general.rb
|
114
|
+
- lib/osheet/format/number.rb
|
115
|
+
- lib/osheet/format/numeric.rb
|
116
|
+
- lib/osheet/format/percentage.rb
|
117
|
+
- lib/osheet/format/scientific.rb
|
118
|
+
- lib/osheet/format/special.rb
|
119
|
+
- lib/osheet/format/text.rb
|
76
120
|
- lib/osheet/row.rb
|
121
|
+
- lib/osheet/style.rb
|
122
|
+
- lib/osheet/style_set.rb
|
123
|
+
- lib/osheet/styled_element.rb
|
124
|
+
- lib/osheet/template.rb
|
125
|
+
- lib/osheet/template_set.rb
|
77
126
|
- lib/osheet/version.rb
|
78
127
|
- lib/osheet/workbook.rb
|
128
|
+
- lib/osheet/workbook_element.rb
|
79
129
|
- lib/osheet/worksheet.rb
|
80
|
-
- lib/osheet.rb
|
130
|
+
- lib/osheet/worksheet_element.rb
|
131
|
+
- lib/osheet/xmlss_writer.rb
|
132
|
+
- lib/osheet/xmlss_writer/base.rb
|
133
|
+
- lib/osheet/xmlss_writer/elements.rb
|
134
|
+
- lib/osheet/xmlss_writer/styles.rb
|
135
|
+
- osheet.gemspec
|
136
|
+
- test/cell_test.rb
|
137
|
+
- test/column_test.rb
|
138
|
+
- test/env.rb
|
139
|
+
- test/format/accounting_test.rb
|
140
|
+
- test/format/currency_test.rb
|
141
|
+
- test/format/custom_test.rb
|
142
|
+
- test/format/datetime_test.rb
|
143
|
+
- test/format/fraction_test.rb
|
144
|
+
- test/format/general_test.rb
|
145
|
+
- test/format/number_test.rb
|
146
|
+
- test/format/percentage_test.rb
|
147
|
+
- test/format/scientific_test.rb
|
148
|
+
- test/format/special_test.rb
|
149
|
+
- test/format/text_test.rb
|
150
|
+
- test/format_test.rb
|
151
|
+
- test/helper.rb
|
152
|
+
- test/osheet_test.rb
|
153
|
+
- test/row_test.rb
|
154
|
+
- test/style_set_test.rb
|
155
|
+
- test/style_test.rb
|
156
|
+
- test/template_set_test.rb
|
157
|
+
- test/template_test.rb
|
158
|
+
- test/workbook_test.rb
|
159
|
+
- test/worksheet_test.rb
|
160
|
+
- test/xmlss_writer/base_test.rb
|
161
|
+
- test/xmlss_writer/elements_test.rb
|
162
|
+
- test/xmlss_writer/styles_test.rb
|
81
163
|
has_rdoc: true
|
82
164
|
homepage: http://github.com/kelredd/osheet
|
83
165
|
licenses: []
|
84
166
|
|
85
167
|
post_install_message:
|
86
|
-
rdoc_options:
|
87
|
-
|
88
|
-
- README.rdoc
|
168
|
+
rdoc_options: []
|
169
|
+
|
89
170
|
require_paths:
|
90
171
|
- lib
|
91
172
|
required_ruby_version: !ruby/object:Gem::Requirement
|
173
|
+
none: false
|
92
174
|
requirements:
|
93
175
|
- - ">="
|
94
176
|
- !ruby/object:Gem::Version
|
177
|
+
hash: 3
|
95
178
|
segments:
|
96
179
|
- 0
|
97
180
|
version: "0"
|
98
181
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
182
|
+
none: false
|
99
183
|
requirements:
|
100
184
|
- - ">="
|
101
185
|
- !ruby/object:Gem::Version
|
186
|
+
hash: 3
|
102
187
|
segments:
|
103
188
|
- 0
|
104
189
|
version: "0"
|
105
190
|
requirements: []
|
106
191
|
|
107
192
|
rubyforge_project:
|
108
|
-
rubygems_version: 1.3.
|
193
|
+
rubygems_version: 1.3.7
|
109
194
|
signing_key:
|
110
195
|
specification_version: 3
|
111
196
|
summary: A DSL for generating spreadsheets that doesn't totally suck - pronounced 'Oh sheeeeeet!'
|
112
|
-
test_files:
|
113
|
-
|
197
|
+
test_files:
|
198
|
+
- test/cell_test.rb
|
199
|
+
- test/column_test.rb
|
200
|
+
- test/env.rb
|
201
|
+
- test/format/accounting_test.rb
|
202
|
+
- test/format/currency_test.rb
|
203
|
+
- test/format/custom_test.rb
|
204
|
+
- test/format/datetime_test.rb
|
205
|
+
- test/format/fraction_test.rb
|
206
|
+
- test/format/general_test.rb
|
207
|
+
- test/format/number_test.rb
|
208
|
+
- test/format/percentage_test.rb
|
209
|
+
- test/format/scientific_test.rb
|
210
|
+
- test/format/special_test.rb
|
211
|
+
- test/format/text_test.rb
|
212
|
+
- test/format_test.rb
|
213
|
+
- test/helper.rb
|
214
|
+
- test/osheet_test.rb
|
215
|
+
- test/row_test.rb
|
216
|
+
- test/style_set_test.rb
|
217
|
+
- test/style_test.rb
|
218
|
+
- test/template_set_test.rb
|
219
|
+
- test/template_test.rb
|
220
|
+
- test/workbook_test.rb
|
221
|
+
- test/worksheet_test.rb
|
222
|
+
- test/xmlss_writer/base_test.rb
|
223
|
+
- test/xmlss_writer/elements_test.rb
|
224
|
+
- test/xmlss_writer/styles_test.rb
|
data/lib/osheet/base.rb
DELETED
@@ -1,95 +0,0 @@
|
|
1
|
-
module Osheet
|
2
|
-
class Base
|
3
|
-
|
4
|
-
ATTRS = [:class, :style]
|
5
|
-
ATTRS.each {|a| attr_accessor a}
|
6
|
-
|
7
|
-
class << self
|
8
|
-
|
9
|
-
def configure(*args, &block)
|
10
|
-
it = new(*args)
|
11
|
-
block.call(it) if block
|
12
|
-
it
|
13
|
-
end
|
14
|
-
|
15
|
-
def has(things)
|
16
|
-
things.each do |collection, item|
|
17
|
-
clean_collection = cleanup_name(collection)
|
18
|
-
clean_item = cleanup_name(item)
|
19
|
-
|
20
|
-
define_method(clean_collection) do
|
21
|
-
fetch_value(clean_collection, [])
|
22
|
-
end
|
23
|
-
|
24
|
-
define_method(clean_item.downcase) do |*arge, &block|
|
25
|
-
fetch_collection(clean_collection, []) << \
|
26
|
-
osheet_constantize("Osheet::#{clean_item}").configure(*args, &block)
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
def needs(thing)
|
32
|
-
clean_need = cleanup_name(thing)
|
33
|
-
|
34
|
-
define_method(clean_need) do
|
35
|
-
fetch_value(clean_need)
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
end
|
40
|
-
|
41
|
-
def initialize(args={})
|
42
|
-
set_args ATTRS, args
|
43
|
-
end
|
44
|
-
|
45
|
-
protected
|
46
|
-
|
47
|
-
class << self
|
48
|
-
|
49
|
-
def cleanup_name(name)
|
50
|
-
name.to_s.gsub(/\W/,'')
|
51
|
-
end
|
52
|
-
|
53
|
-
def fetch_value(clean_name, default_value=nil)
|
54
|
-
instance_variable_get("@#{clean_name}") ||
|
55
|
-
instance_variable_set("@#{clean_name}", default_value)
|
56
|
-
end
|
57
|
-
|
58
|
-
end
|
59
|
-
|
60
|
-
def set_args(arg_list, args)
|
61
|
-
if args && args.kind_of?(::Hash)
|
62
|
-
arg_list.each {|a| instance_variable_set("@#{a}", args[a])}
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
private
|
67
|
-
|
68
|
-
if Module.method(:const_get).arity == 1
|
69
|
-
def osheet_constantize(camel_cased_word)
|
70
|
-
names = camel_cased_word.split('::')
|
71
|
-
names.shift if names.empty? || names.first.empty?
|
72
|
-
|
73
|
-
constant = ::Object
|
74
|
-
names.each do |name|
|
75
|
-
constant = constant.const_defined?(name) ? constant.const_get(name) : constant.const_missing(name)
|
76
|
-
end
|
77
|
-
constant
|
78
|
-
end unless ::String.respond_to?('constantize')
|
79
|
-
else
|
80
|
-
# Ruby 1.9 introduces an inherit argument for Module#const_get and
|
81
|
-
# #const_defined? and changes their default behavior.
|
82
|
-
def osheet_constantize(camel_cased_word) #:nodoc:
|
83
|
-
names = camel_cased_word.split('::')
|
84
|
-
names.shift if names.empty? || names.first.empty?
|
85
|
-
|
86
|
-
constant = ::Object
|
87
|
-
names.each do |name|
|
88
|
-
constant = constant.const_get(name, false) || constant.const_missing(name)
|
89
|
-
end
|
90
|
-
constant
|
91
|
-
end unless ::String.respond_to?('constantize')
|
92
|
-
end
|
93
|
-
|
94
|
-
end
|
95
|
-
end
|