fast_excel 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3527e28360ec8d98f3bcd0e2ea27bf3c4aef8709
4
- data.tar.gz: 34e9b7d88f7070023dd38d4aa2f726ca94c04f00
3
+ metadata.gz: 5b3fea677b83c37195affe038f16bcc03cad62a0
4
+ data.tar.gz: 91383abc260bb5df19bf9153efcd53f4d1e3fd43
5
5
  SHA512:
6
- metadata.gz: 1bff87327a872ca3d0db96b05c38e3cc22d31051840711a03c7adc83484ead48395f0c6c2e481ada0baed1477fb0105e5136fa55053ccf6f5561f9073b7cc2ea
7
- data.tar.gz: 6df2008f272b89ca1169f4d29f95db6a9049c317cf8e295fc384f49627cdb997d185b9f29d972b6982d37ce5d09994bfd13d5418d19dbbb75df49f79d904fdcd
6
+ metadata.gz: 83b36430c0c230863a9659790932a39c4e670d7e0b8c687a8f26ce82998d4f362a201d07ef9bbcbedae9725e66156a5d1ea37db3b9c390b51bdd69e35f295668
7
+ data.tar.gz: 0ffe702bfd23a34bcd75e3b33d63629928acf8ca2da407a06262d16c40ca4a0ca75846483ca0cf8dff5438832ba18380a0dbef859338def57e1d836445e1ef4b
data/example.rb CHANGED
@@ -1,8 +1,14 @@
1
1
  require_relative './lib/fast_excel'
2
+ require 'pp'
2
3
 
3
4
  workbook = FastExcel.open("ffi_example.xlsx", constant_memory: true)
4
5
 
5
- workbook.default_format[:font_size] = -1 # user's default
6
+ workbook.default_format.set(
7
+ font_size: 0, # user's default
8
+ #font_family: "Arial"
9
+ )
10
+
11
+ # pp workbook.default_format
6
12
 
7
13
  worksheet = workbook.add_worksheet("Payments Report")
8
14
 
data/fast_excel.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "fast_excel"
3
- s.version = "0.1.3"
3
+ s.version = "0.1.4"
4
4
  s.author = ["Pavel Evstigneev"]
5
5
  s.email = ["pavel.evst@gmail.com"]
6
6
  s.homepage = "https://github.com/paxa/fast_excel"
data/lib/fast_excel.rb CHANGED
@@ -65,7 +65,28 @@ module FastExcel
65
65
  time.to_f / XLSX_DATE_DAY + XLSX_DATE_EPOCH_DIFF + offset / XLSX_DATE_DAY
66
66
  end
67
67
 
68
+ module AttributeHelper
69
+ def set(value)
70
+ value.each do |key, value|
71
+ if respond_to?("#{key}=")
72
+ send("#{key}=", value)
73
+ else
74
+ self[key] = value
75
+ end
76
+ end
77
+ end
78
+
79
+ def pretty_print(pp)
80
+ res = {}
81
+ members.each do |key|
82
+ res[key] = respond_to?(key) ? send(key) : self[key]
83
+ end
84
+ pp res
85
+ end
86
+ end
87
+
68
88
  module WorkbookExt
89
+ include AttributeHelper
69
90
 
70
91
  def bold_cell_format
71
92
  bold = add_format
@@ -87,6 +108,7 @@ module FastExcel
87
108
  end
88
109
 
89
110
  module WorksheetExt
111
+ include AttributeHelper
90
112
 
91
113
  def write_row(row_number, values, formats = nil)
92
114
  values.each_with_index do |value, index|
@@ -109,12 +131,63 @@ module FastExcel
109
131
  end
110
132
 
111
133
  end
134
+
135
+ module FormatExt
136
+ include AttributeHelper
137
+
138
+ [:font_size, :font_name, :underline, :font_script, :num_format, :align, :rotation, :indent, :pattern, :border].each do |prop|
139
+ define_method(prop) do
140
+ self[prop]
141
+ end
142
+ define_method("#{prop}=") do |value|
143
+ send("set_#{prop}", value)
144
+ end
145
+ end
146
+
147
+ [:bold, :italic, :font_outline, :font_shadow, :hidden, :text_wrap, :font_strikeout, :shrink, :text_justlast].each do |prop|
148
+ define_method(prop) do
149
+ self[prop]
150
+ end
151
+ define_method("#{prop}=") do |value|
152
+ value ? send("set_#{prop}") : self[prop] = false
153
+ end
154
+ end
155
+
156
+ [:num_format, :font_name].each do |prop|
157
+ define_method(prop) do
158
+ self[prop].to_ptr.read_string
159
+ end
160
+
161
+ define_method("#{prop}=") do |value|
162
+ send("set_#{prop}", value)
163
+ end
164
+ end
165
+
166
+ def set_font_size(value)
167
+ if value < 0
168
+ raise ArgumentError, "font size should be >= 0 (use 0 for user default font size)"
169
+ end
170
+ super(value)
171
+ end
172
+
173
+ def font_family
174
+ font_name
175
+ end
176
+
177
+ def font_family=(value)
178
+ self.font_name = value
179
+ end
180
+ end
112
181
  end
113
182
 
114
183
  Libxlsxwriter::Workbook.instance_eval do
115
184
  include FastExcel::WorkbookExt
116
185
  end
117
186
 
187
+ Libxlsxwriter::Format.instance_eval do
188
+ include FastExcel::FormatExt
189
+ end
190
+
118
191
  Libxlsxwriter::Worksheet.instance_eval do
119
192
  include FastExcel::WorksheetExt
120
193
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fast_excel
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pavel Evstigneev