caracal 1.3.0 → 1.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -0
- data/lib/caracal/core/file_name.rb +16 -12
- data/lib/caracal/core/models/table_cell_model.rb +6 -0
- data/lib/caracal/document.rb +24 -15
- data/lib/caracal/renderers/document_renderer.rb +1 -1
- data/lib/caracal/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f7539fa972b10d2c7af3de21bb8f9787eecb0e0c3867326afd4cdedd2ec3dd5a
|
4
|
+
data.tar.gz: 8356897d9cb7e54c9816497f0297cc635afb2267f42cba57fac009b3819791f0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b8542dfdc09c07f78f7bf63714d681b1f8a0d93c6718f14f3d1e53ef6b055e6549df94b95fddb93390f89e6d300063566b9d71d7584b104c453caa4dadf0e023
|
7
|
+
data.tar.gz: '009ca4e19a83ec60c60bc3dc9e009da724a0768f50ebfba2b2e4045bf98e658689386495e3f59fd639eb2da1bb1fcfd059ada4f517353707647799c3d9c12be6'
|
data/CHANGELOG.md
CHANGED
@@ -1,9 +1,18 @@
|
|
1
|
+
#### v1.4.0
|
2
|
+
|
3
|
+
* Enhancements
|
4
|
+
* Changed `file_name` method to accept absolute and relative paths. (@jdugan)
|
5
|
+
* Added instance save method so documents can be created via commands instead of blocks, if desired. (@jdugan)
|
6
|
+
* Removed extra paragraph tag inserted after tables; added logic to ensure final tag of table cells is always a paragraph. (@jdugan)
|
7
|
+
|
8
|
+
|
1
9
|
#### v1.3.0
|
2
10
|
|
3
11
|
* Enhancements
|
4
12
|
* Added proper text highlighting. Colors are limited so we left :bgcolor option. (@rmarone)
|
5
13
|
* Added bookmarks and internal links. (@rmarone)
|
6
14
|
|
15
|
+
|
7
16
|
#### v1.2.0
|
8
17
|
|
9
18
|
* Enhancements
|
@@ -1,39 +1,43 @@
|
|
1
1
|
module Caracal
|
2
2
|
module Core
|
3
|
-
|
4
|
-
# This module encapsulates all the functionality related to setting the
|
3
|
+
|
4
|
+
# This module encapsulates all the functionality related to setting the
|
5
5
|
# document's name.
|
6
6
|
#
|
7
7
|
module FileName
|
8
8
|
def self.included(base)
|
9
9
|
base.class_eval do
|
10
|
-
|
10
|
+
|
11
11
|
#-------------------------------------------------------------
|
12
12
|
# Configuration
|
13
13
|
#-------------------------------------------------------------
|
14
|
-
|
14
|
+
|
15
15
|
# constants
|
16
16
|
const_set(:DEFAULT_FILE_NAME, 'caracal.docx')
|
17
|
-
|
17
|
+
|
18
18
|
# accessors
|
19
19
|
attr_reader :name
|
20
|
-
|
21
|
-
|
20
|
+
attr_reader :path
|
21
|
+
|
22
|
+
|
22
23
|
#-------------------------------------------------------------
|
23
24
|
# Public Methods
|
24
25
|
#-------------------------------------------------------------
|
25
|
-
|
26
|
+
|
26
27
|
# This method sets the name of the output file. Defaults
|
27
28
|
# to the name of the library.
|
28
29
|
#
|
29
30
|
def file_name(value=nil)
|
30
31
|
v = value.to_s.strip
|
31
|
-
|
32
|
+
a = v.split('/')
|
33
|
+
|
34
|
+
@name = (v == '') ? self.class::DEFAULT_FILE_NAME : a.last
|
35
|
+
@path = (a.size > 1) ? v : "./#{ v }"
|
32
36
|
end
|
33
|
-
|
37
|
+
|
34
38
|
end
|
35
39
|
end
|
36
40
|
end
|
37
|
-
|
41
|
+
|
38
42
|
end
|
39
|
-
end
|
43
|
+
end
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'caracal/core/models/base_model'
|
2
2
|
require 'caracal/core/models/margin_model'
|
3
|
+
require 'caracal/core/models/paragraph_model'
|
3
4
|
|
4
5
|
|
5
6
|
module Caracal
|
@@ -39,6 +40,11 @@ module Caracal
|
|
39
40
|
end
|
40
41
|
|
41
42
|
super options, &block
|
43
|
+
|
44
|
+
p_klass = Caracal::Core::Models::ParagraphModel # the final tag in a table cell
|
45
|
+
unless contents.last.is_a? p_klass # *must* be a paragraph for OOXML
|
46
|
+
contents << p_klass.new(content: '') # to not throw an error.
|
47
|
+
end
|
42
48
|
end
|
43
49
|
|
44
50
|
|
data/lib/caracal/document.rb
CHANGED
@@ -37,9 +37,9 @@ require 'caracal/renderers/styles_renderer'
|
|
37
37
|
module Caracal
|
38
38
|
class Document
|
39
39
|
|
40
|
-
|
40
|
+
#------------------------------------------------------
|
41
41
|
# Configuration
|
42
|
-
|
42
|
+
#------------------------------------------------------
|
43
43
|
|
44
44
|
# mixins (order is important)
|
45
45
|
include Caracal::Core::CustomProperties
|
@@ -64,11 +64,11 @@ module Caracal
|
|
64
64
|
include Caracal::Core::Text
|
65
65
|
|
66
66
|
|
67
|
-
|
67
|
+
#------------------------------------------------------
|
68
68
|
# Public Class Methods
|
69
|
-
|
69
|
+
#------------------------------------------------------
|
70
70
|
|
71
|
-
#============ OUTPUT
|
71
|
+
#============ OUTPUT ==================================
|
72
72
|
|
73
73
|
# This method renders a new Word document and returns it as a
|
74
74
|
# a string.
|
@@ -86,16 +86,17 @@ module Caracal
|
|
86
86
|
#
|
87
87
|
def self.save(f_name = nil, &block)
|
88
88
|
docx = new(f_name, &block)
|
89
|
-
|
90
|
-
|
91
|
-
|
89
|
+
docx.save
|
90
|
+
# buffer = docx.render
|
91
|
+
#
|
92
|
+
# File.open(docx.path, 'wb') { |f| f.write(buffer.string) }
|
92
93
|
end
|
93
94
|
|
94
95
|
|
95
96
|
|
96
|
-
|
97
|
+
#------------------------------------------------------
|
97
98
|
# Public Instance Methods
|
98
|
-
|
99
|
+
#------------------------------------------------------
|
99
100
|
|
100
101
|
# This method instantiates a new word document.
|
101
102
|
#
|
@@ -119,7 +120,7 @@ module Caracal
|
|
119
120
|
end
|
120
121
|
|
121
122
|
|
122
|
-
#============ GETTERS
|
123
|
+
#============ GETTERS =================================
|
123
124
|
|
124
125
|
# This method returns an array of models which constitute the
|
125
126
|
# set of instructions for producing the document content.
|
@@ -129,7 +130,7 @@ module Caracal
|
|
129
130
|
end
|
130
131
|
|
131
132
|
|
132
|
-
#============ RENDERING
|
133
|
+
#============ RENDERING ===============================
|
133
134
|
|
134
135
|
# This method renders the word document instance into
|
135
136
|
# a string buffer. Order is important!
|
@@ -153,13 +154,21 @@ module Caracal
|
|
153
154
|
end
|
154
155
|
|
155
156
|
|
157
|
+
#============ SAVING ==================================
|
158
|
+
|
159
|
+
def save
|
160
|
+
buffer = render
|
161
|
+
|
162
|
+
File.open(path, 'wb') { |f| f.write(buffer.string) }
|
163
|
+
end
|
164
|
+
|
156
165
|
|
157
|
-
|
166
|
+
#------------------------------------------------------
|
158
167
|
# Private Instance Methods
|
159
|
-
|
168
|
+
#------------------------------------------------------
|
160
169
|
private
|
161
170
|
|
162
|
-
#============ RENDERERS
|
171
|
+
#============ RENDERERS ===============================
|
163
172
|
|
164
173
|
def render_app(zip)
|
165
174
|
content = ::Caracal::Renderers::AppRenderer.render(self)
|
@@ -403,7 +403,7 @@ module Caracal
|
|
403
403
|
|
404
404
|
# don't know why this is needed, but it prevents a
|
405
405
|
# rendering error.
|
406
|
-
render_paragraph(xml, Caracal::Core::Models::ParagraphModel.new)
|
406
|
+
# render_paragraph(xml, Caracal::Core::Models::ParagraphModel.new)
|
407
407
|
end
|
408
408
|
|
409
409
|
|
data/lib/caracal/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: caracal
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Trade Infomatics
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2018-08-
|
12
|
+
date: 2018-08-31 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|