slaw 0.3.2 → 0.4.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.
- checksums.yaml +4 -4
- data/README.md +6 -2
- data/bin/slaw +36 -0
- data/lib/slaw/parse/builder.rb +3 -3
- data/lib/slaw/version.rb +1 -1
- data/slaw.gemspec +1 -0
- metadata +20 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 017be61dfca724d0875193ce8043557300bb1a45
|
4
|
+
data.tar.gz: b42b32a4e9eb80761b856e343d0c2c278c934adb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b2654b2c2242caff29794f601bfcccd8b6898ed1879e0ccf35bbdebfc3ed511bf68cbf2d5ad63eb4c6b3c898cbe9674686c1e4233198aa4e8ae85192ac6c63d1
|
7
|
+
data.tar.gz: ffd5e6fa31da9d4fb9c3766fcd850994418a108fb364eac9eab873b394ea0c9ba50c039deeffd5abd94eeeee7c5068c4399faf8503006d4795aa3a5990e33528
|
data/README.md
CHANGED
@@ -31,12 +31,16 @@ Or install it with:
|
|
31
31
|
To run PDF extraction you will also need [xpdf](http://www.foolabs.com/xpdf/) and
|
32
32
|
If you're on a Mac, you can use:
|
33
33
|
|
34
|
-
brew install xpdf
|
34
|
+
$ brew install xpdf
|
35
35
|
|
36
36
|
You may also need Ghostscript to remove password protection from PDF files. This is
|
37
37
|
installed by default on most systems (including Mac). On Ubuntu you can use:
|
38
38
|
|
39
|
-
sudo apt-get install ghostscript
|
39
|
+
$ sudo apt-get install ghostscript
|
40
|
+
|
41
|
+
The simplest way to use Slaw is via the commandline:
|
42
|
+
|
43
|
+
$ slaw convert myfile.pdf
|
40
44
|
|
41
45
|
## Overview
|
42
46
|
|
data/bin/slaw
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'thor'
|
4
|
+
require 'slaw'
|
5
|
+
|
6
|
+
class SlawCLI < Thor
|
7
|
+
desc "convert FILE", "convert FILE into Akoma Ntoso XML"
|
8
|
+
option :input, enum: ['text', 'pdf'], desc: "Type of input, determined by file extension by default."
|
9
|
+
option :output, enum: ['text', 'xml'], default: 'xml', desc: "Type of output required."
|
10
|
+
|
11
|
+
# TODO: support different grammars and locales
|
12
|
+
|
13
|
+
def convert(name)
|
14
|
+
extractor = Slaw::Extract::Extractor.new
|
15
|
+
|
16
|
+
case options[:input]
|
17
|
+
when 'pdf'
|
18
|
+
text = extractor.extract_from_pdf(name)
|
19
|
+
when 'text'
|
20
|
+
text = extractor.extract_from_text(name)
|
21
|
+
else
|
22
|
+
text = extractor.extract_from_file(name)
|
23
|
+
end
|
24
|
+
|
25
|
+
case options[:output]
|
26
|
+
when 'text'
|
27
|
+
puts text
|
28
|
+
when 'xml'
|
29
|
+
generator = Slaw::ZA::BylawGenerator.new
|
30
|
+
bylaw = generator.generate_from_text(text)
|
31
|
+
puts bylaw.to_xml(indent: 2)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
SlawCLI.start(ARGV)
|
data/lib/slaw/parse/builder.rb
CHANGED
@@ -85,9 +85,9 @@ module Slaw
|
|
85
85
|
logger.info("Parsed!")
|
86
86
|
|
87
87
|
if tree.nil?
|
88
|
-
raise Slaw::Parse::ParseError.new(parser.failure_reason || "Couldn't match to grammar",
|
89
|
-
line: parser.failure_line || 0,
|
90
|
-
column: parser.failure_column || 0)
|
88
|
+
raise Slaw::Parse::ParseError.new(@parser.failure_reason || "Couldn't match to grammar",
|
89
|
+
line: @parser.failure_line || 0,
|
90
|
+
column: @parser.failure_column || 0)
|
91
91
|
end
|
92
92
|
|
93
93
|
tree
|
data/lib/slaw/version.rb
CHANGED
data/slaw.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: slaw
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Greg Kempe
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-03-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -108,11 +108,26 @@ dependencies:
|
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: 1.1.10
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: thor
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 0.19.1
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: 0.19.1
|
111
125
|
description: Slaw is a lightweight library for rendering and generating Akoma Ntoso
|
112
126
|
acts from plain text and PDF documents.
|
113
127
|
email:
|
114
128
|
- greg@kempe.net
|
115
|
-
executables:
|
129
|
+
executables:
|
130
|
+
- slaw
|
116
131
|
extensions: []
|
117
132
|
extra_rdoc_files: []
|
118
133
|
files:
|
@@ -122,6 +137,7 @@ files:
|
|
122
137
|
- LICENSE.txt
|
123
138
|
- README.md
|
124
139
|
- Rakefile
|
140
|
+
- bin/slaw
|
125
141
|
- lib/slaw.rb
|
126
142
|
- lib/slaw/act.rb
|
127
143
|
- lib/slaw/bylaw.rb
|
@@ -175,7 +191,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
175
191
|
version: '0'
|
176
192
|
requirements: []
|
177
193
|
rubyforge_project:
|
178
|
-
rubygems_version: 2.
|
194
|
+
rubygems_version: 2.4.6
|
179
195
|
signing_key:
|
180
196
|
specification_version: 4
|
181
197
|
summary: A lightweight library for using Akoma Ntoso acts in Ruby.
|