asposeslides 0.0.1 → 0.0.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: 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