treehash 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -3,6 +3,7 @@ language: ruby
3
3
  rvm:
4
4
  - 1.9.3
5
5
  - 1.8.7
6
+ - 2.0.0
6
7
 
7
8
  branches:
8
9
  only:
data/README.md CHANGED
@@ -13,4 +13,4 @@ Glacier.
13
13
  Treehash::calculate_tree_hash string_or_io
14
14
 
15
15
  ### Command-Line:
16
- treehash filename
16
+ $ treehash filename
@@ -19,8 +19,10 @@ module Treehash
19
19
  shas << Digest::SHA256.new.digest(mega_byte)
20
20
  end
21
21
 
22
+ return nil if shas.empty?
23
+
22
24
  while shas.size > 1
23
- shas = shas.each_slice(2).to_a.map do |pair|
25
+ shas = shas.each_slice(2).map do |pair|
24
26
  pair[1] ? Digest::SHA256.new.update(pair[0]).update(pair[1]).digest : pair[0]
25
27
  end
26
28
  end
@@ -1,3 +1,3 @@
1
1
  module Treehash
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -23,4 +23,12 @@ describe Treehash do
23
23
  hash.should == '2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae'
24
24
  end
25
25
  end
26
+
27
+ it "should raise if improper data type" do
28
+ expect { Treehash::calculate_tree_hash [] }.to raise_error
29
+ end
30
+
31
+ it "should handle empty strings" do
32
+ Treehash::calculate_tree_hash('').should be_nil
33
+ end
26
34
  end
@@ -10,7 +10,7 @@ Gem::Specification.new do |gem|
10
10
  gem.email = ["erich.menge@me.com"]
11
11
  gem.description = %q{Calculates the SHA256 tree hash of a file or string. It also includes a command line tool.}
12
12
  gem.summary = %q{Calculates the SHA256 tree hash of a file or string. It also includes a command line tool.}
13
- gem.homepage = ""
13
+ gem.homepage = "https://github.com/erichmenge/treehash"
14
14
 
15
15
  gem.files = `git ls-files`.split($/)
16
16
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: treehash
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-04 00:00:00.000000000 Z
12
+ date: 2013-01-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
@@ -64,9 +64,9 @@ files:
64
64
  - lib/treehash/version.rb
65
65
  - spec/fixtures/small_file
66
66
  - spec/spec_helper.rb
67
- - spec/tree_hash_spec.rb
67
+ - spec/treehash_spec.rb
68
68
  - treehash.gemspec
69
- homepage: ''
69
+ homepage: https://github.com/erichmenge/treehash
70
70
  licenses: []
71
71
  post_install_message:
72
72
  rdoc_options: []
@@ -78,21 +78,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
78
78
  - - ! '>='
79
79
  - !ruby/object:Gem::Version
80
80
  version: '0'
81
- segments:
82
- - 0
83
- hash: 614530273586430424
84
81
  required_rubygems_version: !ruby/object:Gem::Requirement
85
82
  none: false
86
83
  requirements:
87
84
  - - ! '>='
88
85
  - !ruby/object:Gem::Version
89
86
  version: '0'
90
- segments:
91
- - 0
92
- hash: 614530273586430424
93
87
  requirements: []
94
88
  rubyforge_project:
95
- rubygems_version: 1.8.24
89
+ rubygems_version: 1.8.23
96
90
  signing_key:
97
91
  specification_version: 3
98
92
  summary: Calculates the SHA256 tree hash of a file or string. It also includes a
@@ -100,4 +94,4 @@ summary: Calculates the SHA256 tree hash of a file or string. It also includes
100
94
  test_files:
101
95
  - spec/fixtures/small_file
102
96
  - spec/spec_helper.rb
103
- - spec/tree_hash_spec.rb
97
+ - spec/treehash_spec.rb