hashes_equal 0.2.3 → 0.3.1
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 +4 -4
- data/.circleci/config.yml +54 -0
- data/Dockerfile +26 -0
- data/Gemfile +13 -2
- data/Makefile +7 -1
- data/docker-compose.yaml +15 -0
- data/hashes_equal.gemspec +18 -14
- data/lib/hashes_equal/generic_diff_displayer.rb +20 -5
- data/lib/hashes_equal/hash_almost_diff_displayer.rb +37 -0
- data/lib/hashes_equal/hash_compare_helper.rb +27 -0
- data/lib/hashes_equal/hash_rounded_diff_displayer.rb +33 -0
- data/lib/hashes_equal/version.rb +1 -1
- metadata +8 -180
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 8447faaa13a7be85fdfb87288c12e005213add0fd43a1f0e9e9e29a037558b9e
|
|
4
|
+
data.tar.gz: c6a84ead82b663be2760573db2f392daf293e2167909a7adbc235b81706da484
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 4798ab8bc1b7b3734d57e27c1c3977376da8626637a97c5c9325e7eab4bdea19853035af3d4c39ae2b9b657242998e97c5a1ff88fb9994f5be55af3bbb9b0f2a
|
|
7
|
+
data.tar.gz: 21cb0631f064810aa7f1023e15748d01bd6d27165c9314406d01c85eacf72cd0986b292701facc00b520581d82ac3fcf58e7238d320c2165f099f4a98787bf53
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
version: 2.1
|
|
2
|
+
|
|
3
|
+
executors:
|
|
4
|
+
ruby:
|
|
5
|
+
docker:
|
|
6
|
+
- image: cimg/ruby:3.4.6
|
|
7
|
+
working_directory: ~/project
|
|
8
|
+
|
|
9
|
+
commands:
|
|
10
|
+
bundle_install:
|
|
11
|
+
steps:
|
|
12
|
+
- restore_cache:
|
|
13
|
+
keys:
|
|
14
|
+
- v1-bundle-{{ checksum "Gemfile.lock" }}
|
|
15
|
+
- v1-bundle-
|
|
16
|
+
- run:
|
|
17
|
+
name: Bundle install
|
|
18
|
+
command: |
|
|
19
|
+
bundle config set path vendor/bundle
|
|
20
|
+
bundle install --jobs=4 --retry=3
|
|
21
|
+
- save_cache:
|
|
22
|
+
key: v1-bundle-{{ checksum "Gemfile.lock" }}
|
|
23
|
+
paths:
|
|
24
|
+
- vendor/bundle
|
|
25
|
+
|
|
26
|
+
jobs:
|
|
27
|
+
lint:
|
|
28
|
+
executor: ruby
|
|
29
|
+
steps:
|
|
30
|
+
- checkout
|
|
31
|
+
- bundle_install
|
|
32
|
+
- run:
|
|
33
|
+
name: Rubocop
|
|
34
|
+
command: make lint
|
|
35
|
+
|
|
36
|
+
test:
|
|
37
|
+
executor: ruby
|
|
38
|
+
steps:
|
|
39
|
+
- checkout
|
|
40
|
+
- bundle_install
|
|
41
|
+
- run:
|
|
42
|
+
name: Tests
|
|
43
|
+
command: make tests
|
|
44
|
+
- store_test_results:
|
|
45
|
+
path: tmp/tests/reports
|
|
46
|
+
- store_artifacts:
|
|
47
|
+
path: coverage/
|
|
48
|
+
|
|
49
|
+
workflows:
|
|
50
|
+
version: 2
|
|
51
|
+
build:
|
|
52
|
+
jobs:
|
|
53
|
+
- lint
|
|
54
|
+
- test
|
data/Dockerfile
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
FROM ruby:3.4.6-bookworm AS base
|
|
2
|
+
|
|
3
|
+
ENV LANG=C.UTF-8
|
|
4
|
+
ENV BUNDLE_PATH=/usr/local/bundle
|
|
5
|
+
|
|
6
|
+
WORKDIR /app
|
|
7
|
+
|
|
8
|
+
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
9
|
+
build-essential \
|
|
10
|
+
git \
|
|
11
|
+
libsodium23 \
|
|
12
|
+
&& rm -rf /var/lib/apt/lists/*
|
|
13
|
+
|
|
14
|
+
RUN gem install bundler -v 2.7.2 --no-document
|
|
15
|
+
RUN bundler _2.7.2_ --version
|
|
16
|
+
|
|
17
|
+
COPY *.gemspec ./
|
|
18
|
+
COPY Gemfile Gemfile.lock* ./
|
|
19
|
+
|
|
20
|
+
RUN bundler _2.7.2_ install
|
|
21
|
+
|
|
22
|
+
RUN bundle install
|
|
23
|
+
|
|
24
|
+
COPY . .
|
|
25
|
+
|
|
26
|
+
CMD ["bash"]
|
data/Gemfile
CHANGED
|
@@ -5,5 +5,16 @@ source 'https://rubygems.org'
|
|
|
5
5
|
# Specify your gem's dependencies in hashes_equal.gemspec
|
|
6
6
|
gemspec
|
|
7
7
|
|
|
8
|
-
gem '
|
|
9
|
-
gem '
|
|
8
|
+
gem 'base64'
|
|
9
|
+
gem 'bundler', '~> 2.1', '>= 2.1.4'
|
|
10
|
+
gem 'byebug', '~> 11.1'
|
|
11
|
+
gem 'guard', '~> 2.16'
|
|
12
|
+
gem 'guard-minitest', '~> 2.4'
|
|
13
|
+
gem 'minitest', '~> 6.0'
|
|
14
|
+
gem 'minitest-reporters', '~> 1.7'
|
|
15
|
+
gem 'mocha', '~> 3.0'
|
|
16
|
+
gem 'pry', '~> 0.13'
|
|
17
|
+
gem 'rake', '~> 13.0'
|
|
18
|
+
gem 'rubocop', '~> 1.86'
|
|
19
|
+
gem 'rubocop-performance', '~> 1.5'
|
|
20
|
+
gem 'simplecov', '~> 0.19.0'
|
data/Makefile
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
build:
|
|
2
2
|
gem build hashes_equal.gemspec
|
|
3
|
-
echo ">> gem
|
|
3
|
+
echo ">> gem push_hashes_equal-x.y.z.gem, to release this new version!"
|
|
4
|
+
|
|
5
|
+
docker_bash:
|
|
6
|
+
docker compose run --rm hashes_equal_gem bash
|
|
7
|
+
|
|
8
|
+
docker_build:
|
|
9
|
+
docker compose up --build
|
|
4
10
|
|
|
5
11
|
lint:
|
|
6
12
|
bundle exec rubocop
|
data/docker-compose.yaml
ADDED
data/hashes_equal.gemspec
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require_relative 'lib/hashes_equal/version'
|
|
3
|
+
# require_relative 'lib/hashes_equal/version'
|
|
4
4
|
|
|
5
|
+
# rubocop:disable Gemspec/RequireMFA
|
|
5
6
|
Gem::Specification.new do |spec|
|
|
6
7
|
spec.name = 'hashes_equal'
|
|
7
|
-
spec.version =
|
|
8
|
+
spec.version = '0.3.1'
|
|
8
9
|
spec.authors = ['Shippingbo']
|
|
9
10
|
spec.email = ['tech@facilecomm.com']
|
|
10
11
|
|
|
@@ -20,6 +21,8 @@ Gem::Specification.new do |spec|
|
|
|
20
21
|
# spec.metadata["source_code_uri"] = "Put your gem's public repo URL here."
|
|
21
22
|
# spec.metadata["changelog_uri"] = "Put your gem's CHANGELOG.md URL here."
|
|
22
23
|
|
|
24
|
+
# spec.metadata['rubygems_mfa_required'] = 'true'
|
|
25
|
+
|
|
23
26
|
# Specify which files should be added to the gem when it is released.
|
|
24
27
|
# The `git ls-files -z` loads the files
|
|
25
28
|
# in the RubyGem that have been added into git.
|
|
@@ -37,16 +40,17 @@ Gem::Specification.new do |spec|
|
|
|
37
40
|
|
|
38
41
|
spec.add_dependency 'hashdiff', '~> 1.0', '>= 1.0.1'
|
|
39
42
|
|
|
40
|
-
spec.add_development_dependency 'bundler', '~> 2.1', '>= 2.1.4'
|
|
41
|
-
spec.add_development_dependency 'byebug', '~> 11.1'
|
|
42
|
-
spec.add_development_dependency 'guard', '~> 2.16'
|
|
43
|
-
spec.add_development_dependency 'guard-minitest', '~> 2.4'
|
|
44
|
-
spec.add_development_dependency 'minitest', '~>
|
|
45
|
-
spec.add_development_dependency 'minitest-reporters', '~> 1.
|
|
46
|
-
spec.add_development_dependency 'mocha', '~>
|
|
47
|
-
spec.add_development_dependency 'pry', '~> 0.13'
|
|
48
|
-
spec.add_development_dependency 'rake', '~> 13.0'
|
|
49
|
-
spec.add_development_dependency 'rubocop', '
|
|
50
|
-
spec.add_development_dependency 'rubocop-performance', '~> 1.5'
|
|
51
|
-
spec.add_development_dependency 'simplecov', '~> 0.
|
|
43
|
+
# spec.add_development_dependency 'bundler', '~> 2.1', '>= 2.1.4'
|
|
44
|
+
# spec.add_development_dependency 'byebug', '~> 11.1'
|
|
45
|
+
# spec.add_development_dependency 'guard', '~> 2.16'
|
|
46
|
+
# spec.add_development_dependency 'guard-minitest', '~> 2.4'
|
|
47
|
+
# spec.add_development_dependency 'minitest', '~> 6.0'
|
|
48
|
+
# spec.add_development_dependency 'minitest-reporters', '~> 1.7'
|
|
49
|
+
# spec.add_development_dependency 'mocha', '~> 3.0'
|
|
50
|
+
# spec.add_development_dependency 'pry', '~> 0.13'
|
|
51
|
+
# spec.add_development_dependency 'rake', '~> 13.0'
|
|
52
|
+
# spec.add_development_dependency 'rubocop', '1.86'
|
|
53
|
+
# spec.add_development_dependency 'rubocop-performance', '~> 1.5'
|
|
54
|
+
# spec.add_development_dependency 'simplecov', '~> 0.19.0'
|
|
52
55
|
end
|
|
56
|
+
# rubocop:enable Gemspec/RequireMFA
|
|
@@ -10,35 +10,50 @@ module HashesEqual
|
|
|
10
10
|
|
|
11
11
|
class UnprocessableHashdiff < ArgumentError; end
|
|
12
12
|
|
|
13
|
-
def initialize(expected:, actual:)
|
|
13
|
+
def initialize(expected:, actual:, diff_options: {}, &comparison_block)
|
|
14
14
|
@expected = expected
|
|
15
15
|
@actual = actual
|
|
16
|
+
@diff_options = diff_options
|
|
17
|
+
@comparison_block = comparison_block
|
|
16
18
|
assert_send :expected
|
|
17
19
|
assert_send :actual
|
|
20
|
+
assert_send :diff_options
|
|
18
21
|
check_args
|
|
19
22
|
end
|
|
20
23
|
|
|
21
24
|
def call
|
|
22
|
-
|
|
25
|
+
diff # compute it
|
|
26
|
+
|
|
23
27
|
ANSI.white do
|
|
24
28
|
formatted_diff
|
|
25
29
|
end
|
|
26
30
|
end
|
|
27
31
|
|
|
32
|
+
def diff
|
|
33
|
+
@diff ||= compute_diff
|
|
34
|
+
end
|
|
35
|
+
|
|
28
36
|
private
|
|
29
37
|
|
|
30
|
-
attr_reader
|
|
38
|
+
attr_reader(
|
|
39
|
+
:expected,
|
|
40
|
+
:actual,
|
|
41
|
+
:diff_options,
|
|
42
|
+
:comparison_block
|
|
43
|
+
)
|
|
31
44
|
|
|
32
45
|
def check_args
|
|
33
46
|
# Add specific checks if needed
|
|
34
47
|
end
|
|
35
48
|
|
|
36
49
|
def compute_diff
|
|
37
|
-
|
|
50
|
+
perform_diff_computation.tap do |res|
|
|
51
|
+
assert_kind_of Array, res
|
|
52
|
+
end
|
|
38
53
|
end
|
|
39
54
|
|
|
40
55
|
def perform_diff_computation
|
|
41
|
-
Hashdiff.diff(expected, actual)
|
|
56
|
+
Hashdiff.diff(expected, actual, diff_options, &comparison_block)
|
|
42
57
|
end
|
|
43
58
|
|
|
44
59
|
def formatted_diff
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'hashes_equal/hash_diff_displayer'
|
|
4
|
+
|
|
5
|
+
module HashesEqual
|
|
6
|
+
class HashAlmostDiffDisplayer < HashDiffDisplayer
|
|
7
|
+
class ToleranceMustBeNonNegativeNumeric < ArgumentError; end
|
|
8
|
+
|
|
9
|
+
def initialize(expected:, actual:, tolerance:, strict: false)
|
|
10
|
+
@tolerance = tolerance
|
|
11
|
+
@strict = strict
|
|
12
|
+
|
|
13
|
+
super(
|
|
14
|
+
expected: expected,
|
|
15
|
+
actual: actual,
|
|
16
|
+
diff_options: {
|
|
17
|
+
numeric_tolerance: tolerance,
|
|
18
|
+
strict: strict
|
|
19
|
+
}
|
|
20
|
+
)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
private
|
|
24
|
+
|
|
25
|
+
attr_reader :tolerance, :strict
|
|
26
|
+
|
|
27
|
+
def check_args
|
|
28
|
+
super
|
|
29
|
+
return if tolerance.is_a?(Numeric) && tolerance >= 0
|
|
30
|
+
|
|
31
|
+
raise(
|
|
32
|
+
ToleranceMustBeNonNegativeNumeric,
|
|
33
|
+
"tolerance was #{tolerance.inspect}"
|
|
34
|
+
)
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require 'hashes_equal/hash_diff_displayer'
|
|
4
|
+
require 'hashes_equal/hash_almost_diff_displayer'
|
|
5
|
+
require 'hashes_equal/hash_rounded_diff_displayer'
|
|
4
6
|
|
|
5
7
|
module HashesEqual
|
|
6
8
|
module HashCompareHelper
|
|
@@ -15,5 +17,30 @@ module HashesEqual
|
|
|
15
17
|
assert expected == actual, displayable_diff
|
|
16
18
|
end
|
|
17
19
|
end
|
|
20
|
+
|
|
21
|
+
def assert_hashes_almost_equal(expected, actual, tolerance:, strict: false)
|
|
22
|
+
displayer = HashAlmostDiffDisplayer.new(
|
|
23
|
+
expected: expected,
|
|
24
|
+
actual: actual,
|
|
25
|
+
tolerance: tolerance,
|
|
26
|
+
strict: strict
|
|
27
|
+
)
|
|
28
|
+
|
|
29
|
+
result = displayer.call
|
|
30
|
+
|
|
31
|
+
assert displayer.diff.empty?, result
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def assert_rounded_hashes_equal(expected, actual, precision:)
|
|
35
|
+
displayer = HashRoundedDiffDisplayer.new(
|
|
36
|
+
expected: expected,
|
|
37
|
+
actual: actual,
|
|
38
|
+
precision: precision
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
result = displayer.call
|
|
42
|
+
|
|
43
|
+
assert displayer.diff.empty?, result
|
|
44
|
+
end
|
|
18
45
|
end
|
|
19
46
|
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'hashes_equal/hash_diff_displayer'
|
|
4
|
+
|
|
5
|
+
module HashesEqual
|
|
6
|
+
class HashRoundedDiffDisplayer < HashDiffDisplayer
|
|
7
|
+
class PrecisionMustBeNonNegativeInteger < ArgumentError; end
|
|
8
|
+
|
|
9
|
+
def initialize(expected:, actual:, precision:)
|
|
10
|
+
@precision = precision
|
|
11
|
+
|
|
12
|
+
super(expected: expected, actual: actual) do |_path, left, right|
|
|
13
|
+
next unless left.is_a?(Numeric) && right.is_a?(Numeric)
|
|
14
|
+
|
|
15
|
+
left.round(precision) == right.round(precision)
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
private
|
|
20
|
+
|
|
21
|
+
attr_reader :precision
|
|
22
|
+
|
|
23
|
+
def check_args
|
|
24
|
+
super
|
|
25
|
+
return if precision.is_a?(Integer) && precision >= 0
|
|
26
|
+
|
|
27
|
+
raise(
|
|
28
|
+
PrecisionMustBeNonNegativeInteger,
|
|
29
|
+
"precision was #{precision.inspect}"
|
|
30
|
+
)
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
data/lib/hashes_equal/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: hashes_equal
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.3.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Shippingbo
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: exe
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: ansi
|
|
@@ -58,180 +57,6 @@ dependencies:
|
|
|
58
57
|
- - ">="
|
|
59
58
|
- !ruby/object:Gem::Version
|
|
60
59
|
version: 1.0.1
|
|
61
|
-
- !ruby/object:Gem::Dependency
|
|
62
|
-
name: bundler
|
|
63
|
-
requirement: !ruby/object:Gem::Requirement
|
|
64
|
-
requirements:
|
|
65
|
-
- - "~>"
|
|
66
|
-
- !ruby/object:Gem::Version
|
|
67
|
-
version: '2.1'
|
|
68
|
-
- - ">="
|
|
69
|
-
- !ruby/object:Gem::Version
|
|
70
|
-
version: 2.1.4
|
|
71
|
-
type: :development
|
|
72
|
-
prerelease: false
|
|
73
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
74
|
-
requirements:
|
|
75
|
-
- - "~>"
|
|
76
|
-
- !ruby/object:Gem::Version
|
|
77
|
-
version: '2.1'
|
|
78
|
-
- - ">="
|
|
79
|
-
- !ruby/object:Gem::Version
|
|
80
|
-
version: 2.1.4
|
|
81
|
-
- !ruby/object:Gem::Dependency
|
|
82
|
-
name: byebug
|
|
83
|
-
requirement: !ruby/object:Gem::Requirement
|
|
84
|
-
requirements:
|
|
85
|
-
- - "~>"
|
|
86
|
-
- !ruby/object:Gem::Version
|
|
87
|
-
version: '11.1'
|
|
88
|
-
type: :development
|
|
89
|
-
prerelease: false
|
|
90
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
91
|
-
requirements:
|
|
92
|
-
- - "~>"
|
|
93
|
-
- !ruby/object:Gem::Version
|
|
94
|
-
version: '11.1'
|
|
95
|
-
- !ruby/object:Gem::Dependency
|
|
96
|
-
name: guard
|
|
97
|
-
requirement: !ruby/object:Gem::Requirement
|
|
98
|
-
requirements:
|
|
99
|
-
- - "~>"
|
|
100
|
-
- !ruby/object:Gem::Version
|
|
101
|
-
version: '2.16'
|
|
102
|
-
type: :development
|
|
103
|
-
prerelease: false
|
|
104
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
105
|
-
requirements:
|
|
106
|
-
- - "~>"
|
|
107
|
-
- !ruby/object:Gem::Version
|
|
108
|
-
version: '2.16'
|
|
109
|
-
- !ruby/object:Gem::Dependency
|
|
110
|
-
name: guard-minitest
|
|
111
|
-
requirement: !ruby/object:Gem::Requirement
|
|
112
|
-
requirements:
|
|
113
|
-
- - "~>"
|
|
114
|
-
- !ruby/object:Gem::Version
|
|
115
|
-
version: '2.4'
|
|
116
|
-
type: :development
|
|
117
|
-
prerelease: false
|
|
118
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
119
|
-
requirements:
|
|
120
|
-
- - "~>"
|
|
121
|
-
- !ruby/object:Gem::Version
|
|
122
|
-
version: '2.4'
|
|
123
|
-
- !ruby/object:Gem::Dependency
|
|
124
|
-
name: minitest
|
|
125
|
-
requirement: !ruby/object:Gem::Requirement
|
|
126
|
-
requirements:
|
|
127
|
-
- - "~>"
|
|
128
|
-
- !ruby/object:Gem::Version
|
|
129
|
-
version: '5.11'
|
|
130
|
-
type: :development
|
|
131
|
-
prerelease: false
|
|
132
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
133
|
-
requirements:
|
|
134
|
-
- - "~>"
|
|
135
|
-
- !ruby/object:Gem::Version
|
|
136
|
-
version: '5.11'
|
|
137
|
-
- !ruby/object:Gem::Dependency
|
|
138
|
-
name: minitest-reporters
|
|
139
|
-
requirement: !ruby/object:Gem::Requirement
|
|
140
|
-
requirements:
|
|
141
|
-
- - "~>"
|
|
142
|
-
- !ruby/object:Gem::Version
|
|
143
|
-
version: '1.4'
|
|
144
|
-
type: :development
|
|
145
|
-
prerelease: false
|
|
146
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
147
|
-
requirements:
|
|
148
|
-
- - "~>"
|
|
149
|
-
- !ruby/object:Gem::Version
|
|
150
|
-
version: '1.4'
|
|
151
|
-
- !ruby/object:Gem::Dependency
|
|
152
|
-
name: mocha
|
|
153
|
-
requirement: !ruby/object:Gem::Requirement
|
|
154
|
-
requirements:
|
|
155
|
-
- - "~>"
|
|
156
|
-
- !ruby/object:Gem::Version
|
|
157
|
-
version: '1.11'
|
|
158
|
-
type: :development
|
|
159
|
-
prerelease: false
|
|
160
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
161
|
-
requirements:
|
|
162
|
-
- - "~>"
|
|
163
|
-
- !ruby/object:Gem::Version
|
|
164
|
-
version: '1.11'
|
|
165
|
-
- !ruby/object:Gem::Dependency
|
|
166
|
-
name: pry
|
|
167
|
-
requirement: !ruby/object:Gem::Requirement
|
|
168
|
-
requirements:
|
|
169
|
-
- - "~>"
|
|
170
|
-
- !ruby/object:Gem::Version
|
|
171
|
-
version: '0.13'
|
|
172
|
-
type: :development
|
|
173
|
-
prerelease: false
|
|
174
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
175
|
-
requirements:
|
|
176
|
-
- - "~>"
|
|
177
|
-
- !ruby/object:Gem::Version
|
|
178
|
-
version: '0.13'
|
|
179
|
-
- !ruby/object:Gem::Dependency
|
|
180
|
-
name: rake
|
|
181
|
-
requirement: !ruby/object:Gem::Requirement
|
|
182
|
-
requirements:
|
|
183
|
-
- - "~>"
|
|
184
|
-
- !ruby/object:Gem::Version
|
|
185
|
-
version: '13.0'
|
|
186
|
-
type: :development
|
|
187
|
-
prerelease: false
|
|
188
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
189
|
-
requirements:
|
|
190
|
-
- - "~>"
|
|
191
|
-
- !ruby/object:Gem::Version
|
|
192
|
-
version: '13.0'
|
|
193
|
-
- !ruby/object:Gem::Dependency
|
|
194
|
-
name: rubocop
|
|
195
|
-
requirement: !ruby/object:Gem::Requirement
|
|
196
|
-
requirements:
|
|
197
|
-
- - '='
|
|
198
|
-
- !ruby/object:Gem::Version
|
|
199
|
-
version: 0.93.1
|
|
200
|
-
type: :development
|
|
201
|
-
prerelease: false
|
|
202
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
203
|
-
requirements:
|
|
204
|
-
- - '='
|
|
205
|
-
- !ruby/object:Gem::Version
|
|
206
|
-
version: 0.93.1
|
|
207
|
-
- !ruby/object:Gem::Dependency
|
|
208
|
-
name: rubocop-performance
|
|
209
|
-
requirement: !ruby/object:Gem::Requirement
|
|
210
|
-
requirements:
|
|
211
|
-
- - "~>"
|
|
212
|
-
- !ruby/object:Gem::Version
|
|
213
|
-
version: '1.5'
|
|
214
|
-
type: :development
|
|
215
|
-
prerelease: false
|
|
216
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
217
|
-
requirements:
|
|
218
|
-
- - "~>"
|
|
219
|
-
- !ruby/object:Gem::Version
|
|
220
|
-
version: '1.5'
|
|
221
|
-
- !ruby/object:Gem::Dependency
|
|
222
|
-
name: simplecov
|
|
223
|
-
requirement: !ruby/object:Gem::Requirement
|
|
224
|
-
requirements:
|
|
225
|
-
- - "~>"
|
|
226
|
-
- !ruby/object:Gem::Version
|
|
227
|
-
version: 0.18.5
|
|
228
|
-
type: :development
|
|
229
|
-
prerelease: false
|
|
230
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
231
|
-
requirements:
|
|
232
|
-
- - "~>"
|
|
233
|
-
- !ruby/object:Gem::Version
|
|
234
|
-
version: 0.18.5
|
|
235
60
|
description: Provides an assertion to test for hashes equality.
|
|
236
61
|
email:
|
|
237
62
|
- tech@facilecomm.com
|
|
@@ -239,11 +64,13 @@ executables: []
|
|
|
239
64
|
extensions: []
|
|
240
65
|
extra_rdoc_files: []
|
|
241
66
|
files:
|
|
67
|
+
- ".circleci/config.yml"
|
|
242
68
|
- ".gitignore"
|
|
243
69
|
- ".rubocop.yml"
|
|
244
70
|
- ".ruby_version"
|
|
245
71
|
- ".travis.yml"
|
|
246
72
|
- CODE_OF_CONDUCT.md
|
|
73
|
+
- Dockerfile
|
|
247
74
|
- Gemfile
|
|
248
75
|
- Guardfile
|
|
249
76
|
- LICENSE.txt
|
|
@@ -252,20 +79,22 @@ files:
|
|
|
252
79
|
- Rakefile
|
|
253
80
|
- bin/console
|
|
254
81
|
- bin/setup
|
|
82
|
+
- docker-compose.yaml
|
|
255
83
|
- hashes_equal.gemspec
|
|
256
84
|
- lib/hashes_equal.rb
|
|
257
85
|
- lib/hashes_equal/enumerable_compare_helper.rb
|
|
258
86
|
- lib/hashes_equal/enumerable_diff_displayer.rb
|
|
259
87
|
- lib/hashes_equal/generic_diff_displayer.rb
|
|
88
|
+
- lib/hashes_equal/hash_almost_diff_displayer.rb
|
|
260
89
|
- lib/hashes_equal/hash_compare_helper.rb
|
|
261
90
|
- lib/hashes_equal/hash_diff_displayer.rb
|
|
91
|
+
- lib/hashes_equal/hash_rounded_diff_displayer.rb
|
|
262
92
|
- lib/hashes_equal/time_coarsener.rb
|
|
263
93
|
- lib/hashes_equal/version.rb
|
|
264
94
|
homepage: https://github.com/Facilecomm/hashes_equal
|
|
265
95
|
licenses:
|
|
266
96
|
- MIT
|
|
267
97
|
metadata: {}
|
|
268
|
-
post_install_message:
|
|
269
98
|
rdoc_options: []
|
|
270
99
|
require_paths:
|
|
271
100
|
- lib
|
|
@@ -280,8 +109,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
280
109
|
- !ruby/object:Gem::Version
|
|
281
110
|
version: '0'
|
|
282
111
|
requirements: []
|
|
283
|
-
rubygems_version: 3.
|
|
284
|
-
signing_key:
|
|
112
|
+
rubygems_version: 3.6.9
|
|
285
113
|
specification_version: 4
|
|
286
114
|
summary: MiniTest style assertion to compare hashes.
|
|
287
115
|
test_files: []
|