hydra-file_characterization 0.2.1 → 0.2.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
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: cff05141ecefe9beaec133587dda6bef344e10b7
|
4
|
+
data.tar.gz: 9479e89d684e59174fd1323e4ee1885495937a27
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 2275213d1646d9ca4c346bcb22bec3df42e37bced35e984d65615c87796d37a91389d4bfb3b5f90f1dd90ce18c134bf548be2925825ebe65b168d8112eb0210d
|
7
|
+
data.tar.gz: f732e2aed7c2a5d5b39a11d8caa698f2e73fd8944eab7772b4acfe6cc8988fbef6c110de6db37c178a3b1f820017b67aab7f066982d43290c9313f89b3af5ab8
|
data/README.md
CHANGED
@@ -21,7 +21,7 @@ You can call a single characterizer…
|
|
21
21
|
xml_string = Hydra::FileCharacterization.characterize(contents_of_a_file, 'file.rb', :fits)
|
22
22
|
```
|
23
23
|
|
24
|
-
…for this particular call, you can specify custom fits path
|
24
|
+
…for this particular call, you can specify custom fits path…
|
25
25
|
|
26
26
|
```ruby
|
27
27
|
xml_string = Hydra::FileCharacterization.characterize(contents_of_a_file, 'file.rb', :fits) do |config|
|
@@ -29,6 +29,14 @@ xml_string = Hydra::FileCharacterization.characterize(contents_of_a_file, 'file.
|
|
29
29
|
end
|
30
30
|
```
|
31
31
|
|
32
|
+
…or even make the path callable
|
33
|
+
|
34
|
+
```ruby
|
35
|
+
xml_string = Hydra::FileCharacterization.characterize(contents_of_a_file, 'file.rb', :fits) do |config|
|
36
|
+
config[:fits] = lambda {|filename| … }
|
37
|
+
end
|
38
|
+
```
|
39
|
+
|
32
40
|
You can also call multiple characterizers at the same time.
|
33
41
|
|
34
42
|
```ruby
|
@@ -18,6 +18,21 @@ module Hydra::FileCharacterization
|
|
18
18
|
unless File.exists?(filename)
|
19
19
|
raise Hydra::FileCharacterization::FileNotFoundError.new("File: #{filename} does not exist.")
|
20
20
|
end
|
21
|
+
|
22
|
+
if tool_path.respond_to?(:call)
|
23
|
+
tool_path.call(filename)
|
24
|
+
else
|
25
|
+
internal_call
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def tool_path
|
30
|
+
@tool_path || self.class.tool_path || (raise Hydra::FileCharacterization::UnspecifiedToolPathError.new(self.class))
|
31
|
+
end
|
32
|
+
|
33
|
+
protected
|
34
|
+
|
35
|
+
def internal_call
|
21
36
|
stdin, stdout, stderr, wait_thr = popen3(command)
|
22
37
|
begin
|
23
38
|
out = stdout.read
|
@@ -32,12 +47,6 @@ module Hydra::FileCharacterization
|
|
32
47
|
end
|
33
48
|
end
|
34
49
|
|
35
|
-
def tool_path
|
36
|
-
@tool_path || self.class.tool_path || (raise Hydra::FileCharacterization::UnspecifiedToolPathError.new(self.class))
|
37
|
-
end
|
38
|
-
|
39
|
-
protected
|
40
|
-
|
41
50
|
def command
|
42
51
|
raise NotImplementedError, "Method #command should be overriden in child classes"
|
43
52
|
end
|
@@ -1,5 +1,4 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
-
require 'hydra/file_characterization/characterizer'
|
3
2
|
|
4
3
|
module Hydra::FileCharacterization
|
5
4
|
describe Characterizer do
|
@@ -14,25 +13,43 @@ module Hydra::FileCharacterization
|
|
14
13
|
Hydra::FileCharacterization::Characterizer.tool_path = nil
|
15
14
|
end
|
16
15
|
|
17
|
-
context '
|
18
|
-
|
19
|
-
|
16
|
+
context 'call' do
|
17
|
+
context 'with missing file' do
|
18
|
+
let(:filename) { '/dev/path/to/bogus/file' }
|
19
|
+
it 'should raise FileNotFoundError' do
|
20
|
+
expect { subject.call }.to raise_error(FileNotFoundError)
|
21
|
+
end
|
22
|
+
end
|
20
23
|
|
21
|
-
|
24
|
+
context 'with a callable tool path' do
|
25
|
+
let(:class_tool_path) { lambda { |filename| [filename, :output] }}
|
26
|
+
it 'should raise FileNotFoundError' do
|
27
|
+
expect(subject.call).to eq [filename, :output]
|
28
|
+
end
|
29
|
+
end
|
22
30
|
end
|
23
31
|
|
24
|
-
context '
|
25
|
-
|
26
|
-
|
32
|
+
context 'tool_path' do
|
33
|
+
context 'with custom instance tool_path' do
|
34
|
+
let(:instance_tool_path) { '/arbitrary/path' }
|
35
|
+
let(:class_tool_path) { '/a_different/path' }
|
27
36
|
|
28
|
-
|
29
|
-
|
37
|
+
its(:tool_path) { should eq instance_tool_path}
|
38
|
+
end
|
39
|
+
|
40
|
+
context 'with custom class tool_path' do
|
41
|
+
let(:instance_tool_path) { nil }
|
42
|
+
let(:class_tool_path) { '/a_different/path' }
|
43
|
+
|
44
|
+
its(:tool_path) { should eq class_tool_path}
|
45
|
+
end
|
30
46
|
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
47
|
+
context 'without a specified tool_path' do
|
48
|
+
it 'should raise Hydra::FileCharacterization::UnspecifiedToolPathError' do
|
49
|
+
expect {
|
50
|
+
subject.tool_path
|
51
|
+
}.to raise_error(Hydra::FileCharacterization::UnspecifiedToolPathError)
|
52
|
+
end
|
36
53
|
end
|
37
54
|
end
|
38
55
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -5,6 +5,11 @@
|
|
5
5
|
#
|
6
6
|
# See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
|
7
7
|
|
8
|
+
GEM_ROOT = File.expand_path("../../", __FILE__)
|
9
|
+
$:.unshift File.join(GEM_ROOT, "lib")
|
10
|
+
|
11
|
+
require 'hydra/file_characterization'
|
12
|
+
|
8
13
|
module SpecSupport
|
9
14
|
def fixture_file(filename)
|
10
15
|
File.expand_path(File.join('../fixtures', filename), __FILE__)
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hydra-file_characterization
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
5
|
-
prerelease:
|
4
|
+
version: 0.2.2
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- James Treacy
|
@@ -17,65 +16,57 @@ dependencies:
|
|
17
16
|
- !ruby/object:Gem::Dependency
|
18
17
|
name: activesupport
|
19
18
|
requirement: !ruby/object:Gem::Requirement
|
20
|
-
none: false
|
21
19
|
requirements:
|
22
|
-
- -
|
20
|
+
- - '>='
|
23
21
|
- !ruby/object:Gem::Version
|
24
22
|
version: 3.0.0
|
25
23
|
type: :runtime
|
26
24
|
prerelease: false
|
27
25
|
version_requirements: !ruby/object:Gem::Requirement
|
28
|
-
none: false
|
29
26
|
requirements:
|
30
|
-
- -
|
27
|
+
- - '>='
|
31
28
|
- !ruby/object:Gem::Version
|
32
29
|
version: 3.0.0
|
33
30
|
- !ruby/object:Gem::Dependency
|
34
31
|
name: rspec
|
35
32
|
requirement: !ruby/object:Gem::Requirement
|
36
|
-
none: false
|
37
33
|
requirements:
|
38
|
-
- -
|
34
|
+
- - '>='
|
39
35
|
- !ruby/object:Gem::Version
|
40
36
|
version: '0'
|
41
37
|
type: :development
|
42
38
|
prerelease: false
|
43
39
|
version_requirements: !ruby/object:Gem::Requirement
|
44
|
-
none: false
|
45
40
|
requirements:
|
46
|
-
- -
|
41
|
+
- - '>='
|
47
42
|
- !ruby/object:Gem::Version
|
48
43
|
version: '0'
|
49
44
|
- !ruby/object:Gem::Dependency
|
50
45
|
name: guard
|
51
46
|
requirement: !ruby/object:Gem::Requirement
|
52
|
-
none: false
|
53
47
|
requirements:
|
54
|
-
- -
|
48
|
+
- - '>='
|
55
49
|
- !ruby/object:Gem::Version
|
56
50
|
version: '0'
|
57
51
|
type: :development
|
58
52
|
prerelease: false
|
59
53
|
version_requirements: !ruby/object:Gem::Requirement
|
60
|
-
none: false
|
61
54
|
requirements:
|
62
|
-
- -
|
55
|
+
- - '>='
|
63
56
|
- !ruby/object:Gem::Version
|
64
57
|
version: '0'
|
65
58
|
- !ruby/object:Gem::Dependency
|
66
59
|
name: guard-rspec
|
67
60
|
requirement: !ruby/object:Gem::Requirement
|
68
|
-
none: false
|
69
61
|
requirements:
|
70
|
-
- -
|
62
|
+
- - '>='
|
71
63
|
- !ruby/object:Gem::Version
|
72
64
|
version: '0'
|
73
65
|
type: :development
|
74
66
|
prerelease: false
|
75
67
|
version_requirements: !ruby/object:Gem::Requirement
|
76
|
-
none: false
|
77
68
|
requirements:
|
78
|
-
- -
|
69
|
+
- - '>='
|
79
70
|
- !ruby/object:Gem::Version
|
80
71
|
version: '0'
|
81
72
|
description: To provide a wrapper for file characterization
|
@@ -122,27 +113,26 @@ files:
|
|
122
113
|
homepage: https://github.com/projecthydra/hydra-file_characterization
|
123
114
|
licenses:
|
124
115
|
- APACHE2
|
116
|
+
metadata: {}
|
125
117
|
post_install_message:
|
126
118
|
rdoc_options: []
|
127
119
|
require_paths:
|
128
120
|
- lib
|
129
121
|
required_ruby_version: !ruby/object:Gem::Requirement
|
130
|
-
none: false
|
131
122
|
requirements:
|
132
|
-
- -
|
123
|
+
- - '>='
|
133
124
|
- !ruby/object:Gem::Version
|
134
125
|
version: '0'
|
135
126
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
136
|
-
none: false
|
137
127
|
requirements:
|
138
|
-
- -
|
128
|
+
- - '>='
|
139
129
|
- !ruby/object:Gem::Version
|
140
130
|
version: '0'
|
141
131
|
requirements: []
|
142
132
|
rubyforge_project:
|
143
|
-
rubygems_version:
|
133
|
+
rubygems_version: 2.0.7
|
144
134
|
signing_key:
|
145
|
-
specification_version:
|
135
|
+
specification_version: 4
|
146
136
|
summary: To provide a wrapper for file characterization
|
147
137
|
test_files:
|
148
138
|
- spec/fixtures/archive.zip
|
@@ -158,4 +148,3 @@ test_files:
|
|
158
148
|
- spec/lib/hydra/file_characterization/to_temp_file_spec.rb
|
159
149
|
- spec/lib/hydra/file_characterization_spec.rb
|
160
150
|
- spec/spec_helper.rb
|
161
|
-
has_rdoc:
|