caracal 1.1.1 → 1.1.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3d6531d588b6cb5bb6a5c48941029510fdfce000
4
- data.tar.gz: b7d7136f8e1dc0b126599e6f14b92aae20a925f4
3
+ metadata.gz: 1f3944130ad07554a021682f7365b9b6db126c8d
4
+ data.tar.gz: 358849a03c5e6806f77590a4eb3ce86de6c6a68e
5
5
  SHA512:
6
- metadata.gz: 125ebdcb4425c9283651a28deb626244eca27ac179889e7d5d93aaa55ef998182cb144727552040786cf73cd4b6eae94524f57466a70b7bc022332aa26b9b2e3
7
- data.tar.gz: e3b1762168958781a93605fa12591229cfb1c24a0fe300394783da2e83cb4b6347197287a99fbf09d6ed882f8c7fb256f1268a44170d2e789ddb6148ea7520e3
6
+ metadata.gz: c84b97f6fbbf1038db085d86205e2f50f74eb4c09f3aff1391ed65b8c111c1def9f05fba78027a36a7a626a6ecc2b95543e9737949d3190bd6cfdc1e7940f9d1
7
+ data.tar.gz: 2643cfcd452911dce56bb8cf96884021cd0d11ea4e041e35cc1af8a5ba45147b444237413d69c501d2d8e1acf8d23e06a579a69806e93eb4a3e24b4b052c3e60
@@ -1,3 +1,14 @@
1
+ #### v1.1.2
2
+
3
+ * Enhancements
4
+ * Added font size options for page numbers. (@cfacello)
5
+
6
+ #### v1.1.1
7
+
8
+ * Enhancements
9
+ * Added character styles. (@xerespm)
10
+
11
+
1
12
  #### v1.1.0
2
13
 
3
14
  * Enhancements
data/README.md CHANGED
@@ -300,17 +300,22 @@ docx.page # starts a new page.
300
300
 
301
301
  ### Page Numbers
302
302
 
303
- Page numbers can be added to the footer via the `page_numbers` method. The method accepts optional parameters for controlling the label and alignment of the text.
303
+ Page numbers can be added to the footer via the `page_numbers` method. The method accepts optional parameters for controlling the alignment, label and size of the text.
304
304
 
305
305
  *Page numbers are turned off by default.*
306
306
 
307
307
  ```ruby
308
308
  docx.page_numbers true do
309
- label 'Page' # sets the text that will go to the left of the page number. Defaults to nil.
310
- align :right # sets the alignment. accepts :left, :center, and :right.
309
+ align :right # sets the alignment. accepts :left, :center, and :right.
310
+ label 'Page' # sets the text that will go to the left of the page number. Defaults to nil.
311
+ size: 24 # sets the label and number size simultaneously. units in half points.
312
+ label_size: 24 # sets the label size only. units in half points.
313
+ number_size: 20 # sets the number size only. units in half points.
311
314
  end
312
315
  ```
313
316
 
317
+ The `size` option and the `label_size` and `number_size` options are mutually exclusive.
318
+
314
319
 
315
320
  ### Fonts
316
321
 
@@ -21,13 +21,17 @@ module Caracal
21
21
  # accessors
22
22
  attr_reader :page_number_align
23
23
  attr_reader :page_number_label
24
+ attr_reader :page_number_label_size
25
+ attr_reader :page_number_number_size
24
26
  attr_reader :page_number_show
25
27
 
26
28
  # initialization
27
29
  def initialize(options={}, &block)
28
- @page_number_align = DEFAULT_PAGE_NUMBER_ALIGN
29
- @page_number_label = nil
30
- @page_number_show = DEFAULT_PAGE_NUMBER_SHOW
30
+ @page_number_align = DEFAULT_PAGE_NUMBER_ALIGN
31
+ @page_number_label = nil
32
+ @page_number_label_size = nil
33
+ @page_number_number_size = nil
34
+ @page_number_show = DEFAULT_PAGE_NUMBER_SHOW
31
35
 
32
36
  super options, &block
33
37
  end
@@ -47,10 +51,26 @@ module Caracal
47
51
  @page_number_label = value.to_s.strip # renderer will enforce trailing space
48
52
  end
49
53
 
54
+ def label_size(value)
55
+ v = value.to_i
56
+ @page_number_label_size = (v == 0) ? nil : v
57
+ end
58
+
59
+ def number_size(value)
60
+ v = value.to_i
61
+ @page_number_number_size = (v == 0) ? nil : v
62
+ end
63
+
50
64
  def show(value)
51
65
  @page_number_show = !!value
52
66
  end
53
67
 
68
+ def size(value)
69
+ v = value.to_i
70
+ @page_number_label_size = (v == 0) ? nil : v
71
+ @page_number_number_size = (v == 0) ? nil : v
72
+ end
73
+
54
74
 
55
75
  #=============== VALIDATION ===========================
56
76
 
@@ -65,7 +85,7 @@ module Caracal
65
85
  private
66
86
 
67
87
  def option_keys
68
- [:align, :label, :show]
88
+ [:align, :label, :label_size, :number_size, :show]
69
89
  end
70
90
 
71
91
  end
@@ -22,6 +22,8 @@ module Caracal
22
22
  # accessors
23
23
  attr_reader :page_number_align
24
24
  attr_reader :page_number_label
25
+ attr_reader :page_number_label_size
26
+ attr_reader :page_number_number_size
25
27
  attr_reader :page_number_show
26
28
 
27
29
 
@@ -34,13 +36,15 @@ module Caracal
34
36
  #
35
37
  def page_numbers(*args, &block)
36
38
  options = Caracal::Utilities.extract_options!(args)
37
- options.merge!({ show: !!args.first }) unless args.first.nil? # careful: falsey value
39
+ options.merge!({ show: !!args.first }) unless args.first.nil? # careful: just `args.first` is falsey
38
40
 
39
41
  model = Caracal::Core::Models::PageNumberModel.new(options, &block)
40
42
  if model.valid?
41
- @page_number_align = model.page_number_align
42
- @page_number_label = model.page_number_label
43
- @page_number_show = model.page_number_show
43
+ @page_number_align = model.page_number_align
44
+ @page_number_label = model.page_number_label
45
+ @page_number_label_size = model.page_number_label_size
46
+ @page_number_number_size = model.page_number_number_size
47
+ @page_number_show = model.page_number_show
44
48
  else
45
49
  raise Caracal::Errors::InvalidModelError, 'page_numbers :align parameter must be :left, :center, or :right'
46
50
  end
@@ -26,16 +26,27 @@ module Caracal
26
26
  xml['w'].r run_options do
27
27
  xml['w'].rPr do
28
28
  xml['w'].rStyle({ 'w:val' => 'PageNumber' })
29
+ unless document.page_number_label_size.nil?
30
+ xml['w'].sz({ 'w:val' => document.page_number_label_size })
31
+ end
29
32
  end
30
33
  xml['w'].t({ 'xml:space' => 'preserve' }) do
31
34
  xml.text "#{ document.page_number_label } "
32
35
  end
33
36
  end
34
37
  end
35
- xml['w'].fldSimple({ 'w:dirty' => '0', 'w:instr' => 'PAGE', 'w:fldLock' => '0' }) do
36
- xml['w'].r run_options do
37
- xml['w'].rPr
38
+ xml['w'].r run_options do
39
+ xml['w'].rPr do
40
+ unless document.page_number_number_size.nil?
41
+ xml['w'].sz({ 'w:val' => document.page_number_number_size })
42
+ xml['w'].szCs({ 'w:val' => document.page_number_number_size })
43
+ end
44
+ end
45
+ xml['w'].fldChar({ 'w:fldCharType' => 'begin' })
46
+ xml['w'].instrText({ 'xml:space' => 'preserve' }) do
47
+ xml.text 'PAGE'
38
48
  end
49
+ xml['w'].fldChar({ 'w:fldCharType' => 'end' })
39
50
  end
40
51
  xml['w'].r run_options do
41
52
  xml['w'].rPr do
@@ -1,3 +1,3 @@
1
1
  module Caracal
2
- VERSION = '1.1.1'
2
+ VERSION = '1.1.2'
3
3
  end
@@ -3,9 +3,11 @@ require 'spec_helper'
3
3
  describe Caracal::Core::Models::PageNumberModel do
4
4
  subject do
5
5
  described_class.new do
6
- show true
7
- align :right
8
- label 'Page'
6
+ show true
7
+ align :right
8
+ label 'Page'
9
+ label_size 24
10
+ number_size 20
9
11
  end
10
12
  end
11
13
 
@@ -24,6 +26,8 @@ describe Caracal::Core::Models::PageNumberModel do
24
26
  describe 'accessors' do
25
27
  it { expect(subject.page_number_align).to eq :right }
26
28
  it { expect(subject.page_number_label).to eq 'Page' }
29
+ it { expect(subject.page_number_label_size).to eq 24 }
30
+ it { expect(subject.page_number_number_size).to eq 20 }
27
31
  it { expect(subject.page_number_show).to eq true }
28
32
  end
29
33
 
@@ -52,6 +56,20 @@ describe Caracal::Core::Models::PageNumberModel do
52
56
  it { expect(subject.page_number_label).to eq 'Page' }
53
57
  end
54
58
 
59
+ # .label_size
60
+ describe '.label_size' do
61
+ before { subject.label_size(28) }
62
+
63
+ it { expect(subject.page_number_label_size).to eq 28 }
64
+ end
65
+
66
+ # .number_size
67
+ describe '.number_size' do
68
+ before { subject.number_size(28) }
69
+
70
+ it { expect(subject.page_number_number_size).to eq 28 }
71
+ end
72
+
55
73
  # .show
56
74
  describe '.show' do
57
75
  before { subject.show(true) }
@@ -59,6 +77,14 @@ describe Caracal::Core::Models::PageNumberModel do
59
77
  it { expect(subject.page_number_show).to eq true }
60
78
  end
61
79
 
80
+ # .size
81
+ describe '.size' do
82
+ before { subject.size(32) }
83
+
84
+ it { expect(subject.page_number_label_size).to eq 32 }
85
+ it { expect(subject.page_number_number_size).to eq 32 }
86
+ end
87
+
62
88
 
63
89
  #=============== VALIDATIONS ==========================
64
90
 
@@ -100,7 +126,7 @@ describe Caracal::Core::Models::PageNumberModel do
100
126
  # .option_keys
101
127
  describe '.option_keys' do
102
128
  let(:actual) { subject.send(:option_keys).sort }
103
- let(:expected) { [:align, :label, :show].sort }
129
+ let(:expected) { [:align, :label, :label_size, :number_size, :show].sort }
104
130
 
105
131
  it { expect(actual).to eq expected }
106
132
  end
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.1.1
4
+ version: 1.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Trade Infomatics