hydra-file_characterization 0.2.0 → 0.2.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.
@@ -0,0 +1,113 @@
1
+ # How to Contribute
2
+
3
+ We want your help to make Project Hydra great.
4
+ There are a few guidelines that we need contributors to follow so that we can have a chance of keeping on top of things.
5
+
6
+ ## Hydra Project Intellectual Property Licensing and Ownership
7
+
8
+ All code contributors must have an Individual Contributor License Agreement (iCLA) on file with the Hydra Project Steering Group.
9
+ If the contributor works for an institution, the institution must have a Corporate Contributor License Agreement (cCLA) on file.
10
+
11
+ https://wiki.duraspace.org/display/hydra/Hydra+Project+Intellectual+Property+Licensing+and+Ownership
12
+
13
+ You should also add yourself to the `CONTRIBUTORS.md` file in the root of the project.
14
+
15
+ ## Contribution Tasks
16
+
17
+ * Reporting Issues
18
+ * Making Changes
19
+ * Submitting Changes
20
+ * Merging Changes
21
+
22
+ ### Reporting Issues
23
+
24
+ * Make sure you have a [GitHub account](https://github.com/signup/free)
25
+ * Submit a [Github issue](./issues) by:
26
+ * Clearly describing the issue
27
+ * Provide a descriptive summary
28
+ * Explain the expected behavior
29
+ * Explain the actual behavior
30
+ * Provide steps to reproduce the actual behavior
31
+
32
+ ### Making Changes
33
+
34
+ * Fork the repository on GitHub
35
+ * Create a topic branch from where you want to base your work.
36
+ * This is usually the master branch.
37
+ * To quickly create a topic branch based on master; `git branch fix/master/my_contribution master`
38
+ * Then checkout the new branch with `git checkout fix/master/my_contribution`.
39
+ * Please avoid working directly on the `master` branch.
40
+ * You may find the [hub suite of commands](https://github.com/defunkt/hub) helpful
41
+ * Make commits of logical units.
42
+ * Your commit should include a high level description of your work in HISTORY.textile
43
+ * Check for unnecessary whitespace with `git diff --check` before committing.
44
+ * Make sure your commit messages are [well formed](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html).
45
+ * If you created an issue, you can close it by including "Closes #issue" in your commit message. See [Github's blog post for more details](https://github.com/blog/1386-closing-issues-via-commit-messages)
46
+
47
+ ```
48
+ Present tense short summary (50 characters or less)
49
+
50
+ More detailed description, if necessary. It should be wrapped to 72
51
+ characters. Try to be as descriptive as you can, even if you think that
52
+ the commit content is obvious, it may not be obvious to others. You
53
+ should add such description also if it's already present in bug tracker,
54
+ it should not be necessary to visit a webpage to check the history.
55
+
56
+ Include Closes #<issue-number> when relavent.
57
+
58
+ Description can have multiple paragraphs and you can use code examples
59
+ inside, just indent it with 4 spaces:
60
+
61
+ class PostsController
62
+ def index
63
+ respond_with Post.limit(10)
64
+ end
65
+ end
66
+
67
+ You can also add bullet points:
68
+
69
+ - you can use dashes or asterisks
70
+
71
+ - also, try to indent next line of a point for readability, if it's too
72
+ long to fit in 72 characters
73
+ ```
74
+
75
+ * Make sure you have added the necessary tests for your changes.
76
+ * Run _all_ the tests to assure nothing else was accidentally broken.
77
+ * When you are ready to submit a pull request
78
+
79
+ ### Submitting Changes
80
+
81
+ [Detailed Walkthrough of One Pull Request per Commit](http://ndlib.github.io/practices/one-commit-per-pull-request/)
82
+
83
+ * Read the article ["Using Pull Requests"](https://help.github.com/articles/using-pull-requests) on GitHub.
84
+ * Make sure your branch is up to date with its parent branch (i.e. master)
85
+ * `git checkout master`
86
+ * `git pull --rebase`
87
+ * `git checkout <your-branch>`
88
+ * `git rebase master`
89
+ * It is likely a good idea to run your tests again.
90
+ * Squash the commits for your branch into one commit
91
+ * `git rebase --interactive HEAD~<number-of-commits>` ([See Github help](https://help.github.com/articles/interactive-rebase))
92
+ * To determine the number of commits on your branch: `git log master..<your-branch> --oneline | wc -l`
93
+ * Squashing your branch's changes into one commit is "good form" and helps the person merging your request to see everything that is going on.
94
+ * Push your changes to a topic branch in your fork of the repository.
95
+ * Submit a pull request from your fork to the project.
96
+
97
+ ### Merging Changes
98
+
99
+ * It is considered "poor from" to merge your own request.
100
+ * Please take the time to review the changes and get a sense of what is being changed. Things to consider:
101
+ * Does the commit message explain what is going on?
102
+ * Does the code changes have tests? _Not all changes need new tests, some changes are refactorings_
103
+ * Does the commit contain more than it should? Are two separate concerns being addressed in one commit?
104
+ * Did the Travis tests complete successfully?
105
+ * If you are uncertain, bring other contributors into the conversation by creating a comment that includes their @username.
106
+ * If you like the pull request, but want others to chime in, create a +1 comment and tag a user.
107
+
108
+ # Additional Resources
109
+
110
+ * [General GitHub documentation](http://help.github.com/)
111
+ * [GitHub pull request documentation](http://help.github.com/send-pull-requests/)
112
+ * [Pro Git](http://git-scm.com/book) is both a free and excellent book about Git.
113
+ * [A Git Config for Contributing](http://ndlib.github.io/practices/my-typical-per-project-git-config/)
data/README.md CHANGED
@@ -10,16 +10,30 @@ To provide a wrapper for file characterization
10
10
 
11
11
  If you are using Rails add the following to an initializer (./config/initializers/hydra-file_characterization_config.rb):
12
12
 
13
- Hydra::FileCharacterization.configure do |config|
14
- config.tool_path(:fits, '/path/to/fits')
15
- end
13
+ ```ruby
14
+ Hydra::FileCharacterization.configure do |config|
15
+ config.tool_path(:fits, '/path/to/fits')
16
+ end
17
+ ```
16
18
 
17
- To use the characterizer:
19
+ You can call a single characterizer
20
+ ```ruby
21
+ xml_string = Hydra::FileCharacterization.characterize(contents_of_a_file, 'file.rb', :fits)
22
+ ```
18
23
 
19
- characterization_xml = Hydra.characterize(file.read, file.basename, :fits)
24
+ …for this particular call, you can specify custom fits path.
20
25
 
21
- # This does not work at this point
22
- fits_xml, ffprobe_xml = Hydra.characterize(file.read, file.basename, :fits, :ffprobe)
26
+ ```ruby
27
+ xml_string = Hydra::FileCharacterization.characterize(contents_of_a_file, 'file.rb', :fits) do |config|
28
+ config[:fits] = './really/custom/path/to/fits'
29
+ end
30
+ ```
31
+
32
+ You can also call multiple characterizers at the same time.
33
+
34
+ ```ruby
35
+ fits_xml, ffprobe_xml = Hydra::FileCharacterization.characterize(contents_of_a_file, 'file.rb', :fits, :ffprobe)
36
+ ```
23
37
 
24
38
  * Why `file.read`? To highlight that we want a string. In the case of ActiveFedora, we have a StringIO instead of a file.
25
39
  * Why `file.basename`? In the case of Fits, the characterization takes cues from the extension name.
@@ -27,20 +41,3 @@ To use the characterizer:
27
41
  ## Registering New Characterizers
28
42
 
29
43
  This is possible by adding a characterizer to the `Hydra::FileCharacterization::Characterizers`' namespace.
30
-
31
- ## To Consider
32
-
33
- How others are using the extract_metadata method
34
- - https://github.com/curationexperts/bawstun/blob/ff8142ac043604c11a6f57b03629284bfd3043ea/app/models/generic_file.rb#L173
35
-
36
- ## Todo Steps
37
-
38
- - ~~Given a filename, characterize the file and return a raw XML stream~~
39
- - ~~Provide method for converting a StringIO and original file name to a temp file with comparable, then running the characterizer against the tempfile~~
40
- - ~~Provide a configuration option for the fits path; This would be the default for the characterizer~~
41
- - Update existing Sufia implementation
42
- - Deprecrate Hydra::Derivatives direct method call
43
- - Instead call the characterizer with the content
44
- - Allow characterization services to be chained together
45
- - ~~This would involve renaming the Characterizer to something else (i.e. Characterizers::Fits)~~
46
- - Provide an ActiveFedora Datastream that maps the raw XML stream to a datastructure
@@ -9,28 +9,9 @@ module Hydra
9
9
 
10
10
  module_function
11
11
 
12
- #
13
- # Run all of the specified tools against the given content and filename.
14
- #
15
- # @param [String] content - The contents of the original file
16
- # @param [String] filename - The original file's filename; Some
17
- # characterization tools take hints from the file names
18
- # @param [Array] tool_names - A list of tool names available on the system
19
- #
20
- # @return [String, Array<String>] -
21
- # String - When a single tool_name is given, returns the raw XML as a
22
- # string
23
- # Array<String> - When multiple tool_names are given, returns an equal
24
- # length Array of XML strings
25
- def characterize(content, filename, *tool_names)
26
- tool_outputs = []
27
- tool_names = Array(tool_names).flatten.compact
28
- FileCharacterization::ToTempFile.open(content, filename) do |f|
29
- tool_names.each do |tool_name|
30
- tool_outputs << FileCharacterization.characterize_with(tool_name, f.path)
31
- end
32
- end
33
- tool_names.size == 1 ? tool_outputs.first : tool_outputs
12
+ # A convenience method
13
+ def characterize(*args, &block)
14
+ FileCharacterization.characterize(*args, &block)
34
15
  end
35
16
 
36
17
  module FileCharacterization
@@ -39,6 +20,49 @@ module Hydra
39
20
  attr_accessor :configuration
40
21
  end
41
22
 
23
+ #
24
+ # Run all of the specified tools against the given content and filename.
25
+ #
26
+ # @example
27
+ # xml_string = Hydra::FileCharacterization.characterize(contents_of_a_file, 'file.rb', :fits)
28
+ #
29
+ # @example
30
+ # xml_string = Hydra::FileCharacterization.characterize(contents_of_a_file, 'file.rb', :fits) do |config|
31
+ # config[:fits] = './really/custom/path/to/fits'
32
+ # end
33
+ #
34
+ # @example
35
+ # fits_xml, ffprobe_xml = Hydra::FileCharacterization.characterize(contents_of_a_file, 'file.rb', :fits, :ffprobe)
36
+ #
37
+ # @param [String] content - The contents of the original file
38
+ # @param [String] filename - The original file's filename; Some
39
+ # characterization tools take hints from the file names
40
+ # @param [Hash/Array] tool_names - A list of tool names available on the system
41
+ # if you provide a Hash
42
+ #
43
+ # @return [String, Array<String>] -
44
+ # String - When a single tool_name is given, returns the raw XML as a
45
+ # string
46
+ # Array<String> - When multiple tool_names are given, returns an equal
47
+ # length Array of XML strings
48
+ #
49
+ # @yieldparam [Hash] For any of the specified tool_names, if you add a
50
+ # key to the yieldparam with a value, that value will be used as the path
51
+ #
52
+ # @see Hydra::FileCharacterization.configure
53
+ def self.characterize(content, filename, *tool_names)
54
+ tool_outputs = []
55
+ tool_names = Array(tool_names).flatten.compact
56
+ custom_paths = {}
57
+ yield(custom_paths) if block_given?
58
+ FileCharacterization::ToTempFile.open(content, filename) do |f|
59
+ tool_names.each do |tool_name|
60
+ tool_outputs << FileCharacterization.characterize_with(tool_name, f.path, custom_paths[tool_name])
61
+ end
62
+ end
63
+ tool_names.size == 1 ? tool_outputs.first : tool_outputs
64
+ end
65
+
42
66
  def self.configure
43
67
  self.configuration ||= Configuration.new
44
68
  yield(configuration)
@@ -51,4 +75,4 @@ module Hydra
51
75
  end
52
76
 
53
77
  end
54
- end
78
+ end
@@ -9,8 +9,9 @@ module Hydra::FileCharacterization
9
9
  class_attribute :tool_path
10
10
 
11
11
  attr_reader :filename
12
- def initialize(filename)
12
+ def initialize(filename, tool_path = nil)
13
13
  @filename = filename
14
+ @tool_path = tool_path
14
15
  end
15
16
 
16
17
  def call
@@ -31,14 +32,14 @@ module Hydra::FileCharacterization
31
32
  end
32
33
  end
33
34
 
35
+ def tool_path
36
+ @tool_path || self.class.tool_path || (raise Hydra::FileCharacterization::UnspecifiedToolPathError.new(self.class))
37
+ end
38
+
34
39
  protected
35
40
 
36
41
  def command
37
42
  raise NotImplementedError, "Method #command should be overriden in child classes"
38
43
  end
39
-
40
- def tool_path
41
- self.class.tool_path || (raise Hydra::FileCharacterization::UnspecifiedToolPathError.new(self.class))
42
- end
43
44
  end
44
45
  end
@@ -16,8 +16,8 @@ module Hydra::FileCharacterization
16
16
  tool_name.to_s.gsub(/(?:^|_)([a-z])/) { $1.upcase }
17
17
  end
18
18
 
19
- def characterize_with(tool_name, file_path)
20
- tool_obj = characterizer(tool_name).new(file_path)
19
+ def characterize_with(tool_name, *args)
20
+ tool_obj = characterizer(tool_name).new(*args)
21
21
  tool_obj.call
22
22
  end
23
23
 
@@ -1,5 +1,5 @@
1
1
  module Hydra
2
2
  module FileCharacterization
3
- VERSION = "0.2.0"
3
+ VERSION = "0.2.1"
4
4
  end
5
5
  end
@@ -0,0 +1,39 @@
1
+ require 'spec_helper'
2
+ require 'hydra/file_characterization/characterizer'
3
+
4
+ module Hydra::FileCharacterization
5
+ describe Characterizer do
6
+ let(:filename) { __FILE__ }
7
+ let(:instance_tool_path) { nil }
8
+ let(:class_tool_path) { nil }
9
+
10
+ subject { Hydra::FileCharacterization::Characterizer.new(filename, instance_tool_path) }
11
+ around(:each) do |example|
12
+ Hydra::FileCharacterization::Characterizer.tool_path = class_tool_path
13
+ example.run
14
+ Hydra::FileCharacterization::Characterizer.tool_path = nil
15
+ end
16
+
17
+ context 'with custom instance tool_path' do
18
+ let(:instance_tool_path) { '/arbitrary/path' }
19
+ let(:class_tool_path) { '/a_different/path' }
20
+
21
+ its(:tool_path) { should eq instance_tool_path}
22
+ end
23
+
24
+ context 'with custom class tool_path' do
25
+ let(:instance_tool_path) { nil }
26
+ let(:class_tool_path) { '/a_different/path' }
27
+
28
+ its(:tool_path) { should eq class_tool_path}
29
+ end
30
+
31
+ context 'without a specified tool_path' do
32
+ it 'should raise Hydra::FileCharacterization::UnspecifiedToolPathError' do
33
+ expect {
34
+ subject.tool_path
35
+ }.to raise_error(Hydra::FileCharacterization::UnspecifiedToolPathError)
36
+ end
37
+ end
38
+ end
39
+ end
@@ -4,43 +4,60 @@ require 'hydra/file_characterization/characterizer'
4
4
 
5
5
  module Hydra
6
6
 
7
- describe '.characterize' do
8
- let(:content) { "class Test; end\n" }
9
- let(:filename) { 'test.rb' }
10
- subject { Hydra.characterize(content, filename, tool_names) }
7
+ describe FileCharacterization do
11
8
 
12
- describe 'for fits' do
13
- let(:tool_names) { :fits }
14
- it { should match(/#{'<identity format="Plain text" mimetype="text/plain"'}/) }
15
- end
9
+ describe '.characterize' do
10
+ let(:content) { "class Test; end\n" }
11
+ let(:filename) { 'test.rb' }
12
+ subject { Hydra::FileCharacterization.characterize(content, filename, tool_names) }
16
13
 
17
- describe 'for a bogus tool' do
18
- let(:tool_names) { :cookie_monster }
19
- it {
20
- expect {
21
- subject
22
- }.to raise_error(Hydra::FileCharacterization::ToolNotFoundError)
23
- }
24
- end
14
+ describe 'for fits' do
15
+ let(:tool_names) { [:fits] }
16
+ it { should match(/#{'<identity format="Plain text" mimetype="text/plain"'}/) }
17
+ end
25
18
 
26
- describe 'for a mix of bogus and valid tools' do
27
- let(:tool_names) { [:fits, :cookie_monster] }
28
- it {
29
- expect {
30
- subject
31
- }.to raise_error(Hydra::FileCharacterization::ToolNotFoundError)
32
- }
33
- end
19
+ describe 'with configured path' do
20
+ it {
21
+ response = Hydra::FileCharacterization.characterize(content, filename, :fits) do |config|
22
+ config[:fits] = `which fits || which fits.sh`.strip
23
+ end
24
+ expect(response).to match(/#{'<identity format="Plain text" mimetype="text/plain"'}/)
25
+ }
26
+ end
34
27
 
35
- describe 'for no tools' do
36
- let(:tool_names) { nil }
37
- it { should eq [] }
38
- end
28
+ describe 'with multiple runs' do
29
+ it {
30
+ response_1, response_2, response_3 = Hydra::FileCharacterization.characterize(content, filename, :fits, :fits)
31
+ expect(response_1).to match(/#{'<identity format="Plain text" mimetype="text/plain"'}/)
32
+ expect(response_2).to match(/#{'<identity format="Plain text" mimetype="text/plain"'}/)
33
+ expect(response_3).to be_nil
34
+ }
35
+ end
39
36
 
40
- end
37
+ describe 'for a bogus tool' do
38
+ let(:tool_names) { [:cookie_monster] }
39
+ it {
40
+ expect {
41
+ subject
42
+ }.to raise_error(Hydra::FileCharacterization::ToolNotFoundError)
43
+ }
44
+ end
41
45
 
42
- describe FileCharacterization do
46
+ describe 'for a mix of bogus and valid tools' do
47
+ let(:tool_names) { [:fits, :cookie_monster] }
48
+ it {
49
+ expect {
50
+ subject
51
+ }.to raise_error(Hydra::FileCharacterization::ToolNotFoundError)
52
+ }
53
+ end
54
+
55
+ describe 'for no tools' do
56
+ let(:tool_names) { nil }
57
+ it { should eq [] }
58
+ end
43
59
 
60
+ end
44
61
  describe '.configure' do
45
62
  let(:content) { "class Test; end\n" }
46
63
  let(:filename) { 'test.rb' }
@@ -56,10 +73,10 @@ module Hydra
56
73
  end
57
74
 
58
75
  expect {
59
- Hydra.characterize(content, filename, :fits)
76
+ Hydra::FileCharacterization.characterize(content, filename, :fits)
60
77
  }.to raise_error(Hydra::FileCharacterization::UnspecifiedToolPathError)
61
78
  end
62
79
  end
63
80
 
64
81
  end
65
- end
82
+ end
metadata CHANGED
@@ -1,7 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hydra-file_characterization
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - James Treacy
@@ -11,62 +12,70 @@ authors:
11
12
  autorequire:
12
13
  bindir: bin
13
14
  cert_chain: []
14
- date: 2013-09-19 00:00:00.000000000 Z
15
+ date: 2013-10-10 00:00:00.000000000 Z
15
16
  dependencies:
16
17
  - !ruby/object:Gem::Dependency
17
18
  name: activesupport
18
19
  requirement: !ruby/object:Gem::Requirement
20
+ none: false
19
21
  requirements:
20
- - - '>='
22
+ - - ! '>='
21
23
  - !ruby/object:Gem::Version
22
24
  version: 3.0.0
23
25
  type: :runtime
24
26
  prerelease: false
25
27
  version_requirements: !ruby/object:Gem::Requirement
28
+ none: false
26
29
  requirements:
27
- - - '>='
30
+ - - ! '>='
28
31
  - !ruby/object:Gem::Version
29
32
  version: 3.0.0
30
33
  - !ruby/object:Gem::Dependency
31
34
  name: rspec
32
35
  requirement: !ruby/object:Gem::Requirement
36
+ none: false
33
37
  requirements:
34
- - - '>='
38
+ - - ! '>='
35
39
  - !ruby/object:Gem::Version
36
40
  version: '0'
37
41
  type: :development
38
42
  prerelease: false
39
43
  version_requirements: !ruby/object:Gem::Requirement
44
+ none: false
40
45
  requirements:
41
- - - '>='
46
+ - - ! '>='
42
47
  - !ruby/object:Gem::Version
43
48
  version: '0'
44
49
  - !ruby/object:Gem::Dependency
45
50
  name: guard
46
51
  requirement: !ruby/object:Gem::Requirement
52
+ none: false
47
53
  requirements:
48
- - - '>='
54
+ - - ! '>='
49
55
  - !ruby/object:Gem::Version
50
56
  version: '0'
51
57
  type: :development
52
58
  prerelease: false
53
59
  version_requirements: !ruby/object:Gem::Requirement
60
+ none: false
54
61
  requirements:
55
- - - '>='
62
+ - - ! '>='
56
63
  - !ruby/object:Gem::Version
57
64
  version: '0'
58
65
  - !ruby/object:Gem::Dependency
59
66
  name: guard-rspec
60
67
  requirement: !ruby/object:Gem::Requirement
68
+ none: false
61
69
  requirements:
62
- - - '>='
70
+ - - ! '>='
63
71
  - !ruby/object:Gem::Version
64
72
  version: '0'
65
73
  type: :development
66
74
  prerelease: false
67
75
  version_requirements: !ruby/object:Gem::Requirement
76
+ none: false
68
77
  requirements:
69
- - - '>='
78
+ - - ! '>='
70
79
  - !ruby/object:Gem::Version
71
80
  version: '0'
72
81
  description: To provide a wrapper for file characterization
@@ -81,6 +90,7 @@ extra_rdoc_files: []
81
90
  files:
82
91
  - .gitignore
83
92
  - .rspec
93
+ - CONTRIBUTING.md
84
94
  - Gemfile
85
95
  - Guardfile
86
96
  - LICENSE
@@ -102,6 +112,7 @@ files:
102
112
  - spec/fixtures/brendan_behan.jpeg.fits.xml
103
113
  - spec/fixtures/brendan_broken.dxxd
104
114
  - spec/fixtures/brendan_broken.dxxd.fits.xml
115
+ - spec/lib/hydra/file_characterization/characterizer_spec.rb
105
116
  - spec/lib/hydra/file_characterization/characterizers/ffprobe_spec.rb
106
117
  - spec/lib/hydra/file_characterization/characterizers/fits_spec.rb
107
118
  - spec/lib/hydra/file_characterization/characterizers_spec.rb
@@ -111,26 +122,27 @@ files:
111
122
  homepage: https://github.com/projecthydra/hydra-file_characterization
112
123
  licenses:
113
124
  - APACHE2
114
- metadata: {}
115
125
  post_install_message:
116
126
  rdoc_options: []
117
127
  require_paths:
118
128
  - lib
119
129
  required_ruby_version: !ruby/object:Gem::Requirement
130
+ none: false
120
131
  requirements:
121
- - - '>='
132
+ - - ! '>='
122
133
  - !ruby/object:Gem::Version
123
134
  version: '0'
124
135
  required_rubygems_version: !ruby/object:Gem::Requirement
136
+ none: false
125
137
  requirements:
126
- - - '>='
138
+ - - ! '>='
127
139
  - !ruby/object:Gem::Version
128
140
  version: '0'
129
141
  requirements: []
130
142
  rubyforge_project:
131
- rubygems_version: 2.0.3
143
+ rubygems_version: 1.8.25
132
144
  signing_key:
133
- specification_version: 4
145
+ specification_version: 3
134
146
  summary: To provide a wrapper for file characterization
135
147
  test_files:
136
148
  - spec/fixtures/archive.zip
@@ -139,9 +151,11 @@ test_files:
139
151
  - spec/fixtures/brendan_behan.jpeg.fits.xml
140
152
  - spec/fixtures/brendan_broken.dxxd
141
153
  - spec/fixtures/brendan_broken.dxxd.fits.xml
154
+ - spec/lib/hydra/file_characterization/characterizer_spec.rb
142
155
  - spec/lib/hydra/file_characterization/characterizers/ffprobe_spec.rb
143
156
  - spec/lib/hydra/file_characterization/characterizers/fits_spec.rb
144
157
  - spec/lib/hydra/file_characterization/characterizers_spec.rb
145
158
  - spec/lib/hydra/file_characterization/to_temp_file_spec.rb
146
159
  - spec/lib/hydra/file_characterization_spec.rb
147
160
  - spec/spec_helper.rb
161
+ has_rdoc:
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: 6aa0e27917882868e5356621f163eda7e6ab56a6
4
- data.tar.gz: d3114a797679bcd25bc29f19ae31f70659828016
5
- SHA512:
6
- metadata.gz: 88e44705e2cb908b5732a3f220e90a2544b909834bbe3f96b07ea82c142b31cffaebd38d068493ad84cb0887fe6eec76aeff11e9fd874c116a24fa9295729e3c
7
- data.tar.gz: 6932b2860c71bfb3171f0a952021fe0935121b880ea7fcd3aff5b4c5dd47e551143773f154be0e852f5b637f1f22e3a3a1d1949eaea392b38984793017eb7bb2