fileinfo 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +2 -0
- data/README.md +6 -0
- data/lib/file_info.rb +4 -0
- data/lib/file_info/version.rb +1 -1
- data/spec/file_info_spec.rb +7 -0
- data/spec/fixtures/encoding_macroman.csv +2 -0
- data/spec/spec_helper.rb +3 -0
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3003ef10828a21e938e6329915aae768e7231565
|
4
|
+
data.tar.gz: 5d32b96bce981dc1cbcbd0efb437760ba8d318e8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0ef4dff4dfe51878aa0a0d71ecfe6c1b95498f7e65048b38dd735a8dd523d371c91fc912943d698bafcc19d35b2616db94443738fe2a456468a9fdcf1f393708
|
7
|
+
data.tar.gz: ef3b64ace53578d25f5d64d6a9cb08a1e59eb7f169497e61b2ec0f0c112e714535ba5b96300fea40f1fbea50c240cb60ee01d07f0a86470ca21a27d34451cbe3
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
# FileInfo
|
2
2
|
|
3
|
+
[![Gem Version](https://badge.fury.io/rb/fileinfo.png)](http://badge.fury.io/rb/fileinfo)
|
4
|
+
[![Build Status](https://travis-ci.org/rafBM/fileinfo.png?branch=master)](https://travis-ci.org/rafBM/fileinfo)
|
5
|
+
[![Code Climate](https://codeclimate.com/github/rafBM/fileinfo.png)](https://codeclimate.com/github/rafBM/fileinfo)
|
6
|
+
[![Coverage Status](https://coveralls.io/repos/rafBM/fileinfo/badge.png?branch=master)](https://coveralls.io/r/rafBM/fileinfo?branch=master)
|
7
|
+
[![Dependency Status](https://gemnasium.com/rafBM/fileinfo.png)](https://gemnasium.com/rafBM/fileinfo)
|
8
|
+
|
3
9
|
FileInfo detects encoding from strings and files using the [wonderful Unix `file` command](http://en.wikipedia.org/wiki/File_\(command\)).
|
4
10
|
|
5
11
|
## Installation
|
data/lib/file_info.rb
CHANGED
@@ -4,6 +4,8 @@ require 'shellwords'
|
|
4
4
|
require 'tempfile'
|
5
5
|
|
6
6
|
class FileInfo
|
7
|
+
class UnknownEncodingError < StandardError; end
|
8
|
+
|
7
9
|
STRING_REGEX = /: ([^:]+)$/
|
8
10
|
ENCODING_REGEX = /charset=(\S+)/
|
9
11
|
|
@@ -13,6 +15,8 @@ class FileInfo
|
|
13
15
|
|
14
16
|
def encoding
|
15
17
|
@encoding ||= ::Encoding.find(encoding_string)
|
18
|
+
rescue ArgumentError => e
|
19
|
+
raise UnknownEncodingError, e.message
|
16
20
|
end
|
17
21
|
|
18
22
|
def self.load(filename)
|
data/lib/file_info/version.rb
CHANGED
data/spec/file_info_spec.rb
CHANGED
@@ -4,6 +4,7 @@ describe FileInfo do
|
|
4
4
|
let(:ascii_file) { fixture('encoding_ascii.csv') }
|
5
5
|
let(:isolatin_file) { fixture('encoding_isolatin.csv') }
|
6
6
|
let(:isowindows_file) { fixture('encoding_isowindows.csv') }
|
7
|
+
let(:macroman_file) { fixture('encoding_macroman.csv') }
|
7
8
|
let(:utf8_file) { fixture('encoding_utf8.csv') }
|
8
9
|
|
9
10
|
describe '.load' do
|
@@ -47,4 +48,10 @@ describe FileInfo do
|
|
47
48
|
expect(FileInfo.parse(utf8_file.read).encoding).to eq Encoding::UTF_8
|
48
49
|
end
|
49
50
|
end
|
51
|
+
|
52
|
+
describe '#encoding' do
|
53
|
+
it 'raises UnknownEncodingError' do
|
54
|
+
expect { FileInfo.load(macroman_file.path).encoding }.to raise_error(FileInfo::UnknownEncodingError)
|
55
|
+
end
|
56
|
+
end
|
50
57
|
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fileinfo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rafaël Blais Masson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-10-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -75,6 +75,7 @@ files:
|
|
75
75
|
- spec/fixtures/encoding_ascii.csv
|
76
76
|
- spec/fixtures/encoding_isolatin.csv
|
77
77
|
- spec/fixtures/encoding_isowindows.csv
|
78
|
+
- spec/fixtures/encoding_macroman.csv
|
78
79
|
- spec/fixtures/encoding_utf8.csv
|
79
80
|
- spec/spec_helper.rb
|
80
81
|
homepage: http://github.com/rafBM/fileinfo
|
@@ -97,7 +98,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
97
98
|
version: '0'
|
98
99
|
requirements: []
|
99
100
|
rubyforge_project:
|
100
|
-
rubygems_version: 2.
|
101
|
+
rubygems_version: 2.1.9
|
101
102
|
signing_key:
|
102
103
|
specification_version: 4
|
103
104
|
summary: FileInfo detects encoding from strings and files using the wonderful Unix
|
@@ -107,5 +108,6 @@ test_files:
|
|
107
108
|
- spec/fixtures/encoding_ascii.csv
|
108
109
|
- spec/fixtures/encoding_isolatin.csv
|
109
110
|
- spec/fixtures/encoding_isowindows.csv
|
111
|
+
- spec/fixtures/encoding_macroman.csv
|
110
112
|
- spec/fixtures/encoding_utf8.csv
|
111
113
|
- spec/spec_helper.rb
|