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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fe0567df4a3a8940985484d6884fecc962d45243
4
- data.tar.gz: df20b69632d3ef5ac3e1bcc178b94a9256caf00b
3
+ metadata.gz: 99c5ebc76c48fe2a0befcf287f4ab48bb14f0549
4
+ data.tar.gz: 8c0ab797876521ecb9aa9e7304877d7cb686fa8f
5
5
  SHA512:
6
- metadata.gz: 43af50b1b93e29141fb9044f84bef344a0af5277ed0518483f04345b299577a0516fb4a80ce4eb961c2a898cbabbc1a42871d6122a1d300555f913f436fef148
7
- data.tar.gz: c36ebad06841035a61b7a82f81fc43a75336a0fb6efb2f871c248d6b7f92d0e8cd2b9dce2bd19799b229fb866d95c04c02f3306df85325ef4818c755e44a3501
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, [{:ppt => src_ppt1, :position => 2, :replace => true}, {:ppt => src_ppt2, :position => 5, :replace => true}])
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
- {:ppt => src_ppt1, :position => 2, :replace => true}
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
@@ -22,6 +22,6 @@ Gem::Specification.new do |spec|
22
22
  spec.add_development_dependency 'rake', '~> 10.0'
23
23
  spec.add_development_dependency 'rspec'
24
24
 
25
- spec.add_dependency 'rjb', '1.5.2'
25
+ spec.add_dependency 'rjb', '~> 1.5.2'
26
26
 
27
27
  end
@@ -10,16 +10,22 @@ module Asposeslides
10
10
  slide.getNotesSlide() ? slide.getNotesSlide().getNotesTextFrame().getText() : ''
11
11
  end
12
12
 
13
- def merge_ppts(dest_ppt, src_ppt_options)
14
- destPres = create_ppt(dest_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
- src_ppt = ppt_option[:ppt]
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
@@ -1,3 +1,3 @@
1
1
  module Asposeslides
2
- VERSION = '0.0.1'
2
+ VERSION = '0.0.2'
3
3
  end
@@ -28,28 +28,20 @@ describe 'Asposeslides::Powerpoint' do
28
28
  end
29
29
  end
30
30
 
31
- context 'merge' do
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
- src_ppt = File.join(File.dirname(File.dirname(__FILE__)), 'spec', 'data', 'src_template1.pptx')
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(src_ppt)
37
+ ppt2 = create_ppt(src_ppt1)
38
38
 
39
- merged_ppt = merge_ppts(dest_ppt, [{:ppt => src_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
- it 'should insert slides from source presentation into destination presentation at a given position' do
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 = merge_ppts(dest_ppt, [{:ppt => src_ppt, :position => 4, :replace => true}])
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 = merge_ppts(dest_ppt, [{:ppt => src_ppt1, :position => 2, :replace => true}, {:ppt => src_ppt2, :position => 5, :replace => true}])
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 = merge_ppts(dest_ppt, [{:ppt => src_ppt1, :position => 2}, {:ppt => src_ppt2, :position => 5}])
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.1
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-06 00:00:00.000000000 Z
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