ncd 0.0.1 → 0.1.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.
@@ -0,0 +1,4 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.0.0
4
+ - 1.9.3
@@ -1,4 +1,4 @@
1
- Copyright (c) 2013 mnishida
1
+ Copyright (c) 2013 Masata NISHIDA
2
2
 
3
3
  MIT License
4
4
 
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # NCD
1
+ # NCD [![Build Status](https://travis-ci.org/masatanish/ncd.png)](https://travis-ci.org/masatanish/ncd)
2
2
  Ruby gem for calculating Normalized Compression Distance (NCD).
3
3
 
4
4
  It's inspired by [RubyForge code snippet](http://rubyforge.org/snippet/detail.php?type=snippet&id=3).
@@ -27,6 +27,14 @@ Or install it yourself as:
27
27
  # or
28
28
  distance = a.ncd(b)
29
29
  ```
30
+ ### Setting compression level
31
+
32
+ ```ruby
33
+ NCD.level = Zlib::Defalate::DEAULT_COMPRESSION
34
+ ```
35
+ Valid values of level are Zlib::Deflate::NO_COMPRESSION, BEST_SPEED, BEST_COMPRESSION, DEFAULT_COMPRESSION, and an integer from 0 to 9.
36
+
37
+ default compression level is Zlib::Defaulte::BEST_COMPRESSION.
30
38
 
31
39
  ## Contributing
32
40
 
data/lib/ncd.rb CHANGED
@@ -2,9 +2,18 @@ require 'zlib'
2
2
  require_relative 'ncd/version'
3
3
 
4
4
  module NCD
5
+ @@level=Zlib::BEST_COMPRESSION
6
+
7
+ def self.level
8
+ @@level
9
+ end
10
+
11
+ def self.level=(level)
12
+ @@level = level
13
+ end
5
14
  def self.distance(a, b)
6
- min, max = [a, b].map{|d| Zlib::Deflate.deflate(d, Zlib::BEST_COMPRESSION).size }.minmax
7
- cab = Zlib::Deflate.deflate(a+b, Zlib::BEST_COMPRESSION).size
15
+ min, max = [a, b].map{|d| Zlib::Deflate.deflate(d, @@level).size }.minmax
16
+ cab = Zlib::Deflate.deflate(a+b, @@level).size
8
17
  (cab.to_f - min.to_f) / max.to_f
9
18
  end
10
19
  end
@@ -1,3 +1,3 @@
1
- module Ncd
2
- VERSION = "0.0.1"
1
+ module NCD
2
+ VERSION = "0.1.0"
3
3
  end
@@ -5,11 +5,11 @@ require 'ncd/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = "ncd"
8
- spec.version = Ncd::VERSION
8
+ spec.version = NCD::VERSION
9
9
  spec.authors = ["Masata Nishida"]
10
10
  spec.email = ["masatanish@gmail.com"]
11
- spec.description = %q{gem for calculating Normalized Compression Distance.}
12
- spec.summary = %q{gem for calculating Normalized Compression Distance.}
11
+ spec.description = %q{calculating Normalized Compression Distance(NCD).}
12
+ spec.summary = %q{calculating Normalized Compression Distance(NCD).}
13
13
  spec.homepage = "https://github.com/masatanish/ncd"
14
14
  spec.license = "MIT"
15
15
 
@@ -19,6 +19,27 @@ describe NCD do
19
19
  end
20
20
  end
21
21
 
22
+ describe '.level' do
23
+ subject { NCD.level }
24
+ it 'should eq Zlib::BEST_COMPRESSION' do
25
+ expect(subject).to eq Zlib::BEST_COMPRESSION
26
+ end
27
+ end
28
+
29
+ describe '.level=' do
30
+ let(:level_value) { 0 }
31
+ subject { NCD.level = level_value }
32
+ it { expect{ subject }.to change(NCD, :level).to(level_value) }
33
+ context 'when invoke NCD.distance' do
34
+ it 'level value should be assigned to arguments of Zlib::Defaulte.deflate method' do
35
+ Zlib::Deflate.should_receive(:deflate).with(kind_of(String), level_value).exactly(3).times.and_return('aaa')
36
+ subject
37
+ NCD.distance(a, b)
38
+ end
39
+ after { NCD.level = Zlib::BEST_COMPRESSION }
40
+ end
41
+ end
42
+
22
43
  describe 'String#ncd' do
23
44
  context 'when assigned values are same.' do
24
45
  it { expect(a.ncd(a)).to be < 0.1 }
metadata CHANGED
@@ -1,58 +1,50 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ncd
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Masata Nishida
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2013-05-02 00:00:00.000000000 Z
12
+ date: 2013-05-20 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: bundler
15
- requirement: !ruby/object:Gem::Requirement
16
+ requirement: &70110069779540 !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
19
  - - ~>
18
20
  - !ruby/object:Gem::Version
19
21
  version: '1.3'
20
22
  type: :development
21
23
  prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ~>
25
- - !ruby/object:Gem::Version
26
- version: '1.3'
24
+ version_requirements: *70110069779540
27
25
  - !ruby/object:Gem::Dependency
28
26
  name: rake
29
- requirement: !ruby/object:Gem::Requirement
27
+ requirement: &70110069778780 !ruby/object:Gem::Requirement
28
+ none: false
30
29
  requirements:
31
30
  - - ! '>='
32
31
  - !ruby/object:Gem::Version
33
32
  version: '0'
34
33
  type: :development
35
34
  prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ! '>='
39
- - !ruby/object:Gem::Version
40
- version: '0'
35
+ version_requirements: *70110069778780
41
36
  - !ruby/object:Gem::Dependency
42
37
  name: rspec
43
- requirement: !ruby/object:Gem::Requirement
38
+ requirement: &70110069778100 !ruby/object:Gem::Requirement
39
+ none: false
44
40
  requirements:
45
41
  - - ! '>='
46
42
  - !ruby/object:Gem::Version
47
43
  version: 2.13.0
48
44
  type: :development
49
45
  prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ! '>='
53
- - !ruby/object:Gem::Version
54
- version: 2.13.0
55
- description: gem for calculating Normalized Compression Distance.
46
+ version_requirements: *70110069778100
47
+ description: calculating Normalized Compression Distance(NCD).
56
48
  email:
57
49
  - masatanish@gmail.com
58
50
  executables: []
@@ -60,6 +52,7 @@ extensions: []
60
52
  extra_rdoc_files: []
61
53
  files:
62
54
  - .gitignore
55
+ - .travis.yml
63
56
  - Gemfile
64
57
  - LICENSE.txt
65
58
  - README.md
@@ -72,27 +65,34 @@ files:
72
65
  homepage: https://github.com/masatanish/ncd
73
66
  licenses:
74
67
  - MIT
75
- metadata: {}
76
68
  post_install_message:
77
69
  rdoc_options: []
78
70
  require_paths:
79
71
  - lib
80
72
  required_ruby_version: !ruby/object:Gem::Requirement
73
+ none: false
81
74
  requirements:
82
75
  - - ! '>='
83
76
  - !ruby/object:Gem::Version
84
77
  version: '0'
78
+ segments:
79
+ - 0
80
+ hash: -1348543594741405456
85
81
  required_rubygems_version: !ruby/object:Gem::Requirement
82
+ none: false
86
83
  requirements:
87
84
  - - ! '>='
88
85
  - !ruby/object:Gem::Version
89
86
  version: '0'
87
+ segments:
88
+ - 0
89
+ hash: -1348543594741405456
90
90
  requirements: []
91
91
  rubyforge_project:
92
- rubygems_version: 2.0.3
92
+ rubygems_version: 1.8.16
93
93
  signing_key:
94
- specification_version: 4
95
- summary: gem for calculating Normalized Compression Distance.
94
+ specification_version: 3
95
+ summary: calculating Normalized Compression Distance(NCD).
96
96
  test_files:
97
97
  - spec/ncd_spec.rb
98
98
  - spec/spec_helper.rb
checksums.yaml DELETED
@@ -1,15 +0,0 @@
1
- ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- Zjg2OGRkZDUwNmMxOGJhMjY0NzFhOWI2MjQ4OTE3NGExMTc3YjY4Yg==
5
- data.tar.gz: !binary |-
6
- NmY4MDU0ZjNlMjE0NDQ4ZmUzNTE1OWUxYjM5Y2I2MWZkNjdmOWQ1Yg==
7
- !binary "U0hBNTEy":
8
- metadata.gz: !binary |-
9
- ZDhlZWUyZjhmNzFjMjY3Mjk2MTY1NzQ0ZmE3YzBmMmJhMWRkMzY3YmNmYWJm
10
- MjE1ZGYzZjZjNDhjN2I4ZTk5MmM3MDJhYzVmZWI1ZWVhZjZkOGNlMzdmZTNl
11
- OTUwNTcwYzYzODhiYjE3OTI0NGM2Mzk5NjY1MjBjZGI4Y2ZkZDI=
12
- data.tar.gz: !binary |-
13
- ZDM5MmQ0MWE1N2I5OTEyMTI4NjhjM2Y5NzZmNjBhODNmNmU3MTg3M2U4YzZm
14
- OTlkZTI3NGEyNDk4NzFmZDc5NjNhZWU4MTZhNzZiY2I3YTExMTg5YjE4NGY4
15
- NmUxMGJjNDdhMzVkYzMzY2E2MTNjYTM1MzZlYzQ0MTVjNDNjZmQ=