pptxt 0.1.0 → 0.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: af8adcaf1ae4e8b2e76aaadff580d8d0ff48534f
4
- data.tar.gz: 3324a84c53ff4ae4865a92530d62875c0a662492
3
+ metadata.gz: 0acefbb422ba5b2b9bc4c0aeac6e5fa00ec53a66
4
+ data.tar.gz: 833dcfaa4f1899be33af1eb5b39b3cbe6de64eaa
5
5
  SHA512:
6
- metadata.gz: fabd38653a74ae682deb4e74e081cca977a50f3cb4186c5b3daba60e98f4f2ffda3e976ec54a003742732fa7f85c8c7a1060d0f06ed56a56b86c472933688469
7
- data.tar.gz: 974f4152ce33df205b76afaa4fd669fb052de111e6ee6fe6f059dc1d01bcb5c025b77a4d3b95401b3cff7088c2cf83b1e081e2e12bffafecebd8f7bb455a6e7b
6
+ metadata.gz: 6911494c23daca9c3643a9848c4512149ea50462d3dc570e33029f329d239fae7dc0703010610c4d42a36c66324117e74829dca64b024683c6c07566fe80c34a
7
+ data.tar.gz: d23b98bb4331f8c086cfb3e9b153f4b41505da3491be7ef87cf3c1ec24094d53aef6e61a7154b7b0dbabe10d9af5cd02c8b726098aea273a58414ea774ff56c7
data/bin/pptxt CHANGED
@@ -4,8 +4,16 @@ require "io/wait"
4
4
  require "optparse"
5
5
  require "pathname"
6
6
  require "pptxt"
7
- require "pptxt_exit_status"
8
- require "pptxt_slide"
7
+
8
+ class PPtxtExit
9
+ GOOD = 0
10
+ INVALID_OPTION = 1
11
+ INVALID_ARGUMENT = 2
12
+ MISSING_ARGUMENT = 3
13
+ EXTRA_ARGUMENTS = 4
14
+ FILE_DOES_NOT_EXIST = 5
15
+ MISSING_UTILITY = 6
16
+ end
9
17
 
10
18
  def parse(args)
11
19
  options = Hash.new
@@ -23,7 +31,7 @@ def parse(args)
23
31
  "Configure git repo to use pptxt"
24
32
  ) do
25
33
  PPtxt.configure_git
26
- exit PPtxtExitStatus::GOOD
34
+ exit PPtxtExit::GOOD
27
35
  end
28
36
 
29
37
  opts.on("-d", "--detailed", "Display full xml") do
@@ -40,12 +48,12 @@ def parse(args)
40
48
  "Configure git to use pptxt globally"
41
49
  ) do
42
50
  PPtxt.configure_git(true)
43
- exit PPtxtExitStatus::GOOD
51
+ exit PPtxtExit::GOOD
44
52
  end
45
53
 
46
54
  opts.on("-h", "--help", "Display this help message") do
47
55
  puts opts
48
- exit PPtxtExitStatus::GOOD
56
+ exit PPtxtExit::GOOD
49
57
  end
50
58
 
51
59
  opts.on("-s", "--slideshow", "Display as slideshow") do
@@ -58,33 +66,33 @@ def parse(args)
58
66
  rescue OptionParser::InvalidOption => e
59
67
  puts e.message
60
68
  puts parser
61
- exit PPtxtExitStatus::INVALID_OPTION
69
+ exit PPtxtExit::INVALID_OPTION
62
70
  rescue OptionParser::InvalidArgument => e
63
71
  puts e.message
64
72
  puts parser
65
- exit PPtxtExitStatus::INVALID_ARGUMENT
73
+ exit PPtxtExit::INVALID_ARGUMENT
66
74
  rescue OptionParser::MissingArgument => e
67
75
  puts e.message
68
76
  puts parser
69
- exit PPtxtExitStatus::MISSING_ARGUMENT
77
+ exit PPtxtExit::MISSING_ARGUMENT
70
78
  end
71
79
 
72
80
  if (args.empty?)
73
81
  puts parser
74
- exit PPtxtExitStatus::MISSING_ARGUMENT
82
+ exit PPtxtExit::MISSING_ARGUMENT
75
83
  elsif (args.length > 1)
76
84
  puts parser
77
- exit PPtxtExitStatus::EXTRA_ARGUMENTS
85
+ exit PPtxtExit::EXTRA_ARGUMENTS
78
86
  end
79
87
 
80
88
  if (!Pathname.new(args[0]).expand_path.exist?)
81
89
  puts "#{args[0]} does not exist!"
82
- exit PPtxtExitStatus::FILE_DOES_NOT_EXIST
90
+ exit PPtxtExit::FILE_DOES_NOT_EXIST
83
91
  end
84
92
 
85
93
  options["pptx"] = args[0].strip
86
94
  if (options["pptx"] == "/dev/null")
87
- exit PPtxtExitStatus::GOOD
95
+ exit PPtxtExit::GOOD
88
96
  end
89
97
 
90
98
  return options
@@ -0,0 +1,2 @@
1
+ class PPtxt::Error < RuntimeError
2
+ end
@@ -0,0 +1,7 @@
1
+ require "pptxt/error"
2
+
3
+ class PPtxt::MissingDependency < PPtxt::Error
4
+ def initialize(tool)
5
+ super("Missing dependency: #{tool}")
6
+ end
7
+ end
@@ -1,4 +1,4 @@
1
- class PPtxtSlide
1
+ class PPtxt::PPtxtSlide
2
2
  def detailed
3
3
  ret = Array.new
4
4
  num_indents = 0
@@ -23,7 +23,7 @@ class PPtxtSlide
23
23
  indents = Array.new(num_indents, " ").join
24
24
  ret.push("#{indents}#{line}")
25
25
  else
26
- raise PPtxtError::UnknownXML.new(line)
26
+ raise PPtxt::UnknownXML.new(line)
27
27
  end
28
28
  end
29
29
 
@@ -40,11 +40,12 @@ class PPtxtSlide
40
40
  end
41
41
 
42
42
  def handle_format(str, format, lvl, list_index)
43
+ filler = Array.new(lvl, " ").join
43
44
  case format
44
45
  when "bullet"
45
- return "#{Array.new(lvl, " ").join}- #{str}"
46
+ return "#{filler}- #{str}"
46
47
  when "number"
47
- return "#{Array.new(lvl, " ").join}#{list_index}. #{str}"
48
+ return "#{filler}#{list_index}. #{str}"
48
49
  else
49
50
  return str
50
51
  end
@@ -103,7 +104,9 @@ class PPtxtSlide
103
104
  @title += " " if (!first_time && was_newline)
104
105
  @title += line[5..-1]
105
106
  elsif (in_subtitle)
106
- @subtitle += " " if (!first_time && was_newline)
107
+ if (!first_time && was_newline)
108
+ @subtitle += " "
109
+ end
107
110
  @subtitle += line[5..-1]
108
111
  elsif(ignore)
109
112
  break
@@ -0,0 +1,7 @@
1
+ require "pptxt/error"
2
+
3
+ class PPtxt::UnknownXML < PPtxt::Error
4
+ def initialize(line)
5
+ super("Unknown line in xml: #{line}")
6
+ end
7
+ end
data/lib/pptxt.rb CHANGED
@@ -1,5 +1,3 @@
1
- require "pptxt_error"
2
- require "pptxt_slide"
3
1
  require "scoobydoo"
4
2
 
5
3
  class PPtxt
@@ -7,7 +5,7 @@ class PPtxt
7
5
 
8
6
  def self.configure_git(global = false)
9
7
  if (ScoobyDoo.where_are_you("git").nil?)
10
- raise PPtxtError::MissingDependency.new("git")
8
+ raise PPtxt::MissingDependency.new("git")
11
9
  end
12
10
 
13
11
  # Configure git
@@ -50,13 +48,15 @@ class PPtxt
50
48
 
51
49
  def create_slides
52
50
  slides = %x(
53
- unzip -l "#{@pptx}" | \grep -E "ppt/slides/[^_]" |
54
- awk '{print $4}' | sort -k 1.17n
51
+ unzip -l "#{@pptx}" | \grep -E "ppt/slides/[^_]" |
52
+ awk '{print $4}' | sort -k 1.17n
55
53
  ).split("\n")
56
54
 
57
55
  count = 0
58
56
  slides.each do |slide|
59
- xml = %x(unzip -qc "#{@pptx}" #{slide}).gsub("<", "\n<")
57
+ xml = %x(
58
+ unzip -qc "#{@pptx}" #{slide}).gsub("<", "\n<"
59
+ )
60
60
  count += 1
61
61
  @slides.push(PPtxtSlide.new(xml, count))
62
62
  end
@@ -68,9 +68,14 @@ class PPtxt
68
68
  @slides = Array.new
69
69
 
70
70
  if (ScoobyDoo.where_are_you("unzip").nil?)
71
- raise PPtxtError::MissingDependency.new("unzip")
71
+ raise PPtxt::MissingDependency.new("unzip")
72
72
  end
73
73
 
74
74
  create_slides
75
75
  end
76
76
  end
77
+
78
+ require "pptxt/error"
79
+ require "pptxt/missing_dependency"
80
+ require "pptxt/slide"
81
+ require "pptxt/unknown_xml"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pptxt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Miles Whittaker
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-06 00:00:00.000000000 Z
11
+ date: 2015-10-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest
@@ -39,7 +39,7 @@ dependencies:
39
39
  version: '0.1'
40
40
  - - ">="
41
41
  - !ruby/object:Gem::Version
42
- version: 0.1.0
42
+ version: 0.1.1
43
43
  type: :runtime
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
@@ -49,7 +49,7 @@ dependencies:
49
49
  version: '0.1'
50
50
  - - ">="
51
51
  - !ruby/object:Gem::Version
52
- version: 0.1.0
52
+ version: 0.1.1
53
53
  description: This gem can extract the xml info from a pptx and convert to human-readable
54
54
  text. It was intended to be used with git for seeing changes between revisions.
55
55
  email: mjwhitta@gmail.com
@@ -60,9 +60,10 @@ extra_rdoc_files: []
60
60
  files:
61
61
  - bin/pptxt
62
62
  - lib/pptxt.rb
63
- - lib/pptxt_error.rb
64
- - lib/pptxt_exit_status.rb
65
- - lib/pptxt_slide.rb
63
+ - lib/pptxt/error.rb
64
+ - lib/pptxt/missing_dependency.rb
65
+ - lib/pptxt/slide.rb
66
+ - lib/pptxt/unknown_xml.rb
66
67
  homepage: http://mjwhitta.github.io/pptxt
67
68
  licenses:
68
69
  - GPL-3.0
data/lib/pptxt_error.rb DELETED
@@ -1,16 +0,0 @@
1
- module PPtxtError
2
- class Error < RuntimeError
3
- end
4
-
5
- class MissingDependency < Error
6
- def initialize(tool)
7
- super("Missing dependency: #{tool}")
8
- end
9
- end
10
-
11
- class UnknownXML < Error
12
- def initialize(line)
13
- super("Unknown line in xml: #{line}")
14
- end
15
- end
16
- end
@@ -1,9 +0,0 @@
1
- class PPtxtExitStatus
2
- GOOD = 0
3
- INVALID_OPTION = 1
4
- INVALID_ARGUMENT = 2
5
- MISSING_ARGUMENT = 3
6
- EXTRA_ARGUMENTS = 4
7
- FILE_DOES_NOT_EXIST = 5
8
- MISSING_UTILITY = 6
9
- end