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.
Files changed (71) hide show
  1. data/.bundle/config +2 -0
  2. data/.gitignore +6 -0
  3. data/Gemfile +4 -0
  4. data/Gemfile.lock +33 -0
  5. data/README.rdoc +103 -61
  6. data/Rakefile +5 -56
  7. data/examples/basic.rb +73 -0
  8. data/examples/formats.rb +366 -0
  9. data/examples/trivial.rb +21 -0
  10. data/lib/osheet/associations.rb +62 -0
  11. data/lib/osheet/cell.rb +44 -10
  12. data/lib/osheet/column.rb +34 -7
  13. data/lib/osheet/format/accounting.rb +21 -0
  14. data/lib/osheet/format/currency.rb +23 -0
  15. data/lib/osheet/format/custom.rb +13 -0
  16. data/lib/osheet/format/datetime.rb +13 -0
  17. data/lib/osheet/format/fraction.rb +33 -0
  18. data/lib/osheet/format/general.rb +9 -0
  19. data/lib/osheet/format/number.rb +13 -0
  20. data/lib/osheet/format/numeric.rb +113 -0
  21. data/lib/osheet/format/percentage.rb +25 -0
  22. data/lib/osheet/format/scientific.rb +25 -0
  23. data/lib/osheet/format/special.rb +28 -0
  24. data/lib/osheet/format/text.rb +11 -0
  25. data/lib/osheet/format.rb +30 -0
  26. data/lib/osheet/row.rb +32 -7
  27. data/lib/osheet/style.rb +65 -0
  28. data/lib/osheet/style_set.rb +39 -0
  29. data/lib/osheet/styled_element.rb +18 -0
  30. data/lib/osheet/template.rb +32 -0
  31. data/lib/osheet/template_set.rb +57 -0
  32. data/lib/osheet/version.rb +1 -11
  33. data/lib/osheet/workbook.rb +32 -16
  34. data/lib/osheet/workbook_element.rb +21 -0
  35. data/lib/osheet/worksheet.rb +18 -20
  36. data/lib/osheet/worksheet_element.rb +15 -0
  37. data/lib/osheet/xmlss_writer/base.rb +42 -0
  38. data/lib/osheet/xmlss_writer/elements.rb +68 -0
  39. data/lib/osheet/xmlss_writer/styles.rb +176 -0
  40. data/lib/osheet/xmlss_writer.rb +1 -0
  41. data/lib/osheet.rb +7 -27
  42. data/osheet.gemspec +26 -0
  43. data/test/cell_test.rb +83 -0
  44. data/test/column_test.rb +81 -0
  45. data/test/env.rb +9 -0
  46. data/test/format/accounting_test.rb +158 -0
  47. data/test/format/currency_test.rb +158 -0
  48. data/test/format/custom_test.rb +22 -0
  49. data/test/format/datetime_test.rb +22 -0
  50. data/test/format/fraction_test.rb +84 -0
  51. data/test/format/general_test.rb +21 -0
  52. data/test/format/number_test.rb +93 -0
  53. data/test/format/percentage_test.rb +116 -0
  54. data/test/format/scientific_test.rb +116 -0
  55. data/test/format/special_test.rb +51 -0
  56. data/test/format/text_test.rb +18 -0
  57. data/test/format_test.rb +35 -0
  58. data/test/helper.rb +101 -0
  59. data/test/osheet_test.rb +14 -0
  60. data/test/row_test.rb +78 -0
  61. data/test/style_set_test.rb +50 -0
  62. data/test/style_test.rb +92 -0
  63. data/test/template_set_test.rb +76 -0
  64. data/test/template_test.rb +63 -0
  65. data/test/workbook_test.rb +142 -0
  66. data/test/worksheet_test.rb +77 -0
  67. data/test/xmlss_writer/base_test.rb +92 -0
  68. data/test/xmlss_writer/elements_test.rb +168 -0
  69. data/test/xmlss_writer/styles_test.rb +253 -0
  70. metadata +141 -30
  71. 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
- - 1
8
+ - 2
8
9
  - 0
9
- version: 0.1.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: 2010-04-23 00:00:00 -05:00
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: shoulda
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
- - 2
29
- - 10
31
+ - 1
30
32
  - 0
31
- version: 2.10.0
33
+ version: "1.0"
32
34
  type: :development
33
35
  version_requirements: *id001
34
36
  - !ruby/object:Gem::Dependency
35
- name: kelredd-useful
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
- - 3
44
- - 0
45
- version: 0.3.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: spreadsheet
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
- - 6
58
- - 4
59
- version: 0.6.4
65
+ version: 1.1.0
60
66
  type: :runtime
61
67
  version_requirements: *id003
62
- description:
63
- email: kelly@kelredd.com
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
- - README.rdoc
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
- - lib/osheet/base.rb
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
- - --main
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.6
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