rickshaw 0.1.0 → 0.5.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 +5 -5
- data/LICENSE.txt +1 -1
- data/README.md +25 -0
- data/lib/core_ext/string/byte_packing.rb +9 -0
- data/lib/core_ext/string/to_base64.rb +11 -0
- data/lib/core_ext/string/to_md5.rb +5 -0
- data/lib/core_ext/string/to_sha512.rb +5 -0
- data/lib/rickshaw.rb +27 -7
- data/lib/rickshaw/version.rb +1 -1
- data/rickshaw.gemspec +10 -10
- metadata +21 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: cd6c78efbf32e090c8e00c4b019c379de3315a68bc686cfefe6e6f30f67a632d
|
4
|
+
data.tar.gz: 6fa5a5e6c7bc7fbaf6d09a8ffb1515c95fede324ee2e80892bfb530cb8c3820f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 01d1c39ff54ac6233b339b521595a5744108d8abcab1d71f13ebe9d3091f9418d779462ee14a0e158b051facc63edb74914c130bbf85c41aa0f066cc122980d4
|
7
|
+
data.tar.gz: 7ee5e1b6f37ceffe48e12706bc7d3eaf0f311bdc07f5e2b031d6c5df1b5e94b5f935378491889cec9dbbf979842fa67ba4de0d61da52f6dcfe523b076ea68347
|
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -25,6 +25,31 @@ Or install it yourself as:
|
|
25
25
|
> "hello world".to_sha1
|
26
26
|
=> "2aae6c35c94fcfb415dbe95f408b9ce91ee846ed"
|
27
27
|
|
28
|
+
> Rickshaw::SHA256.hash("LICENSE.txt")
|
29
|
+
=> "34c15a6c0d68a79f320f7c0d11ab50f2cb9b0cb9f8bd791ce06340f7448df289"
|
30
|
+
|
31
|
+
> "hello world".to_sha256
|
32
|
+
=> "b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9"
|
33
|
+
|
34
|
+
> "hello world".to_md5
|
35
|
+
=> "5eb63bbbe01eeed093cb22bb8f5acdc3"
|
36
|
+
|
37
|
+
We can also pack/unpack our hashes to/from binary strings
|
38
|
+
|
39
|
+
> "hello world".to_sha1.packed_bytes
|
40
|
+
=> "*\xAEl5\xC9O\xCF\xB4\x15\xDB\xE9_@\x8B\x9C\xE9\x1E\xE8F\xED"
|
41
|
+
|
42
|
+
> "*\xAEl5\xC9O\xCF\xB4\x15\xDB\xE9_@\x8B\x9C\xE9\x1E\xE8F\xED".unpacked_bytes
|
43
|
+
=> "2aae6c35c94fcfb415dbe95f408b9ce91ee846ed"
|
44
|
+
|
45
|
+
We can also pack/unpack to base64
|
46
|
+
|
47
|
+
> "hello world".to_base64
|
48
|
+
=> "aGVsbG8gd29ybGQ="
|
49
|
+
|
50
|
+
> "aGVsbG8gd29ybGQ=".unpack_base64
|
51
|
+
=> "hello world"
|
52
|
+
|
28
53
|
## Contributing
|
29
54
|
|
30
55
|
1. Fork it
|
data/lib/rickshaw.rb
CHANGED
@@ -1,32 +1,52 @@
|
|
1
|
+
require 'digest/md5'
|
1
2
|
require 'digest/sha1'
|
2
3
|
require 'digest/sha2'
|
3
4
|
require 'rickshaw/version'
|
5
|
+
require 'core_ext/string/to_md5'
|
4
6
|
require 'core_ext/string/to_sha1'
|
5
7
|
require 'core_ext/string/to_sha256'
|
8
|
+
require 'core_ext/string/to_sha512'
|
9
|
+
require 'core_ext/string/to_base64'
|
10
|
+
require 'core_ext/string/byte_packing'
|
6
11
|
|
7
12
|
module Rickshaw
|
13
|
+
module MD5
|
14
|
+
def self.hash(file_path)
|
15
|
+
hash = Digest::MD5.new
|
16
|
+
Rickshaw::Helper.hash_file(hash, file_path)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
8
20
|
module SHA1
|
9
21
|
def self.hash(file_path)
|
10
22
|
hash = Digest::SHA1.new
|
11
|
-
|
12
|
-
until io.eof?
|
13
|
-
buffer = io.read(1024)
|
14
|
-
hash.update(buffer)
|
15
|
-
end
|
16
|
-
end
|
17
|
-
hash.hexdigest
|
23
|
+
Rickshaw::Helper.hash_file(hash, file_path)
|
18
24
|
end
|
19
25
|
end
|
20
26
|
|
21
27
|
module SHA256
|
22
28
|
def self.hash(file_path)
|
23
29
|
hash = Digest::SHA256.new
|
30
|
+
Rickshaw::Helper.hash_file(hash, file_path)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
module SHA512
|
35
|
+
def self.hash(file_path)
|
36
|
+
hash = Digest::SHA512.new
|
37
|
+
Rickshaw::Helper.hash_file(hash, file_path)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
module Helper
|
42
|
+
def self.hash_file(hash, file_path)
|
24
43
|
open(file_path, 'r') do |io|
|
25
44
|
until io.eof?
|
26
45
|
buffer = io.read(1024)
|
27
46
|
hash.update(buffer)
|
28
47
|
end
|
29
48
|
end
|
49
|
+
|
30
50
|
hash.hexdigest
|
31
51
|
end
|
32
52
|
end
|
data/lib/rickshaw/version.rb
CHANGED
data/rickshaw.gemspec
CHANGED
@@ -4,20 +4,20 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
require 'rickshaw/version'
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
|
-
spec.name =
|
7
|
+
spec.name = 'rickshaw'
|
8
8
|
spec.version = Rickshaw::VERSION
|
9
|
-
spec.authors = [
|
10
|
-
spec.email = [
|
11
|
-
spec.description = %q{Get SHA1
|
12
|
-
spec.summary = %q{Get SHA1
|
13
|
-
spec.homepage =
|
14
|
-
spec.license =
|
9
|
+
spec.authors = ['Gregory Ostermayr']
|
10
|
+
spec.email = ['gregory.ostermayr@gmail.com']
|
11
|
+
spec.description = %q{Get MD5, SHA1, SHA256, SHA512 hashes easily}
|
12
|
+
spec.summary = %q{Get MD5, SHA1, SHA256, SHA512 hashes easily}
|
13
|
+
spec.homepage = 'https://github.com/gregors/rickshaw'
|
14
|
+
spec.license = 'MIT'
|
15
15
|
|
16
16
|
spec.files = `git ls-files`.split($/)
|
17
17
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
-
spec.require_paths = [
|
19
|
+
spec.require_paths = ['lib']
|
20
20
|
|
21
|
-
spec.add_development_dependency
|
22
|
-
spec.add_development_dependency
|
21
|
+
spec.add_development_dependency 'bundler', '~> 2.1'
|
22
|
+
spec.add_development_dependency 'rake'
|
23
23
|
end
|
metadata
CHANGED
@@ -1,57 +1,61 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rickshaw
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gregory Ostermayr
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-07-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '1
|
19
|
+
version: '2.1'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '1
|
26
|
+
version: '2.1'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
-
description: Get SHA1
|
41
|
+
description: Get MD5, SHA1, SHA256, SHA512 hashes easily
|
42
42
|
email:
|
43
43
|
- gregory.ostermayr@gmail.com
|
44
44
|
executables: []
|
45
45
|
extensions: []
|
46
46
|
extra_rdoc_files: []
|
47
47
|
files:
|
48
|
-
- .gitignore
|
48
|
+
- ".gitignore"
|
49
49
|
- Gemfile
|
50
50
|
- LICENSE.txt
|
51
51
|
- README.md
|
52
52
|
- Rakefile
|
53
|
+
- lib/core_ext/string/byte_packing.rb
|
54
|
+
- lib/core_ext/string/to_base64.rb
|
55
|
+
- lib/core_ext/string/to_md5.rb
|
53
56
|
- lib/core_ext/string/to_sha1.rb
|
54
57
|
- lib/core_ext/string/to_sha256.rb
|
58
|
+
- lib/core_ext/string/to_sha512.rb
|
55
59
|
- lib/rickshaw.rb
|
56
60
|
- lib/rickshaw/version.rb
|
57
61
|
- rickshaw.gemspec
|
@@ -59,24 +63,23 @@ homepage: https://github.com/gregors/rickshaw
|
|
59
63
|
licenses:
|
60
64
|
- MIT
|
61
65
|
metadata: {}
|
62
|
-
post_install_message:
|
66
|
+
post_install_message:
|
63
67
|
rdoc_options: []
|
64
68
|
require_paths:
|
65
69
|
- lib
|
66
70
|
required_ruby_version: !ruby/object:Gem::Requirement
|
67
71
|
requirements:
|
68
|
-
- -
|
72
|
+
- - ">="
|
69
73
|
- !ruby/object:Gem::Version
|
70
74
|
version: '0'
|
71
75
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
72
76
|
requirements:
|
73
|
-
- -
|
77
|
+
- - ">="
|
74
78
|
- !ruby/object:Gem::Version
|
75
79
|
version: '0'
|
76
80
|
requirements: []
|
77
|
-
|
78
|
-
|
79
|
-
signing_key:
|
81
|
+
rubygems_version: 3.0.8
|
82
|
+
signing_key:
|
80
83
|
specification_version: 4
|
81
|
-
summary: Get SHA1
|
84
|
+
summary: Get MD5, SHA1, SHA256, SHA512 hashes easily
|
82
85
|
test_files: []
|