fast_excel 0.4.0 → 0.4.1

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
  SHA256:
3
- metadata.gz: b7acf199afdfc96f315ac6487ec4c72a25f6624388d2139821ca1a14aaac9a5e
4
- data.tar.gz: 071322b38f573d7774a26025c1f866203a9e1b0b0bca143fdbedfc81af274fd0
3
+ metadata.gz: 81f6dc41f599591425a032e95046733c9a27b7b44e5f6d15f71c9040e1452eaf
4
+ data.tar.gz: 05ce040ed72e6c056311177c5753d6f363d8750515502054648cac440d3cde09
5
5
  SHA512:
6
- metadata.gz: f0f4583c984b84dd9e4960771ab1d094ade8fc271d66e7052b3bb249a870e5fec0302a898652e020cec61d17ceaa2babf73cf84a3a2556c05f83e1b8cf82182b
7
- data.tar.gz: 162dee5762798ce6ecac84bcc0cc10f38f03f46d3fd4eb490c039dc2e67ede50294f7bfd744be72e58dedacc41c3aad76997a1642ba3e379d8c33d8edca938d0
6
+ metadata.gz: f614c8458db906397a2c27825c302e4a0d7a3f2958ed7053a33c9bd2dcbfd063fd27e5a6a8b1a7b3d230afc23919f359d27e61b785ded07b6cf95de55081d711
7
+ data.tar.gz: cbc0d5436ddde9052359e069a2d4e706810b9bd9ed28c544eca6e072566d32af9fba8b762cb47c011400d676dc71d7b641902058758f97cab98f44a9baef5ff9
@@ -0,0 +1,34 @@
1
+ name: Test
2
+
3
+ on: [push, pull_request]
4
+
5
+ jobs:
6
+ test:
7
+ strategy:
8
+ fail-fast: false
9
+ matrix:
10
+ os: [ubuntu-latest, macos-latest, windows-latest]
11
+ ruby: [2.7, '3.0', 3.1, 3.2]
12
+
13
+ runs-on: ${{ matrix.os }}
14
+
15
+ steps:
16
+ - uses: actions/checkout@v2
17
+ - uses: ruby/setup-ruby@v1
18
+ with:
19
+ ruby-version: ${{ matrix.ruby }}
20
+
21
+ - run: bundle config set --local without 'benchmarks'
22
+ - run: bundle install
23
+ - run: make
24
+ - run: make install
25
+
26
+ - run: rake test
27
+ - run: rake examples
28
+ - run: gem build fast_excel.gemspec
29
+
30
+
31
+ gobills-critical
32
+ gp-di-critical
33
+
34
+ gp-di-alert
data/.gitignore CHANGED
@@ -18,3 +18,5 @@ libxlsxwriter/test
18
18
  ext/fast_excel/text_width_ext.o
19
19
  ext/fast_excel/Makefile
20
20
  ext/fast_excel/text_width_ext.bundle
21
+ Gemfile.lock
22
+ lib/libxlsxwriter.dylib
data/CHANGELOG.md CHANGED
@@ -1,3 +1,12 @@
1
+ #### Version 0.4.1 - 13 jan 2023
2
+
3
+ * Support ruby 3.2
4
+ * Improve library loading (Thanks to @sly7-7 and @BrianHawley)
5
+ * Ensure Time.zone is not nil (Thanks to @ksuh90)
6
+ * Get utc_offset from current value if possible (Thanks to @KevinSchiffmann)
7
+ * Validate worksheet name using Libxlsxwriter (Thanks to @datbth)
8
+ * Fix readme typo (Thanks to @sw4d)
9
+
1
10
  #### Version 0.4.0 - 14 feb 2021
2
11
 
3
12
  * Support ruby 3.0
data/Gemfile CHANGED
@@ -1,7 +1,6 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- gem 'ffi'
4
- gem 'ffi_gen', require: false
3
+ gemspec
5
4
 
6
5
  gem 'rake'
7
6
 
@@ -10,9 +9,11 @@ gem 'roo', '2.8.3', git: 'https://github.com/roo-rb/roo.git', tag: 'v2.8.3'
10
9
  gem 'minitest'
11
10
  gem 'minitest-reporters'
12
11
 
13
- # For benchmakrs
14
- gem 'axlsx', git: 'https://github.com/randym/axlsx.git'
15
- gem 'write_xlsx'
16
- gem 'xlsxtream'
17
- gem 'benchmark-ips'
18
- gem 'process_memory', git: 'https://github.com/paxa/process_memory', platforms: :ruby
12
+
13
+ group :benchmarks do
14
+ gem 'axlsx', git: 'https://github.com/randym/axlsx.git'
15
+ gem 'write_xlsx'
16
+ gem 'xlsxtream'
17
+ gem 'benchmark-ips'
18
+ gem 'process_memory', git: 'https://github.com/paxa/process_memory', platforms: :ruby
19
+ end
data/Makefile CHANGED
@@ -3,12 +3,39 @@ ifdef V
3
3
  Q=
4
4
  endif
5
5
 
6
+ UNAME := $(shell uname)
7
+
8
+ LIBXLSXWRITER_SO = libxlsxwriter.so
9
+
10
+ ifeq ($(UNAME), Darwin)
11
+ LIBXLSXWRITER_SO = libxlsxwriter.dylib
12
+ endif
13
+
14
+ # Check for MinGW/MinGW64/Cygwin environments.
15
+ ifneq (,$(findstring MINGW, $(UNAME)))
16
+ MING_LIKE = y
17
+ endif
18
+ ifneq (,$(findstring MSYS, $(UNAME)))
19
+ MING_LIKE = y
20
+ endif
21
+ ifneq (,$(findstring CYGWIN, $(UNAME)))
22
+ MING_LIKE = y
23
+ endif
24
+
25
+ ifdef MING_LIKE
26
+ LIBXLSXWRITER_SO = libxlsxwriter.dll
27
+ endif
28
+
6
29
  # with xcode better to use cmake
7
30
  UNAME_S := $(shell uname -s)
8
31
  ifeq ($(UNAME_S),"Darwin")
9
32
  USE_CMAKE := $(shell command -v cmake 2> /dev/null)
10
33
  endif
11
34
 
35
+ ifndef ($(sitearchdir))
36
+ sitearchdir = './lib'
37
+ endif
38
+
12
39
  all :
13
40
  # @echo "Compiling ext/text_width ..."
14
41
  # rake compile
@@ -24,4 +51,4 @@ clean :
24
51
  $(Q)$(MAKE) clean -C libxlsxwriter
25
52
 
26
53
  install :
27
- @echo "Nothing to install"
54
+ $(Q)cp libxlsxwriter/lib/$(LIBXLSXWRITER_SO) $(sitearchdir)
data/README.md CHANGED
@@ -55,7 +55,7 @@ workbook = FastExcel.open # creates tmp file
55
55
  send_data(workbook.read_string, filename: "table.xlsx") # read tmp file and delete it
56
56
  ```
57
57
 
58
- Also can use `workbook.remove_tmp_file` to delete tmp file manually
58
+ Also can use `workbook.remove_tmp_folder` to delete tmp file manually
59
59
 
60
60
 
61
61
  **Constant memory mode**: saves each row to disk, good for really big files but can not change previous lines that already saved
@@ -118,7 +118,7 @@ worksheet.write_url(0, 2, "https://github.com/Paxa/fast_excel", url_format)
118
118
 
119
119
  ### Data Formatting
120
120
  ```ruby
121
- format = worksheet.add_format(
121
+ format = workbook.add_format(
122
122
  bold: true,
123
123
  italic: true,
124
124
  font_outline: true,
@@ -12,8 +12,8 @@ workbook.default_format.set(
12
12
 
13
13
  worksheet = workbook.add_worksheet("Payments Report")
14
14
 
15
- p worksheet[:filter_on]
16
- FastExcel.print_ffi_obj(worksheet)
15
+ # p worksheet[:filter_on]
16
+ # FastExcel.print_ffi_obj(worksheet)
17
17
 
18
18
  bold = workbook.bold_format
19
19
  worksheet.set_column(0, 0, FastExcel::DEF_COL_WIDTH, bold)
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.4.0"
3
+ s.version = "0.4.1"
4
4
  s.author = ["Pavel Evstigneev"]
5
5
  s.email = ["pavel.evst@gmail.com"]
6
6
  s.homepage = "https://github.com/paxa/fast_excel"
@@ -147,7 +147,7 @@ module Libxlsxwriter
147
147
  # @param [String] sheetname
148
148
  # @return [Symbol from _enum_error_]
149
149
  def validate_worksheet_name(sheetname)
150
- Libxlsxwriter.workbook_validate_worksheet_name(self, sheetname)
150
+ Libxlsxwriter.workbook_validate_sheet_name(self, sheetname)
151
151
  end
152
152
 
153
153
  # @return [nil]
@@ -319,12 +319,12 @@ module Libxlsxwriter
319
319
  # @scope class
320
320
  attach_function :workbook_get_worksheet_by_name, :workbook_get_worksheet_by_name, [Workbook, :string], Worksheet
321
321
 
322
- # @method workbook_validate_worksheet_name(workbook, sheetname)
322
+ # @method workbook_validate_sheet_name(workbook, sheetname)
323
323
  # @param [Workbook] workbook
324
324
  # @param [String] sheetname
325
325
  # @return [Symbol from _enum_error_]
326
326
  # @scope class
327
- attach_function :workbook_validate_worksheet_name, :workbook_validate_worksheet_name, [Workbook, :string], :error
327
+ attach_function :workbook_validate_sheet_name, :workbook_validate_sheet_name, [Workbook, :string], :error
328
328
 
329
329
  # @method workbook_free(workbook)
330
330
  # @param [Workbook] workbook
@@ -5,15 +5,12 @@ require 'ffi'
5
5
  module Libxlsxwriter
6
6
  extend FFI::Library
7
7
 
8
- LIB_FILENAME = if RUBY_PLATFORM =~ /darwin/
9
- "libxlsxwriter.dylib"
10
- elsif ['x64-mingw32', 'i386-mingw32'].include? RUBY_PLATFORM
11
- "libxlsxwriter.dll"
12
- else
13
- "libxlsxwriter.so"
14
- end
8
+ LIB_FILENAME = "libxlsxwriter.#{FFI::Platform::LIBSUFFIX}".freeze
9
+
10
+ libs = [File.expand_path("../../#{LIB_FILENAME}", __FILE__)]
11
+ libs.unshift(File.join(Gem.loaded_specs['fast_excel'].extension_dir, LIB_FILENAME)) if Gem.loaded_specs['fast_excel']
15
12
 
16
- ffi_lib File.expand_path("./../../../libxlsxwriter/lib/#{LIB_FILENAME}", __FILE__)
13
+ ffi_lib(libs)
17
14
 
18
15
  def self.attach_function(name, *_)
19
16
  begin; super; rescue FFI::NotFoundError => e
data/lib/fast_excel.rb CHANGED
@@ -91,8 +91,11 @@ module FastExcel
91
91
  # https://support.microsoft.com/en-us/help/214330/differences-between-the-1900-and-the-1904-date-system-in-excel
92
92
  def self.date_num(time, offset = nil)
93
93
  unless offset
94
- # Try use Rails' app timezone
95
- if Time.respond_to?(:zone)
94
+ # Try use value utc_offset
95
+ if time.respond_to?(:utc_offset)
96
+ offset = time.utc_offset
97
+ # Else try use Rails' app timezone
98
+ elsif Time.respond_to?(:zone) && !Time.zone.nil?
96
99
  offset = Time.zone.utc_offset
97
100
  else
98
101
  offset = 0 # rollback to UTC
@@ -122,6 +125,7 @@ module FastExcel
122
125
  end
123
126
 
124
127
 
128
+ ERROR_ENUM = Libxlsxwriter.enum_type(:error)
125
129
  COLOR_ENUM = Libxlsxwriter.enum_type(:defined_colors)
126
130
  EXTRA_COLORS = {
127
131
  alice_blue: 0xF0F8FF,
@@ -363,10 +367,11 @@ module FastExcel
363
367
 
364
368
  def add_worksheet(sheetname = nil)
365
369
  if !sheetname.nil?
366
- if sheetname.length > Libxlsxwriter::SHEETNAME_MAX
367
- raise ArgumentError, "Worksheet name '#{sheetname}' exceeds Excel's limit of #{Libxlsxwriter::SHEETNAME_MAX} characters"
368
- elsif @sheet_names.include?(sheetname)
369
- raise ArgumentError, "Worksheet name '#{sheetname}' is already in use"
370
+ error = validate_worksheet_name(sheetname)
371
+ if error != :no_error
372
+ error_code = ERROR_ENUM.find(error)
373
+ error_str = error_code ? Libxlsxwriter.strerror(error_code) : ''
374
+ raise ArgumentError, "Invalid worksheet name '#{sheetname}': (#{error_code} - #{error}) #{error_str}"
370
375
  end
371
376
  end
372
377
 
@@ -11,7 +11,7 @@ describe "FastExcel validations" do
11
11
  end
12
12
 
13
13
  assert_equal(ArgumentError, error.class)
14
- assert_equal("Worksheet name 'Payments Report' is already in use", error.message)
14
+ assert_equal("Invalid worksheet name 'Payments Report': (16 - error_sheetname_already_used) Worksheet name is already in use.", error.message)
15
15
  end
16
16
 
17
17
  it "should not raise error when worksheet name is null" do
@@ -33,7 +33,7 @@ describe "FastExcel validations" do
33
33
  end
34
34
 
35
35
  assert_equal(ArgumentError, error.class)
36
- assert_equal("Worksheet name 'ABCDEFGHIJKLMNOPQRSTUVWXYZ012345' exceeds Excel's limit of 31 characters", error.message)
36
+ assert_equal("Invalid worksheet name 'ABCDEFGHIJKLMNOPQRSTUVWXYZ012345': (13 - error_sheetname_length_exceeded) Worksheet name exceeds Excel's limit of 31 characters.", error.message)
37
37
  end
38
38
 
39
39
  it "should not raise error when the sheet name is at maximum length" do
@@ -44,4 +44,15 @@ describe "FastExcel validations" do
44
44
 
45
45
  assert_equal("ABCDEFGHIJKLMNOPQRSTUVWXYZ01234", worksheet[:name])
46
46
  end
47
+
48
+ it "should validate using Libxlsxwriter validation" do
49
+ workbook = FastExcel.open(constant_memory: true)
50
+ error = assert_raises do
51
+ worksheet = workbook.add_worksheet('a?')
52
+ worksheet.write_value(1, 1, 'a') # without the validation, this method will crash the process
53
+ end
54
+
55
+ assert_equal(ArgumentError, error.class)
56
+ assert_equal("Invalid worksheet name 'a?': (14 - error_invalid_sheetname_character) Worksheet name cannot contain invalid characters: '[ ] : * ? / \\'", error.message)
57
+ end
47
58
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fast_excel
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pavel Evstigneev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-02-14 00:00:00.000000000 Z
11
+ date: 2023-01-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi
@@ -39,17 +39,15 @@ extensions:
39
39
  extra_rdoc_files: []
40
40
  files:
41
41
  - ".dockerignore"
42
+ - ".github/workflows/test.yml"
42
43
  - ".gitignore"
43
- - ".travis.yml"
44
44
  - CHANGELOG.md
45
45
  - Dockerfile.test
46
46
  - Gemfile
47
- - Gemfile.lock
48
47
  - LICENSE
49
48
  - Makefile
50
49
  - README.md
51
50
  - Rakefile
52
- - appveyor.yml
53
51
  - benchmarks/1k_rows.rb
54
52
  - benchmarks/20k_rows.rb
55
53
  - benchmarks/auto_width.rb
@@ -173,7 +171,6 @@ files:
173
171
  - test/format_test.rb
174
172
  - test/reopen_test.rb
175
173
  - test/test_helper.rb
176
- - test/text_width_test.rb
177
174
  - test/tmpfile_test.rb
178
175
  - test/validations_test.rb
179
176
  - test/worksheet_test.rb
@@ -199,7 +196,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
199
196
  - !ruby/object:Gem::Version
200
197
  version: '0'
201
198
  requirements: []
202
- rubygems_version: 3.1.2
199
+ rubygems_version: 3.4.3
203
200
  signing_key:
204
201
  specification_version: 4
205
202
  summary: Ultra Fast Excel Writer
data/.travis.yml DELETED
@@ -1,51 +0,0 @@
1
- ---
2
- language: ruby
3
-
4
- matrix:
5
- include:
6
- # - os: linux
7
- # rvm: 2.2.10
8
- # - os: osx
9
- # rvm: 2.2.10
10
- - os: linux
11
- rvm: 2.3.8
12
- - os: linux
13
- rvm: 2.4.6
14
- - os: osx
15
- rvm: 2.4.6
16
- - os: linux
17
- rvm: 2.5.5
18
- - os: osx
19
- rvm: 2.5.5
20
- - os: linux
21
- rvm: 2.6.3
22
- env: BUILD_DOCKER=true
23
- services:
24
- - docker
25
- - os: osx
26
- rvm: 2.6.3
27
- osx_image: xcode10.2
28
- before_script:
29
- - ls -lah /Applications
30
- - sudo xcode-select -s /Applications/Xcode-10.2.1.app/Contents/Developer
31
- - clang --version
32
- - os: linux
33
- rvm: 2.7.2
34
- - os: linux
35
- rvm: 3.0.0-preview2
36
- fast_finish: true
37
- allow_failures:
38
- - rvm: 3.0.0-preview2
39
-
40
- before_install:
41
- - gem install bundler -v 2.2.2
42
-
43
- script:
44
- - bundle install
45
- - make
46
- - bundle exec rake test
47
- - bundle exec rake examples
48
- - gem build fast_excel.gemspec
49
- - export GIT_REPO=${TRAVIS_PULL_REQUEST_SLUG:-$TRAVIS_REPO_SLUG}
50
- - env
51
- - if [ -n "$BUILD_DOCKER" ]; then docker build . -f Dockerfile.test --build-arg GIT_REPO --build-arg TRAVIS_COMMIT --build-arg TRAVIS_BRANCH ; fi
data/Gemfile.lock DELETED
@@ -1,79 +0,0 @@
1
- GIT
2
- remote: https://github.com/paxa/process_memory
3
- revision: 282c75336a4a6b92207cd1eaa57f20887b92601e
4
- specs:
5
- process_memory (0.1)
6
-
7
- GIT
8
- remote: https://github.com/randym/axlsx.git
9
- revision: 8e7b4b3b7259103452c191f73ce0bf64f66033fe
10
- specs:
11
- axlsx (3.0.0.pre)
12
- htmlentities (~> 4.3, >= 4.3.4)
13
- mimemagic (~> 0.3)
14
- nokogiri (~> 1.8, >= 1.8.2)
15
- rubyzip (~> 1.2, >= 1.2.1)
16
-
17
- GIT
18
- remote: https://github.com/roo-rb/roo.git
19
- revision: d416f1520c50bbab160ca2ed9a49498fcc3edf50
20
- tag: v2.8.3
21
- specs:
22
- roo (2.8.3)
23
- nokogiri (~> 1)
24
- rubyzip (>= 1.3.0, < 3.0.0)
25
-
26
- GEM
27
- remote: https://rubygems.org/
28
- specs:
29
- ansi (1.5.0)
30
- benchmark-ips (2.8.4)
31
- builder (3.2.4)
32
- ffi (1.14.2)
33
- ffi_gen (1.2.0)
34
- ffi (~> 1.0)
35
- htmlentities (4.3.4)
36
- mimemagic (0.3.5)
37
- minitest (5.14.3)
38
- minitest-reporters (1.4.3)
39
- ansi
40
- builder
41
- minitest (>= 5.0)
42
- ruby-progressbar
43
- nokogiri (1.11.1-x86_64-darwin)
44
- racc (~> 1.4)
45
- nokogiri (1.11.1-x86_64-linux)
46
- racc (~> 1.4)
47
- racc (1.5.2)
48
- rake (13.0.3)
49
- ruby-progressbar (1.11.0)
50
- rubyzip (1.3.0)
51
- write_xlsx (1.04.0)
52
- rubyzip (>= 1.0.0)
53
- zip-zip
54
- xlsxtream (2.4.0)
55
- zip_tricks (>= 4.5, < 6)
56
- zip-zip (0.3)
57
- rubyzip (>= 1.0.0)
58
- zip_tricks (5.5.0)
59
-
60
- PLATFORMS
61
- ruby
62
- x86_64-darwin-19
63
- x86_64-linux
64
-
65
- DEPENDENCIES
66
- axlsx!
67
- benchmark-ips
68
- ffi
69
- ffi_gen
70
- minitest
71
- minitest-reporters
72
- process_memory!
73
- rake
74
- roo (= 2.8.3)!
75
- write_xlsx
76
- xlsxtream
77
-
78
- BUNDLED WITH
79
- 2.2.2
data/appveyor.yml DELETED
@@ -1,25 +0,0 @@
1
- install:
2
- - SET PATH=C:\Ruby%ruby_version%\bin;%PATH%
3
- - SET PATH=C:\MinGW\bin;%PATH%
4
- - SET RAKEOPT=-rdevkit
5
- - copy c:\MinGW\bin\mingw32-make.exe c:\MinGW\bin\make.exe
6
- - ruby --version
7
- - gem --version
8
- - bundle install
9
- - make
10
-
11
- build: off
12
-
13
- test_script:
14
- - bundle exec rake test
15
-
16
- environment:
17
- matrix:
18
- - ruby_version: "24"
19
- - ruby_version: "24-x64"
20
- - ruby_version: "23"
21
- - ruby_version: "23-x64"
22
- - ruby_version: "22"
23
- - ruby_version: "22-x64"
24
- - ruby_version: "21"
25
- - ruby_version: "21-x64"
@@ -1,80 +0,0 @@
1
- require_relative 'test_helper'
2
-
3
-
4
- describe "FastExcel Arial text_width" do
5
-
6
- before do
7
- skip "Use basic width calc for now"
8
- end
9
-
10
- it "should calculate width for character" do
11
- assert_in_delta(FastExcel.arial_text_width('a'), 55.61, 0.1)
12
- end
13
-
14
- it "should calculate width with kerning" do
15
- assert_in_delta(FastExcel.arial_text_width('A'), 66.69, 0.1)
16
- assert_in_delta(FastExcel.arial_text_width('V'), 66.69, 0.1)
17
-
18
- assert_in_delta(FastExcel.arial_text_width('AV'), 125.97, 0.1)
19
-
20
- assert_in_delta(FastExcel.arial_text_width('11'), 103.80, 0.1)
21
- end
22
-
23
- it "should skip system characters" do
24
- assert_in_delta(FastExcel.arial_text_width(10.chr), 0.0)
25
- end
26
-
27
- it "should handle multiline text" do
28
- assert_in_delta(FastExcel.arial_text_width("More\nThen\nOne Line"), 405.85, 0.1)
29
- end
30
- end
31
-
32
- describe "FastExcel Calibri text_width" do
33
-
34
- before do
35
- skip "Use basic width calc for now"
36
- end
37
-
38
- it "should calculate width for character" do
39
- assert_in_delta(FastExcel.calibri_text_width('a'), 47.90, 0.1)
40
- end
41
-
42
- it "should calculate width with kerning" do
43
- assert_in_delta(FastExcel.calibri_text_width('A'), 57.86, 0.1)
44
- assert_in_delta(FastExcel.calibri_text_width('V'), 56.73, 0.1)
45
-
46
- assert_in_delta(FastExcel.calibri_text_width('AV'), 110.25, 0.1)
47
-
48
- assert_in_delta(FastExcel.calibri_text_width('11'), 101.36, 0.1)
49
- end
50
-
51
- it "should skip system characters" do
52
- assert_in_delta(FastExcel.calibri_text_width(10.chr), 0.0)
53
- end
54
-
55
- end
56
-
57
- describe "FastExcel Times New Roman text_width" do
58
-
59
- before do
60
- skip "Use basic width calc for now"
61
- end
62
-
63
- it "should calculate width for character" do
64
- assert_in_delta(FastExcel.times_new_roman_text_width('a'), 44.38, 0.1)
65
- end
66
-
67
- it "should calculate width with kerning" do
68
- assert_in_delta(FastExcel.times_new_roman_text_width('A'), 72.21, 0.1)
69
- assert_in_delta(FastExcel.times_new_roman_text_width('V'), 72.21, 0.1)
70
-
71
- assert_in_delta(FastExcel.times_new_roman_text_width('AV'), 131.54, 0.1)
72
-
73
- assert_in_delta(FastExcel.times_new_roman_text_width('11'), 96.28, 0.1)
74
- end
75
-
76
- it "should skip system characters" do
77
- assert_in_delta(FastExcel.times_new_roman_text_width(10.chr), 0.0)
78
- end
79
-
80
- end