ruby-rtf 0.0.3 → 0.0.5
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.
- checksums.yaml +5 -5
- data/Gemfile.lock +4 -4
- data/lib/ruby-rtf/parser.rb +19 -5
- data/lib/ruby-rtf/version.rb +1 -1
- data/ruby-rtf.gemspec +1 -1
- data/spec/parser_spec.rb +30 -0
- metadata +7 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 50dd0ca707eb1c3d3ceddca62ceb88f46ba2ecd712f403059d99aa9566d89d34
|
4
|
+
data.tar.gz: 5be0b6e3dd052d0261a5177b31a22cc8e2f91a9e2b7e4c2009c70ab26fe2d085
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b13544d45d381eee9bb4aef1209ce6e099bc5e3d4c1366e84905800204687bdcb8e1b6afdd23d081610707797d0171e817a926219f4f2bf2a60d71d25d0286c1
|
7
|
+
data.tar.gz: 9d31de78bf52d44399431724f57eece4f5254b4d3566438ce4dc011bc81128a58dce7c99dca3fffed3c0e8c018d5f81904b855e8ea6b6526c353df0bb91bc74c
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
ruby-rtf (0.0.
|
4
|
+
ruby-rtf (0.0.5)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: http://rubygems.org/
|
@@ -20,7 +20,7 @@ GEM
|
|
20
20
|
diff-lcs (>= 1.2.0, < 2.0)
|
21
21
|
rspec-support (~> 3.6.0)
|
22
22
|
rspec-support (3.6.0)
|
23
|
-
yard (0.9.
|
23
|
+
yard (0.9.24)
|
24
24
|
|
25
25
|
PLATFORMS
|
26
26
|
ruby
|
@@ -28,7 +28,7 @@ PLATFORMS
|
|
28
28
|
DEPENDENCIES
|
29
29
|
rspec (> 2.0)
|
30
30
|
ruby-rtf!
|
31
|
-
yard
|
31
|
+
yard (~> 0.9.11)
|
32
32
|
|
33
33
|
BUNDLED WITH
|
34
|
-
1.
|
34
|
+
1.16.1
|
data/lib/ruby-rtf/parser.rb
CHANGED
@@ -126,7 +126,15 @@ module RubyRTF
|
|
126
126
|
case(name)
|
127
127
|
when :rtf then ;
|
128
128
|
when :deff then @doc.default_font = val
|
129
|
-
when :ansicpg then
|
129
|
+
when :ansicpg then
|
130
|
+
begin
|
131
|
+
# Set the encoding if it's valid
|
132
|
+
Encoding.find("windows-#{val}")
|
133
|
+
self.encoding = "windows-#{val}"
|
134
|
+
rescue => e
|
135
|
+
# ignore
|
136
|
+
end
|
137
|
+
|
130
138
|
when *[:ansi, :mac, :pc, :pca] then @doc.character_set = name
|
131
139
|
when :fonttbl then current_pos = parse_font_table(src, current_pos)
|
132
140
|
when :colortbl then current_pos = parse_colour_table(src, current_pos)
|
@@ -412,7 +420,7 @@ module RubyRTF
|
|
412
420
|
colour.theme = ctrl.to_s[1..-1].to_sym
|
413
421
|
end
|
414
422
|
|
415
|
-
when *["\r", "\n"] then current_pos += 1
|
423
|
+
when *["\r", "\n", " "] then current_pos += 1
|
416
424
|
when ';' then
|
417
425
|
@doc.colour_table << colour
|
418
426
|
|
@@ -513,14 +521,20 @@ module RubyRTF
|
|
513
521
|
def force_section!(mods = {}, text = nil)
|
514
522
|
current_context << @current_section
|
515
523
|
|
524
|
+
# The modifiers for the new section
|
525
|
+
modifiers = {}
|
526
|
+
|
516
527
|
fs = formatting_stack.last || {}
|
517
528
|
fs.each_pair do |k, v|
|
518
529
|
next if BLACKLISTED.include?(k)
|
519
|
-
|
530
|
+
modifiers[k] = v
|
520
531
|
end
|
521
|
-
formatting_stack.push(mods)
|
522
532
|
|
523
|
-
|
533
|
+
modifiers.merge!(mods)
|
534
|
+
|
535
|
+
formatting_stack.push(modifiers)
|
536
|
+
|
537
|
+
@current_section = {:text => (text || ''), :modifiers => modifiers}
|
524
538
|
end
|
525
539
|
|
526
540
|
# Resets the current section to default formating
|
data/lib/ruby-rtf/version.rb
CHANGED
data/ruby-rtf.gemspec
CHANGED
data/spec/parser_spec.rb
CHANGED
@@ -391,6 +391,36 @@ ffd8ffe000104a4649460001010100b400b40000ffe1158a687474703a2f2f6e732e61646f62652e
|
|
391
391
|
clr.blue.should == 255
|
392
392
|
end
|
393
393
|
|
394
|
+
it 'ignores single space between colour sections' do
|
395
|
+
src = '{\rtf1{\colortbl\red0\green0\blue0; \red127\green2\blue255;}}'
|
396
|
+
doc = parser.parse(src)
|
397
|
+
|
398
|
+
clr = doc.colour_table[0]
|
399
|
+
clr.red.should == 0
|
400
|
+
clr.green.should == 0
|
401
|
+
clr.blue.should == 0
|
402
|
+
|
403
|
+
clr = doc.colour_table[1]
|
404
|
+
clr.red.should == 127
|
405
|
+
clr.green.should == 2
|
406
|
+
clr.blue.should == 255
|
407
|
+
end
|
408
|
+
|
409
|
+
it 'ignores double space between colour sections' do
|
410
|
+
src = '{\rtf1{\colortbl\red0\green0\blue0; \red127\green2\blue255;}}'
|
411
|
+
doc = parser.parse(src)
|
412
|
+
|
413
|
+
clr = doc.colour_table[0]
|
414
|
+
clr.red.should == 0
|
415
|
+
clr.green.should == 0
|
416
|
+
clr.blue.should == 0
|
417
|
+
|
418
|
+
clr = doc.colour_table[1]
|
419
|
+
clr.red.should == 127
|
420
|
+
clr.green.should == 2
|
421
|
+
clr.blue.should == 255
|
422
|
+
end
|
423
|
+
|
394
424
|
it 'sets the first colour if missing' do
|
395
425
|
src = '{\rtf1{\colortbl;\red255\green0\blue0;\red0\green0\blue255;}}'
|
396
426
|
doc = parser.parse(src)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-rtf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- dan sinclair
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-03-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -28,16 +28,16 @@ dependencies:
|
|
28
28
|
name: yard
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 0.9.11
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 0.9.11
|
41
41
|
description: Library for working with RTF files
|
42
42
|
email: dj2@everburning.com
|
43
43
|
executables:
|
@@ -86,8 +86,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
86
86
|
- !ruby/object:Gem::Version
|
87
87
|
version: '0'
|
88
88
|
requirements: []
|
89
|
-
|
90
|
-
rubygems_version: 2.5.1
|
89
|
+
rubygems_version: 3.0.6
|
91
90
|
signing_key:
|
92
91
|
specification_version: 4
|
93
92
|
summary: Library for working with RTF files
|