docxtor 0.1.1 → 0.2.1
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.
- data/.ruby-version +1 -1
- data/Gemfile +1 -0
- data/README.md +88 -44
- data/lib/docxtor.rb +3 -0
- data/lib/docxtor/document/builder.rb +18 -3
- data/lib/docxtor/document/element.rb +9 -2
- data/lib/docxtor/generator.rb +7 -2
- data/lib/docxtor/package/builder.rb +2 -11
- data/lib/docxtor/reference_builder.rb +29 -0
- data/lib/docxtor/running_element.rb +69 -0
- data/lib/docxtor/running_elements_builder.rb +18 -0
- data/lib/docxtor/template_parser.rb +3 -10
- data/lib/docxtor/version.rb +1 -1
- data/spec/docxtor/document/builder_spec.rb +2 -4
- data/spec/docxtor/document/paragraph_spec.rb +8 -8
- data/spec/docxtor/document/root_spec.rb +21 -5
- data/spec/docxtor/document/table_of_contents_spec.rb +1 -5
- data/spec/docxtor/docxtor_spec.rb +6 -6
- data/spec/docxtor/package/builder_spec.rb +51 -11
- data/spec/docxtor/reference_builder_spec.rb +27 -0
- data/spec/docxtor/running_element_spec.rb +38 -0
- data/spec/docxtor/running_elements_builder_spec.rb +25 -0
- data/spec/docxtor/support/contexts/xml_builder_context.rb +0 -2
- data/spec/docxtor/template_parser_spec.rb +3 -3
- data/templates/default/[Content_Types].xml +1 -5
- data/templates/default/_rels/.rels +1 -4
- data/templates/default/docProps/app.xml +1 -0
- data/templates/default/docProps/core.xml +1 -0
- metadata +150 -154
- data/spec/docxtor/support/examples/.gitkeep +0 -0
- data/spec/docxtor/support/matchers/wordprocessingml_matchers.rb +0 -42
- data/spec/docxtor/support/matchers/xpath_matchers.rb +0 -46
- data/templates/default/word/_rels/document.xml.rels +0 -13
- data/templates/default/word/endnotes.xml +0 -17
- data/templates/default/word/fontTable.xml +0 -31
- data/templates/default/word/footer1.xml +0 -35
- data/templates/default/word/footer2.xml +0 -48
- data/templates/default/word/footnotes.xml +0 -17
- data/templates/default/word/numbering.xml +0 -212
- data/templates/default/word/settings.xml +0 -107
- data/templates/default/word/styles.xml +0 -368
- data/templates/default/word/theme/theme1.xml +0 -2
- data/templates/default/word/websettings.xml +0 -4
data/lib/docxtor/version.rb
CHANGED
@@ -2,15 +2,13 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
module Docxtor
|
4
4
|
describe Document::Builder do
|
5
|
-
|
6
|
-
|
7
|
-
subject { Document::Builder.new do
|
5
|
+
subject { Document::Builder.new [] do
|
8
6
|
p "Hi"
|
9
7
|
end
|
10
8
|
}
|
11
9
|
|
12
10
|
it 'contains body' do
|
13
|
-
subject.content.
|
11
|
+
expect { subject.content.include? "body" }
|
14
12
|
end
|
15
13
|
end
|
16
14
|
end
|
@@ -18,36 +18,36 @@ module Docxtor
|
|
18
18
|
}
|
19
19
|
|
20
20
|
it 'contains reference to style' do
|
21
|
-
subject.
|
21
|
+
expect { subject.include? "w:pStyle" }
|
22
22
|
end
|
23
23
|
|
24
24
|
it 'contains spacing property' do
|
25
|
-
subject.
|
25
|
+
expect { subject.include? "w:spacing" }
|
26
26
|
end
|
27
27
|
|
28
28
|
it 'contains font size property' do
|
29
|
-
subject.
|
29
|
+
expect { subject.include? "w:sz" }
|
30
30
|
end
|
31
31
|
|
32
32
|
it 'contains complex font size property' do
|
33
|
-
subject.
|
33
|
+
expect { subject.include? "w:szCs" }
|
34
34
|
end
|
35
35
|
|
36
36
|
it 'contains indentiation property' do
|
37
|
-
subject.
|
37
|
+
expect { subject.include? "w:ind" }
|
38
38
|
end
|
39
39
|
|
40
40
|
context 'nested run' do
|
41
41
|
it 'is bold' do
|
42
|
-
subject.
|
42
|
+
expect { subject.include? "<w:b/>" }
|
43
43
|
end
|
44
44
|
|
45
45
|
it 'is italic' do
|
46
|
-
subject.
|
46
|
+
expect { subject.include? "<w:i/>" }
|
47
47
|
end
|
48
48
|
|
49
49
|
it 'is underlined' do
|
50
|
-
subject.
|
50
|
+
expect { subject.include? "<w:u/>" }
|
51
51
|
end
|
52
52
|
end
|
53
53
|
|
@@ -4,16 +4,32 @@ module Docxtor
|
|
4
4
|
describe Document::Root do
|
5
5
|
include_context "xmlbuilder" do
|
6
6
|
|
7
|
-
|
8
|
-
Document::Root.new(:style => 1) do
|
7
|
+
it 'appends element to elements' do
|
8
|
+
root = Document::Root.new(:style => 1) do
|
9
9
|
p do
|
10
10
|
w "Hi"
|
11
11
|
end
|
12
12
|
end
|
13
|
-
}
|
14
13
|
|
15
|
-
|
16
|
-
|
14
|
+
expect { root.elements.first.should be_instance_of Docxtor::Document::Paragraph }
|
15
|
+
end
|
16
|
+
|
17
|
+
it "ignores certain known methods" do
|
18
|
+
root = Document::Root.new(:style => 1) do
|
19
|
+
footer "2013"
|
20
|
+
end
|
21
|
+
|
22
|
+
expect { root.elements.empty? }
|
23
|
+
end
|
24
|
+
|
25
|
+
it "throws an error if unknown method is passed" do
|
26
|
+
root = begin
|
27
|
+
Document::Root.new(:style => 1) { bla "Ble" }
|
28
|
+
rescue NoMethodError
|
29
|
+
"UnknownMethod"
|
30
|
+
end
|
31
|
+
|
32
|
+
expect { root == "UnknownMethod" }
|
17
33
|
end
|
18
34
|
end
|
19
35
|
end
|
@@ -7,11 +7,7 @@ module Docxtor
|
|
7
7
|
subject { render(Document::TableOfContents, 'Contents') }
|
8
8
|
|
9
9
|
it 'contains gallery of document parts' do
|
10
|
-
subject.
|
11
|
-
end
|
12
|
-
|
13
|
-
it 'contains heading text' do
|
14
|
-
subject.should contain_sdt_content_heading
|
10
|
+
expect { subject.include? "docPartGallery" }
|
15
11
|
end
|
16
12
|
end
|
17
13
|
end
|
@@ -1,13 +1,13 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Docxtor, "#generate" do
|
4
|
-
context "when supplied all the same parameters that Generator takes" do
|
4
|
+
context "when supplied with all the same parameters that Generator takes" do
|
5
5
|
it 'does not throw errors' do
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
}
|
6
|
+
expect {
|
7
|
+
Docxtor.generate do
|
8
|
+
p "Paragraph"
|
9
|
+
end
|
10
|
+
}
|
11
11
|
end
|
12
12
|
end
|
13
13
|
end
|
@@ -1,8 +1,34 @@
|
|
1
|
+
require 'tempfile'
|
1
2
|
require 'spec_helper'
|
2
3
|
|
3
4
|
module Docxtor
|
4
5
|
describe Package::Builder do
|
5
|
-
|
6
|
+
let(:document) { double("Document::Builder") }
|
7
|
+
let(:part) { double("Package::Part") }
|
8
|
+
let(:header) { double("RunningElement") }
|
9
|
+
|
10
|
+
subject { Package::Builder.new([part, document, header]) }
|
11
|
+
before do
|
12
|
+
part.stub(:filename) {"word/settings.xml"}
|
13
|
+
part.stub(:content) {"settings"}
|
14
|
+
|
15
|
+
document.stub(:filename) {"word/document.xml"}
|
16
|
+
document.stub(:content) {"content"}
|
17
|
+
|
18
|
+
header.stub(:type) {:header}
|
19
|
+
header.stub(:filename) {"word/header1.xml"}
|
20
|
+
header.stub(:content) {"header"}
|
21
|
+
end
|
22
|
+
|
23
|
+
describe "#initialize" do
|
24
|
+
it "builds list of package parts from provided arguments" do
|
25
|
+
document_part = subject.parts.find {|part| part.filename == "word/document.xml"}
|
26
|
+
expect {
|
27
|
+
!document.nil?
|
28
|
+
subject.parts.count == 3
|
29
|
+
}
|
30
|
+
end
|
31
|
+
end
|
6
32
|
|
7
33
|
include_context 'integration' do
|
8
34
|
context "given filepath and source document" do
|
@@ -15,21 +41,35 @@ module Docxtor
|
|
15
41
|
end
|
16
42
|
|
17
43
|
context 'after serialization' do
|
44
|
+
before do
|
45
|
+
@tempfile = Tempfile.new("test.docx")
|
46
|
+
subject.save(@tempfile.path)
|
47
|
+
zip_input_stream = Zip::ZipInputStream.open(@tempfile.path)
|
48
|
+
|
49
|
+
while (entry = zip_input_stream.get_next_entry)
|
50
|
+
@document_entry = entry if entry.name == "word/document.xml"
|
51
|
+
@header_entry = entry if entry.name = "word/header1.xml"
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
after do
|
56
|
+
@tempfile.unlink
|
57
|
+
end
|
58
|
+
|
18
59
|
it 'contains data' do
|
19
|
-
|
20
|
-
expect { string_io.size > 0 }
|
60
|
+
expect { @tempfile.size > 0 }
|
21
61
|
end
|
22
62
|
|
23
63
|
it 'contains document part' do
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
document_entry = istream.get_next_entry
|
64
|
+
expect {
|
65
|
+
@document_entry
|
66
|
+
}
|
67
|
+
end
|
29
68
|
|
30
|
-
|
31
|
-
|
32
|
-
|
69
|
+
it 'contains running elements part' do
|
70
|
+
expect {
|
71
|
+
@header_entry
|
72
|
+
}
|
33
73
|
end
|
34
74
|
end
|
35
75
|
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module Docxtor
|
4
|
+
describe ReferenceBuilder do
|
5
|
+
let(:element) { double("Document::RunningElement") }
|
6
|
+
|
7
|
+
subject { ReferenceBuilder.new([element]) }
|
8
|
+
|
9
|
+
before do
|
10
|
+
element.stub(:name) { "header1.xml" }
|
11
|
+
element.stub(:reference_type) { "header" }
|
12
|
+
element.stub(:reference_id=) { "rId1" }
|
13
|
+
element.stub(:reference_id) { "rId1" }
|
14
|
+
end
|
15
|
+
|
16
|
+
it "responds to #filename" do
|
17
|
+
expect { subject.respond_to? :filename }
|
18
|
+
end
|
19
|
+
|
20
|
+
it "renders xml with element's reference info" do
|
21
|
+
expect {
|
22
|
+
subject.content.include?("Relationship")
|
23
|
+
subject.content.include?("header1.xml")
|
24
|
+
}
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module Docxtor
|
4
|
+
describe RunningElement do
|
5
|
+
subject { RunningElement.new :footer, 1, :pagenum, {:pages => "odd"} }
|
6
|
+
|
7
|
+
it "can have referenve_id assigned to it" do
|
8
|
+
subject.reference_id = "rId1"
|
9
|
+
|
10
|
+
expect { subject.reference_id == "rId1" }
|
11
|
+
end
|
12
|
+
|
13
|
+
it "responds to 'reference_name'" do
|
14
|
+
expect { subject.reference_name == "footerReference" }
|
15
|
+
end
|
16
|
+
|
17
|
+
it "responds to 'name'" do
|
18
|
+
expect { subject.name == "footer1.xml" }
|
19
|
+
end
|
20
|
+
|
21
|
+
it "responds to 'filename'" do
|
22
|
+
expect { subject.filename == "word/footer1.xml" }
|
23
|
+
end
|
24
|
+
|
25
|
+
it "responds to 'reference_type'" do
|
26
|
+
expect { subject.reference_type == "http://schemas.openxmlformats.org/officeDocument/2006/relationships/footer" }
|
27
|
+
end
|
28
|
+
|
29
|
+
describe "#content" do
|
30
|
+
it "returns xml with correct contents markup" do
|
31
|
+
expect {
|
32
|
+
subject.content.include? "instrText"
|
33
|
+
subject.content.include? "PAGE"
|
34
|
+
}
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module Docxtor
|
4
|
+
describe RunningElementsBuilder do
|
5
|
+
subject {
|
6
|
+
RunningElementsBuilder.new do
|
7
|
+
header :pagenum, :align => :center
|
8
|
+
footer "Made by me", :pages => :odd
|
9
|
+
footer "2013", :pages => :even
|
10
|
+
end
|
11
|
+
}
|
12
|
+
|
13
|
+
it "has elements" do
|
14
|
+
expect { subject.respond_to?(:elements) }
|
15
|
+
end
|
16
|
+
|
17
|
+
describe "#elements" do
|
18
|
+
it "returns a list of running elements" do
|
19
|
+
expect {
|
20
|
+
subject.elements.count == 3
|
21
|
+
}
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -3,15 +3,15 @@ require 'spec_helper'
|
|
3
3
|
module Docxtor
|
4
4
|
describe TemplateParser do
|
5
5
|
include_context 'integration' do
|
6
|
-
subject { TemplateParser.new
|
6
|
+
subject { TemplateParser.new }
|
7
7
|
|
8
8
|
it 'finds exact count of template files' do
|
9
9
|
expected = Dir.chdir(template) {
|
10
10
|
Dir[TemplateParser::FILES_PATTERN].
|
11
11
|
delete_if { |file| File.directory?(file) }.
|
12
|
-
|
12
|
+
count
|
13
13
|
}
|
14
|
-
expect { subject.parts.
|
14
|
+
expect { subject.parts.count == expected }
|
15
15
|
end
|
16
16
|
end
|
17
17
|
end
|
@@ -4,13 +4,9 @@
|
|
4
4
|
<Default ContentType="application/vnd.openxmlformats-package.relationships+xml" Extension="rels"/>
|
5
5
|
<Default ContentType="application/xml" Extension="xml"/>
|
6
6
|
<Override ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml" PartName="/word/document.xml"/>
|
7
|
-
<Override ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml" PartName="/word/numbering.xml"/>
|
8
7
|
<Override ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml" PartName="/word/styles.xml"/>
|
9
|
-
<Override ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml" PartName="/word/endnotes.xml"/>
|
10
8
|
<Override ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml" PartName="/word/settings.xml"/>
|
11
9
|
<Override ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml" PartName="/word/footer2.xml"/>
|
12
10
|
<Override ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml" PartName="/word/footer1.xml"/>
|
13
|
-
<Override ContentType="application/vnd.openxmlformats-officedocument.theme+xml" PartName="/word/theme/theme1.xml"/>
|
14
11
|
<Override ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml" PartName="/word/fontTable.xml"/>
|
15
|
-
|
16
|
-
</Types>
|
12
|
+
</Types>
|
@@ -1,4 +1 @@
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8" standalone="yes"
|
2
|
-
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
|
3
|
-
<Relationship Id="rId1" Target="word/document.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument"/>
|
4
|
-
</Relationships>
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties" Target="docProps/core.xml"/><Relationship Id="rId2" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties" Target="docProps/app.xml"/><Relationship Id="rId3" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="word/document.xml"/></Relationships>
|
@@ -0,0 +1 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Properties xmlns="http://schemas.openxmlformats.org/officeDocument/2006/extended-properties" xmlns:vt="http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes"/>
|
@@ -0,0 +1 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><cp:coreProperties xmlns:cp="http://schemas.openxmlformats.org/package/2006/metadata/core-properties" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
|
metadata
CHANGED
@@ -1,163 +1,167 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: docxtor
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.1
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 1
|
9
|
-
- 1
|
10
|
-
version: 0.1.1
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Irina Bednova, Vasiliy Yorkin
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2013-12-23 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
21
15
|
name: bundler
|
22
|
-
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
24
17
|
none: false
|
25
|
-
requirements:
|
18
|
+
requirements:
|
26
19
|
- - ~>
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
|
29
|
-
segments:
|
30
|
-
- 1
|
31
|
-
- 3
|
32
|
-
version: "1.3"
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '1.3'
|
33
22
|
type: :development
|
34
|
-
version_requirements: *id001
|
35
|
-
- !ruby/object:Gem::Dependency
|
36
|
-
name: rake
|
37
23
|
prerelease: false
|
38
|
-
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '1.3'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: rake
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
39
33
|
none: false
|
40
|
-
requirements:
|
41
|
-
- -
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
|
44
|
-
segments:
|
45
|
-
- 0
|
46
|
-
version: "0"
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
47
38
|
type: :development
|
48
|
-
version_requirements: *id002
|
49
|
-
- !ruby/object:Gem::Dependency
|
50
|
-
name: nokogiri
|
51
39
|
prerelease: false
|
52
|
-
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: nokogiri
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
53
49
|
none: false
|
54
|
-
requirements:
|
50
|
+
requirements:
|
55
51
|
- - ~>
|
56
|
-
- !ruby/object:Gem::Version
|
57
|
-
hash: 7
|
58
|
-
segments:
|
59
|
-
- 1
|
60
|
-
- 4
|
61
|
-
- 0
|
52
|
+
- !ruby/object:Gem::Version
|
62
53
|
version: 1.4.0
|
63
54
|
type: :development
|
64
|
-
version_requirements: *id003
|
65
|
-
- !ruby/object:Gem::Dependency
|
66
|
-
name: rspec
|
67
55
|
prerelease: false
|
68
|
-
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 1.4.0
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: rspec
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
69
65
|
none: false
|
70
|
-
requirements:
|
71
|
-
- -
|
72
|
-
- !ruby/object:Gem::Version
|
73
|
-
|
74
|
-
segments:
|
75
|
-
- 0
|
76
|
-
version: "0"
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
77
70
|
type: :development
|
78
|
-
version_requirements: *id004
|
79
|
-
- !ruby/object:Gem::Dependency
|
80
|
-
name: rspec-xml
|
81
71
|
prerelease: false
|
82
|
-
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: rspec-xml
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
83
81
|
none: false
|
84
|
-
requirements:
|
85
|
-
- -
|
86
|
-
- !ruby/object:Gem::Version
|
87
|
-
|
88
|
-
segments:
|
89
|
-
- 0
|
90
|
-
version: "0"
|
82
|
+
requirements:
|
83
|
+
- - ! '>='
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '0'
|
91
86
|
type: :development
|
92
|
-
version_requirements: *id005
|
93
|
-
- !ruby/object:Gem::Dependency
|
94
|
-
name: wrong
|
95
87
|
prerelease: false
|
96
|
-
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
94
|
+
- !ruby/object:Gem::Dependency
|
95
|
+
name: wrong
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
97
97
|
none: false
|
98
|
-
requirements:
|
99
|
-
- -
|
100
|
-
- !ruby/object:Gem::Version
|
101
|
-
|
102
|
-
segments:
|
103
|
-
- 0
|
104
|
-
version: "0"
|
98
|
+
requirements:
|
99
|
+
- - ! '>='
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '0'
|
105
102
|
type: :development
|
106
|
-
version_requirements: *id006
|
107
|
-
- !ruby/object:Gem::Dependency
|
108
|
-
name: builder
|
109
103
|
prerelease: false
|
110
|
-
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
111
105
|
none: false
|
112
|
-
requirements:
|
113
|
-
- -
|
114
|
-
- !ruby/object:Gem::Version
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
- !ruby/object:Gem::Dependency
|
111
|
+
name: builder
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
114
|
+
requirements:
|
115
|
+
- - ! '>='
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
119
118
|
type: :runtime
|
120
|
-
version_requirements: *id007
|
121
|
-
- !ruby/object:Gem::Dependency
|
122
|
-
name: rubytree
|
123
119
|
prerelease: false
|
124
|
-
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
125
121
|
none: false
|
126
|
-
requirements:
|
127
|
-
- -
|
128
|
-
- !ruby/object:Gem::Version
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
122
|
+
requirements:
|
123
|
+
- - ! '>='
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: rubytree
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
129
|
+
none: false
|
130
|
+
requirements:
|
131
|
+
- - ! '>='
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
version: '0'
|
133
134
|
type: :runtime
|
134
|
-
version_requirements: *id008
|
135
|
-
- !ruby/object:Gem::Dependency
|
136
|
-
name: rubyzip
|
137
135
|
prerelease: false
|
138
|
-
|
136
|
+
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
none: false
|
138
|
+
requirements:
|
139
|
+
- - ! '>='
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: '0'
|
142
|
+
- !ruby/object:Gem::Dependency
|
143
|
+
name: rubyzip
|
144
|
+
requirement: !ruby/object:Gem::Requirement
|
139
145
|
none: false
|
140
|
-
requirements:
|
141
|
-
- -
|
142
|
-
- !ruby/object:Gem::Version
|
143
|
-
hash: 41
|
144
|
-
segments:
|
145
|
-
- 0
|
146
|
-
- 9
|
147
|
-
- 9
|
146
|
+
requirements:
|
147
|
+
- - '='
|
148
|
+
- !ruby/object:Gem::Version
|
148
149
|
version: 0.9.9
|
149
150
|
type: :runtime
|
150
|
-
|
151
|
+
prerelease: false
|
152
|
+
version_requirements: !ruby/object:Gem::Requirement
|
153
|
+
none: false
|
154
|
+
requirements:
|
155
|
+
- - '='
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: 0.9.9
|
151
158
|
description: Ruby docx generator, provides simple DSL for building word documents
|
152
|
-
email:
|
159
|
+
email:
|
153
160
|
- howeveririna@gmail.com, vasiliy.yorkin@gmail.com
|
154
161
|
executables: []
|
155
|
-
|
156
162
|
extensions: []
|
157
|
-
|
158
163
|
extra_rdoc_files: []
|
159
|
-
|
160
|
-
files:
|
164
|
+
files:
|
161
165
|
- .coveralls.yml
|
162
166
|
- .gitignore
|
163
167
|
- .rspec
|
@@ -181,6 +185,9 @@ files:
|
|
181
185
|
- lib/docxtor/generator.rb
|
182
186
|
- lib/docxtor/package/builder.rb
|
183
187
|
- lib/docxtor/package/part.rb
|
188
|
+
- lib/docxtor/reference_builder.rb
|
189
|
+
- lib/docxtor/running_element.rb
|
190
|
+
- lib/docxtor/running_elements_builder.rb
|
184
191
|
- lib/docxtor/template_parser.rb
|
185
192
|
- lib/docxtor/version.rb
|
186
193
|
- spec/docxtor/document/builder_spec.rb
|
@@ -192,61 +199,50 @@ files:
|
|
192
199
|
- spec/docxtor/package/builder_spec.rb
|
193
200
|
- spec/docxtor/package/part_spec.rb
|
194
201
|
- spec/docxtor/prerequisites_spec.rb
|
202
|
+
- spec/docxtor/reference_builder_spec.rb
|
203
|
+
- spec/docxtor/running_element_spec.rb
|
204
|
+
- spec/docxtor/running_elements_builder_spec.rb
|
195
205
|
- spec/docxtor/support/contexts/integration_context.rb
|
196
206
|
- spec/docxtor/support/contexts/xml_builder_context.rb
|
197
|
-
- spec/docxtor/support/examples/.gitkeep
|
198
|
-
- spec/docxtor/support/matchers/wordprocessingml_matchers.rb
|
199
|
-
- spec/docxtor/support/matchers/xpath_matchers.rb
|
200
207
|
- spec/docxtor/template_parser_spec.rb
|
201
208
|
- spec/spec_helper.rb
|
202
209
|
- templates/.gitkeep
|
203
210
|
- templates/default/[Content_Types].xml
|
204
211
|
- templates/default/_rels/.rels
|
205
|
-
- templates/default/
|
206
|
-
- templates/default/
|
207
|
-
- templates/default/word/fontTable.xml
|
208
|
-
- templates/default/word/footer1.xml
|
209
|
-
- templates/default/word/footer2.xml
|
210
|
-
- templates/default/word/footnotes.xml
|
211
|
-
- templates/default/word/numbering.xml
|
212
|
-
- templates/default/word/settings.xml
|
213
|
-
- templates/default/word/styles.xml
|
214
|
-
- templates/default/word/theme/theme1.xml
|
215
|
-
- templates/default/word/websettings.xml
|
212
|
+
- templates/default/docProps/app.xml
|
213
|
+
- templates/default/docProps/core.xml
|
216
214
|
homepage: http://github.com/docxtor/docxtor
|
217
|
-
licenses:
|
215
|
+
licenses:
|
218
216
|
- MIT
|
219
217
|
post_install_message:
|
220
218
|
rdoc_options: []
|
221
|
-
|
222
|
-
require_paths:
|
219
|
+
require_paths:
|
223
220
|
- lib
|
224
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
221
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
225
222
|
none: false
|
226
|
-
requirements:
|
227
|
-
- -
|
228
|
-
- !ruby/object:Gem::Version
|
229
|
-
|
230
|
-
segments:
|
223
|
+
requirements:
|
224
|
+
- - ! '>='
|
225
|
+
- !ruby/object:Gem::Version
|
226
|
+
version: '0'
|
227
|
+
segments:
|
231
228
|
- 0
|
232
|
-
|
233
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
229
|
+
hash: -2610134093399067772
|
230
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
234
231
|
none: false
|
235
|
-
requirements:
|
236
|
-
- -
|
237
|
-
- !ruby/object:Gem::Version
|
238
|
-
|
239
|
-
segments:
|
232
|
+
requirements:
|
233
|
+
- - ! '>='
|
234
|
+
- !ruby/object:Gem::Version
|
235
|
+
version: '0'
|
236
|
+
segments:
|
240
237
|
- 0
|
241
|
-
|
238
|
+
hash: -2610134093399067772
|
242
239
|
requirements: []
|
243
|
-
|
244
240
|
rubyforge_project:
|
245
|
-
rubygems_version: 1.8.
|
241
|
+
rubygems_version: 1.8.23
|
246
242
|
signing_key:
|
247
243
|
specification_version: 3
|
248
244
|
summary: Ruby docx generator
|
249
|
-
test_files:
|
245
|
+
test_files:
|
250
246
|
- spec/docxtor/document/builder_spec.rb
|
251
247
|
- spec/docxtor/document/heading_spec.rb
|
252
248
|
- spec/docxtor/document/paragraph_spec.rb
|
@@ -256,10 +252,10 @@ test_files:
|
|
256
252
|
- spec/docxtor/package/builder_spec.rb
|
257
253
|
- spec/docxtor/package/part_spec.rb
|
258
254
|
- spec/docxtor/prerequisites_spec.rb
|
255
|
+
- spec/docxtor/reference_builder_spec.rb
|
256
|
+
- spec/docxtor/running_element_spec.rb
|
257
|
+
- spec/docxtor/running_elements_builder_spec.rb
|
259
258
|
- spec/docxtor/support/contexts/integration_context.rb
|
260
259
|
- spec/docxtor/support/contexts/xml_builder_context.rb
|
261
|
-
- spec/docxtor/support/examples/.gitkeep
|
262
|
-
- spec/docxtor/support/matchers/wordprocessingml_matchers.rb
|
263
|
-
- spec/docxtor/support/matchers/xpath_matchers.rb
|
264
260
|
- spec/docxtor/template_parser_spec.rb
|
265
261
|
- spec/spec_helper.rb
|