asposeslides 0.0.1 → 0.0.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 +4 -4
- data/README.md +2 -2
- data/asposeslides.gemspec +1 -1
- data/lib/asposeslides/powerpoint.rb +22 -4
- data/lib/asposeslides/version.rb +1 -1
- data/spec/powerpoint_spec.rb +12 -17
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 99c5ebc76c48fe2a0befcf287f4ab48bb14f0549
|
4
|
+
data.tar.gz: 8c0ab797876521ecb9aa9e7304877d7cb686fa8f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2972ce2a28cd57bc15a94b0a7e71859b4c9310ee6b6a520ac460dfa448c9c54dc80a4cfdbcd0e00a39889763aab7f8fc1ed9215db29e297779ac532d0377e18b
|
7
|
+
data.tar.gz: b89d42ebecafda50ac916771b3185f26a1d0f59a74a5259022277993cba5fbce8009181f9bbaba3dff59f3a965cd6586e5f4b37660d3866a0de0a97a48976851
|
data/README.md
CHANGED
@@ -41,7 +41,7 @@ initialize_aspose
|
|
41
41
|
dest_ppt = File.join('dest_template.pptx')
|
42
42
|
src_ppt1 = File.join('src_template1.pptx')
|
43
43
|
src_ppt2 = File.join('src_template2.pptx')
|
44
|
-
merged_ppt = merge_ppts(dest_ppt, [{:
|
44
|
+
merged_ppt = merge_ppts(dest_ppt, [{:ppts => [src_ppt1], :position => 2, :replace => true}, {:ppts => [src_ppt2], :position => 5, :replace => true}])
|
45
45
|
merged_ppt.save("merged.pptx",3)
|
46
46
|
```
|
47
47
|
|
@@ -56,7 +56,7 @@ Lets understand the above code
|
|
56
56
|
* dest_ppt : this is the ppt in which you want merge other ppts
|
57
57
|
* The second option is an array of src_ppt hashes. The hash is as follows
|
58
58
|
```ruby
|
59
|
-
{:
|
59
|
+
{:ppts => [src_ppt1], :position => 2, :replace => true}
|
60
60
|
```
|
61
61
|
* :ppt parameter represents the ppt that needs to be merged with dest_ppt.
|
62
62
|
* :position parameter represents the index of the dest_ppt at which the slides form src_ppt needs to be inserted
|
data/asposeslides.gemspec
CHANGED
@@ -10,16 +10,22 @@ module Asposeslides
|
|
10
10
|
slide.getNotesSlide() ? slide.getNotesSlide().getNotesTextFrame().getText() : ''
|
11
11
|
end
|
12
12
|
|
13
|
-
def
|
14
|
-
destPres = create_ppt(
|
13
|
+
def merge_ppts_into_template(dest_ppt_path, src_ppt_options)
|
14
|
+
destPres = create_ppt(dest_ppt_path)
|
15
15
|
offset_position = 0
|
16
16
|
|
17
17
|
src_ppt_options.each do |ppt_option|
|
18
|
-
|
18
|
+
src_ppt_paths = ppt_option[:ppts]
|
19
|
+
|
20
|
+
if src_ppt_paths && src_ppt_paths.size > 0
|
21
|
+
srcPres = merge_ppt_files(src_ppt_paths)
|
22
|
+
else
|
23
|
+
next
|
24
|
+
end
|
25
|
+
|
19
26
|
position = ppt_option[:position]
|
20
27
|
replace = ppt_option[:replace]
|
21
28
|
|
22
|
-
srcPres = create_ppt(src_ppt)
|
23
29
|
dest_slides = destPres.getSlides()
|
24
30
|
src_slides = srcPres.getSlides()
|
25
31
|
|
@@ -36,5 +42,17 @@ module Asposeslides
|
|
36
42
|
destPres
|
37
43
|
end
|
38
44
|
|
45
|
+
def merge_ppt_files(ppt_paths)
|
46
|
+
merged_ppt = create_ppt()
|
47
|
+
merged_ppt_slides = merged_ppt.getSlides()
|
48
|
+
ppt_paths.each do |ppt_path|
|
49
|
+
ppt = create_ppt(ppt_path)
|
50
|
+
slides = ppt.getSlides()
|
51
|
+
(0..slides.toArray().length-1).map{|i| merged_ppt_slides.addClone(slides.get_Item(i))}
|
52
|
+
end
|
53
|
+
merged_ppt.getSlides().remove(merged_ppt.getSlides().get_Item(0))
|
54
|
+
merged_ppt
|
55
|
+
end
|
56
|
+
|
39
57
|
end
|
40
58
|
end
|
data/lib/asposeslides/version.rb
CHANGED
data/spec/powerpoint_spec.rb
CHANGED
@@ -28,28 +28,20 @@ describe 'Asposeslides::Powerpoint' do
|
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
31
|
-
context '
|
31
|
+
context 'merge_ppt_files' do
|
32
32
|
it 'should append given source presentation into destination presentation' do
|
33
33
|
dest_ppt = File.join(File.dirname(File.dirname(__FILE__)), 'spec', 'data', 'dest_template.pptx')
|
34
|
-
|
34
|
+
src_ppt1 = File.join(File.dirname(File.dirname(__FILE__)), 'spec', 'data', 'src_template1.pptx')
|
35
35
|
|
36
36
|
ppt1 = create_ppt(dest_ppt)
|
37
|
-
ppt2 = create_ppt(
|
37
|
+
ppt2 = create_ppt(src_ppt1)
|
38
38
|
|
39
|
-
merged_ppt =
|
39
|
+
merged_ppt = merge_ppt_files([dest_ppt, src_ppt1])
|
40
40
|
expect(merged_ppt.getSlides().toArray().length).to eq(ppt1.getSlides().toArray().length + ppt2.getSlides().toArray().length)
|
41
41
|
end
|
42
|
+
end
|
42
43
|
|
43
|
-
|
44
|
-
dest_ppt = File.join(File.dirname(File.dirname(__FILE__)), 'spec', 'data', 'dest_template.pptx')
|
45
|
-
src_ppt = File.join(File.dirname(File.dirname(__FILE__)), 'spec', 'data', 'src_template1.pptx')
|
46
|
-
|
47
|
-
ppt1 = create_ppt(dest_ppt)
|
48
|
-
ppt2 = create_ppt(src_ppt)
|
49
|
-
|
50
|
-
merged_ppt = merge_ppts(dest_ppt, [{:ppt => src_ppt, :position => 4}])
|
51
|
-
expect(merged_ppt.getSlides().toArray().length).to eq(ppt1.getSlides().toArray().length + ppt2.getSlides().toArray().length)
|
52
|
-
end
|
44
|
+
context 'merge_ppts_into_template' do
|
53
45
|
|
54
46
|
it 'should replace a slide at a given position in destination presentation with slides from source presentation' do
|
55
47
|
dest_ppt = File.join(File.dirname(File.dirname(__FILE__)), 'spec', 'data', 'dest_template.pptx')
|
@@ -58,7 +50,7 @@ describe 'Asposeslides::Powerpoint' do
|
|
58
50
|
ppt1 = create_ppt(dest_ppt)
|
59
51
|
ppt2 = create_ppt(src_ppt)
|
60
52
|
|
61
|
-
merged_ppt =
|
53
|
+
merged_ppt = merge_ppts_into_template(dest_ppt, [{:ppts => [src_ppt], :position => 4, :replace => true}])
|
62
54
|
expect(merged_ppt.getSlides().toArray().length).to eq((ppt1.getSlides().toArray().length + ppt2.getSlides().toArray().length) - 1)
|
63
55
|
end
|
64
56
|
|
@@ -71,11 +63,14 @@ describe 'Asposeslides::Powerpoint' do
|
|
71
63
|
ppt2 = create_ppt(src_ppt1)
|
72
64
|
ppt3 = create_ppt(src_ppt2)
|
73
65
|
|
74
|
-
merged_ppt =
|
66
|
+
merged_ppt = merge_ppts_into_template(dest_ppt, [{:ppts => [src_ppt1], :position => 2, :replace => true}, {:ppts => [src_ppt2], :position => 5, :replace => true}])
|
75
67
|
expect(merged_ppt.getSlides().toArray().length).to eq((ppt1.getSlides().toArray().length + ppt2.getSlides().toArray().length + ppt3.getSlides().toArray().length) - 2)
|
76
68
|
|
77
|
-
merged_ppt =
|
69
|
+
merged_ppt = merge_ppts_into_template(dest_ppt, [{:ppts => [src_ppt1], :position => 2}, {:ppts => [src_ppt2], :position => 5}])
|
78
70
|
expect(merged_ppt.getSlides().toArray().length).to eq((ppt1.getSlides().toArray().length + ppt2.getSlides().toArray().length + ppt3.getSlides().toArray().length))
|
71
|
+
|
72
|
+
merged_ppt = merge_ppts_into_template(dest_ppt, [{:ppts => [src_ppt1, src_ppt2], :position => 2, :replace => true}, {:ppts => [src_ppt2, src_ppt1], :position => 5, :replace => true}])
|
73
|
+
expect(merged_ppt.getSlides().toArray().length).to eq((ppt2.getSlides().toArray().length * 2) + (ppt3.getSlides().toArray().length * 2) + ppt1.getSlides().toArray().length - 2)
|
79
74
|
end
|
80
75
|
end
|
81
76
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: asposeslides
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sanjeev Mishra
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-01-
|
11
|
+
date: 2015-01-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -56,14 +56,14 @@ dependencies:
|
|
56
56
|
name: rjb
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: 1.5.2
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: 1.5.2
|
69
69
|
description: asposeslides is a Ruby gem that can help working with aspose libraries
|