filetype 0.2.0 → 1.0.0

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
+ SHA256:
3
+ metadata.gz: 4a56c7ff8c99578de57f5c70bc4e29e14f163839860edbfb9064e89d6c32d88a
4
+ data.tar.gz: 877cc1dc0f8584fb0e824914af1d2e2ac08f15efc66ed085d23b8ff989b39a74
5
+ SHA512:
6
+ metadata.gz: d7f2b4bfb8ebb254c827303f7faa7cae1e590e7262f426f9ed0fc0ba46404c5d8fb25b32edd5adafb2dd3464f70750b3dcb59280064541f7230295410a56e3ef
7
+ data.tar.gz: cb5f20e546c4ce6cb3337b4ba9f5915630c9d1a1f769ce41a6f9024795df22c053792b5ec05dfb91e230c40a17f56603c0c123c1958660d919cc84bc656ad4c6
data/lib/filetype.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  module Filetype
2
2
  module_function
3
3
 
4
- VERSION = '0.2.0'
4
+ VERSION = '1.0.0'
5
5
 
6
6
  FTYPES = {
7
7
  :actionscript => %w[ as mxml ],
@@ -16,10 +16,14 @@ module Filetype
16
16
  :csharp => %w[ cs ],
17
17
  :css => %w[ css ],
18
18
  :diff => %w[ diff patch ],
19
+ :docker => /\A[Dd]ockerfile(?:\.\w+)?\z/,
19
20
  :elisp => %w[ el ],
21
+ :epub => %w[ epub ],
20
22
  :erb => %w[ rhtml erb ],
21
23
  :erlang => %w[ erl hrl ],
22
24
  :exe => %w[ exe ],
25
+ :forth => %w[ 4th ],
26
+ :fsharp => %w[ fs ],
23
27
  :gem => %w[ gem ],
24
28
  :go => %w[ go ],
25
29
  :groovy => %w[ groovy gpp grunit gtmpl ],
@@ -66,6 +70,7 @@ module Filetype
66
70
  # Filetype.get('Rakefile') #=> :rake
67
71
  # @return [Symbol] The language found or nil
68
72
  def get(fname)
73
+ fname = File.basename(fname)
69
74
  FTYPES.each do |ftype, rule|
70
75
  case rule
71
76
  when Array
@@ -86,6 +91,7 @@ module Filetype
86
91
  # Filetype.all('foo.h') #=> [:c, :cpp, :objc]
87
92
  # @return [Array] The list of languages found
88
93
  def all(fname)
94
+ fname = File.basename(fname)
89
95
  FTYPES.select do |ftype, rule|
90
96
  ftype if rule.is_a?(Array) && rule.include?(ext(fname))
91
97
  end.keys
@@ -36,7 +36,10 @@ class FileTypeTest < TestCase
36
36
  assert_equal :cpp, Filetype.get('foo.hxx')
37
37
  assert_equal :csharp, Filetype.get('foo.cs')
38
38
  assert_equal :css, Filetype.get('foo.css')
39
+ assert_equal :docker, Filetype.get('Dockerfile')
40
+ assert_equal :docker, Filetype.get('Dockerfile.build')
39
41
  assert_equal :elisp, Filetype.get('foo.el')
42
+ assert_equal :epub, Filetype.get('foo.epub')
40
43
  assert_equal :erb, Filetype.get('foo.rhtml')
41
44
  assert_equal :erb, Filetype.get('foo.erb')
42
45
  assert_equal :erlang, Filetype.get('foo.erl')
@@ -98,6 +101,11 @@ class FileTypeTest < TestCase
98
101
  assert_equal :xsl, Filetype.get('foo.xsl')
99
102
  end
100
103
 
104
+ test 'evaluates filetype against file basename' do
105
+ assert_equal :c, Filetype.get('dockerfile/foo.h')
106
+ assert_equal :sql, Filetype.get('Makefile/blah.sql')
107
+ end
108
+
101
109
  test 'fetching multiple languages of a file name' do
102
110
  assert_equal [:c, :cpp, :objc], Filetype.all('foo.h')
103
111
  assert_empty Filetype.all('foo.aahaha')
@@ -108,4 +116,4 @@ class FileTypeTest < TestCase
108
116
  assert_equal :bar, Filetype.get('hello.foo')
109
117
  end
110
118
 
111
- end
119
+ end
data/test/test_helper.rb CHANGED
@@ -1,4 +1,4 @@
1
- class TestCase < MiniTest::Unit::TestCase
1
+ class TestCase < Minitest::Test
2
2
  def self.test(name, &block)
3
3
  test_name = "test_#{name.gsub(/\s+/, '_')}".to_sym
4
4
  defined = instance_method(test_name) rescue false
@@ -11,4 +11,4 @@ class TestCase < MiniTest::Unit::TestCase
11
11
  end
12
12
  end
13
13
  end
14
- end
14
+ end
metadata CHANGED
@@ -1,31 +1,24 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: filetype
3
- version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 0.2.0
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
6
5
  platform: ruby
7
- authors:
6
+ authors:
8
7
  - Lee Jarvis
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
-
13
- date: 2011-04-28 00:00:00 +01:00
14
- default_executable:
11
+ date: 2021-10-12 00:00:00.000000000 Z
15
12
  dependencies: []
16
-
17
13
  description: Find a file type according to a filename or extension
18
- email:
14
+ email:
19
15
  - lee@jarvis.co
20
16
  executables: []
21
-
22
17
  extensions: []
23
-
24
18
  extra_rdoc_files: []
25
-
26
- files:
27
- - .gemtest
28
- - .gitignore
19
+ files:
20
+ - ".gemtest"
21
+ - ".gitignore"
29
22
  - LICENSE
30
23
  - README.md
31
24
  - Rakefile
@@ -33,34 +26,26 @@ files:
33
26
  - lib/filetype.rb
34
27
  - test/filetype_test.rb
35
28
  - test/test_helper.rb
36
- has_rdoc: true
37
29
  homepage: http://github.com/injekt/filetype
38
30
  licenses: []
39
-
31
+ metadata: {}
40
32
  post_install_message:
41
33
  rdoc_options: []
42
-
43
- require_paths:
34
+ require_paths:
44
35
  - lib
45
- required_ruby_version: !ruby/object:Gem::Requirement
46
- none: false
47
- requirements:
36
+ required_ruby_version: !ruby/object:Gem::Requirement
37
+ requirements:
48
38
  - - ">="
49
- - !ruby/object:Gem::Version
50
- version: "0"
51
- required_rubygems_version: !ruby/object:Gem::Requirement
52
- none: false
53
- requirements:
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ required_rubygems_version: !ruby/object:Gem::Requirement
42
+ requirements:
54
43
  - - ">="
55
- - !ruby/object:Gem::Version
56
- version: "0"
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
57
46
  requirements: []
58
-
59
- rubyforge_project:
60
- rubygems_version: 1.6.2
47
+ rubygems_version: 3.2.9
61
48
  signing_key:
62
- specification_version: 3
49
+ specification_version: 4
63
50
  summary: Find a files type
64
- test_files:
65
- - test/filetype_test.rb
66
- - test/test_helper.rb
51
+ test_files: []