clam_chowder 0.0.1 → 0.0.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 +5 -5
- data/.circleci/config.yml +30 -0
- data/.ruby-version +1 -1
- data/README.md +6 -6
- data/Rakefile +5 -0
- data/bin/clam_chowder +0 -0
- data/clam_chowder.gemspec +5 -5
- data/lib/clam_chowder/version.rb +1 -1
- data/spec/clam_chowder_spec.rb +21 -3
- metadata +22 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: e4a2a74fba4fef14135cfbdb6217d65e46699a91bdc24f0104750a57b5246115
|
4
|
+
data.tar.gz: fb3ab3e44c1cb42dc199800a41fa028d71b83a630b7db83fc5e0e4935302d902
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6dae1cbc7f4c82bcc4ad05dbe11ce1e7c8dbf1c6a463d278f60bf8632ef8d12681831c3d683d7ae5af897c0d86db127d6f7d9b3bb08de80b00e65e32ca654660
|
7
|
+
data.tar.gz: 2ce9e508769f0bbb7d7d01e2cde743dd9163f442f3a40e70d32141beda16c7bc416cd6335be948878cb708b5df66fcdbd9f54cb30fe599b7da93d1cef55a6a35
|
@@ -0,0 +1,30 @@
|
|
1
|
+
version: 2.1
|
2
|
+
|
3
|
+
orbs:
|
4
|
+
ruby: circleci/ruby@1.8.0
|
5
|
+
|
6
|
+
jobs:
|
7
|
+
test:
|
8
|
+
parameters:
|
9
|
+
ruby-version:
|
10
|
+
type: string
|
11
|
+
docker:
|
12
|
+
- image: cimg/ruby:<< parameters.ruby-version >>
|
13
|
+
steps:
|
14
|
+
- checkout
|
15
|
+
- run:
|
16
|
+
name: bundle install with no cache
|
17
|
+
command: |
|
18
|
+
bundle install
|
19
|
+
- run:
|
20
|
+
name: only run rspec
|
21
|
+
command: |
|
22
|
+
bundle exec rspec
|
23
|
+
|
24
|
+
workflows:
|
25
|
+
build_and_test:
|
26
|
+
jobs:
|
27
|
+
- test:
|
28
|
+
matrix:
|
29
|
+
parameters:
|
30
|
+
ruby-version: ["2.7", "3.0", "3.1", "3.2"]
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
3.2.2
|
data/README.md
CHANGED
@@ -1,9 +1,7 @@
|
|
1
|
-
#
|
1
|
+
# clam_chowder
|
2
2
|
|
3
|
-
|
4
|
-
clam_chower
|
3
|
+
[](https://travis-ci.org/nexway/clam_chowder) [](https://codeclimate.com/github/nexway/clam_chowder)
|
5
4
|
|
6
|
-
## Description
|
7
5
|
Nicely application-level wrapper for anti-virus software.
|
8
6
|
now supports on clamd only.
|
9
7
|
|
@@ -61,8 +59,10 @@ ClamChowder.default_backend = Rails.env.production? ? :clamd : :stub
|
|
61
59
|
```
|
62
60
|
|
63
61
|
## Supported versions
|
64
|
-
- Ruby 2.0
|
65
|
-
- Ruby 2.1
|
62
|
+
- Ruby 2.0.0
|
63
|
+
- Ruby 2.1.8
|
64
|
+
- Ruby 2.2.4
|
65
|
+
- Ruby 2.3.1
|
66
66
|
|
67
67
|
## Dependencies
|
68
68
|
- clamd >= 1.0.1
|
data/Rakefile
CHANGED
data/bin/clam_chowder
CHANGED
File without changes
|
data/clam_chowder.gemspec
CHANGED
@@ -6,11 +6,11 @@ require 'clam_chowder/version'
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = "clam_chowder"
|
8
8
|
spec.version = ClamChowder::VERSION
|
9
|
-
spec.authors = ["NEXWAY"
|
10
|
-
spec.email = ["n2developer@nexway.co.jp"
|
9
|
+
spec.authors = ["NEXWAY"]
|
10
|
+
spec.email = ["n2developer@nexway.co.jp"]
|
11
11
|
spec.summary = %q{Nicely application-level wrapper for anti-virus software.}
|
12
12
|
spec.description = %q{Nicely application-level wrapper for anti-virus software.}
|
13
|
-
spec.homepage = ""
|
13
|
+
spec.homepage = "https://github.com/nexway/clam_chowder"
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
16
16
|
spec.files = `git ls-files -z`.split("\x0")
|
@@ -18,10 +18,10 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
spec.required_ruby_version = '
|
21
|
+
spec.required_ruby_version = '>= 2.0'
|
22
22
|
|
23
23
|
spec.add_dependency "clamd"
|
24
|
-
spec.add_development_dependency "bundler", "
|
24
|
+
spec.add_development_dependency "bundler", ">= 2.2.33"
|
25
25
|
spec.add_development_dependency "rake"
|
26
26
|
spec.add_development_dependency "rspec"
|
27
27
|
end
|
data/lib/clam_chowder/version.rb
CHANGED
data/spec/clam_chowder_spec.rb
CHANGED
@@ -14,23 +14,32 @@ describe 'Scanner' do
|
|
14
14
|
describe '.infected_stream?' do
|
15
15
|
subject { ClamChowder::Scanner.infected_stream?(File::open(file_path)) }
|
16
16
|
|
17
|
+
before do
|
18
|
+
scan_mock = instance_double('::Clamd::Client')
|
19
|
+
allow(scan_mock).to receive(:scan) { "#{file_path}: #{result}" }
|
20
|
+
allow(::Clamd::Client).to receive(:new) { scan_mock }
|
21
|
+
end
|
22
|
+
|
17
23
|
context 'ウイルスが未検知の場合' do
|
18
24
|
let(:file_path) { 'spec/fixtures/innocent.txt' }
|
25
|
+
let(:result) { 'OK' }
|
19
26
|
|
20
|
-
it {
|
27
|
+
it { is_expected.to eq false }
|
21
28
|
end
|
22
29
|
|
23
30
|
context 'ウイルスが検知された場合' do
|
24
31
|
let(:file) { create_virus_file }
|
25
32
|
let(:file_path) { file.path }
|
33
|
+
let(:result) { 'TEST.VIRUS FOUND' }
|
26
34
|
|
27
35
|
after { file.close }
|
28
36
|
|
29
|
-
it {
|
37
|
+
it { is_expected.to eq true }
|
30
38
|
end
|
31
39
|
|
32
40
|
context '検知/未検知以外の場合' do
|
33
41
|
let(:file_path) { 'path/to/file' }
|
42
|
+
let(:result) { 'Timeout' }
|
34
43
|
|
35
44
|
specify 'ScanException 例外が発生すること' do
|
36
45
|
expect { ClamChowder::Scanner.infected_stream?(file_path) }.to raise_error(ClamChowder::ScanException)
|
@@ -45,8 +54,15 @@ describe 'Scanner' do
|
|
45
54
|
let(:scanner) { ClamChowder::Scanner.new }
|
46
55
|
let(:scan_result) { scanner.scan_io File::open(file_path) }
|
47
56
|
|
57
|
+
before do
|
58
|
+
scan_mock = instance_double('::Clamd::Client')
|
59
|
+
allow(scan_mock).to receive(:scan) { "#{file_path}: #{scan_message}" }
|
60
|
+
allow(::Clamd::Client).to receive(:new) { scan_mock }
|
61
|
+
end
|
62
|
+
|
48
63
|
context 'ウィルス未検知の場合' do
|
49
64
|
let(:file_path) { 'spec/fixtures/innocent.txt' }
|
65
|
+
let(:scan_message) { 'OK' }
|
50
66
|
|
51
67
|
specify do
|
52
68
|
expect(scan_result).to_not be_infected
|
@@ -56,17 +72,19 @@ describe 'Scanner' do
|
|
56
72
|
context 'ウィルス検知の場合' do
|
57
73
|
let(:file) { create_virus_file }
|
58
74
|
let(:file_path) { file.path }
|
75
|
+
let(:scan_message) { 'Eicar-Test-Signature FOUND' }
|
59
76
|
|
60
77
|
after { file.close }
|
61
78
|
|
62
79
|
specify do
|
63
80
|
expect(scan_result).to be_infected
|
64
|
-
expect(scan_result.virus_name).to
|
81
|
+
expect(scan_result.virus_name.upcase).to include 'EICAR'
|
65
82
|
end
|
66
83
|
end
|
67
84
|
|
68
85
|
context '検知/未検知以外の場合' do
|
69
86
|
let(:file_path) { "/path/to/file" }
|
87
|
+
let(:scan_message) { 'Timeout' }
|
70
88
|
|
71
89
|
specify "例外が発生すること" do
|
72
90
|
expect { ClamChowder::Scanner.new.scan_io(file_path) }.to raise_error(ClamChowder::ScanException)
|
metadata
CHANGED
@@ -1,83 +1,82 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: clam_chowder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- NEXWAY
|
8
|
-
|
9
|
-
autorequire:
|
8
|
+
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2023-07-27 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: clamd
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
16
|
requirements:
|
18
|
-
- -
|
17
|
+
- - ">="
|
19
18
|
- !ruby/object:Gem::Version
|
20
19
|
version: '0'
|
21
20
|
type: :runtime
|
22
21
|
prerelease: false
|
23
22
|
version_requirements: !ruby/object:Gem::Requirement
|
24
23
|
requirements:
|
25
|
-
- -
|
24
|
+
- - ">="
|
26
25
|
- !ruby/object:Gem::Version
|
27
26
|
version: '0'
|
28
27
|
- !ruby/object:Gem::Dependency
|
29
28
|
name: bundler
|
30
29
|
requirement: !ruby/object:Gem::Requirement
|
31
30
|
requirements:
|
32
|
-
- -
|
31
|
+
- - ">="
|
33
32
|
- !ruby/object:Gem::Version
|
34
|
-
version:
|
33
|
+
version: 2.2.33
|
35
34
|
type: :development
|
36
35
|
prerelease: false
|
37
36
|
version_requirements: !ruby/object:Gem::Requirement
|
38
37
|
requirements:
|
39
|
-
- -
|
38
|
+
- - ">="
|
40
39
|
- !ruby/object:Gem::Version
|
41
|
-
version:
|
40
|
+
version: 2.2.33
|
42
41
|
- !ruby/object:Gem::Dependency
|
43
42
|
name: rake
|
44
43
|
requirement: !ruby/object:Gem::Requirement
|
45
44
|
requirements:
|
46
|
-
- -
|
45
|
+
- - ">="
|
47
46
|
- !ruby/object:Gem::Version
|
48
47
|
version: '0'
|
49
48
|
type: :development
|
50
49
|
prerelease: false
|
51
50
|
version_requirements: !ruby/object:Gem::Requirement
|
52
51
|
requirements:
|
53
|
-
- -
|
52
|
+
- - ">="
|
54
53
|
- !ruby/object:Gem::Version
|
55
54
|
version: '0'
|
56
55
|
- !ruby/object:Gem::Dependency
|
57
56
|
name: rspec
|
58
57
|
requirement: !ruby/object:Gem::Requirement
|
59
58
|
requirements:
|
60
|
-
- -
|
59
|
+
- - ">="
|
61
60
|
- !ruby/object:Gem::Version
|
62
61
|
version: '0'
|
63
62
|
type: :development
|
64
63
|
prerelease: false
|
65
64
|
version_requirements: !ruby/object:Gem::Requirement
|
66
65
|
requirements:
|
67
|
-
- -
|
66
|
+
- - ">="
|
68
67
|
- !ruby/object:Gem::Version
|
69
68
|
version: '0'
|
70
69
|
description: Nicely application-level wrapper for anti-virus software.
|
71
70
|
email:
|
72
71
|
- n2developer@nexway.co.jp
|
73
|
-
- iori.onda@gmail.com
|
74
72
|
executables:
|
75
73
|
- clam_chowder
|
76
74
|
extensions: []
|
77
75
|
extra_rdoc_files: []
|
78
76
|
files:
|
79
|
-
- .
|
80
|
-
- .
|
77
|
+
- ".circleci/config.yml"
|
78
|
+
- ".gitignore"
|
79
|
+
- ".ruby-version"
|
81
80
|
- Gemfile
|
82
81
|
- LICENSE.txt
|
83
82
|
- README.md
|
@@ -93,28 +92,27 @@ files:
|
|
93
92
|
- lib/clam_chowder/version.rb
|
94
93
|
- spec/clam_chowder_spec.rb
|
95
94
|
- spec/fixtures/innocent.txt
|
96
|
-
homepage:
|
95
|
+
homepage: https://github.com/nexway/clam_chowder
|
97
96
|
licenses:
|
98
97
|
- MIT
|
99
98
|
metadata: {}
|
100
|
-
post_install_message:
|
99
|
+
post_install_message:
|
101
100
|
rdoc_options: []
|
102
101
|
require_paths:
|
103
102
|
- lib
|
104
103
|
required_ruby_version: !ruby/object:Gem::Requirement
|
105
104
|
requirements:
|
106
|
-
- -
|
105
|
+
- - ">="
|
107
106
|
- !ruby/object:Gem::Version
|
108
107
|
version: '2.0'
|
109
108
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
110
109
|
requirements:
|
111
|
-
- -
|
110
|
+
- - ">="
|
112
111
|
- !ruby/object:Gem::Version
|
113
112
|
version: '0'
|
114
113
|
requirements: []
|
115
|
-
|
116
|
-
|
117
|
-
signing_key:
|
114
|
+
rubygems_version: 3.4.10
|
115
|
+
signing_key:
|
118
116
|
specification_version: 4
|
119
117
|
summary: Nicely application-level wrapper for anti-virus software.
|
120
118
|
test_files:
|