caracal 1.1.1 → 1.1.2

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: 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