loadfile 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 752facc20baaa2818801edebd9141ea44b9b4829
4
+ data.tar.gz: d7dff27e0136af6fc2305851b0c1d31a72acba25
5
+ SHA512:
6
+ metadata.gz: 11210d5375941ee4f133ec2138ce5c2a8631273d26e03a4ccf54fb6003e34a85669315967da75534783aaaaae7e8c00e53e5e45838bef1c435ba5dca6ee1b916
7
+ data.tar.gz: 87058cc19f9f396498c2e814aca9fe407f9f9a99c7306942149e543531d6537b37e51e1b12e6cfb1d12452c652af051e0a6db08d04eb2389a63ccabf7117e665
@@ -0,0 +1,41 @@
1
+ loadfile
2
+ ---------
3
+ A ruby gem to manipulate
4
+ .opt and .log files for Concordance® / Opticon®,
5
+ .lfp files for Ipro eCap,
6
+ and .dii files for Summation®.
7
+ This software is not made or endorsed by Ipro®, Lexis-Nexis® or Dataflight®."
8
+
9
+ Installation
10
+ ---------
11
+ `gem install loadfile`
12
+
13
+ or, if you want the latest and the greatest,
14
+
15
+ git clone https://github.com/loadfile
16
+ cd loadfile
17
+ rake install
18
+
19
+ (use `sudo` as necessary)
20
+
21
+ Runtime Requirements
22
+ ---------
23
+ ruby >= 1.8.7
24
+
25
+ Build Requirements
26
+ ---------
27
+ rake
28
+
29
+ Inspiration and History
30
+ ---------
31
+ This is the start of converting
32
+ https://github.com/nbirnel/eed-tools
33
+ to ruby.
34
+
35
+ License
36
+ ---------
37
+ © 2014 Noah Birnel
38
+ MIT license
39
+
40
+ [![Build Status](https://travis-ci.org/nbirnel/loadfile.png?branch=master)](https://travis-ci.org/nbirnel/loadfile)
41
+ [![Code Climate](https://codeclimate.com/github/nbirnel/loadfile.png)](https://codeclimate.com/github/nbirnel/loadfile)
@@ -0,0 +1,5 @@
1
+ require 'loadfile/version'
2
+ require 'opticon/opticon'
3
+ require 'opticon/opt_parser'
4
+
5
+
@@ -0,0 +1,3 @@
1
+ module Loadfile
2
+ VERSION = '0.1.0'
3
+ end
@@ -0,0 +1,40 @@
1
+ module Loadfile
2
+
3
+ ##
4
+ # This class converts an opticon text file or data stream to an instance
5
+ # of Opticon
6
+
7
+ class OptParser
8
+
9
+ ##
10
+ # Create a new parser for Opticon
11
+
12
+ def initialize
13
+ @records = []
14
+ end
15
+
16
+ ##
17
+ # Parse text from IO object +input+. It is the caller's responsibility to
18
+ # open and close the +input+ correctly.
19
+
20
+ def parse input
21
+ c_doc = []
22
+ while line = input.gets
23
+ l = line.chomp.split(',')
24
+ c_record = {
25
+ :key => l[0],
26
+ :volume => l[1],
27
+ :path => l[2],
28
+ :break => l[3],
29
+ :empty1 => l[4],
30
+ :empty2 => l[5],
31
+ :pages => l[6],
32
+ }
33
+ @records.push c_record
34
+ end
35
+ Loadfile::Opticon.new @records
36
+ end
37
+
38
+ end
39
+
40
+ end
@@ -0,0 +1,80 @@
1
+ ##
2
+ # classes for manipulating electronic evidence discovery loadfiles
3
+
4
+ module Loadfile
5
+
6
+ ##
7
+ # Represent the data in a Concordance® Opticon® image loadfile.
8
+
9
+ class Opticon
10
+ attr_reader :records
11
+
12
+ ##
13
+ # Create a new opticon composed of +records+.
14
+
15
+ def initialize records
16
+ @records = records
17
+ end
18
+
19
+ ##
20
+ # Return the first and last image keys
21
+
22
+ def beg_end
23
+ b = @records[0][:key]
24
+ e = @records[-1][:key]
25
+ [b, e]
26
+ end
27
+
28
+ ##
29
+ # Return a list of begining and end image keys for each document.
30
+ # FIXME not yet implemented.
31
+
32
+ def beg_end_list
33
+ end
34
+
35
+ ##
36
+ # Return a count of documents.
37
+
38
+ def doc_count
39
+ @records.select{|r| r[:break]}.length
40
+ end
41
+
42
+ ##
43
+ # Return a count of images
44
+
45
+ def image_count
46
+ @records.length
47
+ end
48
+
49
+ ##
50
+ # Return a count of tiffs
51
+
52
+ def tiff_count
53
+ @records.select{|r| r[:path] =~ /\.tif$/}.length
54
+ end
55
+
56
+ ##
57
+ # Return a count of jpegs
58
+
59
+ def jpeg_count
60
+ @records.select{|r| r[:path] =~ /\.jpg$/}.length
61
+ end
62
+
63
+ ##
64
+ # Return a list of volumes
65
+
66
+ def volumes
67
+ @records.map{|r| r[:volume]}.uniq
68
+ end
69
+
70
+ ##
71
+ # Return a new opticon data stream, suitable for loading.
72
+
73
+ def to_s
74
+ l = @records.map{|r| r.values.join ','}
75
+ l.join("\r\n") << "\r\n"
76
+ end
77
+
78
+ end
79
+
80
+ end
@@ -0,0 +1,29 @@
1
+ require "#{File.dirname(__FILE__)}/lib/loadfile/version"
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = 'loadfile'
5
+ s.version = Loadfile::VERSION
6
+ s.date = '2014-03-28'
7
+ s.required_ruby_version = '>=1.8.7'
8
+ s.summary = "manipulate electronic evidence discovery loadfiles"
9
+ s.description = "A ruby gem to manipulate
10
+ .opt and .log files for Concordance® / Opticon®,
11
+ .lfp files for Ipro eCap,
12
+ and .dii files for Summation®.
13
+ This software is not made or endorsed by Ipro®, Lexis-Nexis® or Dataflight®."
14
+ s.authors = ['Noah Birnel']
15
+ s.email = 'nbirnel@gmail.com'
16
+ s.homepage = 'http://github.com/nbirnel/loadfile'
17
+ s.files = [
18
+ 'README.md',
19
+ 'loadfile.gemspec',
20
+ 'lib/loadfile.rb',
21
+ 'lib/loadfile/version.rb',
22
+ 'lib/opticon/opticon.rb',
23
+ 'lib/opticon/opt_parser.rb',
24
+ 'spec/loadfile_spec.rb'
25
+ ]
26
+ s.has_rdoc = true
27
+ s.license = 'MIT'
28
+ end
29
+
@@ -0,0 +1,57 @@
1
+ require "#{File.dirname(__FILE__)}/../lib/loadfile"
2
+
3
+ describe Loadfile do
4
+
5
+ describe Loadfile::Opticon do
6
+
7
+ before do
8
+ @parser = Loadfile::OptParser.new
9
+ @sample = "#{File.dirname(__FILE__)}/../sample/sample.opt"
10
+ @io = File.new(@sample,'r')
11
+ @opt = @parser.parse @io
12
+ end
13
+
14
+ it 'returns a beg - end' do
15
+ @opt.beg_end.should eq ["CTRL-000001", "CTRL-000018"]
16
+ end
17
+
18
+ it 'returns a document count' do
19
+ @opt.doc_count.should eq 3
20
+ end
21
+
22
+ it 'returns an image count' do
23
+ @opt.image_count.should eq 18
24
+ end
25
+
26
+ it 'returns a tiff count' do
27
+ @opt.tiff_count.should eq 17
28
+ end
29
+
30
+ it 'returns a jpeg count' do
31
+ @opt.jpeg_count.should eq 1
32
+ end
33
+
34
+ it 'returns an list of volumes' do
35
+ @opt.volumes.should eq ["SAMPLE_VOLUME_001", "SAMPLE_VOLUME_002"]
36
+ end
37
+
38
+ it 'prints itself' do
39
+ @opt.to_s.length.should eq 1122
40
+ end
41
+
42
+ it 'returns a beg-end list' do
43
+ pending
44
+ @opt.beg_end_list.should eq 'foo'
45
+ end
46
+
47
+ it 'returns an Ipro lfp' do
48
+ pending
49
+ end
50
+
51
+ it 'returns a Summation dii' do
52
+ pending
53
+ end
54
+
55
+ end
56
+
57
+ end
metadata ADDED
@@ -0,0 +1,55 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: loadfile
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Noah Birnel
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-03-28 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: |-
14
+ A ruby gem to manipulate
15
+ .opt and .log files for Concordance® / Opticon®,
16
+ .lfp files for Ipro eCap,
17
+ and .dii files for Summation®.
18
+ This software is not made or endorsed by Ipro®, Lexis-Nexis® or Dataflight®.
19
+ email: nbirnel@gmail.com
20
+ executables: []
21
+ extensions: []
22
+ extra_rdoc_files: []
23
+ files:
24
+ - README.md
25
+ - lib/loadfile.rb
26
+ - lib/loadfile/version.rb
27
+ - lib/opticon/opt_parser.rb
28
+ - lib/opticon/opticon.rb
29
+ - loadfile.gemspec
30
+ - spec/loadfile_spec.rb
31
+ homepage: http://github.com/nbirnel/loadfile
32
+ licenses:
33
+ - MIT
34
+ metadata: {}
35
+ post_install_message:
36
+ rdoc_options: []
37
+ require_paths:
38
+ - lib
39
+ required_ruby_version: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: 1.8.7
44
+ required_rubygems_version: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: '0'
49
+ requirements: []
50
+ rubyforge_project:
51
+ rubygems_version: 2.2.2
52
+ signing_key:
53
+ specification_version: 4
54
+ summary: manipulate electronic evidence discovery loadfiles
55
+ test_files: []