hash_tools 1.2.2 → 1.2.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4ab5e9066d46815ff0a1a2a97b9a1f382773673b
4
- data.tar.gz: b9f930223045e67b684639e2b44b659f91ebe1db
3
+ metadata.gz: cd2b001e2124881b7b3ceabe56d0970e9d53695a
4
+ data.tar.gz: f53e06a41c6affa8959f6d41d93a1483362b142c
5
5
  SHA512:
6
- metadata.gz: b62b54f10e976670dad3fb77d671e62005a3990504a5d1de6b4c75a7aac7822fbd897032d463a77a1adaec41abb5d438a78436dc2e14a8367e7cfd9fccebf904
7
- data.tar.gz: 379f8dfc139e506d4ddc00a6543e2b618d358adcced40796a67ae9985bdceb62d9239bd3ce2719a4aefdb3f3d0419738df792216311fc40749ba8be6d1b0e15b
6
+ metadata.gz: ecc953a68b52a3c1b8a39aa81361f34118a59c4adef6b035f15a75490e8d883a1910a5a6b9535041373aea1e2de1779734337d866e7725b9a79261d927adb744
7
+ data.tar.gz: 03d991cdc0e98d252f85b0447d64096037d43876b34eab4dc54824fe933cc0bf040ac2e656c0b2e4076f7ddd0631a4aa03cc8411366e12b71279c175653d8d9f
@@ -0,0 +1,53 @@
1
+ # rcov generated
2
+ coverage
3
+ coverage.data
4
+
5
+ # rdoc generated
6
+ rdoc
7
+
8
+ # yard generated
9
+ doc
10
+ .yardoc
11
+
12
+ # bundler
13
+ .bundle
14
+ Gemfile.lock
15
+
16
+ # docs
17
+ doc
18
+
19
+ # jeweler generated
20
+ pkg
21
+
22
+ # Have editor/IDE/OS specific files you need to ignore? Consider using a global gitignore:
23
+ #
24
+ # * Create a file at ~/.gitignore
25
+ # * Include files you want ignored
26
+ # * Run: git config --global core.excludesfile ~/.gitignore
27
+ #
28
+ # After doing this, these files will be ignored in all your git projects,
29
+ # saving you from having to 'pollute' every project you touch with them
30
+ #
31
+ # Not sure what to needs to be ignored for particular editors/OSes? Here's some ideas to get you started. (Remember, remove the leading # of the line)
32
+ #
33
+ # For MacOS:
34
+ #
35
+ #.DS_Store
36
+
37
+ # For TextMate
38
+ #*.tmproj
39
+ #tmtags
40
+
41
+ # For emacs:
42
+ #*~
43
+ #\#*
44
+ #.\#*
45
+
46
+ # For vim:
47
+ #*.swp
48
+
49
+ # For redcar:
50
+ #.redcar
51
+
52
+ # For rubinius:
53
+ #*.rbc
@@ -2,5 +2,6 @@ rvm:
2
2
  - 2.0.0
3
3
  - 2.1.1
4
4
  - 2.2.0
5
+ - 2.3.3
5
6
  cache: bundler
6
7
  sudo: false
data/Gemfile CHANGED
@@ -1,7 +1,4 @@
1
- source "http://rubygems.org"
1
+ source 'https://rubygems.org'
2
2
 
3
- group :development do
4
- gem "rspec", "~> 3.2.0", '< 3.3'
5
- gem "bundler", "~> 1.0"
6
- gem "jeweler", "~> 2.0.1"
7
- end
3
+ # Specify your gem's dependencies in hash_tools.gemspec
4
+ gemspec
data/Rakefile CHANGED
@@ -1,53 +1,6 @@
1
- # encoding: utf-8
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
2
3
 
3
- require_relative 'lib/hash_tools'
4
-
5
- require 'rubygems'
6
- require 'bundler'
7
- begin
8
- Bundler.setup(:default, :development)
9
- rescue Bundler::BundlerError => e
10
- $stderr.puts e.message
11
- $stderr.puts "Run `bundle install` to install missing gems"
12
- exit e.status_code
13
- end
14
- require 'rake'
15
-
16
- require 'jeweler'
17
- Jeweler::Tasks.new do |gem|
18
- gem.version = HashTools::VERSION
19
- # gem is a Gem::Specification... see http://guides.rubygems.org/specification-reference/ for more options
20
- gem.name = "hash_tools"
21
- gem.homepage = "http://github.com/julik/hash_tools"
22
- gem.license = "MIT"
23
- gem.description = %Q{Do useful things to Ruby Hashes}
24
- gem.summary = %Q{Do useful things to Ruby Hashes}
25
- gem.email = "me@julik.nl"
26
- gem.authors = ["Julik Tarkhanov"]
27
- # dependencies defined in Gemfile
28
- end
29
- Jeweler::RubygemsDotOrgTasks.new
30
-
31
- require 'rspec/core'
32
- require 'rspec/core/rake_task'
33
- RSpec::Core::RakeTask.new(:spec) do |spec|
34
- spec.pattern = FileList['spec/**/*_spec.rb']
35
- end
36
-
37
- desc "Code coverage detail"
38
- task :simplecov do
39
- ENV['COVERAGE'] = "true"
40
- Rake::Task['spec'].execute
41
- end
4
+ RSpec::Core::RakeTask.new(:spec)
42
5
 
43
6
  task :default => :spec
44
-
45
- require 'rdoc/task'
46
- Rake::RDocTask.new do |rdoc|
47
- version = File.exist?('VERSION') ? File.read('VERSION') : ""
48
-
49
- rdoc.rdoc_dir = 'rdoc'
50
- rdoc.title = "hash_tools #{version}"
51
- rdoc.rdoc_files.include('README*')
52
- rdoc.rdoc_files.include('lib/**/*.rb')
53
- end
@@ -1,60 +1,33 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
- # -*- encoding: utf-8 -*-
5
- # stub: hash_tools 1.2.2 ruby lib
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'hash_tools'
6
5
 
7
- Gem::Specification.new do |s|
8
- s.name = "hash_tools"
9
- s.version = "1.2.2"
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "hash_tools"
8
+ spec.version = HashTools::VERSION
9
+ spec.authors = ["Julik Tarkhanov"]
10
+ spec.email = ["me@julik.nl"]
10
11
 
11
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
- s.require_paths = ["lib"]
13
- s.authors = ["Julik Tarkhanov"]
14
- s.date = "2015-12-06"
15
- s.description = "Do useful things to Ruby Hashes"
16
- s.email = "me@julik.nl"
17
- s.extra_rdoc_files = [
18
- "LICENSE.txt",
19
- "README.md"
20
- ]
21
- s.files = [
22
- ".document",
23
- ".rspec",
24
- ".travis.yml",
25
- ".yardopts",
26
- "Gemfile",
27
- "LICENSE.txt",
28
- "README.md",
29
- "Rakefile",
30
- "hash_tools.gemspec",
31
- "lib/hash_tools.rb",
32
- "lib/hash_tools/indifferent.rb",
33
- "spec/hash_tools/indifferent_spec.rb",
34
- "spec/hash_tools_spec.rb",
35
- "spec/spec_helper.rb"
36
- ]
37
- s.homepage = "http://github.com/julik/hash_tools"
38
- s.licenses = ["MIT"]
39
- s.rubygems_version = "2.2.2"
40
- s.summary = "Do useful things to Ruby Hashes"
12
+ spec.summary = %Q{Do useful things to Ruby Hashes}
13
+ spec.description = %Q{Do useful things to Ruby Hashes}
14
+ spec.homepage = "https://github.com/WeTransfer/hash_tools"
15
+ spec.license = "MIT"
41
16
 
42
- if s.respond_to? :specification_version then
43
- s.specification_version = 4
44
-
45
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
46
- s.add_development_dependency(%q<rspec>, ["< 3.3", "~> 3.2.0"])
47
- s.add_development_dependency(%q<bundler>, ["~> 1.0"])
48
- s.add_development_dependency(%q<jeweler>, ["~> 2.0.1"])
49
- else
50
- s.add_dependency(%q<rspec>, ["< 3.3", "~> 3.2.0"])
51
- s.add_dependency(%q<bundler>, ["~> 1.0"])
52
- s.add_dependency(%q<jeweler>, ["~> 2.0.1"])
53
- end
17
+ # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
18
+ # to allow pushing to a single host or delete this section to allow pushing to any host.
19
+ if spec.respond_to?(:metadata)
20
+ spec.metadata['allowed_push_host'] = "https://rubygems.org"
54
21
  else
55
- s.add_dependency(%q<rspec>, ["< 3.3", "~> 3.2.0"])
56
- s.add_dependency(%q<bundler>, ["~> 1.0"])
57
- s.add_dependency(%q<jeweler>, ["~> 2.0.1"])
22
+ raise "RubyGems 2.0 or newer is required to protect against public gem pushes."
58
23
  end
59
- end
60
24
 
25
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
26
+ spec.bindir = "exe"
27
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
28
+ spec.require_paths = ["lib"]
29
+
30
+ spec.add_development_dependency "bundler", "~> 1"
31
+ spec.add_development_dependency "rake", "~> 10.0"
32
+ spec.add_development_dependency "rspec", "~> 3.2.0", '< 3.3'
33
+ end
@@ -1,5 +1,5 @@
1
1
  module HashTools
2
- VERSION = '1.2.2'
2
+ VERSION = '1.2.3'
3
3
 
4
4
  require_relative 'hash_tools/indifferent'
5
5
 
@@ -113,9 +113,13 @@ class HashTools::Indifferent < SimpleDelegator
113
113
  def respond_to_missing?(method_name, include_private=false)
114
114
  key?(method_name)
115
115
  end
116
-
116
+
117
+ def to_hash
118
+ __getobj__.to_hash
119
+ end
120
+
117
121
  alias_method :has_key?, :key?
118
-
122
+
119
123
  private
120
124
 
121
125
  def __transform_key__(k)
metadata CHANGED
@@ -1,72 +1,72 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hash_tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.2
4
+ version: 1.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Julik Tarkhanov
8
8
  autorequire:
9
- bindir: bin
9
+ bindir: exe
10
10
  cert_chain: []
11
- date: 2015-12-06 00:00:00.000000000 Z
11
+ date: 2017-05-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rspec
14
+ name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "<"
18
- - !ruby/object:Gem::Version
19
- version: '3.3'
20
17
  - - "~>"
21
18
  - !ruby/object:Gem::Version
22
- version: 3.2.0
19
+ version: '1'
23
20
  type: :development
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
- - - "<"
28
- - !ruby/object:Gem::Version
29
- version: '3.3'
30
24
  - - "~>"
31
25
  - !ruby/object:Gem::Version
32
- version: 3.2.0
26
+ version: '1'
33
27
  - !ruby/object:Gem::Dependency
34
- name: bundler
28
+ name: rake
35
29
  requirement: !ruby/object:Gem::Requirement
36
30
  requirements:
37
31
  - - "~>"
38
32
  - !ruby/object:Gem::Version
39
- version: '1.0'
33
+ version: '10.0'
40
34
  type: :development
41
35
  prerelease: false
42
36
  version_requirements: !ruby/object:Gem::Requirement
43
37
  requirements:
44
38
  - - "~>"
45
39
  - !ruby/object:Gem::Version
46
- version: '1.0'
40
+ version: '10.0'
47
41
  - !ruby/object:Gem::Dependency
48
- name: jeweler
42
+ name: rspec
49
43
  requirement: !ruby/object:Gem::Requirement
50
44
  requirements:
51
45
  - - "~>"
52
46
  - !ruby/object:Gem::Version
53
- version: 2.0.1
47
+ version: 3.2.0
48
+ - - "<"
49
+ - !ruby/object:Gem::Version
50
+ version: '3.3'
54
51
  type: :development
55
52
  prerelease: false
56
53
  version_requirements: !ruby/object:Gem::Requirement
57
54
  requirements:
58
55
  - - "~>"
59
56
  - !ruby/object:Gem::Version
60
- version: 2.0.1
57
+ version: 3.2.0
58
+ - - "<"
59
+ - !ruby/object:Gem::Version
60
+ version: '3.3'
61
61
  description: Do useful things to Ruby Hashes
62
- email: me@julik.nl
62
+ email:
63
+ - me@julik.nl
63
64
  executables: []
64
65
  extensions: []
65
- extra_rdoc_files:
66
- - LICENSE.txt
67
- - README.md
66
+ extra_rdoc_files: []
68
67
  files:
69
68
  - ".document"
69
+ - ".gitignore"
70
70
  - ".rspec"
71
71
  - ".travis.yml"
72
72
  - ".yardopts"
@@ -77,13 +77,11 @@ files:
77
77
  - hash_tools.gemspec
78
78
  - lib/hash_tools.rb
79
79
  - lib/hash_tools/indifferent.rb
80
- - spec/hash_tools/indifferent_spec.rb
81
- - spec/hash_tools_spec.rb
82
- - spec/spec_helper.rb
83
- homepage: http://github.com/julik/hash_tools
80
+ homepage: https://github.com/WeTransfer/hash_tools
84
81
  licenses:
85
82
  - MIT
86
- metadata: {}
83
+ metadata:
84
+ allowed_push_host: https://rubygems.org
87
85
  post_install_message:
88
86
  rdoc_options: []
89
87
  require_paths:
@@ -100,7 +98,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
100
98
  version: '0'
101
99
  requirements: []
102
100
  rubyforge_project:
103
- rubygems_version: 2.2.2
101
+ rubygems_version: 2.5.2
104
102
  signing_key:
105
103
  specification_version: 4
106
104
  summary: Do useful things to Ruby Hashes
@@ -1,90 +0,0 @@
1
- require_relative '../spec_helper'
2
-
3
- describe HashTools::Indifferent do
4
- it 'supports indifferent access' do
5
- h_syms = {a: 1, 'b' => 2}
6
- wrapper = described_class.new(h_syms)
7
-
8
- expect(wrapper['a']).to eq(1)
9
- expect(wrapper[:a]).to eq(1)
10
- expect(wrapper.fetch('a')).to eq(1)
11
- expect(wrapper.fetch(:a)).to eq(1)
12
-
13
- expect(wrapper['b']).to eq(2)
14
- expect(wrapper[:b]).to eq(2)
15
- expect(wrapper.fetch('b')).to eq(2)
16
- expect(wrapper.fetch(:b)).to eq(2)
17
-
18
- expect(wrapper.a).to eq(1)
19
- expect(wrapper.b).to eq(2)
20
-
21
- expect(wrapper.keys).to eq(h_syms.keys)
22
- end
23
-
24
- it 'serializes as a JSON object when used as an array member' do
25
- require 'json'
26
- h = {a: 1}
27
- i = described_class.new(h)
28
- array = [h, i]
29
- dumped = JSON.dump(array)
30
- loaded = JSON.load(dumped)
31
- expect(loaded[1]).to eq(loaded[0]) # The object representations should be equivalent
32
- end
33
-
34
- it 'raises NoMethodError when accessing missing keys via dot notation' do
35
- h_syms = {a: 1, 'b' => 2}
36
- wrapper = described_class.new(h_syms)
37
-
38
- expect {
39
- wrapper.c
40
- }.to raise_error(NoMethodError)
41
- end
42
-
43
- it 'supports indifferent access to deeply nested hashes' do
44
- h_deep = {a: {:b => 1, 'c' => 2}}
45
-
46
- wrapper = described_class.new(h_deep)
47
- expect(wrapper[:a][:b]).to eq(1)
48
- expect(wrapper['a']['b']).to eq(1)
49
-
50
- expect(wrapper[:a][:c]).to eq(2)
51
- expect(wrapper['a']['c']).to eq(2)
52
-
53
- expect(wrapper.a.b).to eq(1)
54
- expect(wrapper.a.c).to eq(2)
55
-
56
- expect(wrapper.keys).to eq(h_deep.keys)
57
- end
58
-
59
- it 'supports has_non_empty?' do
60
- h_deep = {:a => 1, :b => '', :c => false, :d => nil}
61
- wrapper = described_class.new(h_deep)
62
-
63
- expect(wrapper).to be_value_present(:a)
64
-
65
- expect(wrapper).not_to be_value_present(:z)
66
- expect(wrapper).not_to be_value_present('z')
67
-
68
- expect(wrapper).not_to be_value_present(:b)
69
- expect(wrapper).not_to be_value_present(:c)
70
- expect(wrapper).not_to be_value_present(:d)
71
- end
72
-
73
- it 'supports map' do
74
- h_deep = {:a => {:b => 1}, 'b' => {'b' => 2}}
75
- wrapper = described_class.new(h_deep)
76
-
77
- wrapper.map do |(k, v)|
78
- expect(v['b']).not_to be_nil
79
- expect(v[:b]).not_to be_nil
80
- end
81
- end
82
-
83
- it 'supports indifferent access to inner arrays' do
84
- h_deep = {:a => [{:b => 1}]}
85
- wrapper = described_class.new(h_deep)
86
-
87
- expect(wrapper[:a][0][:b]).to eq(1)
88
- expect(wrapper['a'][0]['b']).to eq(1)
89
- end
90
- end
@@ -1,171 +0,0 @@
1
- require_relative 'spec_helper'
2
-
3
- describe HashTools do
4
- let(:t) do
5
- Class.new do
6
- include HashTools
7
- end.new
8
- end
9
- let(:uppercase) { ->(k){ k.upcase } }
10
-
11
- describe '.indifferent' do
12
- it 'returns an indifferent wrapper' do
13
- h = {'foo' => {bar: 1}}
14
- ind = t.indifferent(h)
15
- expect(ind[:foo][:bar]).to eq(1)
16
- end
17
- end
18
-
19
- it 'transforms hash keys' do
20
- s = {"set" => 10}
21
- ref = {"SET" => 10}
22
- expect(t.transform_keys_of(s, &uppercase)).to eq(ref)
23
- end
24
-
25
- it 'transforms nested hash keys' do
26
- s = {"set" => {"two"=>123}}
27
- ref = {"SET"=>{"TWO"=>123}}
28
- expect(t.transform_keys_of(s, &uppercase)).to eq(ref)
29
- end
30
-
31
- it 'does nothing to the array' do
32
- a = %w( a b c d)
33
- expect(t.transform_keys_of(a, &uppercase)).to eq(a)
34
- end
35
-
36
- it 'transforms hashes embedded in arrays' do
37
- a = [{"me"=>"Julik"}]
38
- ref = [{"ME"=>"Julik"}]
39
- expect(t.transform_keys_of(a, &uppercase)).to eq(ref)
40
- end
41
-
42
- it 'transforms nested hashes in an array' do
43
- a = {"foo" => [{"me"=>"Julik"}]}
44
- ref = {"FOO"=>[{"ME"=>"Julik"}]}
45
- expect(t.transform_keys_of(a, &uppercase)).to eq(ref)
46
- end
47
-
48
- it 'exposes methods on the module itself' do
49
- expect(HashTools).to respond_to(:transform_keys_of)
50
- end
51
-
52
- describe '.transform_string_values_of' do
53
- it 'transforms the string value' do
54
- x = "foo"
55
- expect(t.transform_string_values_of(x, &uppercase)).to eq('FOO')
56
- end
57
-
58
- it 'transforms strings in array' do
59
- x = %w( foo bar baz)
60
- ref = %w( FOO BAR BAZ )
61
- expect(t.transform_string_values_of(x, &uppercase)).to eq(ref)
62
- end
63
-
64
- it 'transforms string values in a Hash' do
65
- x = {"foo" => "bar"}
66
- ref = {"foo" => "BAR"}
67
- expect(t.transform_string_values_of(x, &uppercase)).to eq(ref)
68
- end
69
- end
70
-
71
- describe '.transform_string_keys_and_values_of' do
72
- it 'transforms both keys and values' do
73
- x = {"foo" => "bar"}
74
- ref = {"FOO" => "BAR"}
75
- expect(t.transform_string_keys_and_values_of(x, &uppercase)).to eq(ref)
76
- end
77
- end
78
-
79
- describe '.deep_fetch' do
80
- let(:deep) {
81
- {
82
- 'foo' =>1,
83
- 'bar' => {
84
- 'baz' => 2
85
- },
86
- 'array' => [1,2,3],
87
- 'array-with-hashes' => [{'name' => 'Joe'}, {'name' => 'Jane'}]
88
- }
89
- }
90
-
91
- it 'accepts a block for a default value' do
92
- v = described_class.deep_fetch(deep, 'bar/nonexistent') { :default}
93
- expect(v).to eq(:default)
94
- end
95
-
96
- it 'fetches deep keys from a hash keyed by strings' do
97
- expect(described_class.deep_fetch(deep, 'foo')).to eq(deep.fetch('foo'))
98
- expect(described_class.deep_fetch(deep, 'bar/baz')).to eq(deep.fetch('bar').fetch('baz'))
99
- end
100
-
101
- it 'fetches deep keys with a custom separator' do
102
- expect(described_class.deep_fetch(deep, 'bar.baz', separator: '.')).to eq(deep.fetch('bar').fetch('baz'))
103
- end
104
-
105
- it 'causes a KeyError to be raised for missing keys' do
106
- expect {
107
- described_class.deep_fetch(deep, 'bar/nonexistent')
108
- }.to raise_error(KeyError, 'key not found: "nonexistent"')
109
- end
110
-
111
- it 'allows fetches from arrays' do
112
- expect(described_class.deep_fetch(deep, 'array/0')).to eq(1)
113
- expect(described_class.deep_fetch(deep, 'array/-1')).to eq(3)
114
- end
115
-
116
- it 'allows fetches from hashes within arrays' do
117
- expect(described_class.deep_fetch(deep, 'array-with-hashes/0/name')).to eq('Joe')
118
- expect {
119
- described_class.deep_fetch(deep, 'array-with-hashes/10/name')
120
- }.to raise_error(IndexError, /index 10 outside of array bounds/)
121
-
122
- default_value = described_class.deep_fetch(deep, 'array-with-hashes/0/jake') { :default }
123
- expect(default_value).to eq(:default)
124
- end
125
- end
126
-
127
- describe '.deep_fetch_multi' do
128
- let(:deep) {
129
- {
130
- 'foo' =>1,
131
- 'bar' => {
132
- 'baz' => 2
133
- },
134
- 'array' => [1,2,3],
135
- 'array-with-hashes' => [{'name' => 'Joe'}, {'name' => 'Jane'}]
136
- }
137
- }
138
-
139
- it 'fetches mutiple keys' do
140
- expect(described_class.deep_fetch_multi(deep, 'foo', 'bar/baz')).to eq([1,2])
141
- end
142
-
143
- it 'fetches deep keys with a custom separator' do
144
- expect(described_class.deep_fetch_multi(deep, 'foo', 'bar.baz', separator: '.')).to eq([1,2])
145
- end
146
-
147
- it 'causes a KeyError to be raised for missing keys' do
148
- expect {
149
- described_class.deep_fetch_multi(deep, 'foo', 'nonexistent')
150
- }.to raise_error(KeyError)
151
- end
152
- end
153
-
154
- describe '.deep_map_value' do
155
- it 'deep maps the values' do
156
- v = [
157
- {'foo' => 5},
158
- {'foo' => 6},
159
- ]
160
- expect(described_class.deep_map_value(v, "foo")).to eq([5,6])
161
- end
162
-
163
- it 'deep maps the values with a custom separator' do
164
- v = [
165
- {'foo' => {'bar' => 1}},
166
- {'foo' => {'bar' => 2}},
167
- ]
168
- expect(described_class.deep_map_value(v, "foo-bar", separator: '-')).to eq([1,2])
169
- end
170
- end
171
- end
@@ -1,4 +0,0 @@
1
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
- $LOAD_PATH.unshift(File.dirname(__FILE__))
3
- require 'rspec'
4
- require 'hash_tools'